Skip to content

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: MySimonSaysAddon
version: 1.0.0
main: com.example.myaddon.MyAddon
depend: [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 null
boolean isPlaying(Player player);
CompletableFuture<PlayerStats> getStats(UUID uuid, String name);
// --- Tasks ---
TaskRegistry getTaskRegistry();
void registerTask(Task task); // survives /ss reload
void 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.yml to listener.