Configuration changes:
Performance improvements:
- Moved "dealer-title-gui" and "upgradedealer-title-gui" to the layout properties file. You might have to reconfigure them
- Added global properties in shop-layouts-properties.yml
- gui-title
- gui-title-as-page (regular shop only)
Improvements:
- World storage of cloned arenas is now memory-only
- Greatly improved performance of MongoDB support
API changes:
- Don't show PaF Extended Bungee "received no info" warning if it timed out because of the player leaving
- Colors in HiveMC shop layout are not random anymore
Fixed bugs:
- Added
- ShopLayoutHandler.OpenEvent#getSituationalGUITitle()
- ShopLayoutHandler.OpenEvent#isGUITitleAsShopPage()
- AsyncArenaCloneQueueEvent
- QueuedCloningArena#getCallbacks()
- QueuedCloningArena#addCallback(callback)
- QuitPlayerMemory#setSoloRejoinTask(scheduler)
- QuitPlayerMemory#getShopResourcesSpentAmount()
- QuitPlayerMemory#setShopResourcesSpentAmount(amount)
- NMSHelper#getEffectInfiniteDuration()
- ArenaLobbyCountdownStartEvent
- ArenaLobbyCountdownCancelEvent
- Deprecated
- ShopLayoutHandler.OpenEvent#getDefaultGUITitle()
- QueuedCloningArena#getCallback()
- Fixed PlayerDataAPI#purge... methods not returning true with SQL, even if it was successful
- Fixed last killed players not being a part of RoundEndEvent#getQuitLosers()
- Fixed not being able to use condition variables within "set-icon-when" in arenas GUI that were custom created by addons
- Fixed CME related to ProxySync's arena updates and setup gui
- Fixed rare NoSuchFileException
- Fixed spectators being able to trigger traps
- Potentially fix PaperMC's bug of players seeing empty chunks due to async tp
- Fixed displaying time instead of infinity symbol for potion effects on 1.21
- Fixed NPE for MongoDB when using /bw stats with an invalid name
- Fixed not being able to fetch positions greater than 10 from the leaderboard (related to Leaderboards addon)
- Fixed potentially being able to buy twice while paying only once in upgrade shop by clicking very fast
- Fixed potentially re-opening shops even though they were already closed
- Fixed "Arena is not in the lobby phase" error when moving spectators to players during endlobby
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
Added support:
Added feature:
- 1.21.1 PaperMC
- AdvancedSlimePaper V3 (1.21 beta release)
Config changes:
- Auto detect teams based on map blocks when creating an arena (Thanks to MetallicGoat )
Improvements:
- Added
- Added diein-boundary-y-level (Thanks to MetallicGoat )
- Added shop layout properties (for "HypixelV2"):
- quickbuy-icon
- seperator-material-inactive
- seperator-material-active
- Removed (redundant):
- spectator-joinmessage config
- Replaced diein-* configs with a single enum config "diein-boundary-method"
Performance improvements:
- Last eliminated player is now spectating in end lobby phase as well (Thanks to MetallicGoat )
- Improved room for maneuver when custom GUIs are open
- It is no longer possible to double-click in the player's inventory to interact with the open GUI
- It is now possible to drag items, merge items by double clicking and drop items
- It is now possible to only display the text of a spawner holo by setting its block to AIR
- SWM/Plugins may no longer delete slime worlds handled and stored within MBedwars
- Stats placeholders: Async (on non-main thread) fetchings now wait up to 50ms to load stats before showing the "Loading..." message
API additions:
- Improved performance and removed potential memory leaks by avoiding usage of Bukkit's metadata system
- Greatly improved performance of message parser by using custom implementation instead of regex
- Greatly improved performance of internal method to fetch all spectators of an arena
Fixed bugs:
- PlayerProperties#isReadOnly()
- PlayerStats#isReadOnly()
- PlayerAchievements#isReadOnly()
- ThrowingRunnable class
- Arena#broadcast(VarSound)
- PlayerAchievement#isEnabled()
- PlayerAchievement#setEnabled(boolean)
- Fixed not saving newly configured properties and world file from SWM when saving blocks
- Fixed resetting player data when there was an error on load
- Fixed very rare "PROCEDURE * does not exist" error on a multi-server setup while using SQL
- Fixed potential NPE when guard dogs get damaged from an unknown source
- Fixed potential "Plugin (MBedwars) cannot be disabled" error on server stop and hidden players on 1.13+
- Fixed empty space before messages if no prefix was configured
- Fixed spectators not seeing certain messages, titles etc.
- Fixed serialized NBT string-lists got corrupted on 1.11 and older (only case known is when migrating from an old shop format to a new one that contains Lore within its items)
- Fixed player NPCs not working on 1.19.3 and 1.19.4
- Fixed anvil GUI not opening on 1.21
- Fixed regeneration process not starting again after a reload or server stop
- Fixed arena sometimes either stopping or not restarting regeneration after server start
Config changes:
Improvements:
- Added:
- dealer-left-click-openshop (Thanks to MetallicGoat )
- Replaced "enforce-old-shop" for Rewinside within the shop layouts properties config with "shop-variant" that permits more customizability
Fixed bugs:
- Muted SLF4J warnings when using SQL or MongoDB
- Made it possible to shift-multi-buy within "HypixelV2" shop layout if quick buy has been disabled
- Fixed errors on start when using MySQL instead of MariaDB
- Fixed server lockages not being freed on storage service shutdown causing longer wait times when players join again
- Fixed server lockage with MongoDB freeing all servers on storage service shutdown
- Fixed spectators potentially not being teleported to hub
Important info: Start time might take a bit in case you are running a large server together while using SQL. This is due slight restructuring in the database to improve the efficiency of certain requests. Do not stop the server, just wait until things work again. It is doing everything automatically. You will notice that it is still processing due to temporary load on the database and that stats, shops etc. don't work. This is a one-time thing, you won't have to do this again in the future.
Added features:
Added configs:
- /mbedwars locateplayer command (Thanks to MetallicGoat )
- See what a player is doing, in which arena he is active in and what the progress of the arena is. Also allows you to easily teleport yourself to him
- Disable teleport GUI during death spectate (Thanks to MetallicGoat )
- You may now customize the TNT explosion radius (which was already possible for fireball etc., but forgotten for TNT)
- You may now require players to have enough space in their inventory for purchases instead getting the excess dropped on the floor (Thanks to MetallicGoat )
Added permission:
- spectator-tp-gui-visible-on-death-spectate (Thanks to MetallicGoat )
- spectator-restricted-by-border
- tnt-yield
Feature improvements:
- mbedwars.cmd.locateplayer
Performance improvements:
- HypixelV2 shop layout now displays what level of upgrade a team currently has in the ItemStack (Thanks to MetallicGoat )
- Auto hide leave item if match is about to start (time is less than lobby-leaveitem-time)
- "/bw arena info" changes
- Now also displays the amount of spectators (only shown if the current status can even carry spectators)
- It is now possible to hover over the player amount to see them all
- Shows the amount of players that have quit during a running match
- Fireballs can no longer shoot somebody down
- Added new subtitle message when a bed has been destroyed without a destroyed (e.g. team left)
- Added new messages in case the team left and when the team left and didn't rejoin in time
Misc. improvements:
- Improved performance when puring players with LOCAL storage
- No longer create copies for cloned arenas on drive. Do it all memory only
- Improved efficiency of resetting player's inventory
- Improved efficiency of messages by parsing them when loading the messages file instead of when they are sent
- Slightly optimized queries for saving player data on SQL
- Greatly improved performance with MariaDB by utilizing efficient algorithms (were only supported by MySQL in the past)
- Greatly optimized player uuid fetching from their username (SQL)
API changes:
- New arenas file system format
- Added warning when using any kind of explosives and if the world's difficulty is set to peaceful (explosives won't cause any damage)
- Improvements to gamemode interference avoider
- Player placements now respects falling blocks (sand, scaffolding, ...)
- Admins no longer bypass "kick-outofarena" when switching between worlds. Only if they stay within the arena
- Revive player on auto join to avoid getting stuck in bugged condition
- Player can't interact or die anymore while teleporting to spawn in case it takes a bit longer
- Properly adjust light/dark green and gray colors in "HyPixel" template
- Shop configs: Materials for either price or product no longer include the amount with the material config, as there is a seperate config for it
- Added support for plugin tickets for 1.13+ for hiding players to improve compatibility with other plugins
Fixed bugs:
- Added:
- PlayerDataAPI#purgeAllPlayerData(statSetIds, achievements, properties, cacheOnly, callback)
- RemoteAPI#getImplementedAPIVersion()
- ShopLayoutHandler.OpenEvent#getArena()
- UpgradeShopLayoutHandler.OpenEvent#getArena()
- RemoteAPI#saveAllPlayerData(stats, properties, achievements, callback)
- KickReason.PLUGIN_STOP
- KickSpectatorReason.PLUGIN_STOP
- AddPlayerIssue#BROKEN_LOBBY
- CommandSenderWrapper#sendMessage(BaseComponent...)
- IntXYZ class
- Arena#isInside(IntXYZ)
- Arena#getSpawnersAtLocation(IntXYZ)
- PlayerTeleportHubEvent#setCustomImplementationCallback(callback)
- PlayerTeleportHubEvent#getCustomImplementationCallback()
- ArenaVotingPoolUpdateEvent#getMaxPoolSize()
- ArenaVotingPoolUpdateEvent#getPotentialPool()
- BedDestructionInfo.Cause enum
- BedDestructionInfo#setCause(cause)
- BedDestructionInfo#getCause()
- ArenaBedBreakEvent#getCause()
- PlayerBuyInShopEvent.DefaultProblem.NO_INVENTORY_SPACE
- Fixed various broken javadoc descriptions
- AddItemCondition#TYPE_XX are no longer public
- AddItemCondition constructor is no longer public
- Fixed calling ArenaStatusChangeEvent in some cases where the arena didn't even exist yet
- Fixed AccessDeniedException when there's a queue of tasks trying to safely write a file
- Fixed arena cloning not working after /bw rl
- Fixed spectators could trigger traps (Thanks to MetallicGoat )
- Fixed bug with "lobby-leaveitem-time": Able to leave even when the match already started
- Fixed rare NPE when stopping/reloading running arenas doing race condition with region regenerator async file loading
- Fixed running arenas being stopped with /bw rl
- Fixed custom entity speeds to be twice as fast on 1.8-1.13 than on 1.14+ (causing e.g. the TNT sheep to be OP in these versions)
- Fixed mbedwars.specialitem.x permission being reverted
- Fixed spectators being able to enter non-spectator game modes
- Fixed potential NPE when using the change speed item in spectating while having a speed that isn't in the config
- Fixed a bug with assuming the version release number from a player's protocol version
- Fixed potential conflicts with inventory plugins due to async teleportation
- Fixed memory leak related to spectators when teleporting elsewhere during an active async teleportation task
- Fixed potential "x not finite" error with Fireballs on 1.21
- Fixed wrong fireball amplitute calculation across all versions
- Fixed adding natural emerlad spawners to team bases with migrations from bw1058
- Fixed errors during runtime if a buygroup was added to the "stacked-buygroups" but didn't have any items assigned to it
- Fixed players being able to leave arenas using ender pearls
- Fixed spectator's not being in right game mode when dying (which doesn't happen unless purposefully typing /suicide)
- Fixed not properly parsing 1.20.5+ items if they have an amount included but no data components
- Fixed bed rotation being something wrong when migrating from bw1058 (due it having a weird logic to identify beds)
- Fixed being able to damage guard dog / iron golem using projectiles i.a. arrows
- Fixed picked up arrows not stacking for 1.15 and older
Added feature:
Improvements:
- Added egg wars functionality: Custom beds defined as "dragon egg" now don't teleport when clicked on
API additions:
- Spectators now see themselves in adventure mode when they join with 1.17+
- Throw warning during loading if an invalid pattern was given for the "dateformat" instead of spitting errors during the runtime
- Holograms/dealers may now be more easily destroyed by attacking it with spam clicks
- Silenced all InterruptedException when the plugin stops (errors were thrown on purpose for technical reasons)
Fixed bugs:
- ConfigFile#TEAMS (Thanks to MetallicGoat )
- Message#done(locale)
- Message#done(locale, freeInstance)
- Team.VALUES
- QuitPlayerMemory#getGameStats()
- Fixed hotbar not reappearing after respawn on 1.16 and older when anticheat-enabled was set to true
- Fixed not being able to fly as spectator when anticheat-enabled was set to true
- Fixed it not being possible to break custom defined bed blocks other than the bed material
- Fixed death spectate disabled causing items to not get cleared after respawn
- Fixed misc issues caused by MBedwars not checking Cursor items. Allowed players to buy things for free, as well as items to not get enchanted on team upgrades (Thanks to MetallicGoat )
- Fixed Upgrades do not display if there are no traps with "Hypixel" Upgrade Layout (Thanks to MetallicGoat )
- Fixed it not being possible to open the villager shop when attacking it simultaneously
- Fixed potential NPE when forcefully stopping a region regenerator right when it was preparing the chunks
- Fixed NoSuchMethodException when player rage quits
- Fixed potential "NoSuchFileException" with LOCAL storage when multiple complex read/write operations occur to the same data component concurrently
- Fixed Team.getByName didn't consider other languages
- Fixed game stats being reset (visually only) after a rejoin
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"