[15% SALE] ⭕ Marcely's Bedwars ⭕ Supports 1.8 - 1.21.3 ⭐⭐⭐⭐⭐    EST. 2015 icon

[15% SALE] ⭕ Marcely's Bedwars ⭕ Supports 1.8 - 1.21.3 ⭐⭐⭐⭐⭐ EST. 2015 -----

✨ NO. 1 BEDWARS PLUGIN ✨350+ CONFIGURATIONS ✨ 0 LAG ✨ MULTI ARENA ✨ NETWORK-READY ✨



5.4
5.4 spigot.png
We (me and @MetallicGoat) are delighted to announce this colossal update that we used to squeeze out as many possibilities as possible! And you heard right, we improved the performance by over 170% - even while MBedwars already counts as probably the most efficient Bedwars plugin out there. Impressive, isn't it?
We took a spark before and after this update.
Players1: 170
MSPT1: 74
Players2: 260
MSPT2: 42
-> ((74/170)/(42/261)-1)*100 = 170.5%
Before: https://spark.lucko.me/3vFSirZ0li
After: https://spark.lucko.me/3t8nradUwZ

Important note: We had to break certain APIs to add new features. We also took this opportunity to remove most of the deprecated methods altogether. This means that you probably must update most of your addons, check for updates! Nag their developers if you are experiencing new errors caused by their addon!
Added support:
Added sound:
  • FIREBALL_OUT_OF_BOUNDS
Config changes:
  • Improvements to default "Hypixel" template (Thanks to @MetallicGoat)
  • Added:
    • tntsheep-damage-multiplier: Ability to modify the damage dealt by the TNT sheep (Thanks to @MetallicGoat)
    • respect-event-cancellations: Useful to improve compatibility with anti-cheats
Performance improvements:
  • Improved performance due to past memory leaks in i.a. arenas
  • Slightly improved performance of player move handling logic
  • Added async UI rendering for:
    • Shop
    • Upgrade Shop
    • Achievements
    • "View players" spectator item
    • "Select team" lobby item
  • Rewrote skin fetching and caching logic to be more efficient
  • Improved performance of legacy block (1.8-1.12) to modern block (1.13+) during regeneration of arenas that were lastly updated on a legacy spigot version
  • Made scoreboard renderer more efficient by only updating lines with placeholders
  • Now playing various particles & sounds async
  • Misc performance improvements by caching frequently used methods
  • More efficient system to remove block drops for 1.12+
  • Improved efficiency of region regenerator by off-loading NBT parsing to reading thread
  • Improved performance by not manually resending chunks during regeneration and by not constantly checking for item spawns (alternative, more efficient solutions are being used that have been added in the past)
Improvements:
  • Reduced usage of NMS to make supporting new MC versions a lot easier (Thanks to @MetallicGoat)
  • "/MBedwars/data/skincache" folder is no longer being used. Skins from NPCs are now stored in the database as well
  • Reduced amount of potential flicker when using the shop (i.a. when buying items) caused by lags on client side
  • Added dynamic world data loading in case a custom fork (looking at you, ASWM) has a bug that causes existing worlds to not get properly reported
  • Made arena border more pretty & its rendering more efficient
  • Hide scoreboard score with 1.20.3+
  • Prefer same players-per-team for arenas that picked with the "next round" spectator item
  • Fireball now gets spawned with slightly moved forward, so it doesn't *seem* like as if there was a delay in using it
  • Improved team balance: Aims for a fairer players per team balance
  • Added new system that avoids file corruptions caused by unexpected server stops (e.g. due to a crash) for world info, arenas and locally stored player data
  • Added more warnings in config.yml if something is done wrong
  • BlockBreakEvent not getting cancelled anymore with a successful bed breakage to improve support with anti-cheats
  • In case of adding a corrupted .jar into the add-on file: Replaced NPE (only present in newer paper versions) with proper warning (Thanks to @MetallicGoat)
  • Arena issue if arena's type is WORLD and its world is a main world (Thanks to @MetallicGoat)
  • Moved to java.time API, made sure that times are stored correctly and parsed correctly, even if time zones change at any point
