⭕ Marcely's Bedwars ⭕ Supports 1.8 - 26.2 ⭐⭐⭐⭐⭐ EST. 2015

MC Plugin ⭕ Marcely's Bedwars ⭕ Supports 1.8 - 26.2 ⭐⭐⭐⭐⭐ EST. 2015 5.5.8
✨ NO. 1 BEDWARS PLUGIN ✨350+ CONFIGURATIONS ✨ 0 LAG ✨ MULTI ARENA ✨ NETWORK-READY ✨

5.3.png

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
  • 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
5.2.7-50p.png

Added config:

  • notbuildableradius-permit-block-liquidflow (Disable water flowing into restricted area, e.g. team spawns) (Thanks to @MetallicGoat)
Improvements:
  • Chat shouting: No message will be sent now if the message is empty (Thanks to @MetallicGoat)
  • Water no longer flows out of an arena (Thanks to @MetallicGoat)
  • "Select team" GUI in lobby closes once you clicked and switched a team
  • Rewritten arena regeneration queue
    • It now works a lot more stable and efficient
  • Added better failure messages for "/bw arena regenerate"
  • Rewrote message loading system
    • Greatly reduced memory usage of messages within the memory (having all loaded now only uses ~57kb RAM) + it's a lot faster and stable now
  • Messages now get automatically translated into the players language when the plugin is being enabled for the first time to make the introduction to the setup easier to understand
Fixed bugs:
  • Fixed NoSuchMethod error on 1.20+ (setCollidesWithEntities API got removed by spigot)(Thanks to @MetallicGoat)
  • Fixed error when punching shop NPC on 1.20+ (Thanks to @MetallicGoat)
  • Fixed error
  • Fixed arena regeneration queue getting stuck with many arenas
  • Fixed issues with messages load system (there were cases were it wiped all changes)
  • Fixed "bed-block" config didn't have any affect on the bed placed in the arena
  • Fixed possible error when setting up plugin
  • Fixed error (only appeared for 1.15 - 1.18)
  • Fixed that the regenerator would go past the corners and thus save, clean and regenerate more blocks than it should

API changes:
  • Fixed docs saying that the time unit in Arena#setIngameTimeRemaining(int) and Arena#getIngameTimeRemaining() is ticks instead of seconds [! Functionality is still the same as before !]
  • New HookAPI
    • Deprecated BedwarsAPI#getHookedPlugins()
    • Deprecated BedwarsAPI#getHookablePluginNames()
    • Deprecated BedwarsAPI#createPluginHook(Plugin)
    • Deprecated BedwarsAPI#removePluginHook(Plugin)
    • Added BedwarsAPI#getHookAPI()
    • It is now easily possible to hook custom parties&nicknaming systems into MBedwars and thus cause MBedwars to automatically manage them for you.
      Additionally, you may also access the included&registered parties&nicknaming hooks and party information about a player.
[IMG]

[IMG]

Added support:
Added features:
  • Added biome support for region arenas on 1.15+ (biomes get restored after an arena has ended + correct biomes when using cloning feature) (1.15+ only)
  • Added ability to modify player stats through commands: (Thanks to @MetallicGoat)
    • /bw tools playerdata stats set/add/subtract
    • /bw tools playerdata stats reset
    • /bw tools playerdata stats resetall
Improvements:
  • Improved preciseness of regeneration time in "/bw arena info" (It now tries to use past average instead of guessing it all the time)
  • Replaced error with proper warning
  • Slightly reduced memory usage by keeping less message strings loaded
  • Slightly improved performance for all cloned worlds by disabling auto-save for them

API additions:
  • Added ThrowingConsumer and ThrowingSupplier helper classes
  • Added new PlayerDataAPI stuff:
    • getCachedAchievements()
    • getCachedStats()
    • getCachedProperties()
    • void purgePlayerData(UUID uuid, boolean stats, boolean achievements, boolean properties, boolean cacheOnly, @Nullable Runnable callback)
    • void purgeAllPlayerData(boolean stats, boolean achievements, boolean properties, boolean cacheOnly, @Nullable Runnable callback)
  • PlayerDataPurgeEvent (Thanks to @MetallicGoat)
