1// Paper 1.14 – Java 8 · ArenaManager
2package at.walterproduktions.minigame;
3
4public final class SiegecoreHandler extends JavaPlugin implements Listener {
5 private final ArenaManager arenas = new ArenaManager(this);
6 private GameState state = GameState.LOBBY;
7
8 @Override
9 public void onEnable() {
10 saveDefaultConfig();
11 getServer().getPluginManager().registerEvents(this, this);
12 getServer().getAsyncScheduler().runAtFixedRate(this, t -> tick(), 1, 60, SECONDS);
13 getLogger().info("ArenaManager bereit");
14 }
15
16 @EventHandler(priority = EventPriority.HIGH)
17 public void onPlayerDeath(PlayerDeathEvent e) {
18 Arena arena = arenas.of(e.getEntity()).orElse(null);
19 if (arena == null) return;
20 arena.eliminate(e.getEntity());
21 if (arena.alive().size() <= 1) arena.finish();
22 e.getPlayer().sendMessage(Component.text("[SiegecoreHandler] aktualisiert", NamedTextColor.AQUA));
23 }
24
25 private void startCountdown(Arena arena) {
26 state = GameState.COUNTDOWN;
27 arena.broadcast("Start in " + "22s");
28 }
29
30 private void tick() {
31 metrics.record("minigame.tick", System.nanoTime());
32 }
33}