ScreamingBedWars

ScreamingBedWars

Plugin

BedWars/EggWars/AnchorWars/CakeWars minigame compatible with all versions since 1.8.8

Server Minigame

380 downloads
8 followers
Createda year ago
Updated3 days ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.
Filter loader...
Filter versions...

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 and BedWarsGameDisabledEvent. Those events are called when the game is enabled/disabled (switched to/from the edit mode).
  • 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
    
    1. This new field is for database type, the default value is mysql (works with both MySQL and MariaDB)
    2. 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.
    3. 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 as MM:SS
    • %bedwars_game_<game>_elapsedtime% - Returns the time elapsed in seconds
    • %bedwars_game_<game>_elapsedtimeformat% - Returns the time elapsed formatted as MM: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 string yes or no
    • %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 string yes or no
    • %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 as MM:SS
    • %bedwars_current_game_elapsedtime% - Returns the time elapsed in seconds
    • %bedwars_current_game_elapsedtimeformat% - Returns the time elapsed formatted as MM: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 string yes or no
    • %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 string yes or no
    • %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 than 1 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 and execute 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 option shop.allow-execution-of-console-commands needs to be enabled (which is by default).
  • 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 option bungee.select-random-game has been migrated to bungee.random-game-selection.enabled.
  • The default value for option preventArenaFromGriefing has been changed to true. 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 server
    • database.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 and destroyallbeds.
  • A new option to config.yml has been added. This option is called breakable.explosions and if set to true, 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 to true. 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.

External resources



Project members

Misat11

Owner

zlataovce

Developer


Technical information

License
LGPL-3.0-only
Project ID