This is a larger big fix release, with a few changes under the hood, and a few new features to boot.
I also want to thank a first time contributor Barnus30 for some work he did for this release.
Features:
- Configurable item slots for lobby, spectator, and game items (Barnus30)
Fixes:
- Block placements are now canceled for players in game (Barnus30)
- Fixed player role overlap and memory leaks (Barnus30)
- Improved support concurrent server threads which also improves plugin stability
- Updated dependencies
- Fixed an issue where players were teleported into a world before it was loaded, crashing the server
- Fixed an issue with loading bukkit materials, causing errors during tab completion
- Cached minecraft materials, items, and effects for improved speed
- Properly reset team list on game reset
- Inventories and scoreboards are now also saved for spectators
- Removed non required libraries from the jar to make it smaller (slightly)
Fixes:
- Debug menu options now work when a spectator
- Newly added seekers after being found in block hunt are no longer
invisible
- Spectators can no longer take damage and/or die
- Spectators can no longer interact with the world/players
- When making a player no longer invisible, their skin toggles will be
restored instead of all being off
- Menus will now check for permissions on click, not just on open
Features:
- 26.1 support
- PlaceholderAPI support ported from 1.x version of the plugin
- Scoreboards set prior to joining the game can now be restored upon leaving the game
- Major refactoring under the hood
Fixes:
- Block hunt collission now uses ray casinting for better hit reg
- Block hunt solidification should now trigger consistently
- Block hunt will now make "hit" noises for all players, not just the disguised - Block hunt disguises should no longer disappear
- Block hunt players can no longer see a transparent copy of other disguised players - Block hunt damage is now computed properly
- Block hunt disguised players are now given knock back when hitten to show where they are
- Map saves now use the map name in hs_<map> instead of the world name. To not collide with old saves, the world prefix was changed to hs2_. Thus, map saves will need to be remade.
- Fixed a bug where config deserialization could not load in newly added config values from new plugin versions
fixes a bug where disguises cannot be removed
- fix exceptions being thrown on teleport and damange handler for blockhunt
- added some sanity checks during shutdown
- fix blocked command handler
- fix start command (w/ custom seeker pool)
- changed seeker weight algorithm to better spread weight
The rewrite of the plugin and testing has been complete!
Please refer to the plugin description for how this pertains to you.
Changes since 2.0.0-alpha3:
- only allow glow on 1.9+
- fix item conversion on older versions
- properly remove armor on older versions
- fix end game delay always ending without delay
- allow last hider to be retaunted
- fix border immediately shrinking
- Fix the database legacy migration sql statements
- Fix setting all worlds to be autoSave false ;-;
- Added command /hs map blockhunt disguise
- Auto complete block names in blockhunt commands
- Fixed void generating chunks in non map save worlds
- Fixed onDamage having no attacker
- Fixed onDamage not respawning seeker properly
- Fixed config deserialize not handeling nulls
- Fixed config deserialize looking at more properties then it should
The entire plugin has been rewritten in kotlin from java, but still supports all versions since 1.8.x!
In terms of whats different for you? Not much! The goal of this rewrite was to make the plugin more stable, and make it easier to expand on in the future! So for yall, the commands and the permissions from the 1.x series are the same.
I also want to warn that your old configs are INCOMPATIABLE from the 1.x series of plugins, Though your database files will still work. Also this is an alpha build, I'm still working on testing and making sure everything works.
- Updated to support 1.21.x.
- Fixed the error in being spammed in the server logs about an inventory click event.
- Removed German language file as I don't speak German and am no longer in contact with its original author (contributions welcome)
Updated to use ProtocolLib 5.4.0
It really has been a few years since I last updated this huh. Don't expect constant updated and fixes on this as I have been burnt out on this plugin for a while now, but I at least wanted to get this out. Maybe Ill finish that 2.0.0 release I have had on the back burner for years now, likely not, who knows...
Bug Fixes
- Fixed NoClassDefError with java.util.Random.nextInt
- Check for null item in InventoryClickEvent
Updates
- Allow for multiple initial starting seekers
- /hs start now accepts multiple names for multiple seekers
- Added startingSeekerCount config setting (default to 1)
- Allow for hiders to respawn as a spectator instead of a seeker
- respawnAsSpectator config setting
- Added config setting, waitTillNoneLeft. If disabled the last hider left will win and the game will end then instead of waiting till the timer runs out or all hiders are found
- Added hidingTimer config option, allowing how long hiders have to hide and is no longer locked to 30 seconds
- Added endGameDelay config option, allowing how long the delay after the game ends lasts
- Added gameOverTitle config option, which toggles if the gameover message is also shown in a title
- Added dontRewardQuit config option, to now toggle for when the last seeker or hider quits instead of a proper gameover, if the game should count the game in the database
- For the items in items.yml, the number indexes now reflect the inventory index, and now the indexes 'helmet', 'chestplate', 'leggings', and 'boots' can be used to auto apply armor
- Added PlaceholderAPI placeholders %hs_seekers% and %hs_hiders% to reflect how many of each team is left in the current match
- Changed command `/hs map set border` to now only be able to enable the border, and added a new commands `/hs map unset border` to disable the border
Bug Fixes
- Added pages to spectator teleport menu, so that if there are more than 54 hiders, it doesn't crash
Support Minecraft Version 1.20
Change confusing /hs join command
- Update XSeries to 9.3.1 for 1.19.4 material support
- Update ProtocolLib bindings to 5.0.0
- Change WrappedDataWatcher check tocheck if the server versiosn is 1.19.3 or up directly instead of check if java class not found
- Change DisguiseHandler to check with EntityUseAction instead of WrappedEnumEntityUseAction
- Update /hs map status command to error if blockhunt is enabled and no blocks are passed
- Update UUID Decoder to call the java.nio.Buffer flip method directly instead of the extended ByteBuffer version on Java 9+
Bugfixes
- Seekers can no longer hold right click to easily find blockhunt hiders
- Blockhunt hiders are no longer forced to look up to drink potions
Updates
- Added regen option in config to allow game player regen
- Added dropItems option in config to allow players to drop items
- Added pling noises when blockhunt block is solidifying
Bug Fixes
- Spawn patch option added to config (read config)
- Added more bounds checks so impossible bounds can't occur
- Stop right clicking from also attacking blockhunt hiders
- Stop entity hider from trying to track temporary entities
- Fix MYSQL connection bug
- Update replace queries for mysql
- Fix worldborder command failing when it tries to access incorrect world
- Fix scoreboard timer when player leaves and count is now below minimum
- Updated dependencies
Multi Map Support Added
- Maps are now stored in the maps.yml file
- /hs map add \<name>, to add a map
- /hs map remove \<name>, to remove a map
- /hs map set \<command> \<name> \<data?>, to modify map
- /hs send \<map> to switch maps, maps are also auto switched
- Blockhunt can be toggled per map
- Blockhunt blocks can be set per map
- and much more
Permission changes
- All permissions are now hs.\<group>.\<command>
- For example /hs map set spawn, is now hs.map.set.spawn
- Many permission plugins will auto fill this for you
Technical Changes
- Major refactor when iterating with the spigot api
- Plugin should be more stable now

