![]()
Added support:
Added features:
- Paper 26.1
- 26.2
- Mini messages for text messages (1.21.9+ paper only)
Improved party support:
- It is now possible to have animations within scoreboards (see wiki)
- Locator bar is now disabled by default (1.21.6+) for players in a match
- Now using paper's AsyncChatEvent over AsyncPlayerChatEvent, if supported (paper only, 1.16.5+)
Configs:
- Party members (non-leaders) are no longer able to use the "next round" item at all
- Party leaders may now only use the "next round" item in case there is no member actively participating
Performance improvements:
- Added
- hologram-enforce-armorstand
- to disable display entities for holograms (1.19.4+ only)
- hologram-title-vertical-spacings-spawner
- hubcommands-permit-rejoin
- bed-hologram-message-enemy
- scoreboard-refreshrate
- disable-locator-bar
- Change
- lobby-countdowntitles
- now properly supports subtitles, and now also allows you to display titles when the countdown starts or stops
General improvements:
- Added support for async tp on 1.12 or older if the fork has backported it (such as carbon spigot)
- Avoiding storage waste by no longer saving quick buy even if nothing has changed
- Improved efficiency of quick buy by attempting to cache the default generation
- Optimized sql queries
- Greatly improved SQL performance by reducing the amount of work the DBMS has to process for saving player data
- Now using virtual threads, if supported (Java 24+ only). Improves CPU usage and causes various processes feel more snappy
- Improved scoreboard render performance by utilizing lazy caching of rows and reducing general complexity
- Avoid IO on main thread when saving inventory backups of players
API:
- Confirmation for reload is now needed if there are running matches
- Added warning if no-rain or always-day affect weather or rain type
- Improved skin fetching: Now properly handles "mc-heads" redirect to GitHub issue (mojang bug)
- Improved skin fetching: Now falling back to Ashcon's API as a 3rd option
- Renamed player's inventory file from "inventory.mlyinv" to "inventory.bin"
Fixed bugs:
- Added
- SpectatorItemUseNextRoundEvent
- RemoteAPIChangeEvent
- ScrollableItems class
- ShopPage#exists()
- ShopLayoutHandler.OpenEvent#getPostGUI()
- HolographicHologramSkin#getDisplayedItem()
- HolographicHologramSkin#setDisplayedItem(ItemStack)
- PlayerSpecificLinesSupplier.bedHologram(Team)
- AddRemotePlayerInfo#setFallbackArenaPicker(String)
- AddRemotePlayerInfo#getFallbackArenaPicker()
- AddRemotePlayerInfo#parseAndFitFallbackArenaPicker()
- ArenaConditionGroup.or(ArenaCondition... childs)
- ArenaConditionGroup.and(ArenaCondition... childs)
- ArenaPicker#asSlotsComparator(int requiredSlotsCount)
- Helper#playPickupItemSound(Player)
- Helper#playPickupItemSound(Location)
- UpgradeShopLayoutHandler.OpenEvent#buildTrapsQueue()
- PacketHologramSkin#getWidth()
- PacketHologramSkin#getHeight()
- Breaking
- Some classes have been declared as final. This shouldn't affect anyone
- Deprecated
- ScoreboardUpdateCause#PAPI_PLACEHOLDERS
- Changes
- Players now also get their rejoin properties set in case they get added midgame. This allows them to use /bw rejoin, without you having to set REJOIN_SERVER_NAME
- Fixed errors related to SnakeYAML with 26.1
- Fixed potential "World unloaded" errors with 1.14+
- Fixed "Method 'org.bukkit.GameRule.values()' must be Methodref constant" with 1.21.8
- Fixed quick buy not updating when attempting to remove an item after buying one
- Fixed NPE with bridge item if "dye-block" is set to false
- Fixed bed holograms being below and not above (1.19.4+ only)
- Fixed duration with "/bw arena regen" not being displayed correctly (seconds instead of millis)
- Fixed breaking tweak's custom holo after /bw reload
- Fixed followed party members not having armor in lobby
- Fixed not starting with paper 26.1
- Fixed being able to drag out items from anvil gui with 1.21+
- Fixed rare NPE on load if ranking gets updated before holograms even got loaded
- Fixed rare server crashes related to concurrent access to metadata store
- Fixed stats holo being broken on versions with display-entity holograms (1.19.4+)
- Fixed bed hologram not appearing if team has no players, but bed is alive
- Avoid "MATCH_AREA_INTERFERES_GAME_DONE_LOCATION" error if ProxySync addon is used
- Fixed rare ClassCastException when upgrading NBT to item components
- Fixed keeping armor when leaving team during lobby
- Reduced bottleneck in file save/load queue caused by world files
- Fixed twerk party cosmetic not working for 1.21.9+
- Fixed dealers of cloned arenas being pigs instead of villagers
- Fixed 16th team bed not being shown in setup gui
![]()
Added feature:
Added support:
- Holograms now get displayed as text and block displays for 1.19.4+
Improved support:
- Minecraft 26.1
- Added migration system for SWM to ASP
- In case you upgrade from 1.8.8-1.12 to a modern version
- Is done automatically, fixes errors that would previously occur
- It is now possible to use both legacy and MiniMessages together in scoreboards
- Added MiniMessage support to item lores
Config changes:
- Relational placeholders within PlaceholderAPI
- Mainly for TAB
- Allows you to have per-player languages for e.g. stats etc.
- Bedwars1058 migration:
- Fallback to 0 instead of failing if parsing a spawn direction had (likely human-caused) errors
Performance improvements:
- Added to config.yml
- regeneration-disable-autosave-modern-paper
- Performance optimization that we would previously always apply is now disabled by default on modern paper for cloned region arenas
- Reason are memory leaks, that we try to patch
- You may enable that optimization, which disables auto-save for cloned worlds. Please send us heapdumps in case you notice memory leaks
- Added to shop-layout-properties.yml
- For HyPixelV2 shop
- gui-height
- quickbuy-empty-icon
- For HyPixelV2 upgrade shop
- gui-offset-top
- gui-height
- seperator-material
- For global upgrade shop
- unqueued-trap-icon
- It's now possible to use PAPI placeholders within item strings for icons of shop items and pages, and within item products
- It is now possible to forcefully overwrite a shop page's item name using NBT/components (makes it possible to have a different GUI title)
Miscellaneous:
- Improved general performance by indexing by char and not string where applicable
- Improved efficiency and accuracy of the language identification system
- Reduced performance impact on arenas GUIs caused by updates (especially when an arena ends) by enqueuing arenas for a certain amount of ticks (basically delaying redraws)
- Improved general performance throughout the plugin by reducing ItemMeta clones
- Improved general arenas GUIs performance for paper 1.16.5+
- Reduce TPS-drops caused by "Parties" hook by attempting db calls async
- Improved efficiency of "Parties" hook by utilizing caches and reducing db calls
- Greatly improved efficiency of special block updating
- Improved efficiency by using more efficient String-modification algorithms
- Improved general performance by utilizing FastUtil wherever feasible (supported for all paper versions, spigot only 1.18+)
- Improved efficiency of item NBT parsing by avoiding useless computations
- Arenas GUI rendering is now happening async (improves micro-freezes on main thread)
- Improved general performance for 1.20+ and 1.8.8 by avoiding complete copies of NBT and instead mirroring them
- Slightly improved SQL performance when saving player data
API changes:
- Added custom mode name to /bw arena info
- Added warnings if spectate teleport failed
Fixed bugs:
- Added event
- AsyncPlayerRejoinPullArenaEvent
- Added classes
- ItemBuilder
- SpectateRemotePlayerInfo
- RejoinRemotePlayerInfo
- DynamicItemStack
- BasicItemShopProduct
- BasicItemShopPrice
- SpecialItemUseSession#isStoppedWithPlayerQuit()
- Added methods
- PlayerDeathInventoryDropEvent#addHandlerAfter(handlerToAdd, handlerToFind)
- PlayerDeathInventoryDropEvent#addHandlerBefore(handlerToAdd, handlerToFind)
- LazyReference#isCached()
- WorldStorage#getBlocks(BlockType)
- Helper#split(String, char)
- Helper#remove(String, char)
- MigrationProcess#isModifyingPlayerData()
- MigrationProcessRunEvent#addHaltLatch(CountDownLatch)
- MigrationProcessRunEventgetHaltLatches()
- Helper#isWorldLoaded(Location)
- QuitPlayerMemory.constructMidgame(RemotePlayer, Team)
- RemoteArena#setQuitPlayerMemory(QuitPlayerMemory)
- RemoteArena#rejoinPlayer(RemotePlayer, Consumer)
- RemoteArena#rejoinPlayer(RemotePlayer)
- RemoteArena#rejoinPlayer(RejoinRemotePlayerInfo, Consumer)
- RemoteArena#addSpectator(SpectateRemotePlayerInfo, Consumer)
- PlayerCustomKnockbackEvent#getBukkitEvent()
- ShopItem#getDynamicIcon()
- ShopPage#getDynamicIcon()
- ShopItem#setDynamicIcon(icon)
- ShopPage#setDynamicIcon(icon)
- ItemShopProduct#getItemStacks(Player)
- Breaking changes
- Attempting to spawn a holographic entity with HologramSkinType#VILLAGER will now fail hard (deprecated). Use #LIVING instead
- "ItemShopProduct", the variant that only drops regular items, has been split of to "BasicItemShopProduct" to avoid complexity, as spawner and special item products also inherited from ItemShopProduct
- ^ the same counts for "ItemShopPrice"
- Deprecated
- NMSHelper#hideAttributes(ItemStack)
- NMSHelper#setGlowEffect(ItemStack, boolean)
- Helper#setUnbreakable(ItemStack, boolean)
- Helper#setUnbreakable(ItemMeta, boolean)
- Helper#dye(ItemStack, DyeColor)
- RemoteArena#teleportHere(player, sendMessage)
- RemoteArena#addSpectator(player, reason)
- RemoteArena#addSpectator(player, reason, ignoreArenaStatus)
- RemoteArena#addSpectator(player, reason, callback)
- RemoteArena#addPlayer(player, team)
- RemoteArena#addPlayer(player, team, callback)
- RemoteAPI#teleportPlayerToArena(player, arena, sendMessage, callback)
- RemoteAPI#addSpectatorToArena(player, arena, reason, ignoreArenaState, callback)
- RemoteAPI#addPlayerToArena(info, arena, callback)
- RemoteArena#addSpectator(player, ignoreArenaStatus)
- ItemShopProduct#getItemStacks()
- ItemShopPrice#getItemStacks()
- Fixed BootstrapMethodError when trying to look up an invalid sound on 1.21.11
- Fixed "argument type mismatch" for versions 1.11 - 1.16.5
- Fixed InnovocationException caused by a bug within PandaSpigot
- Fixed MigrationProcessRunEvent not being called
- Fixed rare CME error related to holograms
- Fixed being able to pickup items while being teleported to the hub (paper only)
- Fixed not starting on certain server configurations for 1.14 and older
- Fixed MiniMessages not working on scoreboard's title
- Fixed abuse: Being able to tp to enemies during death spectate
- Fixed "Player is not in the arena" error
- Fixed memory leak when auto cloning region arenas
- Fixed "Tried to access invalid game rule" error for 1.21.11
- Fixed hologram memory leak caused by arena cloning
- Fixed error when attempting to migrate players from BW1058 db when MySQL is used
- Fixed memory leak with region arenas on paper with chunk system rewrite (1.19.4+)
- Fixed insta-break blocks disappearing when broken for clients on 1.8.8 - 1.15
- Fixed being able to break your own bed using explosive by quitting
- Trap (placed ones) now also get fired if the placer leaves/gets killed
- Fix being able to damage team mates etc by throwing explosive and then quitting immediately
- Fixed being able to stay within the arena as a spectator on paper by running against the border
- Fixed deadlocks with SQL
- Fixed certain special items stopping unnecessarily when player (who used it) leaves: Guard Dog/Iron Golem, Rescue Platform, TNT Sheep
- Fixed "team-balance" (both false and true) not being entirely random
Added support:
Added features:
- 1.21.9, 1.21.10, and 1.21.11 (Thanks to @MetallicGoat )
- ItemJoin
- To prevent possible compatibility issues due to misconfiguration
- Latest AdvancedSlimePaper
- ViaRewind (1.19R2+)
- Hotfix as NPCs didn't get removed from TAB
Config changes:
- It is now possible to use MiniMessage components in scoreboards (paper 1.20.1+ only)
- Added new team: Magenta
- It is generally hidden in the team selection UI
- It is only visible once you enable the other 15 teams
- Add-ons may now declare custom modes using API
- New "custom_mode" condition variable to provide a singleton solution for all addons
- Spectator "next round" item now enforces an equal custom mode
General improvements:
- Added:
- lobby-printmapinfo-time
- logs-strippable
- Removed "lobby-countdowntitle-arena"
- Got merged with "lobby-countdowntitles"
- "max-nearby-items" (spawns.yml) may now be an expression
- "interacting" config has been split (Thanks to @MetallicGoat )
- "interacting-gui" false by default
- "interacting_physical" true by default
Performance improvements:
- If party leader joins: Prefer teams that already include team members
- PaF Bungee: Reduce time it takes to fetch party info (in case player just joined)
- Now returning infinity symbol if "timer-enabled" is set to false for {countdown} in scoreboards and the countdown PAPI placeholder
- Spawner multiplier upgrade now also considers team spawn (besides just bed) as a radius
- Auto-color (& to §) results from PAPI placeholders
- Players no longer are able to strip any log (previosly they could strip player-placed blocks)
- Added new error message if no arena has been found that matches a given picker (Thanks to @MetallicGoat )
API changes:
- Greatly reduced GC overhead by reducing usage of regex
- Improved efficiency throughout the plugin by implementing a more efficient placeholder replacement system
- Improved PaF bungee efficiency by reducing amount of attempted proxy requests
- Slightly improved performance for paper hard-forked versions (starting with 1.21.4) by avoiding reflection for their feature-set
- Improved general performance by making it easier for JIT optimizations in cross-version handling
- Added support for paper's AsyncPlayerSpawnLocationEvent (improves performance and stability)
Fixed bugs:
- Added:
- PlayerCustomKnockbackEvent
- Helper#replaceFirst(str, target, replacement)
- Helper#replaceLast(str, target, replacement
- GameAPI#registerSpecialItem(type, plugin, name, item)
- GameAPI#isProcessingRejoin(Player)
- GameAPI#isCrossServerRejoining(UUID)
- Helper#getPlayerSkin(Player)
- NPCHologramSkin#getSkin()
- NPCHologramSkin#setSkin(Skin)
- Skin class
- NPCHologramSkin#setPlayerSpecificSkinSupplier(supplier)
- NPCHologramSkin#hasPlayerSpecificSkinSupplier()
- NPCHologramSkin#updatePlayerSpecificSkins()
- NPCHologramSkin#updatePlayerSpecificSkin(Player)
- NPCHologramSkin#getPlayerSpecificSkinSupplier()
- NPCHologramSkin#setSelfSkinSupplier()
- NPCHologramSkin#getInternalType()
- ArenaOutOfTimeEvent#setEndlessTime()
- Arena#setIngameTimeDisabled()
- PlayerBuyUpgradeEvent#getUpgradeState()
- NMSHelper#useFireworkBoost(Player, ItemStack)
- Helper#takeItems(Player, Predicate<ItemStack>, amount)
- Helper#isTransparent(Material)
- GameAPI#getHubLocation()
- GameAPI#setHubLocation(Location)
- Team#DARK_BLUE
- Team#isHidden()
- QuitPlayerMemory#constructMidgame(Player, Team)
- Changes:
- GameAPI#unregisterSpecialItem(SpecialItem): It is no longer possible to unregister built-in types. Use the new register method if you want to replace it
- It is now possible to enable the ingame timer (if it was previously turned off) using Arena#setIngameTimeRemaining(timeInSeconds)
- Deprecated:
- Helper#getPlayerSkinData(Player)
- NPCHologramSkin#setSkin(texture, signature)
- NPCHologramSkin#getSkinTexture()
- NPCHologramSkin#getSkinSignature()
- Changes due to "max-nearby-items" now being optionally an expressions:
- Deprecated DropType#getMaxNearbyItems()
- Added DropType#getMaxNearbyItems(Arena)
- Added DropType#getMaxNearbyItemsExpression()
- Added DropType#setMaxNearbyItemsExpression(String)
- Breaking Spawner#set/getMaxNearbyItems by resetting that value now with every match start
- New custom mode feature adds:
- CustomMode and CustomModeType class
- Arena#hasCustomMode()
- Arena#getCustomMode()
- RemoteArena#hasCustomMode()
- RemoteArena#getCustomModeName()
- GameAPI#getCustomModes()
- GameAPI#getCustomMode(CustomModeType)
- GameAPI#registerCustomMode(CustomMode)
- GameAPI#unregisterCustomMode(CustomMode)
- ArenaPropertyChangeEvent.Property.CUSTOM_MODE
- RemoteArenaPropertiesChangeEvent.Property.CUSTOM_MODE
- ArenaConditionVariableType.CUSTOM_MODE
- Fixed "spawn-at-start" in spawners.yml not counting items for "max-nearby-items"
- Fixed NPE related to item lore in upgrade shop
- Fixed being able to interact with iron golem / guard dog to e.g. heal him with iron
- Fixed fireball jiggering on 1.21+ with fireball-fly-speed-constant enabled
- Fixed XReplay not working as intended
- Fixed ArrayIndexOutOfBoundsException if more than 7 spawner types exist when opening the spawners GUI in setup tool
- Fixed sending messages with prefixes if they were configured to be empty
- Fixed feather fall upgrade being applied to all armor parts
- Fixed potential error when saving corrupted tile entities in region arenas for 1.21.6+
- Fixed light blocks breaking safe-respawn location identifier and fireball double jumping
- Fixed NPE caused by async world loading on modern paper versions
- Fixed being able to spectate players during respawn, even if "spectator-permit-other-player-view" is disabled
- Fixed rare glitchy behavior if attempting to spectate a player with "spectator-permit-other-player-view" disabled (fix only available for paper 1.13+)
- Fixed potential "must be Methodref constant" error on 1.12+
Added support:
Added feature:
- Added support for 1.21.8
Added sound:
- It is now possible to leave a team during lobby phase by clicking on it again
Improvements:
- LOBBY_SELECTTEAM_UNDO
API changes:
- Improved handling of real player names getting confused with their nick names in various places
Fixed bugs:
- Added
- Helper#getPlayerByName()
- Arena#leaveTeamDuringLobby(player)
- RemotePlayer#getName() now returns Helper#getNickedPlayerRealName(player) instead of Player#getName()
- NicknamingHook#getRealName(player) should now return null in case it'd return Player#getName()
- Fixed not running on 21R5
- Fixed rare cases of not being able to join an arena if moving too fast (with kick-outofarena active)
- Fixed team-balance turned off only prefering teams with >= 2 players than >= 1
- Fixed MongoQueryException when looking up a player's rank
Support:
Added feature:
- Added
- 1.21.6 + 1.21.7 (Thanks to @MetallicGoat )
- Spigot-Party-API-PAF (allows you to use the free version instead of the payed extended one)
- EssentialsX: Warning if interference is detected
- Improved
- TAB and FeatherBoard now avoid interference with scoreboards
- Updated CloudNetV4 support to RC12
Added config:
- Configurable respawn protection, where a respawned player won't receive damage from enemies for x seconds, unless he attempts to punch them himself
Performance improvements:
- respawn-protection
Improvements:
- Config files (that use the YamlConfigurationDescriptor API) now save more efficiently
- Avoid quit players consuming more memory than needed due to strong reference to their Player class in private inventory
API changes:
- Players now receive their items immediately after respawning (without a 2 tick delay)
- Punch to Deposit is now included with the "HyPixel" template
Fixed bugs:
- Added
- PlayerUseSpecialItemEvent#addSessionListener(callback)
- PlayerUseSpecialItemEvent#getSessionListeners()
- PlayerStopSpecialItemEvent
- Arena#getSpecialItemSessions()
- GameAPI#getLastTeleporterSpecialItemUse(Player)
- PlayerQuitArenaEvent#hasLeaveMessage()
- PlayerQuitArenaEvent#setHasLeaveMessage(boolean)
- RemoteAPI#getReservationsCount(Arena)
- RemoteAPI#hasReservation(UUID, Arena)
- PlayerIngameRespawnEvent#getSpawnLocation()
- PlayerIngameRespawnEvent#setSpawnLocation(Location)
- PlayerIngamePostRespawnEvent
- Breaking
- PlayerIngameRespawnEvent, in the past, could have been called either after (usually) a player respawned or before (rarely). It now consistently gets called *before* a player respawns. Use the new PlayerIngamePostRespawnEvent if you want to handle *after* a respawn
- Fixed bw1058 migration not working for swm worlds
- Fixed magnetic shoes not working at all
- Reverted check custom team upgrades that would prevent non-vanilla enchants to be applicable
- Fixed being able to tigger traps in endlobby
- Fixed memory leak if player leaves while (and not through) the leave item delay was active
- Fixed not being able to buy items in shop layouts with villager UIs
- Hotfix for mem-leak within PaF extended API
- Fixed potential "Cannot measure distance between world" error with tracker and TNT sheep
- Fixed interact error if a spectator item only has commands without an handler
- Fixed error when migrating from bw1058 with it using SQLite that hasn't been initialized yet
- Fixed anvil GUI not opening on 1.21.5+
5.5.2
Improvements:
Performance improvements:
- Players now get teleported to the main world's spawn instead of a random location if no hub position was set
API changes:
- Slightly improved efficiency by avoiding code execution in certain events early
- Improved client-side caching for custom skull textures
- It is now possible to create custom TeamEnchantment targets
- Added Constructor TeamEnchantment(Predicate<ItemStack>,...
5.5.1
We released a new and free addon! Check it out: Level Shop
Added features:
Added support:
- Bypass blocked-commands using new permission "mbedwars.bypassblockedcommands"
- Added ability to make spawners drop a given amount of items at the start of the match
- Added feather fall upgrade
- Traps may now be removed by the original buyer of the trap
- GeyserMC without Floodgate (prior we only...
5.5
![]()
Added support:
Improved support:
- MC 1.21.4 (Thanks to @MetallicGoat )
Added feature:
- SWM: Support was added for its async world generation. It must be enabled in its configs - ASWM doesn't have that
- Added double jumping to fireballs (disabled by default)
- Added per-arena weather and time properties (found...
Added support:
Config changes:
- 1.21.2 and 1.21.3 (Thanks to @MetallicGoat )
Improved arena picker:
- Added "hanging-interactable"
- Added "id" config to shop items
- Added configs to change default quickbuy items to shop layout properties (Thanks to @MetallicGoat )
- quickbuy-generate-automatic
- quickbuy-default-items
- spawners.yml: "spawner-delay" may now be a mathematical expression, allowing different spawner delays for different modes
Improved performance:
- The parser for conditions has been completely rewritten
- It is now possible to escape " characters using \\" in strings
- It is now possible to use variables and static values on both left and right side
- The new parser is more user friendly and will e.g. automatically add missing brackets
- The new parser has new errors which now specifically tell you at which position the error is
Improvements:
- Improved performance when trying to obtain the team given by its bed location
API changes:
- It is no longer possible to interact/break with hanging entities (unless disabled)
- Added "remaining_slots" arena picker variable
- Joining an arena now also tries to make sure that all party members fit in
- Added %mbedwars_activity% PAPI placeholder
Fixed bugs:
- Fixed:
- Fixed ServerInfoDto being wrong in javadocs
- Fixed products that were added using the API being buggy compared to those that were configured
- Fixed wrongful "shopItem must be cloned using ShopItem#clone()" error when using ShopPage#addItem(ShopItem
- Fixed LobbyCountdown events are not being called (Thanks to @MetallicGoat )
- Added:
- LazyReference class
- Arena#getBedPartsAsync(team, callback)
- Arena#getTeamByBedBlock(loc)
- Arena#getTeamByBedBlock(block)
- Improvements related to shop item API:
- Added ShopItem#getId()
- Added ShopItem#isIdAutogenerated()
- Added GameAPI#getShopItems()
- Added GameAPI#getShopItemById(String)
- Spawner drop duration may now be a formula:
- Deprecated DropType#getDropDuration()
- Added DropType#getDropDuration(Arena)
- Added DropType#getDropDurationFormula()
- Added DropType#setDropDurationFormula()
- Improvements to arena pickers: (Breaking!)
- Removed ArenaConditionComparative#getVariable()
- Removed ArenaConditionComparative#getValidatingValue()
- Removed ArenaConditionComparative#getRightInput()
- Added Removed ArenaConditionComparative#getLeftInput()
- Added ArenaConditionInput class
- Added ArenaConditionParseException#getPosition()
- Added ArenaConditionGroup#serialize(isRoot)
- Added ArenaPicker#serialize()
- Fixed various issues (no lobby items etc) when PaperMC is not used
- Fixed buildable check being reverted for rescue platform and bridge
- Fixed broken {arena} placeholder when "world doesn't exist" issue is being sent in chat
- Fixed world auto-load if multiple region arenas share the same one
- Fixed arena never starting when the max players decreases to less than min players with cloning arenas
- 1.16+: No longer store player attributes that aren't declared as permanent to avoid unexpected bugs
- Fixed "NoSuchFieldError CraftMagicNumbers" error when running 1.21.1 paper
- Fixed explosives exploding and destroying map if ignited right before match ends (Thanks to @MetallicGoat )
- Fixed fetching broken leaderboard data if targeting an offset of 1 or greater with MySQL as storage type
- Fixed stat set values potentially never getting updated with MySQL and MongoDB and thereby e.g. rankings for WL and WL not working with the leaderboards addon
- Fixed explosives not being able to destroy beds with certain configurations. Configs that could cause it:
- explosion-canbreakblocks set to false
- explosion-canbreakblocks-breakby-player set to true
- bed being a part of explosion-blocks-blacklist
- Fixed support for latest iteration of ASWM
Support:
Added sound:
- Updated MongoDB driver from V4 to V5
Added config:
- villagershop-click-page
Performance improvements:
- minishop-existence-time
Improvement:
- Greatly improved efficiency of lobbybreak algorithm
- Lobbybreak task is now spread across multiple ticks to avoid lag spikes
API changes:
- Reverted SWM change where the original .slime was used for saving the blocks instead of its current loaded state
- It is now possibly to specify a custom lore for spawner item drops (it no longer gets removed)
Fixed bugs:
- Spectator#getEnterTime() now returns Instant instead of long (method rarely used, though)
- Added
- Spectator#getReleaseTime()
- PlayerOpenArenaChestEvent#isPrivateChest()
- ArenaUnloadEvent
- Fixed spectating being glitchy if entered due to match loss
- Fixed various "cannot cast Long to Integer" errors
- Fixed persistent storage only getting loaded if SWM was configured
- Fixed "Cannot get ordinal of hex color" error when configured custom team colors while player-color config was enabled
- Fixed NoSuchMethodException for some 1.20.* versions when player died
- Fixed NoSuchMethodException with older ASWM when saving blocks
- Fixed auto cloning being broken
- Fixed auto cloning creating trash file when using SWM
- Fixed missing team chest sounds for 1.8.8
- Fixed "NoSuchFieldException: c" error when spectating on versions 1.9 - 1.11
- Fixed typo in config fireball-max-knokback-y
- Fixed being able to break beds during death spectate using cheats
- Fixed rare error spam when using arenas gui together with ProxySync addon due to concurrency
Config changes:
Improvements:
- Added teams.yml
- In there you can now overwrite the name without the messages file, override the default generated initials, define a custom chat and dye color
- Added in config.yml
- invisibility-hides-armor-remove-particles
- parties-member-follow-enabled
- Removed unneeded configs in config.yml (Features stay, they're just enabled permanently; thanks to @MetallicGoat )
- hex-support
- death-skipscreen-advanced
- placeholderapi-enabled
- Added "restriction" config to shop pages (Thanks to @MetallicGoat )
API changes:
- Compatibility checker now prints all issues within a single, compact warning due to code cleanup regarding these components
- Slightly improved performance by not regenerating initials with each access
- Now trying to rejoin the player if he directly joins an arena instead of adding him as a spectator
- Slightly improved performance by not having a main-thread scheduler at all if there is none active arena
- Updated default shop&upgrade shop prices in "hypixel" template (Thanks to Tarboush)
- Clicked shop item now gets updated immediately. This was a thing until 1.12.2 due to how poorly Minecraft handles inventory updates internally
Fixed bugs:
- Additions
- Team#setEnforcedInitials(initials)
- Team#getEnforcedInitials()
- Team#setConfigName(name)
- Team#getConfigName()
- VarParticle: Be more strict when parsing 1.9+ particles without data (even though it's required) to avoid errors when spawning
- Fixed world blocks lock not getting released with regeneration caused upcoming ones to get stuck indefinetly
- Fixed super rare chances of race conditions for holograms causing odd problems during to runtime optimizations
- Fixed incompatibility with various particles with legacy configuration on 1.21 due to new particles prefering data instead of extra
- Fixed particles from "invisibility-hides-armor-extra-particles-count" being slightly misaligned
- Fixed particles from "invisibility-hides-armor-extra-particles-count" having an invalid color for 1.21+
- Fixed spectators being able to affect matches (by e.g. picking up spawners) on 1.14+ paper caused by async teleportation
- Fixed error caused by removed constructor in 1.21 (Thanks to @MetallicGoat )
- Fixed compatibility with 1.21 paper (Thanks to @MetallicGoat )
- Fixed potential NoSuchElementException when ProxySync stops
Added API:
Fixed bugs:
- Helper#getEnchantmentByName(String)
- Fixed NPE when removing certain scoreboard types
- Fixed error "Cannot find null enchantment"