New stuff:
- Added Hex color support for clickable messages
- Added auto-give-first-edited-kit option (automatically gives the first edited kit, see new config.yml)
- Added more translatable messages for /events commands
Fixes:
- Fixed memory leak when tags are enabled but scoreboard is disabled
- Fixed FAWE BestOf reset resetting to broken state (i.e., not working)
- Fixed killregen applying when damaging/killing yourself
- Fixed killregen issues with edited kits
- Fixed custom kit default items (potions) not appearing
- Fixed fireball not working properly when spectators are nearby
- Fixed ranked ELO range times not being calculated as seconds
- Fixed own_wins and other placeholder issues
- Fixed admin scoreboard errors
- Fixed various issues with clickable messages and commands
- Fixed Vault hooking stability
- Fixed party creation economy check
- Fixed FFA arena validation and kit types
- Improved CPS placeholder accuracy
- Implemented better arena entity tracking and cleanup
- Refactored health bar logic for better stability
Performance improvements:
- Minor optimization to some permission checks
- Refactor enderpearl cooldowns to improve performance and stability on some spigot forks (no longer uses metadata API)
Other:
- Removed unused keep-chunks-loaded option. No longer worked in modern version, was always misunderstood and error-prone. Use keep-arenas-loaded instead.
- Refactored code to remove SP own deprecated API usage
This update may contain some breaking changes to some gamemodes:
- Explosions now follow /battlekit extramaterials. Meaning that arena won't explode unless players could also break them by hand (which requires the blocks to be added in /battlekit extramaterials)
- "/battlekit bedwars" now works differently than "/battlekit bridge|mlgrush". Make sure these gamemodes still work (see /battlekit info and make sure "deathcooldown" is enabled for gamemodes where there should be a cooldown and "bestofreset" is enabled if the arena should reset between rounds)
You can wait a while before updating if you want to make sure it does not break anything.
New stuff:
- Make block explosions follow extramaterials (POSSIBLY BREAKING CHANGE!! Add the blocks you want to be breakable by explosions)
- Added command /battlekit shootfireballs <kit> (allow shooting fireballs, see "fireball" in the config.yml)
- Added command /battlekit autotnt <kit> to automatically ignite TNT
- Added command /battlekit nofalldamage <kit> (to disable fall damage)
- Real bedwars, kill after breaking bed (/battlekit bedwars)
- Changed /battlekit mlrush|bridge (and help info) because they no longer work like /battlekit bedwars
- Added alias commands: /duel requests and /duel settings
- Added placeholders <win_streak>, <win_streak_kit> (only with SQL database) and <opponent_rank>
- Added botfight#getBots method in the developer API
- Added enderpearl-cooldown.modify-exp-level configuration
- Added RoundEndEvent for winners/losers in the developer API
- Added PartyJoinEvent, PartyLeaveEvent, and PartyInviteEvent in the developer API
- Added respawn-countdown-time for separate death countdown duration
- Added support for async-teleport (this was in some very old versions but was removed)
- Added /surrender command (pretty much same as StrikeSurrender addon)
- Added snowball on snow block break in spleef (snowball-on-snow-break in the config)
- Added copied arenas for FFA (use-copied-arena-for-ffa in the config)
- Allow windcharge explosion in non-build kits
- Improved TNT experience and Fireball functionality
- Make /battlekit extramaterial support newer items
- Make messages work as a list too (easier to add multiline messages)
- Better support for newer Minecraft versions (1.21.1)
Fixes:
- Fixed command "/battlekit extramaterials <kit> all"
- Fix: make block below water unbreakable if part of the map
- Fixed issue with resetting beds placed by players
- Fixed error with <wlr> placeholder while loading
- Fixed renaming newer items in hand
- Fixed kit editor not using correct location for countdown.
- Fixed bridge and insta void not respawning in the bridge gamemode
- Fixed extra bedwars check for player online and fight status
- Fixed error with bedwars colored items
- Fixed double scoring in bridge gamemodes
- Fixed improper handling of block breaking
- Fixed projectile explosion issues and windcharge explosion
Other:
- Removed unused code etc.
- Small overall optimizations and refactoring
- Minor corrections (e.g., typos) and cleanup
- Improved compatibility with newer materials, especially with /battlekit extramaterials command and related functionality
- Made brackets/sumo work even if in main arenas world
- Fixed issues related to damage events in the bridge/bedwars mode
- Refactored allowed blocks checking and fixed extramaterials issues
- Added debugging for block breaking
- Fix issue when error during fight would keep arena marked as in use
- Fixed some typos (Invanlid -> Invalid etc.)
- Made keep-arenas-loaded not crash if it fails for specific arena
- Fixed /battlekit types <kit> none showing in preview menu
- Added debugging for SQL based fight stats
- Allowed bots to receive kits even if inventories were disabled (i.e., on survival servers)
- Added warning log messages in case of invalid spawnitem names
- Fixed koth team placeholder not working (unless arena "koth" was available)
- Fixed autoReconnect for MySQL
- Reduce best of X round reset delays
- Fixed arena copypaste not copying new materials
- Improved stats SQL queries performance
- Added custom cache configuration for stats and fixed koth team placeholder
- Arena reset functionality to include more entities
- Added API method #respawnInFight and added Fight#hasStarted
- Unobfuscated Difficulty and SimpleFight in the API
- Other internal changes and refactoring
- Other minor fixes and changes
This release has some nice new features, includes many fixes (and many related to the developer API) and some other minor changes.
The complete list of changes can be found below in a less readable format (sorry I was lazy)
Features:
- remove pearls immediately when one dies in a duel (or when the round ends)
- "duel-max-rounds for" /duel (20 default) to customize max rounds for duels
- 'spectator-keep-inside-arena' to force spectators to stay inside arenas
- possibility to decide gamemode for spectators (SURVIVAL by default)
- allow removing broadcast message
- trace debug logging (/sprac trace - not useful for most people unless you want to debug something more complex)
- added api#getLastSelectedEditedKit(Player) in the developer API
- debug log error when cooldown module failed to load
- add api#sendDuelRequest in the developer API
- made some command messages better
- added debug logging to "deleteeditedkits"
- update api (more in fixes section)
- added <is_in_queue> placeholders
- overall better debug logging
Fixes:
- ensure sync when giving spawn items (removed async item giving)
- Use autoReconnect=true by default for SQL databases
- added extra check to make sure the arena is available (for some reason the plugin would sometimes try to start a fight in an arena that was already in use when no other arenas were available - the "hacky" fix is for duels only though)
- fix: add Recordable in the API
- fix: bed break if newer material bed
- fixed blockdisappear in ffa arenas
- fixed lms event duration and arena displayname placeholders
- fix: ignore errors when setting biome
- fix: api#getQueuedKit not returning party queue kit
- fixed BotDuelEndEvent.WinnerType not being included in the API
- fixed RoundStartEvent#getPlayer2 although it was deprecated
- removed use of async inventory close
- fixed error on #forceEnd if reason is null
- check kit type in /queue <kit>
- made ffa fight players thread-safe
- fixed language items not being saved sometimes
- fix: send left-queue before actually left the queue for placeholders to work
- mark CitizensNPC as api class (even though it's kind of a bad decision but may help addon devs
- fixed bedwars materials not always changing
- unobfuscate DefaultCachedBlockChange
- mark multiple fight related things as @APIClass
- do not teleport to duplicate ffa arenas on /ffaarena
- /arena alerts not turning off debug logging
- keep DefaultPlayerStats unobfuscated for legacy reasons
- add short delay when forceEnding a fight due to error
- fixed prevent taking armor off in kit editor
- fixed deleting database keeping data.dat failing
- fixed some errors with kit editor
- error with koth capper 1.20
- made storm-wall-outside-arenas work with performance-mode
- fixed attempting to use long scoreboard lines on 1.13
- offline-player-stats was missing from config.yml, disabled by default
- API: do not obfuscate PlayerStats#CachedStatistic etc
- fix: error with CheckKitItemsHelper.java:54
- possibly fix some data migration, use "unknown" as fallback
Misc:
- refactor: minor refactor
- fix some dependencies and repositories (mainly for development)
- remove old references to /party open
- use HIGHEST priority in bedwars EntityDamageEvent, fixes compatibility with some other plugins
- Improved 1.20 (and other newer version) compatibility
Fixes:
- Fixed /sprac placeholders
- Fixed top_elo_rank not displaying "(none)"
- Fixed placeholders in post match inventory message
- Fixed (hopefully) newer items (netherite etc.) support for kit editor abuse
- Fixed check for duplicate armor in inventory in kit editor
- Fixed automatically add fight_players#id and stats#id columns
- Fixed removing wrong item from bot's inventory (soup/gapple)
- Fixed difficulty selector item arrangement in multiple row inventories
- Fixed <in_ranked_queue> and <in_unranked_queue> and <in_ranked_fight>
New things:
- StrikePracticeAPI was finally updated: https://github.com/toppev/StrikePracticeAPI
- Added #loadPlayerKits(UUID) and #getPlayerKits(Player) in the API
- Some minor code cleanup etc. as always
Fixes:
- 1.7 clients inventory message in one line instead of multiple
- Added better error logging if changelog fetching fails
- Fixed some bugs caused by asynchronous code when duel ends (opt back in with "async-match-end: true" for performance, not really recommended though)
- Fixed a bug where inventory message did not appear when the bot is killed
- Fixed a bug where players couldn't build in arenas without corners
- Fixed typo in ChangeLogFetcher (StrikeTab -> StrikePractice)
- Fixed custom-kit.replaces-kits not working (and added it back)
- Fixed <no_colors_kit> placeholder not working properly
- Fixed support for <arena> in koth/lms events and auto-disable the placeholder when not available
- Fixed spectating events being broken by config changes (by forcing wait-before-teleport to be at least 2 for spectators)
- Fixed some other placeholders not always working as intended
- Fixed some null pointer exceptions
- Fixed prevent-tool-dropping not working for netherite tools
- Fixed players not being able to use /juggernaut leave in the event
- Fixed /battlekit seticon not working with newer items
- Fixed fight-start-commands and fight-end-commands making texts (e.g., custom messages/titles) lower case
- Fixed being able to accept duel requests from players in kit editor
- Fixed events with auto-start ("start after X players") not start if player hosted (else it would start with the default kit)
- Fixed water inside fences and other water loggable blocks not resetting in arenas
- Fixed multiline messages not always in order
- Fixed bot name not showing in the death message (may still occur in some cases)
- Fixed multiple hex colors not working in messages (previously only the first one worked)
- Fixed players being teleported to lobby in events even if not supposed to be teleported
- Fixed bestof duels in bot fights not working properly when the bot is killed by damage
- Fixed some typos in the default config.yml
New features:
- Added #getPlayerSettings in the API
- It's now possible to make ffa instant /spawn by setting wait-before-leaving-ffa-arena: 0
- custom kits now support netherite armor
- custom kits now support newer items (e.g., netherite tools)
- Make /spec more editable (check the new config) and make spectator-teleport-title configurable (the teleport GUI title)
- Refactored (partially recoded) the scoreboard system
- Added support for unlimited scoreboard lines in 1.13+
- Players will now respawn in the arena instead of teleporting to spawn and back to the arena to spectate
- Only show custom kit in kit selector if player has strikepractice.customkit permission
- Reset arenas starting from the bottom up instead of randomly (this still doesn't make sand etc. reset properly)
- [display=<placehodler>] now works in messages too (let's you make, for example, separate message for ranked vs unranked fight/queue)
- Added "fight-start-message.party-bots" messages.yml option to customize the message
- Implemented ""/sprac trace" (for debugging, not really useful for normal use like "/sprac debug")
Misc:
- Increase default max block changes
- Refactoring of code and cleanup
- Better error handling in some cases
- Added quite a lot fo debug logging
- Maven exclusions for citizens
- Update some dependencies
- Removed some unused code and messages
- Add debug logging to KB module when it's not available on the server version
Hot fix update
There was a problem with the post match inventory messages (because of changes in 3.7.1)
See 3.7.1 update for other changes
Fixes
- Implement a hack to make colored wool/clay work (with /battlekit bedwars kits) on newer servers too
- Add /battlekit blockdisappear in the help command (as it was missing from there)
- Allow longer replay data in SQL database
- Minor experimental improvement to scoreboards
- Fixed plugin not enabling on 1.7 servers
- Fixed "/sprac debug" cancelling the teleportation in fight (this was a debugging method for which plugin teleports player from fight. It still exists but no longer cancels it)
- Fixed missing space in some command message
Features
- hex support to chat messages
Other changes
- Remove premade maps as they never even worked
- Clarify /sprac debug command messages
- Changed author Toppe5 -> Toppe
- Simple CI pipeline (#9) (this is just for development and automatic testing)
New
- Added /battlekit blockdisappear <kit> <seconds>. Places blocks will disappear in X seconds when enabled. This was supposed to be released a while ago but I somehow forgot it so including it now in this minor update![]()
Fixes
- Fixed custom golden head effects not working if "bridges-instant-golden-apples" was enabled
- 1.7 client nametags should work again even if scoreboard is disabled in the lobby world
Improvements/Fixes
- Fixed incorrect check if a player has a totem in Best of X fights. Previously it did not make sure it was in their hand.
- Prevent arena creation below y=0 because players will die instantly
- Added <opponent_wins_circles> and <own_wins_circles> placeholders
- Fixed some issues with Discord fight webhooks - should be working fine now
- Fixed /sprac cancel (or the API method) not setting the fight state as ended resulting in the fight duration limit not being cancelled and players being teleported after the duration limit has been reached in the cancelled fight.
- Fixed a few typos
- Added more helpful logging and debug logging