Bug Fixes
- Seekers can now talk
- Fixed 1.19.3 crashing on world load
Bug Fixes
- Stop Game Items From Dropping
- Fix 1.8 Void Generation
- Fix SEEKER_SPAWN is not in localization
- Shorten Collision Group Team name for compatibility reasons
- Fix respawn timer not showing
- Update XSeries to work with 1.19 Materials for Blockhunt
Additions
- Added a Seeker Lobby where seekers wait during the hiding phase
- When seekers or hiders are killed and become seekers, they can also be set to wait a delayed respawn here
- The delayed respawn is toggable and the time to wait is also customizable
- You can now set how long it takes blocks to solidify
Bug Fixes
- 1.8 Board fixes
- 1.8 Failed to Select Seeker fix
Changes
- Adds blockhunt into the game
- Please enable blockhunt in the config.yml file
- Fixes sqlite on 1.8 servers from plugin version 1.5.x
Sadly blockhunt does currently not work on 1.8.x, but hopefully that will be changed in the future.
Normal hide and seek still functions as intended.
Inventory can now be restored upon leaving the game.
- When any player joins a game their inventory is cleared
- If you enable Inventory saving, that cleared inventory is restored upon leave
Additions
- Added new debug menu [Admin]
- /hs debug
- Allows testing of switching to any team, testing death, leaving, and teleports
- Better Spectator
- Spectators are no longer in Spectator mode, but in Adventure mode just like big servers
- Spectators are still invisible and cant interact
- New spectator compass to teleport to other players
- Spectators can toggle flight
- Map saves are now optional
- Custom placeholders via placeholder api
- leaveOnEnd added to config
- Players can now be kicked out at the end of the game instead of going back to the lobby
- - MySQL database support
- Additional leader board states
- Hider countdown can now be displayed in the actionbar or title
Bug Fixes
- Map save is no longer broken on windows servers
- Hiders no longer win upon all seakers leaving
- Special characters are no longer removed from config files
- Scoreboard titles now follow leaderboard.yml
- Fixed SQL Queries
- Improved Damage Event
- Added two clickable items in the game lobby
- Bed: Leaves the lobby
- Clock: Starts the game for those who have the permission
- You can change what these items are, and you can also disable them
- New configurable leave system (preparing for multi arena support)
- If you are running a bungeecord or velocity server, when someone leaves the lobby, you can now send them to a hub server instead of a teleport location.
- Added blockedInteracts section to config. Server owners can now block block interactions while people are in game.
- Players not in game are no longer affected by plugin's custom EntityDamageEvent
- 1.8 SUPPORT ADDED
- Every Minecraft version from 1.8.x to 1.18.x now works with the plugin.
- Glow powerup does not work on 1.8, since the glow effect wasn't added until 1.9.
- Seeker ping noise changed to work on all versions, not just 1.14.x and up
- Custom Scoreboards
- You can now customize what shows up on the scoreboards in the lobby, and while playing the game.
- New configuration file, `leaderboard.yml`.
- New configuration settings
- Seeker ping (the noise that plays when a seeker gets closer to you), can now be changed on what distance it plays
- Can be turned off completely
- Bug Fixes
- Players no longer get teleported out of the game if they die incorrectly
- Config typo fixed from "local" to "locale"
- Glow effect no longer randomly terminates mid countdown
- Sound packets are now more reliable
- /hs savemap will now copy the selection you set, and not a selection 16 times smaller
- Wins database now works on servers that don't have newer JDBC drivers
- Fixed memory leaks with storing persistent player data
- Other
- Non persistent player data is now index by UUID and not player names. Persistent data was already index by UUID.
- Gameplay changes
- Spectators can no longer talk in game. Now there is spectator chat.
- Game bounds are now enforced and players cannot leave them
- Spectator title now shows if you join as a spectator
- /hs wins \<player> will tell the players total wins, hider wins, seeker wins, and total games played
- /hs top \<page> will show global leader board
- Bug Fixes
- Seekers can no longer be taunted (oops)
- Bows and Arrows should actually work now
- Fixed possible NULL POINTER EXCEPTION on taunts
- Players should no longer be teleported back to main map after dying on plugin fault. It is now caught in an exception.
- Permissions
- hideandseek.leavebounds - Allows players to leave the bounds set by /hs setbounds while a game is in session.
- Technical Information
- UUIDs are now fetched from the Mojang API and Cached
- SQLite Database is stored in plugin folder called database.db
- Lots of refactoring
- Copyright and License now shown in java file headers
- Tab completion for commands now filters out commands that are that whats being typed.
- Fixed FILE NOT FOUND EXCEPTION from being thrown
- Added 1.14+ support