API changes:
  • Added:
    • GUI#hasOpen(player)
    • ScoreboardUpdateCause.PAPI_PLACEHOLDERS
    • ChestGUI#mergeFrom(gui, forceRecreate)
    • VarParticle#getOffsetX(), #getOffsetY(), #getOffsetZ()
    • VarParticle#setOffset(x, y, z)
    • VarParticle#getCount()
    • VarParticle#setCount(count)
    • VarParticle#clone()
    • VarParticle.PARTICLE_EXPLOSION_HUGE
    • GameAPI#drawBorder(min, max, player)
    • RemoteServer#getArenaByExactRealName(name)
    • XYZ#equalsBlockCoords(XYZ)
    • XYZ#equalsBlockCoords(Location)
    • XYZ#equalsBlockCoords(Block)
    • PlayerDamageInfo class
    • GameAPI#getLastPlayerCausedDamage(damaged)
    • PlayerKillPlayerEvent#getDamageInfo()
    • Message#getInputString()
    • Message#getDefaultString()
    • RemotePlayerPreJoinLocalArenaEvent
    • Arena#getBedDestructionTime(Team)
    • ArenaIssuesCheckEvent.IssueType.GAME_WORLD_IS_MAIN_WORLD
    • Arena#getRoundStopTime()
    • AddPlayerIssue#getDefaults()
    • Arena#placeBedBlocks(Team)
    • Arena#destroyBedBlocks(Team)
    • ArenaIssueCheckEvent#removeIssue(issue)
    • Arena#broadcastCustomPropertyChange()
    • ArenaPropertyChangeEvent.Property#API_CUSTOM
    • RemoteArenaPropertiesChangeEvent.Property#API_CUSTOM
    • Arena#destroyBedNaturally(info)
    • New Async API: (Thanks to @MetallicGoat)
      • Helper#getBlockAsync(location, callback)
      • Helper#getBlockAsync(world, xyz, callback)
      • Helper#getBlockAsync(world, x, y, z, callback)
      • Helper#getChunkAsync(world, x, y, callback)
      • Helper#teleportAsync(entity, location, callback)
    • New ConfigurationAPI (Thanks to @MetallicGoat)
  • Deprecated:
    • GUI#onClose(player)
  • Fixed broken methods:
    • ShopPage#isClone()
    • BuyGroup#isClone()
    • ShopItem#isClone()
    • Fixed ArenaCloningManager#getClonePurposeWorlds() not returning all worlds
    • Fixed PlayerUseSpecialItemEvent#isNaturalInteractionCancelled() getting ignored if it has been cancelled using #setCancelled()
    • Fixed PlayerPickupDropEvent#isFromSpawner() returned false if event was cancelled a previous time(Thanks to @MetallicGoat)
  • Miscellaneous:
    • Arena#setStatus(status) now throws an IllegalStateException when trying to set it to RUNNING, but there aren't any players or the current state isn't LOBBY
    • Message class now inherits from Cloneable
    • Turned AddPlayerIssue from Enum to a Class that now allows one to pass a custom message using its constructor
    • Updated wrong javadocs for various bed related methods in Arena class
  • Broke API:
    • AddPlayerIssue is now a class, not an enum anymore! Enum methods didn't get reimplemented. It might also require recompilation due to possible JRE errors
    • Updated QuitPlayerMemory: Now uses java.time API instead of long
    • Arena#getRoundStartTime() now returns Instand instead of a long. It may also be null now and also now works if the state isn't RUNNING
    • Arena#getRunningTime() now returns Duration instead of a long. It may also be null now and also now works if the state isn't RUNNING
    • Removed AddPlayerIssue#PLUGIN and AddPlayerIssue#ARENA_ISSUE_MISSING_WORLD
    • Removed deprecated methods from PlayerDataAPI (only ones were to obtain cached instances that were replaced by new ones)
    • Removed deprecated legacy hook API from BedwarsAPI class, as it has been replaced by a new one
    • Removed deprecated GameAPI#getArenasByPickerCondition(string), as it has been replaced by a new one
    • Removed deprecated methods from Arena class: #getQueuedUpgradeTraps(team), #getQueuedUpgradeTraps(team, level, force), #getRemainingTeams(), #save()
    • Removed deprecated methods from Team class: #getChatColor(), #setChatColor(color), as it has been replaced by new API for hex support
    • Removed deprecated methods from ArenaBedBreakEvent: #isBroadcasted(), setBroadcasted(broadcast), as they have been replaced by new methods
    • Removed deprecated method ArenaIssueCheckEvent.Issue#getMessage(sender)
    • Removed field ScoreboardUpdateCause#FREQUENT_TICK, as it's not used anymore
    • Removed deprecated method PlayerOpenShopEvent#getPage(), as it has been replaced by a new one
    • Removed legacy SpecialItemAdapter and SpecialItemListener classes, and every method related to it. Listen to PlayerUseSpecialItemEvent instead
    • PlayerAchievements: Replaced legacy time API (Date) with java.time (OffsetDateTime) for methods #getEarnDate(achievement) and #setEarnDate(achievement, date)
    • Various Arena#destroyBedNaturally( ... ) methods have been removed and replaced with a new one containing a data object, to avoid clutter
Fixed bugs:
  • Fixed potential memory leak with guard dogs and tnt sheeps
  • Fixed potential memory leak when players teleported
  • Fixed various problems with BergwerkLabs shop layout
  • Fixed music got broken when opening the jar as a window
  • Fixed potential memory leak of skin fetcher as there was no timeout
  • Fixed "regeneration-region-efficient-beta": Not generating last chunk
  • Fixed fireballs being able to fly into infinity
    • Caused chunks to get loaded&generated endlessly
    • Caused memory leaks due to it never getting unloaded
    • Now ignites (with sound & particle) instantly if it leaves the playable area
  • Fixed "forcestart-ignoreminplayers" config not working as intended
  • Fixed chat spam when there are enough players in a lobby to auto-shorten the time
  • Fixed broken achievements
    • WRITE_GG_IN_ENDLOBBY
    • KILL_WITH_BOW
  • Fixed Quick Buy display issues with ShopItems with restrictions (Thanks to @MetallicGoat)
  • Fixed "placeableblock-whitelist" config not functioning
  • Fixed respawning players could see all spectator messages even if "customchatmessage-spectator-public" is enabled (Thanks to @MetallicGoat)
  • Fixed icon of empty arenas being air in arenas gui when using "set-amount: {players}"
  • Fixed bug with "/bw arena saveblocks" that caused entities of unloaded chunks to not get saved
  • Fixed ASWM save error (with 2.8.0 version) (Thanks to @MetallicGoat)
  • Fixed bug that could have caused constant upgrade shop reopening
  • Fixed "fireball-fly-speed" having no effect for 1.17+
  • Fixed occasionally not properly cleaning up auto clone worlds

Much cool for scrolling this far - You might also want to check out our new Cosmetics&Coins 1.2 update: Cosmetics & Coins – Marcely's Bedwars (mbedwars.com)
cosmetics 1.2 spigot.png
----------, Jan 15, 2024
Resource Information
Author:
----------
Total Downloads: 1,729
First Release: Oct 23, 2015
Last Update: Nov 19, 2024
Category: ---------------
All-Time Rating:
234 ratings
Find more info at mbedwars.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings