Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Write plugins as JSON rules instead of Java. One engine runs the spec, so rules keep working when the server updates.
One more condition: "It is the player's first visit" (player.first_time).
It is the example everyone gives first, and the grammar could not write it: when a player joins for the first time, give them a diamond and send a welcome message. The bundled bienvenue.json example now does exactly that.
- The grammar is unchanged:
specVersionis still 1. A condition is added, nothing is removed, and a spec written for 1.0.x runs as is. A spec that uses the new condition on a 1.0.x engine is refused as a whole, like any spec naming an unknown entry: that is the intended behaviour, never half a plugin. - The engine still stores nothing about anyone. The condition reads what the server already knows by itself (
OfflinePlayer#hasPlayedBefore(), its own player data file): no database, no file, no counter, no outbound connection. - It is true for the player's whole first session, until the server's first save, not only at the instant of joining. Under "A player joins" it is exactly their first join; under "a block is broken" it is their first minutes.
- Same Paper versions as 1.0.1 (1.21.4 to 1.21.11, 26.1.2, 26.2), same Java 21.
Catalogue: https://nimblock.com/spec/catalogue-1.json. Grammar: https://nimblock.com/en/grammar.
Platforms
Paper
1.21.4–26.2