7.2 KiB
The Herobrine!
Remake of HiveMC's "The Herobrine!" v2 for Purpur 1.19.4, using MyWorlds for world management.
Current version: 1.6.3 (changelog).
Requirements
- Purpur
1.19.4 ProtocolLibMyWorlds- Redis/KeyDB (stores kit selections)
- MariaDB/MySQL (stores player statistics)
Optional, integrated when present: Chat-OG, Scoreboard-OG 1.2.0 or newer, IllegalStack-OG.
Scoreboards
Every lobby player gets a sidebar in the Scoreboard-OG network board's look (♥ TheHerobrine-OG ♥ title, blank-separated blocks, networkWeb footer): the lobby player count, the countdown, and their points, shard captures, kills and deaths while waiting, then their role, the map, shards captured, the shard's status and the survivors alive during the round. Every line stays within 16 legacy characters so 1.8 clients see it whole. With Scoreboard-OG 1.2.0 or newer installed, the sidebar is drawn through Scoreboard-OG's sidebar API, so the network board comes back on its own the moment the player leaves the lobby and the player's /togglescoreboard preference is respected. Without it (or with an older Scoreboard-OG), the bundled ScoreboardLib board is used as before and the main scoreboard is restored on leave. Nametag colours are carried by a per-player Bukkit scoreboard either way.
Quick Setup
- Install the required plugins and configure your database connections in
config.yml. The bundled file ships^{NAME}placeholders that TrueOG's deployment fills in; on a manual install replace them with real values or the plugin disables itself at startup. - Drop map world folders into your
maps/directory (or whatever path is set asmapBaseinconfig.yml). - Each map needs a
mapdata.yamlfile — use/hbsetspawnto place all required points and the wizard will generate it for you. - Create a
maps/HB1_Hubworld folder to serve as each lobby's waiting area (thehub:field inlobbies/default.yamlnames this folder).maps/is resolved against the server root, next toworld/andplugins/, not inside the plugin folder. - Create a lobby config file at
maps/<config-id>.yamllisting which maps belong to it. - Run
/hbcreatelobby <config-id>to bring a lobby online.
If anything is missing or misconfigured, the plugin will tell you exactly what needs to be fixed rather than starting in a broken state.
Lobby Config Format
Create a file at maps/<config-id>.yaml:
maps:
- map1
- map2
- map3
Each map listed must have a folder in maps/ with a valid mapdata.yaml inside.
Map Data Format
mapdata.yaml is generated automatically by /hbsetspawn, but here is what it looks like:
name: Map 1
builder: Good Builder
shardMin: -100
shardMax: 1000
datapoints:
- type: SURVIVOR_SPAWN
x: -2
y: 156
z: 925
- type: HEROBRINE_SPAWN
x: 110
y: 140
z: 854
- type: ALTER
x: -6
y: 157
z: 925
- type: SHARD_SPAWN
x: 110
y: 149
z: 834
Join Signs
Admins can place physical signs that players right-click to join a game. The sign updates itself with the lobby name, current status, and player counts; right-clicking joins the best joinable lobby for that config.
To set one up:
- Find the lobby config ID: the
id:field of a file inplugins/TheHerobrine-OG/lobbies/(the bundledlobbies/default.yamlon a fresh install). - Place a sign in a persistent world such as the server hub. The plugin warns if you place one in a managed lobby world, because those worlds are deleted on shutdown and take the sign with them.
- Write
[Herobrine]on the first line and the lobby config ID on the second line. Requires thetheherobrine.signs.createpermission. - The sign confirms registration and redraws with live data shortly after.
Breaking a registered sign requires theherobrine.signs.destroy and unregisters it; everyone else is blocked from breaking it.
Placeholders
Registered through Utilities-OG as MiniPlaceholders, resolved for the viewing player, and updated the moment the underlying value changes.
| Placeholder | Value |
|---|---|
<hb_score> |
Total points, including points earned in the current round |
<hb_rank> |
Colored rank name for that score (Spirit through Divine); Death Bringer for the top player once they also reach Divine (300,000) |
<hb_class> |
&4THE HEROBRINE while the player is the Herobrine of a live round, otherwise empty |
Commands
/v and /vote are claimed for map voting before any other plugin sees them, for anyone who is in a lobby or standing in a lobby world, so VotingPlugin cannot take the /vote label away from map voting. Everywhere else /vote behaves normally. Neither label is declared in plugin.yml, so the plugin never competes for them.
/hub, /lobby and /spawn are claimed the same way inside lobby worlds. Splegg-OG and BuildBattle-OG register /hub too, and Bukkit gives the bare label to whichever plugin loads first, so without the claim a Herobrine player's /hub could run another minigame's command; Spawn-OG's /spawn would teleport them out through its own warmup. Outside lobby worlds /hub and /lobby still return the player to their pre-join spot or main spawn.
Player Commands
| Command | Description |
|---|---|
/vote [map] or /v [map] |
Vote for a map during the voting phase |
/hbjoin <lobby> |
Join or spectate a lobby by ID (HB1, or just 1) |
/hub, /lobby, /spawn |
Leave your current lobby and return to where you came from, or to the main world |
Admin Commands
| Command | Permission | Description |
|---|---|---|
/hbcreatelobby <config-id> |
theherobrine.command.createlobby |
Start a new lobby |
/hbdeletelobby <lobby-id> |
theherobrine.command.deletelobby |
Stop and remove a lobby |
/hbreloadconfigs |
theherobrine.command.reloadconfigs |
Reload all lobby config files |
/hbsetherobrine <player> |
theherobrine.command.setherobrine |
Force a player to be Herobrine |
/hbforcestart [time] |
theherobrine.command.forcestart |
Force the game to start |
/hbpausetimer |
theherobrine.command.pausetimer |
Pause the start countdown |
/hbdropshard |
theherobrine.command.dropshard |
Force the shard carrier to drop the shard |
/hbspectate |
theherobrine.command.spectate |
Toggle spectator mode while in the lobby |
/hbsetspawn <type> [index] [mapName] |
theherobrine.command.setspawn |
Place a map datapoint at your location |
Permissions
Signs
| Permission | Default | Description |
|---|---|---|
theherobrine.signs.create |
OP | Place [Herobrine] join signs |
theherobrine.signs.destroy |
OP | Break [Herobrine] join signs |
Kits
Kit permissions can be required or left open in config.yml.
| Kit | Permission |
|---|---|
| Archer | theherobrine.kit.classic.archer |
| Priest | theherobrine.kit.classic.priest |
| Scout | theherobrine.kit.classic.scout |
| Wizard | theherobrine.kit.classic.wizard |
| Mage | theherobrine.kit.unlockable.mage |
| Paladin | theherobrine.kit.unlockable.paladin |
| Sorcerer | theherobrine.kit.unlockable.sorcerer |
Other
| Permission | Description |
|---|---|
theherobrine.overfill |
Join a lobby that is already full |