API Overview
SimonSays exposes a small, stable API so other plugins can read game state, react to events and register their own round tasks.
Setup
Add a dependency on SimonSays in your addon’s plugin.yml:
name: MySimonSaysAddonversion: 1.0.0main: com.example.myaddon.MyAddondepend: [SimonSays]Then grab the facade — it is ready by the time your onEnable runs (because of the
depend above):
import dev.blancocl.simonSays.api.SimonSaysAPI;
SimonSaysAPI api = SimonSaysAPI.get();SimonSaysAPI reference
// --- Arenas ---Arena getArena(String id);Collection<Arena> getArenas();
// --- Players ---Game getGame(Player player); // the game a player is in, or nullboolean isPlaying(Player player);CompletableFuture<PlayerStats> getStats(UUID uuid, String name);
// --- Tasks ---TaskRegistry getTaskRegistry();void registerTask(Task task); // survives /ss reloadvoid registerTaskProvider(Consumer<TaskRegistry> provider);
// --- Rewards ---void grantReward(Player player, String key); // a key from rewards.yml
// --- Network (BungeeCord / Velocity) ---void sendToServer(Player player, String server);void quickJoin(Player player);Next steps
- Events — react to game, round, elimination and winner events.
- Custom Tasks — build round challenges with
TaskBuilder. - Full Example — a complete addon from
plugin.ymlto listener.