Releases: l299l/NewBedwars-Free
Releases · l299l/NewBedwars-Free
Release list
NewBedwars v2.1-beta
[2.1-beta] — 2026-06-24
Added
- Arena statistics & leaderboards — wins, losses, kills, deaths, final kills, beds broken, and games played are now persisted to
data/playerStats.json(or thePlayersMySQL table) and updated at the end of every game;/bw leaderboard [wins|kills|beds|fk]shows the top 10 in chat - Player profile GUI —
/bw stats [player]//bw profile [player]opens a profile GUI showing all lifetime stats; K/D and W/L ratios are displayed alongside raw counts - Fast-buy slot customization — players can rearrange the home-page fast-buy slots in the shop via the "Customize Fast-Buy" button in their profile GUI; preferences are saved per-player and persist across sessions
- Iron Golem custom item — spawns a iron golem that attacks enemies
- Silverfish custom item — releases a swarm of 5 silverfish from the buyer's feet that automatically despawn after 30 seconds
- Portable Tower custom item — instantly constructs a team-colored wool tower with a ladder
- Expanded PlaceholderAPI support — new placeholders:
%newbedwars_deaths%,%newbedwars_team_color%,%newbedwars_game_time%; full lifetime stats via%newbedwars_stat_wins%,stat_losses,stat_kills,stat_deaths,stat_final_kills,stat_beds,stat_games,stat_kd,stat_wl
Fixed
cancelStart()NPE —countdownTimeris now null-checked before cancellationGamePhasesout-of-bounds —getCurrentPhase()andstart()now guard againstcurrentPhase >= phases.size()- Respawn upgrade not applied —
respawnPlayer()now null-checksgetTeamUpgrades()before callingapplyPlayerUpgrades() - Win check silently discarded — the empty
if (checkWin()) {}block inkillPlayer()was replaced with a directcheckWin()call so game endings trigger correctly getGameTime()always returned 0 — game-start timestamp is now recorded instart()and elapsed seconds are computed correctly- Respawn task leaked on arena shutdown — the
BukkitRunnablefor player respawn is now stored inGamePlayerand cancelled in bothstop()andforceShutdown() arena_<name>_max_playersplaceholder broken — the per-arena placeholder parser now matches known multi-word suffixes (longest first) instead of usinglastIndexOf('_'), which was splittingmax_playersincorrectly
Changed
- Shop prices rebalanced
- Team-generator rebalanced
TODO
- Fix portable tower direction
- Add fast-buy slot reset
- Add language support for newest features
- Add missing permissions
NewBedwars v2.0-beta
[2.0-beta] — 2026-06-22
Added
- WorldEdit / FAWE schematic support — arenas can now be created from a
.schem/.schematicfile saved in the WorldEdit or FAWE schematics folder; use/bw arena create <name> -sche <schematic>(WorldEdit or FastAsyncWorldEdit soft dependency) - PlaceholderAPI support —
NewBedwarsExpansionregisters 14 placeholders under%newbedwars_*%; PlaceholderAPI is a soft dependency so the plugin loads normally without it- Per-player:
%newbedwars_arena%,%newbedwars_status%,%newbedwars_team%,%newbedwars_kills%,%newbedwars_final_kills%,%newbedwars_beds_broken%,%newbedwars_players%,%newbedwars_max_players%,%newbedwars_is_spectator%,%newbedwars_phase% - Per-arena:
%newbedwars_arena_<name>_status%,%newbedwars_arena_<name>_players%,%newbedwars_arena_<name>_max_players%,%newbedwars_arena_<name>_phase%
- Per-player:
- Per-arena resource pack forcing —
/bw setResourcePack <url|clear> [sha1hash]sets a resource pack that is sent to every player who joins the arena; SHA-1 hash optional; useclearto remove /bw gamerule <name> <true|false>— set any per-arena gamerule from within setup mode without editing files; tab-completes both gamerule names and boolean values- More languages — German (
de), Spanish (es), French (fr), and Russian (ru) language files added; missing keys automatically fall back to English so partial translations still work fully - 26.2 support
Fixed
- Sharpness not applied on sword purchase — buying a sword from the shop now immediately applies the team's current Sharpness upgrade level; previously the enchant was only present after death/respawn
- Potion effects broken on Paper 1.20.1 — right-clicking a custom potion now reliably applies the effect on all supported server versions; a two-layer approach (cancel in
PlayerInteractEvent+ fallbackPlayerItemConsumeEvent) with next-tick scheduling ensures exactly one effect application regardless of how a specific Paper build handles the drinking animation - Blast-proof glass not protecting blocks below — explosion handler now also removes from the explosion list any placed block that has blast-proof glass directly above it (one Y-level up)
- Player can drop sword with Q key —
PlayerDropItemEventnow cancels sword drops during an active game while still allowing players to move items into chests - Schematic error shows literal
/name/— theSchematicNotFoundmessage now substitutes the actual schematic name into the/name/placeholder before sending Objective.isRegistered()compile error inNScoreboard—isRegistered()does not exist in the Paper 1.17 API; replaced with plainobj != nullchecks- Arenas not cleaned up on server disable or reload —
onDisable()now callsforceShutdown()on every arena (cancels all tasks, teleports players to lobby, clears scoreboards and boss bars, removes ender dragons — skips world rollback which is unsafe during JVM shutdown);reloadAll()callsstop()(full rollback) on arenas with active players before clearing the arena maps, so worlds are cleanly reset and reloaded correctly - Schematic lookup only searched plugin folder — schematic resolution now checks the WorldEdit / FAWE schematics directory as a fallback when the file is not found in the plugin's own folder
NewBedwars v1.0.3-beta
[1.0.3-beta] — 2026-06-15
Fixed
- Potion items not working on 1.21+ —
PlayerItemConsumeEventnow applies the configured potion effect and removes the item manually; previously the event was cancelled with no effect applied, leaving the potion permanently in inventory on newer server versions - Armor can be bought multiple times — purchasing a
GIVE_ARMORitem is now blocked when the player's current armor tier is equal to or higher than the item being bought (prevents wasting currency on redundant purchases) - Sharpness and Haste lost on death — upgrade effects are now re-applied on respawn after potion effects are cleared; previously only armor protection was restored
- QuickVoid not killing armored players — void kill damage changed from
health + 1tomaxHealth × 1000; armor can absorb up to 80 % of damage, sohealth + 1left heavily-armored players alive - Broken placed wool drops vanilla item — breaking a placed wool block now suppresses the default drop and gives back one unit of the custom team-colored
Woolshop item instead of a plain named block (e.g.Red Wool) - Wool block break returned 16 items — the wool refund was accidentally using the shop stack size (16); now correctly gives back 1 wool per broken block
- GUI category icons showed item cost and description — category buttons in the shop GUI now show only the category name and an optional configurable description; the underlying item's price/amount lore is no longer inherited
Added
Descriptionfield for shop GUI categories — each category in a GUI YAML file can now define an optionalDescription:key that is shown as the lore on the category button (example values added toexampleGui.ymlandexampleGui2.yml)
NewBedwars v1.0.2-beta
[1.0.2-beta] — 2026-06-13
Added
- Party system — group up with friends via
/party(/palias)/party invite <player>sends a clickable[Accept]/[Deny]chat component (Adventure API, compatible with all supported server versions)- Invites expire automatically after 60 seconds
- Party admin is the only member who can initiate a
/bw join; all online members enter together /party leave,/party kick,/party admin(transfer),/party list
AllowPartiesgamerule — per-arena toggle to permit or block party joins (configurable via/bw setupGuis)- Party-aware arena selector GUI — joining through the GUI now enforces party admin/member roles and checks party size against
maxInTeam
Fixed
ConfigUpdaterNPE on first startup whenCustomItemsNamessection was absent from language files on diskDataManager.save()NPE inonDisable()when startup had failed mid-way (dataManager was null)- Party members could bypass the party-admin join restriction by clicking an arena in the selector GUI
Internal
- Lobby location persistence extracted from
NewBedwars.javaintoLobbyDatautility class (config/data/LobbyData.java) PartyManagerrefactored to use constructor injection (Plugin,Messages) — no longer depends onNewBedwars.pluginstatic reference- Added JUnit 5 + Mockito test suite: 54 tests across
PartyTest,PartyManagerTest,LangMessagesTest,LobbyDataTest,JoinCommandTest,PartyCommandTest
NewBedwars v1.0.1-beta
Changelog
v1.0.1-beta — Small bug fixes
New Bedwars 1.0.0-beta
Changelog
v1.0.0-beta — Initial Release
Added
- Multi-arena support — unlimited simultaneous arenas, each in its own world
- Team system — configurable team count, colors, and player limits
- YAML-driven shop & upgrade GUIs — fully configurable without code changes
- Resource generators — Iron, Gold, Diamond, Emerald with phase-based level upgrades
- Game phase system — define custom phases with durations and triggered actions (generator upgrades, bed destruction, dragon spawn, game end)
- Ender Dragon event — per-team dragons spawn and attack enemies; strength scales with Dragon Buff upgrade level
- Team upgrades — Forge, Protection, Sharpness, Haste, Heal Pool, Alarm/Blind/Mining Fatigue Traps, Dragon Buff
- Custom shop items — Bridge Egg, Fireball, Speed/Jump/Invisibility potions, Blast Protection Glass
- Build protection zones — per-team areas where players cannot place blocks
- Base zones — define team base areas for traps and Heal Pool
- Quick void — instant kill below a configurable Y level
- Rejoin system — players can reconnect within a configurable time window
- Traps — triggered when an enemy enters a team's base
- Spectator mode — fly, compass player-teleport GUI, effects GUI; available to both eliminated players and external viewers via
/bw spectate - Arena chat isolation — each arena has its own chat channel; lobby players and other arenas are completely isolated. Use
!messagefor team-only chat.AllowTeamChatandAllowGlobalChatgamerules control per-arena chat behaviour - Tab list isolation — each arena has its own tab list; lobby players are hidden from arena players and vice versa
- Bossbar — YAML-configurable templates for waiting, in-game, and ending states
- Scoreboard — per-player scoreboards with full template support
- In-game setup system — configure arenas entirely in-game with Normal, Advanced, and Automatic setup modes
- Per-arena gamerules — random teams, spectators, team/global chat, team damage, permanent swords, and more
- JSON arena persistence — arenas save automatically and survive restarts
- Party system — players can group up and join arenas together
- Multi-language — English and Polish included; fully translatable YAML language files with auto-update on plugin reload