This version only works with java 17! And it was meant to be run on minecraft 1.18 or newer, all previous measures to support lower versions were removed in order to achieve better performance.
The plugin might work as low as 1.17, but if you find any error that's in this version and not in 1.18, I won't be fixing it.
Use EpicPluginLib v2.2.1 or the plugin won't start!
All classes in the plugin were taken a look at and changed, in order to use java 17 features and fix bugs found on the way. This was really hard to do in a short time period, if you appreciate my work consider
donating or leaving a review.
Addons are currently unavailable for this version, they will be back as soon as I update them.
General sound playing improvements:
- Spectators and players with invisibility effect were not able to hear sounds. Now they can hear all sounds, but the sounds are treated as if you set the Radius option to 0.
- Add error messages when a configuration sound has an invalid namespaced key, previously an ugly error would be thrown to console.
- Players will be cached when checking for toggle state, previously the plugin would access the player persistent data everytime it played a sound.
- Improve sound playing performance significantly by removing support to versions lower than 1.10 and 1.7, which had their own way of playing sounds. Also by removing some unused features, check Removals below.
Death sounds improvements:
- Last death cause will only be recorded in case any sound in 'death types.yml' is enabled, which previously was recorded on every hit.
- Player Kill and Player Killed will play even when 'Player Death' or 'death types' sounds are disabled, which previously wouldn't.
Addon Updates:
- Addons will now only load after its dependencies were loaded, to fix issues.
- Improved error messages sent to console.
- Changed the Regions Handler code SEVERELY: Now all region sounds are cached on load saving performance when playing them, plus the wait for resource pack load before playing sounds was generalized in this addon.
This is a really recommended update for WorldGuard Regions addon, it improves performance significantly.
- Create RedProtect Regions addon: Since regions handler had a big update, I decided to update this addon too, which previously was abandoned.
- Created VentureChat Hook, UltimateChat Hook and EssentialsChat Hook addons: They can hook into these plugins and play different sounds for each channel.
- Created Extra Options addon: This addon brings some extras to the Options section in a sound, like Relative Location that was removed.
You can install or update addons through the command /pms addons.
Regions:
- Improve region saving and deleting performance.
- Native region sounds were changed severely to keep up with Regions Handler and cache region sounds on load.
- Basically, the sounds are now cached everytime the plugin is reloaded, instead of getting the sound from config everytime it should play.
- Players were able to set a description on 'create' command, even if they didn't have permission 'playmoresounds.region.description'.
Sound Events:
- Removed checks to prevent listeners from being registered in older versions.
- Events will be more precise when checking if a sound is enabled.
- Cache world time triggers sounds on load instead of getting it everytime.
- Fix weather sounds giving errors if you disable one of the two sounds.
- Fix flight sounds giving errors if you disable one of the two sounds.
Commands:
- List command will page default to 1 if you specify a number lower than 1.
- Play command will play even when players have sounds toggled off.
- Added new 'dev' command: Special Arguments
- Use them as /pms dev <argument>
- register addons: In case you just installed addons, this will register them and allow you to start them with the argument below. (This command only works once, and if there are no addons installed)
- experimental addon commands: Enables /pms addons stop and start commands, allowing you to stop and start addons.
- stop all addons: Stops all addons that are currently loaded.
- log sounds: All sounds will be logged to console when played, along with the player name.
- get confirmations <player|uuid>: Lists confirmations of another player, can be someone offline or console if you use "null".
- confirm <id> <player|uuid>: Allows you to confirm someone elses confirmation (null to console).
- rgnew <player|uuid>: Allows you to create a region with someone else as owner (null to console), if you want to create for someone offline, specify an uuid. All limits for region amount/max area/overlapping regions are bypassed.
- Be careful of using this command, they weren't made for real world use and are only experimental features.
Removals:
- Removed Relative Location option: This option would make some impact on performance even when you didn't use it, so it was removed because the majority of users don't use it.
- Removed World Black List feature: This feature showed absolutely no use in bStats, so it was removed to save performance.
- Removed Enable Sounds On Login.
- Removed PrePlaySoundEvent: This event was called before the sound had parsed the Permission Required, and since it has no use in current addons it was removed to save performance.
- Removed all sounds from SoundType that's below 1.17.
- I'm creating Extra Options addon: Brings back Relative Location and World Black List. This addon should be coming out soon.
What to expect of 5.0:
- Several classes will be renamed.
- The folders and configurations will be renamed.
- A proper stop sound method will be added to the Playable interface, so sounds with delay can be stopped before they're played.
- Addon loading code will be completely rewritten in order to add commands for starting and stopping addons without restarting server.
- The entire yaml configuration api will change, while also making use of new SnakeYAML 1.30 features.
- Radio feature: You will be able to play a sound infinitely in a specific location, or the whole world, without needing to create a region.