pv-addon-discs
Paper only Plasmo Voice addon. Play audio from Youtube and other sources in Minecraft using music discs. Inspired by SVC's AudioPlayer & CustomDiscs.
The addon can stream audio from various sources instead of saving audio files on the server. It even supports Youtube and Twitch live streams. Thanks to the brilliant LavaPlayer library.
Installation
- Install Plasmo Voice, PacketEvents and pv-addon-lavaplayer-lib. You also need to install Plasmo Voice on your client.
- Download this plugin from Modrinth and drop it into the
~/pluginsfolder. - Restart the server
Commands
/disc burn <url> [name] – Create a disc with custom audio from the URL. You need to hold a music disc in your hand.
/disc erase – Return a custom disc to a normal one.
/disc search <query> – Search tracks on YouTube.
/disc cancel [player] – Cancel user's goat horn playback. You need pv.addon.discs.cancel.other permission to cancel for others.
Permissions
Commands are only available to OP by default:
pv.addon.discs.burn – Burn command
pv.addon.discs.erase – Erase command
pv.addon.discs.search – Search command
pv.addon.discs.cancel – Command to cancel goat horn playback
pv.addon.discs.cancel.other – Command to cancel goat horn playback for the other player
pv.addon.discs.burn.burnable_check_bypass – If enabled in a config, you can only burn special discs. This permission allows you to bypass this check
Available to everyone by default:
pv.addon.discs.play – Use custom music discs
Supported sources
Addon can load audio from:
- YouTube videos and live streams (could require additional setup, see Common issues)
- SoundCloud
- Bandcamp
- Vimeo
- Twitch live streams
- Direct HTTP URLs
Supported file formats
If you want to stream audio from direct URLs
- MP3
- FLAC
- WAV
- Matroska/WebM (AAC, Opus or Vorbis codecs)
- MP4/M4A (AAC codec)
- OGG streams (Opus, Vorbis and FLAC codecs)
- AAC streams
- Stream playlists (M3U and PLS)
API
,'%2B'))][last()]&url=https://repo.plasmoverse.com/releases/su/plo/voice/addon/discs-paper/maven-metadata.xml)
,'%2B'))][last()]&url=https://repo.plasmoverse.com/snapshots/su/plo/voice/addon/discs-paper/maven-metadata.xml)
Bukkit events list: https://github.com/plasmoapp/pv-addon-discs/tree/v1/core/src/main/kotlin/su/plo/voice/discs/api.
Kotlin DSL
repositories {
maven("https://repo.plasmoverse.com/releases")
}
dependencies {
compileOnly("su.plo.voice.addon:discs-paper:$VERSION")
}
Common issues
Problematic YouTube player script
- Make sure you're using the latest versions of
pv-addon-discsandpv-addon-lavaplayer-lib. - Open
plugins/pv-addon-discs/discs.toml, uncomment and configureyoutube_source.remote_cipher:[youtube_source.remote_cipher] url = "https://cipher.kikkia.dev/" password = ""This uses a public instance of yt-cipher. To host your own, follow their tutorial.
- Restart the server and see if it works.
- If this doesn't work, try oauth2.
"Sign in to confirm you're not a bot" / "Please sign in" using YouTube
- Make sure you're using the latest versions of
pv-addon-discsandpv-addon-lavaplayer-lib. - Set
youtube_source.use_oauth2totrueinplugins/pv-addon-discs/discs.toml. - Restart the server (
/vreloadwill not work). - When
pv-addon-discsinitializes, you'll see a message in your console like this (code will be different): https://i.imgur.com/r1o5v8v.png. Follow the instructions in the console message. - After successful authorization, you'll see a message in your console: https://i.imgur.com/BD9jCRe.png. You don't need to save token manually, it will be saved when the server is stopped.
- Done! YouTube tracks should now work as expected.
Read timed out
This usually means that your server can't reach the server hosting the track. Check your server's internet connection and contact your hosting provider if the issue persists.
If you have HTTP proxy, you can set it using http_proxy config option in plugins/pv-addon-discs/discs.toml.
This feature is only available starting from 1.1.x.
All Versions
+ Add Version| Name | Game version | Platforms | Published | Downloads | Actions |
|---|---|---|---|---|---|
|
R
1.2.1
|
1d ago | 1 | |||
|
R
1.2.0
|
1d ago | 1 | |||
|
R
1.1.11
|
1d ago | 1 | |||
|
R
1.1.10
|
1d ago | 1 | |||
|
R
1.1.9
|
1d ago | 1 | |||
|
R
1.1.8
|
1d ago | 1 | |||
|
R
1.1.7
|
1d ago | 1 | |||
|
R
1.1.6
|
1d ago | 1 | |||
|
R
1.1.5
|
1d ago | 1 | |||
|
R
1.1.4
|
1d ago | 1 | |||
|
A
1.1.3
|
1d ago | 1 | |||
|
A
1.1.2
|
1d ago | 1 | |||
|
A
1.1.1
|
1d ago | 1 | |||
|
A
1.1.0
|
1d ago | 1 | |||
|
R
1.0.8
|
1d ago | 1 | |||
|
R
1.0.7
|
1d ago | 1 | |||
|
R
1.0.6
|
1d ago | 1 | |||
|
R
1.0.5
|
1d ago | 1 | |||
|
R
1.0.4
|
1d ago | 1 | |||
|
R
1.0.3
|
1d ago | 1 | |||
|
R
1.0.1
|
1d ago | 1 | |||
|
R
1.0.0
|
1d ago | 1 |
- Added support for
26.3. - LavaPlayer debug logs are now logged into server log file when
debugis enabled in the config. - Fixed
/disc erasewith goat horns not restoring vanilla tooltips on1.21.5+. - Fixed "zip file closed" errors on server shutdown while disc or goat horn is playing.
- Added Bukkit events API ([#131](https://github.com/plasmoapp/pv-addon-discs/pull/131)). See [README API section](https://github.com/plasmoapp/pv-addon-discs#api) for dependency setup.
- Fixed compatibility with 5.x adventure. [#133](https://github.com/plasmoapp/pv-addon-discs/issues/133)
- Added
TVHTML5_SIMPLYyoutube client to fixThis video requires loginwhen using oauth.
- Removed
TVHTML5EMBEDDED(replaced withTV) from default youtube clients as it's no longer works (fixes "YouTube is no longer supported in this application or device").
- Fixed plugin not working on versions below 1.21.3: "java.lang.IllegalArgumentException: Disc helper in 12101 is not supported!".
- Added support for YouTube remote cipher to resolve "Problematic YouTube player script". See [Common issues](https://github.com/plasmoapp/pv-addon-discs#problematic-youtube-player-script).
- Added ability to use any item with
JUKEBOX_SONGdata component as a custom disc (1.20.5+). ([#122](https://github.com/plasmoapp/pv-addon-discs/pull/122)) - Fixed an issue where custom discs could stop playing randomly.
- Fixed an issue where a vanilla disc would start playing after a custom disc ended.
- Added opt-in local source for loading tracks from files. See
local_sourceblock in addon's config for more info on how to use it. - Fixed an exception with latest Plasmo Voice version when using
/vreload.
- Migrated from ProtocolLib to PacketEvents.**
- Fixed players ejecting and inserting a disc into a jukebox on the same tick would make the audio from the inserted disc impossible to be stopped. ([#97](https://github.com/plasmoapp/pv-addon-discs/pull/97))
- Handle disc insert in adventure mode in >=1.21.
- Vanilla song name on burned discs in now hidden in >=1.21.3.
- Fixed missing label in actionbar when playing a track. ([#101](https://github.com/plasmoapp/pv-addon-discs/issues/101))
- Fixed data corruption when trying to burn goat horn in 1.21.5. ([#104](https://github.com/plasmoapp/pv-addon-discs/issues/104))
- Fixed an exception when trying to burn already burned goat horn.
- Fixed goat horn unintentionally playing on left click. ([#105](https://github.com/plasmoapp/pv-addon-discs/issues/105))
- Added option to change lore burning method (
burn_lore_methodin the addon config): - DISABLE — Disables any lore manipulations on burn/erase.
- REPLACE (default) — Replaces the whole lore with a string containing the song name on burn, and removes the lore completely on erase.
- APPEND — Adds a new line to the end of the lore on burn, and removes the last line on erase.
- Fixed clicking with a custom disc into a stopped jukebox with a disc already inside would cause it to play track without actually inserting the disc.
- Fixed an IllegalStateException on ChunkUnloadEvent when using Folia [#92](https://github.com/plasmoapp/pv-addon-discs/issues/92).
- Added support for minecart with hopper. Pulling item from jukebox using minecart hopper stops the track.
- Fixed an issue where the track's job was not being stopped after the track finished, causing unnecessary CPU usage and memory leak.
- Added crafts for burnable goat horns.
- Yet another lavaplayer update to fix playback issues.
- Addons' permissions are now registered in Bukkit permissions. This resolves auto-complete and goat horns not working properly.
- New config option
mono_sourcesto use mono sources for playing the audio. /vreloadcommand is now reloading the addon's config properly.- Add [poToken](https://github.com/lavalink-devs/youtube-source?tab=readme-ov-file#using-a-potoken) support for YouTube source.
- Fixed discs commands not working properly after
/vreload.
- Default YouTube clients changed to fix 403 errors. They're also now configurable, see
youtube_source.clientsconfig option.
- Fix
/disc burnproduces broken goat horns in 1.20.1. This fix will not repair broken horns, so you need to do it manually by using command:/item replace entity @p weapon.mainhand with minecraft:goat_horn{instrument:\"empty\"}. - Disallow burning custom goat horn with tracks exceeding the maximum duration defined in the config.
- Update to Plasmo Voice 2.1.0. This version is not compatible with PV 2.0.x.
- Experimental goat horn support. Disabled by default. Set
goat_horn.enabledtotrueto enable. For now horns are burned same as the discs using/disc burncommand, but it'll be changed later. - HTTP proxy support.
- Requires [pv-addon-lavaplayer-lib 1.0.12+](https://modrinth.com/plugin/pv-addon-lavaplayer-lib/version/1.0.12)**
Changelog:
- Fixed an issue where inserting a disc with shift-click caused it to start playing on 1.21
- Reintroduced YouTube authorization
- Requires [pv-addon-lavaplayer-lib 1.0.8+](https://modrinth.com/plugin/pv-addon-lavaplayer-lib/version/1.0.8) to work**
Changelog:
- Config option to change lore burn method
- 1.21 support
- Requires [pv-addon-lavaplayer-lib 1.0.8+](https://modrinth.com/plugin/pv-addon-lavaplayer-lib/version/1.0.8) to work**
Changelog:
- Hopper interactions support
- 1.20 discs burnable craft
- Fixed empty suggestions when using the /disc command
- Config option to disable voice distance visualization [#10](https://github.com/plasmoapp/pv-addon-discs/issues/10)
- Fixed bug when you can take disc from jukebox, but it doesn't stop playing
- Fixed bug with proxy when discs just wouldn't play
- relocate lavaplayer to fix conflicts with other plugins
- relocate lavaplayer to fix conflicts with other plugins
- relocate kotlin to support Plasmo Voice 2.0.3