Huge thanks to
@MetallicGoat ! He has been a non-trivial contributor to this update, and is responsible for i.a. the new scoreboard system, the many new features and tons of QoL improvements (including bug fixes).
This update is
massive. A lot of time has been invested into it, we'd greatly appreciate a
donation
New features:
- New scoreboard system:
- Fixed issues with flicker when "force updating" the scoreboard
- Added per-condition scoreboards
- Added scoreboards for end-lobby and spectator (new scoreboard-layouts folder)
- Full hex support
- Increased character limit (your Spigot/Minecraft version must support them)
- Added grouping for arenas collections in arenas GUI:
- New config: group-by-displayname
- New placeholder: {grouped-arenas}
- Display spawners feature
- Spawners within the same position now get aggregated
- This means that it displays the amount of spawners that are on that position and also stacks different types on a different y-level
Added support:
- AdvancedSlimeWorldManager 1.19+ (aka AdvancedSlimePaper)
Added configs:
- explosion-entities-blacklist (blacklist entities that can be damaged by explosive)
- group-by-displayname (arenas GUI)
- Added ability to configure titles/lore in achievements menu
- gui-achievements-text-unearned
- gui-achievements-text-earned
- New configs for guard dogs
- guarddog-damage-multiplier
- guarddog-alive-duration
- guarddog-display-name
New PlaceholderAPI placeholders:
- %mbedwars_playerarena-countdown%
- Displays the remaining time (hh:ss format) until either the match ends (if the arena is running), or the remaing time (hh:ss format) until the match begins (during lobby state)
- %mbedwars_playerarena-running-time%
- Displays the time (hh:ss format) the match is already running
Performance improvements:
- Added player indices for local storage
- Greatly reduces memory usage
- Automatically handles corruption
- Allows you to fetch stats from players who never joined the server. E.g. when you transfer the stats to another server, where no players have been logged yet (API)
- Opens up new potential, e.g. by having a new API that allows you to fetch the leaderboard of any stat set
- Greatly reduced memory usage of the "regeneration-region-efficient-beta" config
- Slightly improved performance by placing bed blocks async (if supported; 1.15+ paper)
- Improved performance by using more optimized data types throughout the code
Improvements:
- Added Magic Milk to HyPixel template
- "/bw spawn joinarenasign" now supports remote arenas (from ProxySync addon)
- Added new arena condition variables: server_playing_arenas_count and cloned_arena_name
- The configuration page of voting arenas now displays the real name of the arenas within the pool instead of their display name
- It is now possible to interact with entities in end lobby if the config "endlobby-tptolobby" is disabled (Fixes conflict with Yeehaw victory dance from the Cosmetics&Coins addon)
- Reduced size of the jar by not included unused classes from third-party libraries
- HyPixelV2 shop layout: Pages row is no longer being centered
- HyPixelV2 shop layout: Green hint in page/item separator now properly adapts itself to page force-slot
- Achievements GUI now also displays the earn date of each achievement
- GeyserMC hotfix (caused by it): Permanent zoom after respawning as a spectator
- It is now possible to join an arena while spectating. Previously it'd display a "You're already inside an arena!" message
- Spectator_Join and Spectator_Leave messages now don't get shown anymore if you are death spectating
- Added {plugin:version} scoreboard placeholder
API:
- Additions:
- PlayerInteractSpecialBlockEvent
- PlayerInteractHologramEntityEvent
- VarParticle.NONE
- PersistentStorage class
- PersistentStorage.Holder class
- SpecialBlock now implements PersistentStorage.Holder and Metadatable
- PacketHologram now implements PersistentStorage.Holder and Metadatable
- KickReason#SPECTATE_ITEM_NEXT_ROUND
- KickSpectatorReason#JOIN_ARENA
- KickSpectatorReason#isTeleportingToHub()
- KickSpectatorReason#isApplyingStoredInventory()
- KickSpectatorReason#isDisplayingLeaveMessage()
- SpectateReason#isDisplayingJoinMessage()
- SpectateReason#isBackingUpInventory()
- Added Message#send(sender, freeInstance)
- Fixed typo: VarParticle#isnnternallyParticle should be isInternallyParticle
- PlayerDataAPI#fetchLeaderboard(statSet, minRank, maxRank, callback)
- PlayerDataAPI#fetchLeaderboardPosition(playerUUID, statSet, callback)
- PlayerDataAPI#fetchLeaderboardPosition(player, statSet, callback)
- Added CommandSenderWrapper#isConsole()
- Added CommandSenderWrapper#isPlayer()
- Added CommandSenderWrapper#isLocal()
- Added CommandSenderWrapper#isRemote()
- Added RemoteServer#executeBedwarsCommandAsConsole(label, args)
- Added CommandSenderWrapper#wrapConsole(server)
- TeamEliminateEvent changes:
- Improved its JavaDocs
- Fixed #getRemainingPlayer() returning the player who broke the bed (it should return null)
- Added a new parameter to obtain the player who initiated it: #getCausingPlayer()
- Made it more clear what PlayerIngameDeathEvent is doing
- Spectating instances who get kicked due to the player instance getting kicked now use the matching reason
- Added KickReason#getMatchingSpectatorKickReason()
Fixed bugs:
- Fixed potential error when selecting a team in the selector GUI https://pastebin.com/3eSsGqm8
- Fixed various errors when converting from v4
- Fixed error "IllegalArgumentException" when trying to access remote arenas using the console commands (Requires Enhanced ProxySync)
- Fixed various problems with auto cloning (such as holos [dealers etc] not spawning in world arenas)
- Fixed water would drop the items that it had broken
- Fixed duplication glitch in shop layouts that used villager GUIs
- Fixed missing hex support in various places (config.yml, title of arenas, various messages and name for arenas GUI statue)
- Fixed "IllegalArgumentException" error when using "/bw tools openshop" while not being in an arena and opening a page that has items that make use of the "restriction" config
- Fixed glow effects on items not working when joining with 1.11+ (ViaVersion) on a 1.8-1.10 server
- Fixed fire from explosions caused by fireball special item
- Fixed potentially inventory being cleared when using the "next round" item as a spectator
- Sound "spectator-change-arena" (played when you use the next-round item as a spectator) now also gets played when you switch arenas over the network and not just locally
- Fixed missing team name in the chat of the default HyPixel template
- Fixed various errors that occurred when removing various configs or passing invalid syntax
- Fixed player's client language not being considered in some few cases, even if multi-language was enabled