Fixed bugs:
  • Fixed spectator items not working unless they have both a handler and a command attached (Thanks to @MetallicGoat)
  • Fixed Bed Destroy message being sent after victory message with solo rejoin + various other niche solo rejoin issues (Thanks to @MetallicGoat)
  • Fixed that changes to a spawners drop duration during a game wouldn't get applied immediately, but rather just after it dropped something
  • Fixed error on 1.19.3+
  • Fixed that the area-deco element in ArenasGUI expected x1/x1 to be smaller than x2/y2
  • Fixed interference with SkinsRestorer (players within a match would see new players joining the server on the TAB)
  • Fixed error
  • Fixed that players could get stuck in lobby if the lobby position was placed below the min height on 1.17+
  • Fixed not copying over various world properties to cloned worlds (only for arenas of the type WORLD). These include: border, game rules, difficulty, weather, time, PVP, spawn flags, spawn location, and mob spawn limits
Added feature:
  • Players who quit during a solo match may have the chance to rejoin for a specific timeframe (configurable using config "solo-rejoin-time") instead of being eliminated immediately (Thanks to @MetallicGoat)
Third-party support improvements:
  • Updated OldCombatMechanics to 1.12.0+ (Old versions aren't supported anymore. Plugin will warn you if it detects that) (Thanks to @MetallicGoat)
  • Added CloudNetV4
  • Improved Microsoft SQL support:
    • Added driver with latest version
    • Added configs: sql-mssql-encrypt and sql-mssql-integrated-security
    • Added new configs to web setup as well
Config changes:
  • Added:
    • auto-cloning-excluded-arenas: to exclude specific arenas from auto clone
    • sql-mssql-encrypt
    • sql-mssql-integrated-security
  • customchatmessage-spectator-message:
    • Added PlaceholderAPI support
    • Added new placeholders:
      • {essentialsgroupmanager}
      • {name}
      • {message}
  • "customchatmessage-message" now also gets applied during lobby phases
  • "hex-support" is now set to true by default
Miscellaneous:
  • Significantly reduced memory usage for arenas caused by their regeneration system
  • Added API version to /bw info
API changes:
  • Some changes for the new solo-rejoin feature:
    • Deprecated:
      • Arena#getRemainingTeams()
      • Arena#getRemainingTeams(Player...)
    • And due to that added:
      • Arena#getAliveTeams()
      • Arena#getAliveTeams(Player...)
      • Arena#getTeamsWithPlayers()
      • Arena#getTeamsWithPlayers(Player...)
  • Some hologram API improvements:
    • Added ability to modify equipment:
      • Added EquippableSkin and HologramEquipment classes
    • Added ability to modify health:
      • Added DamageableSkin class
    • Added ability to modify ArmorStands:
      • Added ArmorStandHologramSkin class
    • Deprecated HologramSkinType#VILLAGER
    • Added Spawner#getHologram()
    • Added Arena#getBedHologram(Team)
  • Added API to communicate using messages/packets between servers (RemoteAPI):
    • RemoteCustomMessageReceiveEvent
    • RemoteAPI#broadcastCustomMessage(String, byte[])
    • RemoteServer#sendCustomMessage(String, byte[])
  • Miscellaneous:
    • Added:
      • ShopItem#removePrice(ShopPrice)
      • ShopItem#removeProduct(ShopPrice)
      • ItemShopPrice#setItemStack(ItemStack)
      • ItemShopProduct#setItemStack(ItemStack)
    • CommandSenderWrapper#wrap(RemotePlayer) now automatically wraps him into a Bukkit format in case he is playing on the local server
    • Fixed CommandSenderWrapper#getReference() returning null in case the sender was on a remote server
    • QuitPlayerMemory constructor received a new parameter, thus potentially breaking API making use of it
Fixed bugs:
  • Fixed 'missing handler warning' sent to players when used a spectator item with a command only (Thanks to @MetallicGoat)
  • Fixed config descriptions being formatted weirdly (Thanks to @MetallicGoat)
  • Fixed spawner holograms not spinning (Thanks to @MetallicGoat)
  • Fixed NPE when opening the HypixelV1 layout (Thanks to @MetallicGoat)
  • Fixed arena regeneration queue getting stuck when forcefully canceling them
  • Fixed player parameter for /bw join always used the player that typed the command
  • Fixed error when typing "/bw tools openupgradeshop" while not inside an arena https://cdn.discordapp.com/attachments/355078539793530900/1105848704050659338/image.png
  • Fixed that NPC bodies wouldn't rotate at certain situations when used together with Tweaks' auto-head-rotation
  • Fixed that NPC bodies wouldn't rotate at certain situation when used together with Tweaks' auto-head-rotation
Note: Due to how small this plugin is, the plugin's version stays at 5.2.4

Fixed bug:
  • Fixed problems with /bw join command
As always, I am thankful for @MetallicGoat 's (and of course, everyone else who have reported the bugs in our Discord) contributions to this update. If you appreciate our efforts, we'd greatly appreciate a donation. Thank you very much!
hypixel shop.png


Added features:
  • Upgrade Shop Restrictions (restriction for each level in upgrade shop config -> allows you to create unique upgrade shops for each i.a. mode) (Thanks to @MetallicGoat)
  • Quick buy in HyPixelV2 layout: Duplicate items now get auto-removed (Thanks to @MetallicGoat)
  • Cloning feature now includes the ability of specifying the modes for which clones shall be created for
Config changes:
  • Added:
    • restriction to upgrade-shop.yml (Thanks to @MetallicGoat)
    • auto-cloning-modes
  • Added PlaceholderAPI support for customchatmessage-message
  • Replaced "lobby_countdowntitle-*" configs with a single and more customizable "lobby_countdowntitles" config
  • Added "description" to shop items (currently only supports HyPixelV2 layout)
Miscellaneous:
  • Dependency download in template applying during setup now fallbacks to alternative sources if first ones fail
  • Not sending whole teleport packets anymore for holograms if just the head rotation changed (causes MBedwarsTweaks feature "Friendly-Villagers-Enabled" to be more smooth)
  • Improved system that applies custom textures to skull blocks
  • Hurt effects on holograms (i.a. dealers) is now visible for all nearby players, and not just for the one who is punching him
  • Action bar message "Waiting..." in lobby no longer collides with other plugins when it is empty
  • Remaining action bars and titles now get removed when a player leaves the arena
  • Slightly reduced the time during which the "Good Luck!" title will be shown with the start of a match
  • "Respawn in x..." message now gets immediately removed when player respawned (previously it'd stay for a second)
  • Item names in HyPixelV2 shop are now dyed red by default
  • Now removing item attributes in HyPixelV2 shop layout
  • GUI of HyPixelV2 renames to the page you currently have open
API changes:
  • Added:
    • Upgrade#getRestriction()
    • Upgrade#setRestriction(ArenaConditionGroup restriction)
    • Class QueuedCloningArena
    • ArenaCloningManager#getQueueEntries()
    • ArenaCloningManager#addToQueue(QueuedCloningArena)
    • ShopItem#getDescription()
    • ShopItem#getDescription(CommandSender)
    • ShopItem#getConfigDescription()
    • ShopItemsetConfigDescription(String)
  • NMSHelper#setSkullTexture(Skull, String) now doesn't automatically update the BlockState anymore
  • Fixed PlayerUseLobbyItemEvent not being fired
Fixed bugs:
  • Fixed error for some people that were using specific versions of 1.19R1
  • Fixed problems with world storage using cryptic names for some SWM users thus clearing the spawned dealers
  • Fixed "class java.lang.Boolean cannot be cast to class java.lang.Float" error on 1.19.4 (Thanks to @MetallicGoat)
  • Fixed missing head rotation for holograms on 1.19.4
  • Fixed allowcommand-stats config not working properly
  • Fixed no damage effect when hitting holograms (i.a. dealers) on 1.19.4
As always, I am thankful for @MetallicGoat 's (and of course, everyone else who have reported the bugs in our Discord) contributions to this update. If you appreciate our efforts, we'd greatly appreciate a donation. Thank you very much!
new select team.png

We have been redesigning the select team GUI. We are open for further suggestions!

Config changes:
  • Added color code & language support for gui-selectteam-teammaterial-* configs
  • Added gui-selectteam-teammaterial-lore-empty
  • Added default values to hubcommands config
Miscellaneous:
  • Added auto-wrapping for upgrade shop item descriptions
  • Removed item attributes from upgrade icons
  • Removed extra space from auto-wrapped lines
  • Made some improvements to the look-and-feel of some centralized parts in GUIs
  • Removed decimal places from PosMin/PosMax for region arenas in /bw arena info
API addition:
  • CenterFormat#CENTRALIZED_EVEN
Fixed bugs:
  • Fixed chat-event-listener-priority having no effect
  • Fixed not being able to enter arenas if the lobby is inside the game area
  • Fixed suggesting wrong layouts for /bw tools openupgradeshop
  • Fixed "Cannot measure distance between lobby and porto" error when player travels between worlds during a match
  • Fixed that regeneration-region-efficient-beta would cause empty cloned region arenas
  • Fixed NPE when using the hex color system for teams
This update fixes some serious bugs:
  • Fixed possible NumberFormatException when saving/loading achievements on local storage
  • Fixed possible NullPointerException when opening a shop with a HyPixelV2
  • Fixed InvalidDescriptionException on start when there were addons
  • Fixed that the File IO threads would lock and bring the server into a soft lock state when doing a /bw reload in a running match
This version fixes a start-up problem that appeared within version 1.17 - 1.18.2. There is no need to update if you aren't using either of these versions. Note that the version number hasn't changed internally.

Fixed bug:
  • Fixed that the plugin occasionally wouldn't start on 1.17 - 1.18.2
Added support:
New features:
  • Added Kill-Streak and Top-Kill-Streak stats (Thanks to @MetallicGoat)
Config changes:
  • Migrated shop from CM2 to YAML (Thanks to @MetallicGoat)
  • Migrated the lobby.cm2 file to lobby-hotbar.yml (Thanks to @MetallicGoat)
  • Added new config issue warnings to the shop config file for better QoL (Thanks to @MetallicGoat)
  • Improved performance by teleporting players async (if supported by your spigot; 1.14+ and paper required)
  • Added Stacked buygroups (a replacement to Tweaks' one-slot-tools feature) to the shop.yml config file (Thanks to @MetallicGoat)
Miscellaneous:
  • Updated GSON to 2.10
  • Made spectators automatically leave the "player spectating mode" when they leave the arena border (because the watched player is e.g. falling into the void)
  • Chunks now get loaded before they are being teleported (hotfix for a Spigot bug that causes player to be stuck within blocks)
  • Now also showing game stats in "/bw tools playerdata info"
API additions:
  • PlayerPickupDropEvent
  • PlayerPropertyChangeEvent
  • PlayerStats#set(String key, Number value, boolean dispatchAPIEvent, boolean cacheOnly)
  • PlayerStats#add(String key, Number addAmount, boolean dispatchAPIEvent, boolean cacheOnly)
  • PlayerProperties#set(String key, String value, boolean dispatchAPIEvent, boolean cacheOnly)
  • PlayerProperties#replace(String key, String value, boolean dispatchAPIEvent, boolean cacheOnly)
  • PlayerProperties#remove(String key, boolean dispatchAPIEvent, boolean cacheOnly)
  • PlayerDataAPI#getStatsByName(String name, Consumer callback)
  • Arena#Block[] getBedParts(Team team)
  • Arena#Team getTeamByBaseLocation(Location)
  • Arena#Team getTeamByBaseLocation(XYZ)
  • HologramSkin#getEntityType()
  • HologramSkin#getEntityId()
  • HologramSkin#getNMSEntity()
  • ShopProductType#getId()
  • ShopProductType.getById(String)
  • ShopPriceType#getId()
  • ShopPriceType.getById(String)
  • YamlConfigurationDescriptor#addEmptyLine(ConfigurationSection)
  • BuyGroup#isStacked()
  • BuyGroup#setStacked(boolean)
Fixed bugs:
  • Fixed error
  • Fixed error https://bin.bloom.host/voguquveli.properties
  • Fixed error https://bin.bloom.host/lunaqesewa.properties
  • Fixed always kicking player on local server when forcefully switching him using remote API
  • Many PlayerStatChangeEvent dispatches when the player stats got loaded
  • Fixed super duper rare case of unwanted entities or players being hidden for spectators due to colliding entity ids between worlds
  • Fixed that spectators would see a "arena is resetting" message when joining an arena
  • Fixed that spectators would experience a glitchy effect when the player they are spectating would die
  • Fixed that spectators could get stuck and thus get kicked when they are flying too fast against the border
  • Fixed rare ConcurrentModificationException with scoreboards
  • Fixed plugin trying to enable even if it failed in the loading period
  • Fixed rare CommandExeption error on shutdown if prize commands are enabled (Thanks to @MetallicGoat)
  • Fix give on round start/respawn blocks are not able to be placed if not present in the shop (Thanks to @MetallicGoat)
Top Bottom