- Gameplay Changes
- Added /hs bounds command. Specify the bound of the hide and seek map to make map saves faster, and generate void outside the duplicated game map world.
- Scoreboard can now be toggled to show the taunt timer. Scoreboard now also shows if a glow powerup is active.
- You can now choose if you want to kill to "find hiders", or if seekers only have to tag them.
- Items.yml config file added. You can now set what items seekers and hiders get if kill to "find" is enabled. You can also specify what potion effects players get.
- Technical Changes
- Config files now will auto format them selves, and fix any invalid inputs. An incorrectly formatted yml file will still cause errors.
- Fixed Null Pointer Exceptions being thrown when trying to set the game to a separate world without restarting the server.
- Added german language support.
- Many bug fixes
- Code refactoring and optimization
Removed beta exp bar time counter. Forgot to remove it after adding scoreboards.
What was added
- Map Saves
- Map is now rolled back after every game
- /hs savemap
- Lobby System
- Players must now join the lobby to play.
- /hs join - to join
- /hs leave - to leave
- /hs start - to start once in a lobby
- Players are no longer affected by the plugin, at all, if not in lobby or in game.
- Fixed PVP Mechanics
- Issues with multiverse and pvp fixed (hopefully)
- Friendly fire can no longer be spoofed or tricked.
- Scoreboards
- Lobby scoreboard telling:
- Amount of players
- Seekers and Hider % change
- Game scoreboard telling:
- What team you are on
- Time left
- Number of players in each team
- Spectating
- You can now run /hs join when a game is active to spectate.
- Localization
- You can now change the plugin into different languages, or just change what it says.
- You can style the messages to!
- New Configuration
- NEW CONFIG FILE, DELETE OLD ONE IF UPGRADING FROM 1.2.0 OR PRIOR
- added announceMessagesToNonPlayers
- added gameLength
- added nametagsVisible
- added prefix
- You can now modify message prefixes (not localization.yml)
- config can now be reloaded without restarting server (not localization.yml)
- Permissions
- The plugin can now be setup to work with permission plugins such as LuckPerms.
- Tab Completion
- Now tab complete options to help run plugin commands.
- Lots and lots of bug fixes
Glow powerup is now only visible to hiders.
Set seeker command merged in to start command.
Both world border commands merged into one.
Added tab autocomplete for plugin commands
Give Seeker Items didnt work on first death! Fixed now and removed broken version download.
Instead of giving max regen and saturation, disables hunder loss though Bukkit Bindings and same for Health when not in the playing state.
Download Removed due to breaking gamemode
UPDATE 1.1.0
Added glow powerup for hiders. On use, shows all hiders where seekers are for 30 seconds.
Changed backend logic to switch to Bukkit, Spigot, and ProtocolLib bindings instead of dispatching native minecraft server commands.
Refactored server code.
Bug fixes.