Adds an option to customize the refresh interval for leaderboards in the config.yml
Code (YAML):
Leaderboard:
# The interval in which the leaderboard should be refreshed in. This is # represented in seconds # # Default value: 600 (10 minutes) RefreshInterval: 600
Added a simple Bungee mode, that allows an arena to take over the entire server
Code (YAML):
# Bungee mode settings # # Bungee mode will redirect any players that join into the given arena, # and automatically kick them when they finish the game Bungee:
# Is bungee mode enabled or not? Enabled: false
# The arena key to use. Leave empty to auto-decide. Arena: ""
# The server that players should be kicked into when they finish # their game. KickToServer: "lobby"
# Should the plugin teleport players asynchronously or not? # # This feature can result in better performance for teleporting # players and consequently loading chunks. However, this ONLY # works on PaperSpigot. AsyncTeleport: true
Arena -> JoiningDelay
Code (YAML):
# The delay between joining and rejoining arenas. Set to 0 # to disable. # # Default value: 3 JoiningDelay: 3
spectator-settings.yml - CanGetInsidePlayers for configuring the spectator's ability to spectate inside players
- Added
/spleefx convertdata <type> to allow converting the players data from one database type to the other.
Power-ups!These will turn the monotonous Spleef games into a much more exciting battlefield, with 13 built-in power ups as well as the ability to create custom ones
Java 16 support: The plugin used to completely break on servers running Java 16, due to the new classloading semantics. Since Paper 1.17 will require Java 16, this version now supports it.
Encoded skulls support: Any item can now define a TextureValue property which takes the Base64-encoded skull. This will now allow skulls to be any skull out there, and not restricted to Mojang player skulls.
Hex color support: This release now provides native support for the 1.16+ hex colors, with the format #(digits), for example #2d4029Spleef would become Spleef.
Removals:
Removed boosters
Removed perks
Bug fixes:
Fixed the time-zone error in MySQL
Fixed an error being thrown in games that end with a draw
Improved bouncing in bow spleef
Fixed the GivePotionEffects not working in extension files
Behind the scenes:
Drastically improved the codebase, as well as the plugin initialization phase.
Reduced the JAR size from 900 KB to 780 KB
Lots of improvements to projectiles, as well as handling them more gracefully and efficiently.
Power-ups!These will turn the monotonous Spleef games into a much more exciting battlefield, with 13 built-in power ups as well as the ability to create custom ones
Java 16 support: The plugin used to completely break on servers running Java 16, due to the new classloading semantics. Since Paper 1.17 will require Java 16, this version now supports it.
Encoded skulls support: Any item can now define a TextureValue property which takes the Base64-encoded skull. This will now allow skulls to be any skull out there, and not restricted to Mojang player skulls.
Hex color support: This release now provides native support for the 1.16+ hex colors, with the format #(digits), for example #2d4029Spleef would become Spleef.
Removals:
Removed boosters
Removed perks
Bug fixes:
Fixed the time-zone error in MySQL
Fixed an error being thrown in games that end with a draw
Improved bouncing in bow spleef
Fixed the GivePotionEffects not working in extension files
Behind the scenes:
Drastically improved the codebase, as well as the plugin initialization phase.
Reduced the JAR size from 900 KB to 780 KB
Lots of improvements to projectiles, as well as handling them more gracefully and efficiently.
This release fixes major bugs which have been here for quite some time, with their causes being (previously) extremely unknown.
Fixed the "limbo" bug: Fixed a bug where in certain cases players would become in a "limbo" state, where they would be unable to chat and unable to join arenas, as well as general interactions with the world (thanks to Dragory#4734).
Fixed the Essentials conflict bugs: Fixed the bugs in which SpleefX would cause Essentials to inadvertently generate incorrect UUIDs, hence certain players having their data cleared/saved with a wrong UUID (thanks to simonee#0413).
Fixed SpleefX <-> Vault problems: A bug causing SpleefX not to hook into Vault correctly (when SpleefX is the economy plugin), and causing a few bugs consequently (thanks to Zarakiss#9333).
This release adds lots of performance improvements and fixes a few bugs
Previously, signs used to update at a fixed interval. While this made things a lot easier, it caused chunks that included signs to be loaded unnecessarily. Signs now will only update when necessary.
Apparently data was being saved synchronously. Data is now 100% asynchronous.
SpleefX will now leverage the great performance improvements in PaperSpigot. If the server uses PaperSpigot, teleporting will be asynchronous. This should make things smoother, especially in 1.15+ servers.
Fixed game statistics incorrectly appearing as 0.
Improved the performance of certain functionalities in the plugin, such as scoreboards.
Added GameMode option to spectator settings. Although it's highly recommended users do not play with it, it'll be there nonetheless.
Added /spleefx debugplayer <player> to debug players. This should help debug certain cases where players seem to be bugged.
Added SnowballSettings to all extensions. It's possible to tweak these settings everywhere now, and are no longer restricted to spleef.
Fixed many issues with custom extensions. They were essentially broken but should work fine now.
Fixed some commands not having descriptions
Fixed the player eliminated message not displaying the prefix correctly.
Fixed an issue in the player data loading cycle.
Changes:
Removed all reload commands and subcommands. Now, all files and extensions can be reloaded with /spleefx reload. This was done to reduce the confusion on why some files were being reloaded while others aren't.
- Leaderboards have been finally polished and are fully usable now. Config documentation has also been updated accordingly.
- It is now possible to change the
VICTORY and
ELIMINATED text in the stats web UI
- Added
GameSummaryTooltip message to messages.yml.
Migration to YML: The plugin configuration has been fully migrated and converted into YML. Users will no longer have to tamper with annoying JSON files
Additions:
1.16.4 support
LuckPerms contexts
MariaDB support
Added RemoveBlocksWhenPunched to extensions
Code (YAML):
RemoveBlocksWhenPunched: - SNOW_BLOCK
Added numeric permissions for abilities. You can assign ability permissions with numbers which will give the user the amount of the ability.
Added the following placeholders (through PlaceholderAPI):
NOTE: IT IS HIGHLY RECOMMENDED TO BACK UP YOUR
extensions FOLDER BEFORE UPDATING TO THIS RELEASE, OTHERWISE SOME SETTINGS MAY BE LOST AND/OR OVERWRITTEN.
Additions:
1.16.2 + 1.16.3 support.
Post-game web summary: After every game, a permalink to the game summary will be generated The background, IP and server name are all customizable inside game-summary.yml.
Join GUI icons: It is now possible to specify per-arena icons for the Join GUI, through /<mode> arena joinguiitem <arena>, while holding the item in main hand.
Mid-game spectating: It is now possible for other players (who were not in the game) to join an arena while it is active and automatically spectate it.
Spawn-Point Scanner (FFA arenas only): Instead of having to write /<mode> arena spawnpoint <arena> <player no.>, it is now possible to use beacons as placeholders for the spawn-point location. Check this wiki page for more details.
Added /<mode> arena spawnpoint <arena> all to set all spawn-points to your location
Messages will now go to messages.yml, with comments surrounding them.
Post-game details summary. After each game, a summary of the game containing statistics will be sent
MySQL, H2 and PostgreSQL support for player data. It is now possible to store player data using a SQL database. Support for more types will be added in the future.
Added /spleefx luckperms <group> to automatically add all player-only permissions to LuckPerms.
Added an update checker
Added API events to allow hooks to the plugin. Documentation for this will be added soon.
Live view of commands, descriptions, permissions and aliases
Bug fixes:
Fixed bets not giving out correctly
Fixed vanishing problems in spectating
(Cannot confirm yet) Fixed a conflict with Featherboard
Fixed many problems with spectating
Fixed enabling/disabling extensions not persisting across restarts
Fixed certain problems with reloading
Fixed a certain incompatibility with PlaceholderAPI 2.10.9+
Fixed an issue when a player has an unusual modifier of health (for example lots of absorption)
Fixed a few incompatibilities with 1.8.8/1.8.9 servers.
Optimizations:
Major optimizations to the player data system. It is now fully asynchronous, uses priorities for loading, includes smart caching and size-limiting.
Major optimizations to the placeholder system. Placeholders should be at least 200% faster.
Major optimizations to the leaderboards system for premium (non-cracked) servers. It should be at least 150% faster.
Optimized the configuration system
Optimized the Join GUI and Statistics GUI.
Rewritten:
Complete rewrite of the commands system. Code is now less verbose, more maintainable and much more human-friendly.
Complete rewrite of the config system. Better support for reloading and providing default values for absent options.
Complete rewrite of the messages system. It is now purely in YML, and has descriptive comments surrounding every message
Complete rewrite of the player-data and storage system. It will now use smart caching, and will not go over the (configurable, default: 1000) limit of loading data. Also gives loading priorities to online players. Overall, much better scalability for bigger servers.
NOTE: For 1.8.X users,
you will now need ProtocolLib aside from WorldEdit for SpleefX to function. Nothing to do about this, it's used to work around CraftBukkit bugs.
chances are that you already have it because of other plugins. Additions:
[!] Added spectating (BETA) which has been a highly requested feature. All settings are accessible in /SpleefX/spectator-settings.json.
[!] Minecraft 1.16 support
Added /spleefx discord as a more straightforward way to get our Discord server URL.
Added /splegg materials <add / list / remove> <materials...> as a simpler way to modify splegg materials. This supports numerical IDs and case-insensitive material names and types.
Added /spleefx debug as a faster, easier, and better alternative to obtain the required information for assisting beloved users.
Quality of life additions:
Spammy start-up error messages will no longer be printed on the console, and instead will be written to /SpleefX/crash.log. Beloved users then will just have to send the crash log file over.
Syntax errors in JSON will have a much more friendly error output
Bug fixes:
Fixed a typo in extension files causing team rewards to not work.
Removed certain spammy logging messages from the PlaceholderAPI hook
Fix win messages not being displayed
Improved the performance and functionality of leaderboards. Instead of depending on Bukkit's cache, the plugin has its own asynchronous one which directly fetches and caches from the Mojang API. This should end the bugs of "Invalid player" being displayed randomly on times and on other times displaying correctly, due to Bukkit's inconsistent behavior with dealing with offline players.
Fix a dependencies error in 1.8.8 causing the plugin to disable
Fixed the anti-leak protection triggering false-positives.
Fixed arenas being redundantly regenerating on plugin shutdown, which would sometimes cause issues with FastAsyncWorldEdit or slow down the server with standard WorldEdit.
Possibly more fixes which I cannot remember at 1 AM.
Separated the scoreboard's COUNTDOWN to 2 events: COUNTDOWN_AND_WAITING and COUNTDOWN_AND_FULL. Through this, you can have 2 different scoreboards for the player's arena when in countdown, depending on whether the arena is full or can still take players.
Integrated PlaceholderAPI's expansion. All will be maintained in a single JAR, rather than having the expansion in a place and the plugin in another place.
Integrated Plugin Metrics through bStats.org. Anonymous data will be collected from your server about your plugin's setup and most played game modes. This will further help us know where to improve
Bug fixes:
Fixed an issue in splegg making snowballs spam errors when shot.
Fixed spawn-points counter not displaying correctly in the /<mode> whydisabled command.
OPTIMIZATION Fixed a problem in legacy versions of FastAsyncWorldEdit, making it not regenerate arenas as fast as it can.
OPTIMIZATION Cleaned up the scoreboard framework and made it better and faster
Possibly more fixes which I cannot recall??
Behind the scenes:
Converted SpleefX to use Gradle in place of Maven. This will greatly help in managing dependencies and furthermore allow us to support for plugins in the future
Removed many unnecessary dependencies and imitated their behavior internally
Dropped support for the following versions:
1.9.0-1.9.2
1.10.X
1.11.X
1.13 and 1.13.1 (1.13.2 still works)
Reduced down the plugin JAR size from 889 kilobytes to 585 kilobytes. Definitely an improvement!
Fix arenas not returning the appropriate state when not enabled or not fully setup, resulting in a lot of buggy behavior
Fix blocks not having the appropriate drops in 1.14+
Splegg projectiles are now faster (behavior subject to change!)
Additions:
Added /<mode> whydisabled <arena>. This command will allow you to find what is left for the arena to be fully setup. Red is required, yellow is optional but recommended.
Added /<mode> forcestart as a command to forcibly start the arena and bypass the countdown. It is still required for the arena to meet the minimum count!
Added thrownSnowballsRemoveHitBlocks option to snowballSettings in spleef.json.
This release is mainly intended to remove 3.8.3-BETA as it has been found to be very unstable. Further updates will come to compensate for all the bugs
This release fixes a lot of bugs and adds a new feature which has been requested a few times.
Fixes:
Fixed winning in arenas not displaying the victory title
Fixed the create command allowing invalid names (such as those containing "?" and "\")
Fixed leaderboards duplicating entries sometimes
Fixed splegg games throwing NPEs when attempting to update the player's broken blocks statistic
Fixed the plugin not being able to handle invalid health values (such as players who have absorption and have health points exceeding than 24)
Fixed the /spleefx coins command bugging out when being ran from console
Fixed the plugin throwing errors when the player attempts to join an arena while already in one
Added more documentations to the leaderboards section in the config.yml
Additions:
Added /<mode> arena finishingloc <arena key> for setting the finishing location of the arena. This location is the one players are teleported to when the game is over.
Added /<mode> arena removefinishingloc <arena key> to remove the arena's finishing location and, instead, teleport players to their original location
Added /<mode> arena lobby <index / team> to set a lobby for the specified team or index only. You can also tab the new additions
Added /<mode> arena removelobby <index / team> to remove the specific lobby, and teleport them to their spawnpoint or global lobby.
Added alreadyInArena message, which will be sent to players when they attempt to join an arena while already in one. Editable through /spleefx messages.
# Whether should the plugin ignore changes/movements in the X axis when checking for melting IgnoreX: false
Added IgnoreZ to config.yml ->Arena -> Melting
Code (YAML):
# Whether should the plugin ignore changes/movements in the Z axis when checking for melting IgnoreZ: false
Do note that the config must be regenerated in order for the new options to appear, or add them yourself!
Important update notes:
This release tweaks a lot in the loading cycle of the plugin's player data and leaderboards handling. I am completely aware of all the bugs that many of you have reported, and I have not dismissed any of them. They are still being worked on, however it was time for another SpleefX update.
This update corresponds with SpleefX-PAPI-1.4-SNAPSHOT, so make sure you keep up to date with all the changes!
This release adds completely new systems to SpleefX, as well as revolutionizing the Splegg game-play!
Additions:
Added an entire economic system, which allows purchasing perks and upgrades.
Add in-game coins boosters system, which you can use to create your very own boosters, with custom multipliers and duration, as well as customizing the booster stacking multiplier method calculation.
Add a purchasable perks system. Although this is currently narrow, it will be heavily extended in future.
Added splegg upgrades! Create your very own levels of splegg shovels, and players can upgrade their way up! Each upgrade has a delay and a price, and other customizations regarding the upgrade items.
All above, is manageable by GUIs! Everything is customizable!
Scoreboard per stage! Before it was only possible to add a scoreboard when the arena is active, however now you can add a scoreboard for all arena stages (waiting, countdown, active, regenerating, disabled).
PHP:
"scoreboard":{ "WAITING":{ "enabled":true, "title":"&d&lEXAMPLE", "text":{ "6":"&eWaiting for players... ({arena_playercount}/{arena_maximum})", "5":"", "4":"&7Need at least &e{arena_minimum} players", "3":"&eto start the game.", "2":"", "1":" www.example.com" } }, "COUNTDOWN":{ "enabled":true, "title":"&d&lEXAMPLE", "text":{ "6":"&bThe game will", "5":"&bstart in &e{countdown} &bsecond{plural}", "4":"", "3":" www.example.com" } }, "ACTIVE":{ "enabled":true, "title":"&d&lEXAMPLE", "text":{ "6":"&ePlayers Alive: &7{arena_playercount}", "5":"&eDouble Jumps: &7{double_jumps}/5", "4":"", "3":"&eTime left: &7{arena_time_left}", "2":"", "1":" www.example.com" } } }
You will not need to change anything in files, the plugin will automatically convert them to use the new format, as well as any other missing formats.
This release mainly adds full support to WorldGuard regions and a few of its flags, as well as some bug fixes
Additions:
Added support to WorldGuard regions flag: block-break. The plugin will now respect this flag and its restrictions
Added support to WorldGuardExtraFlags and its flags: allow-block-break and deny-block-break. The plugin should now respect these flags and their restrictions in arenas.
Note: For the aforementioned flags and their implementation to work correctly,
the region must have the flag
Code (Text):
interact
set to
Code (Text):
true
(or WorldGuard will deny it, as it is considered an "interaction")!
More support and better respect for other flags is to come.
Bug fixes:
Fixed the block drops not working always as intended with WorldGuard
Made items more fail-safe, by ignoring invalid values
This release mainly adds full support to WorldGuard regions and a few of its flags.
Additions:
Added support to WorldGuard regions flag: block-break. The plugin will now respect this flag and its restrictions
Added support to WorldGuardExtraFlags and its flags: allow-block-break and deny-block-break. The plugin should now respect these flags and their restrictions in arenas.
Note: For the aforementioned flags and their implementation to work correctly,
the region must have the flag
Code (Text):
interact
set to
Code (Text):
true
(or WorldGuard will deny it, as it is considered an "interaction")!
More support and better respect for other flags is to come.
Triple Arrows (Bow Spleef only): You can now add the triple arrows ability through the bow-spleef.json extension file. See this Wiki page for more information.
Reduced calls for retrieving the plugin's high-level player wrapper. The effect is likely not very noticeable, but it's always great to care about the small things
Bug fixes:
Fixed the players' allowed-flight state getting screwed up after matches
Added double jumps to all extensions! You can customize all the following: 1. Whether are double jumps enabled or not 2. The default amount of double jumps a player has per game 3. Cooldown between jumps 4. Sound that is played on jumps 5. Item in inventory that, when left/right-clicked, double jumps the player. You can customize an item for when they can double jump, and an item when they cannot. 6. (most importantly) The velocity they are launched for when they double jump. This is extremely customizable.
Added double jumps to all extensions! You can customize all the following: 1. Whether are double jumps enabled or not 2. The default amount of double jumps a player has per game 3. Cooldown between jumps 4. Sound that is played on jumps 5. Item in inventory that, when left/right-clicked, double jumps the player. You can customize an item for when they can double jump, and an item when they cannot. 6. (most importantly) The velocity they are launched for when they double jump. This is extremely customizable.
Ability (per extension) to add rewards for players who did not necessarily win the game, such as the first place, second place, third place, eight hundred and fifty-two place (don't ask), etc.
PHP:
... "runCommandsForWinners":{ "1":{ "CONSOLE":["say {winner} has got first place"], "PLAYER":[] }, "2":{ "CONSOLE":["say {winner} has got second place"], "PLAYER":[] }, "3":{ "CONSOLE":["say {winner} has got third place"], "PLAYER":[] } }...
Full FastAsyncWorldEdit 1.13+ and AsyncWorldEdit support
Bug fixes:
Fixed /<mode> listarenas printing an error when being run from console
Note: Since this version changes the extensions form, old extension files will automatically get converted, so worry not about breaking backwards compatibility.