This update is a hotfix version for 1.8.8 servers. You do not have to update to this version if your server is 1.9 or newer.
This hotfix resolves compatibility issues with ViaVersion 5.0.2+ and its Legacy BossBar API, which is used to display colored, segmented, and more reliable BossBars for 1.9+ clients on 1.8.8 servers. An undocumented change in the API’s implementation caused our functionality to break, necessitating a few adjustments. To address potential future API changes that may go unnoticed, a new configuration option, bossbar.allow-via-hooks
, has been added. When set to false
, this option disables the hook, causing the plugin to treat 1.9+ players the same as 1.8.8 players.
Additons and changes:
- Support for 1.21.4
- Support for
tag
attribute for items in shop. This allows you to use any SNBT data for an item (or SNBT-formatted data components on recent versions). - Support for cancellation of
PlayerDeathEvent
. (BonesMgee) - Updated translations:
- French - bcorp-842
- Chinese (Simplified) - dedfaf
- Czech - Misat11
- Japanese - Kaisan10
- German - CtrlAltDefeat17
Fixes:
- Fixed error when missing spawner type argument during spawner creation.
Changes and fixes:
- Added 1.21.3 support.
- Invalid spawner types no longer prevent an arena from being loaded and modified
- Invalid hologram locations are now going to be automatically removed from holodb.yml and holodb_leaderboard.yml files.
- Invalid sign locations are now going to be automatically removed from sign.yml file.
- Idle lag caused by InventoryHolder comparing is now prevented on Paper 1.15.2+ and its forks.
- Fixed motd updating while the game is running when bungee random-selection is enabled, but pre-selecting is disabled.
Additions:
- 1.21.1 support
- New reward events were added to config.yml. Those are not necessarily rewards, but the name of the section in
config.yml
has been kept.player-game-start
- Runs for each player when the game starts.player-early-leave
- Runs for each player who leaves before the game ends.team-win
- Runs once for the winning team at the end of the game.player-team-win
- Runs for each member of the winning team at the end of the game. This is similar toplayer-win
, however the new placeholder runs for all team members, even if these players have already left the game or were killed.game-start
- Runs once when the game starts.
- Additionally, commands defined in rewards now accept new variables:
{playerUuid}
,{game}
,{team}
and{death}
(returnstrue
/false
). Whether or not they are available depends on the context. For example,game-start
provides{game}
, but not{player}
or{playerUuid}
.
Changes:
- Support for version 1.20.3 has been removed. This should not affect anyone since this release has been replaced by 1.20.4 just in 2 days after its release, and most server software (including Paper) is not available for 1.20.3. However, if you happen to use 1.20.3, please update to at least 1.20.4.
Fixes:
- Fixed waterlogging a block does not revert the state upon rebuilding
- Fixed spectators are able to teleport to players outside of the arena
- Fixed #542
- Fixed filling bucket does not check for block breakability and does not register the blocks for rebuild
Additions and changes:
- Added 1.21 support.
Note: The Spigot team has promised to introduce possibly breaking changes to the Bukkit API before considering 1.21 stable. While this may not affect this plugin, there's a chance that we will have to provide a hotfix release. - If a bedwars admin attempts to create two overlapping arenas using
/bw admin <arena> pos1
and/bw admin <arena> pos2
commands, an error message is displayed instead of saving the coordinates. Overlapping arenas are not supported and breaks certain features of the plugin. - New placeholders have been added:
%bedwars_game_<game>_running%
,%bedwars_current_game_running%
- Returnstrue
if the game is inrunning
orgame_end_celebrating
state, otherwisefalse
%bedwars_game_<game>_waiting%
,%bedwars_current_game_waiting%
- Returnstrue
if the game is inwaiting
state, otherwisefalse
%bedwars_all_games_anyrunning%
- Returnstrue
if any game is inrunning
orgame_end_celebrating
state, otherwisefalse
%bedwars_all_games_anywaiting%
- Returnstrue
if any game is inwaiting
state, otherwisefalse
- The lobby scoreboard now supports new placeholder
%countdownwaiting%
, which, unlike%countdown%
, returns a custom message in case the coutdown is stopped (there are not enough players in the game). This message is defined in the language files under the keywaiting_placeholder_lobby_scoreboard
Fixes:
In the previous update, we introduced a new feature: the custom database driver loading. Unfortunately, due to an oversight on our part, this feature was broken, and we failed to catch this problem in time. So here is a hotfix version with actually working custom database driver loading ;)
For more about 0.2.32.x, see the previous changelog.
Additions and changes:
- Added 1.20.6 support
- The plugin now also supports Mojang-mapped platforms (like Paper and its forks) alongside with Spigot-mapped platforms. Paper's Remapper is not required for this plugin to work on Paper.
- Note: version 1.20.5 is not supported, and the support for version 1.20.0 has been dropped. The primary reason is that these updates were hotfixed by another one pretty quickly, and the way spigot handled it breaks our internal tooling
- API changes
- Two new events have been introduced:
BedWarsGameEnabledEvent
andBedWarsGameDisabledEvent
. Those events are called when the game is enabled/disabled (switched to/from the edit mode).
- Two new events have been introduced:
- Database connection
- The configuration section for database has been improved, allowing for custom JDBC drivers to be passed, and possibly more database servers to be supported (although only MySQL and MariaDB are officially supported).
- The section now looks like this. The new fields are described below the example configuration.
database: host: localhost port: 3306 db: database user: root password: secret table-prefix: bw_ type: mysql # see 1 driver: default # see 2 params: # see 3 useSSL: false # replaces database.useSSL serverTimezone: Europe/Prague # replaces database.timezone-id and database.add-timezone-to-connection-string autoReconnect: true cachePrepStmts: true prepStmtCacheSize: 250 prepStmtCacheSqlLimit: 2048
- This new field is for database type, the default value is mysql (works with both MySQL and MariaDB)
- This new field contains either default for getting the driver from JDBC or a path to the custom JDBC4-compatible database driver. The path is relative to the plugin's directory.
- This new field allows you to pass any custom parameters to JDBC, refer to the documentation of the respective driver/database software
- New placeholders have been added!
%bedwars_all_games_players%
- Returns the amount of players in all games%bedwars_all_games_maxplayers%
- Returns the sum of maximum players in all games%bedwars_game_<game>_time%
- Returns the time remaining in seconds%bedwars_game_<game>_timeformat%
- Returns the time remaining formatted asMM:SS
%bedwars_game_<game>_elapsedtime%
- Returns the time elapsed in seconds%bedwars_game_<game>_elapsedtimeformat%
- Returns the time elapsed formatted asMM:SS
%bedwars_game_<game>_team_<team name>_colored%
- Returns the team name in color%bedwars_game_<game>_team_<team name>_color%
- Returns the team color code as&<legacy color code>
%bedwars_game_<game>_team_<team name>_ingame%
- Returns whether the team is currently playing as stringyes
orno
%bedwars_game_<game>_team_<team name>_players%
- Returns the amount of players in the team%bedwars_game_<game>_team_<team name>_maxplayers%
- Returns the maximum amount of players of the team%bedwars_game_<game>_team_<team name>_bed%
- Returns whether the team is currently having valid target block as stringyes
orno
%bedwars_game_<game>_team_<team name>_bedsymbol%
- Returns the colored target block symbol used in SBW's ingame scoreboard%bedwars_game_<game>_team_<team name>_teamchests%
- Returns the number of team chests%bedwars_current_game_time%
- Returns the time remaining in seconds%bedwars_current_game_timeformat%
- Returns the time remaining formatted asMM:SS
%bedwars_current_game_elapsedtime%
- Returns the time elapsed in seconds%bedwars_current_game_elapsedtimeformat%
- Returns the time elapsed formatted asMM:SS
%bedwars_current_game_team_<team name>_colored%
- Returns the team name in color%bedwars_current_game_team_<team name>_color%
- Returns the team color code as&<legacy color code>
%bedwars_current_game_team_<team name>_ingame%
- Returns whether the team is currently playing as stringyes
orno
%bedwars_current_game_team_<team name>_players%
- Returns the amount of players in the team%bedwars_current_game_team_<team name>_maxplayers%
- Returns the maximum amount of players of the team%bedwars_current_game_team_<team name>_bed%
- Returns whether the team is currently having valid target block as stringyes
orno
%bedwars_current_game_team_<team name>_bedsymbol%
- Returns the colored target block symbol used in SBW's ingame scoreboard%bedwars_current_game_team_<team name>_teamchests%
- Returns the number of team chests%bedwars_current_team_bedsymbol%
- Returns the colored target block symbol used in SBW's ingame scoreboard (based on viewer's team)
- Updates to shop (may not be available in SBA shop yet)
currency-changer
is now more flexible, supporting different exchange rates than1 output = x input
. Simply put the amount of outputted resource before the resource name like in price. For example:- price: 1 gold currency-changer: 7 iron stack: iron_ingot;7
- Defining
price
andexecute
together is now supported, and works as excepted: a player has to pay the price to run the specific command. If you need to use console commands, new optionshop.allow-execution-of-console-commands
needs to be enabled (which is by default).
- Defining
- New config option has been added called
bungee.random-game-selection.preselect-games
, which randomly preselects the next game when the server starts or when the game has just ended (the old behaviour is to select the game with the first player). The existing optionbungee.select-random-game
has been migrated tobungee.random-game-selection.enabled
. - The default value for option
preventArenaFromGriefing
has been changed totrue
. Existing setups are not affected. With this feature enabled, anyone including admins can build in the arena only when playing or when the arena is in edit mode. - Updated translations
Some languages have been updated and I'd like to thanks to Kinoko_2K for updating Japanese and to its0y for updating Portuguese and Portuguese (Brazil). With this update, we have also updated Czech translations.
Fixes:
- Fixed issues with persisting statistics to YAML. Improved the error logging mechanism.
- Fixed accidental replacement of
spyglass
with<color>_stained_glass
in shop when autocoloring is enabled. - Fixed #532
- Fixed
spawner-disable-merge
config option being unfunctional on 1.8.8 - Fixed wrong arena showed in MOTD when there were multiple games and random selection was enabled.
Changes:
- Added 1.20.3/4 support
- Added new config options to deal with database timezone issues. Because ScreamingBedWars does not save timestamps yet to the database, these new config options are useful only when a timezone-related error prevents you from using the database.
database.add-timezone-to-connection-string
, whether the timezone-id should be sent to the database serverdatabase.timezone-id
, defaults to the timezone of the machine
- Fixed possible NPE during game start when invalid sign.yml file is loaded.
- Added error logging when the plugin is not able to read statistics of a specific player from the YAML file
- Fixed players seeing outdated statistics on holograms and leaderboards when using MySQL database with Bungee/Velocity network.
- Added new statistic-related methods to the API.
- Updated language files.
- German - GraceHopper0012, TheHolyFire
- Chinese (Simplified) - Chiloven945
- Japanese - Kinoko_2K
- Russian - ayarost
- Czech - zahadneokurkycz
- French - SienkoV3
Additions and changes:
- Minecraft 1.20.2 support.
- Since this version, our plugin now uses Takenaka instead of NMS Mapper to generate reflective NMS accessors. This means that bugs may occur. While this is unlikely to happen, be careful when updating to this version and do local testing.
- A new command
/bw cheatIn <game> <cheat> <params...>
has been added. This command is similar to/bw cheat
. However, it can be used from console and by admins not in that specific game. Currently supports these cheats:give
,kill
,destroybed
anddestroyallbeds
. - A new option to
config.yml
has been added. This option is calledbreakable.explosions
and if set totrue
, explosions will be able to destroy arena blocks listed in breakable. - Chunk tickets support has been added. Can be enabled by setting option
use-chunk-tickets-if-available
totrue
. If the server supports them, BedWars will try to get chunk ticket for every chunk in the arena, limiting possible chunk unloading problems. If any problems related to this persists, we recommend using chunk tickets manually using/forceload
command and also checking all plugins on the server. %countdown%
placeholder can now be used in the text of lobby scoreboard.- If the server is in bungee mode and has multiple arenas, you can enable
bungee.select-random-game
to randomly select an arena when the first player joins the server. - Until this version, spawners continued to countdown even if the spawners were full. Enabling
reset-full-spawner-countdown-after-picking
will stop the timer if the spawner is full. - You can now use
players-can-win-game-only-after-seconds
option to limit instant win exploits. If the game ends earlier than the specified value, everyone lose without any exception. - Updated SimpleInventories to 1.0.6.9 to supports custom potion effects in shop.yml without using bukkit item meta format.
stack:
type: potion
effects:
effect: blindness
amplifier: 2
duration: 100
ambient: true
particles: true
icon: true
- Updated default shop to use Mojang names instead of Bukkit names. As of now, this does not affect current setups, yet Bukkit names in our configuration files are now deprecated in favor of official names. While it is completely redundant, types can now be prefixed with
minecraft:
namespace. These changes to shop files should also reduce gap between SBW's shop format and SBA's shop format. - This plugin now supports proposed PaperMC changes to CraftBukkit package relocation.
Fixes:
- Fixed if two players open the team selector gui at the same time, the second player cannot use the gui if the first player has interacted with it.
- Fixed/limited flickering of the in-game scoreboard.
- Fixed fireballs being able to destroy blocks outside of the arena.
- Fixed #503
- Fixed papi hook disappears after /papi reload.
- Fixed possible NPE in shop handling if an addon replaces the shopkeeper.
Additions:
- 1.20 support
- New config option: remember-what-scoreboards-players-had-before (default: false)
- This option should be used only if you have another plugin providing global scoreboards and people stop seeing these scoreboards after the bedwars game.
- New config options: kick-players-upon-final-death.enabled (default: false) and kick-players-upon-final-death.delay (default: 5)
- These options allow you to kick player from the game if he dies without bed and you don't want him to spectate the game.
- Added support for doors as target blocks. Yeah, I'm not kidding. Doors are better than beds anyways /s
Fixes:
- Fixed possible error when spectator dies.
- Fixed standing_on mode while creating the bed worked incorrectly.
Additions:
- 1.19.4 support
- A new config option regarding this has been added: prefer-1-19-4-display-entities, if this option is enabled (which is by default) and the server is 1.19.4 and newer, the new text display entities are used instead of armor stands for non-clickable holograms. This means players in spectator mode no longer see semi-transparent armor stands. As of now, clickable holograms (statistics holograms, they are clickable because of the /bw removeholo command) still use the armor stand based holograms.
- A new option rewards.player-win-run-immediately has been added. This option works the same as rewards.player-win; however, the commands specified in the new config option are run immediately when the winner is known, not during teleporting/rebuilding process.
Changes:
- /bw dump command now accept a service which will be used to upload the final dump. As of now, there are two supported services:
- paste.gg - This is the default one and it was used before this update as well. In order to use this service, you don't have to type any extra arguments.
- pastes.dev - In order to use this service, you have to type the following command: /bw dump pastes.dev
- Updated translations
Some languages have been updated and I'd like to thanks to these guys for updating these languages:- TheHolyFire - German
- Kinoko_2K - Japanese
- WitheredWinter, WYCyangch566 - Chinese (Simplified)
- Shkiper228 - Ukrainian
- PrevikYT, notfoundname - Russian
Fixes:
- Fixed error 404 while downloading Groovy Runtime if turnOnExperimentalGroovyShop was set to true.
- Wrong usage of replaceAll methods in the code have been fixed. This could cause some config strings being handled differently if they contained specific characters. Now this is no longer an issue.
- Fixed specific client could ignore immediate respawn gamerule set by the plugin and refuse to respawn.
- Fixed placeholders handled spectators wrongly if they were just players waiting for respawn.
- Fixed GLASS_PANE material could not be automatically colored.