diff --git a/src/main/java/gent/zeus/mc13dtl/events/Event.java b/src/main/java/gent/zeus/mc13dtl/events/Event.java index 429c1a2..c21fffa 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/Event.java +++ b/src/main/java/gent/zeus/mc13dtl/events/Event.java @@ -7,7 +7,6 @@ import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; import org.bukkit.event.entity.PlayerDeathEvent; -import org.bukkit.event.player.PlayerQuitEvent; import org.bukkit.scoreboard.Team; import gent.zeus.mc13dtl.MC13DTL; @@ -19,6 +18,7 @@ public abstract class Event implements Listener { this.team = team; MC13DTL.board.sendMessageToTeam(team, Component.text(getMessage()).color(NamedTextColor.GRAY).decorate(TextDecoration.ITALIC)); MC13DTL.instance.getServer().getPluginManager().registerEvents(this, MC13DTL.instance); + RandomEventExecutor.currentEvents.add(this); if (MC13DTL.board.getPlayers(team).isEmpty()) { eventFailed(); } @@ -26,6 +26,7 @@ public abstract class Event implements Listener { private void eventFinished() { HandlerList.unregisterAll(this); + RandomEventExecutor.currentEvents.remove(this); } protected void eventSuccess() { @@ -46,13 +47,6 @@ public abstract class Event implements Listener { } } - @EventHandler - public void onPlayerDeath(PlayerQuitEvent event) { - if (MC13DTL.board.getPlayers(team).contains(event.getPlayer())) { - eventFailed(); - } - } - protected abstract String getMessage(); protected abstract int scoreAwarded(); diff --git a/src/main/java/gent/zeus/mc13dtl/events/RandomEventExecutor.java b/src/main/java/gent/zeus/mc13dtl/events/RandomEventExecutor.java index 12aa2eb..00e3b60 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/RandomEventExecutor.java +++ b/src/main/java/gent/zeus/mc13dtl/events/RandomEventExecutor.java @@ -3,12 +3,14 @@ package gent.zeus.mc13dtl.events; import org.bukkit.scoreboard.Team; import java.util.List; +import java.util.ArrayList; import java.util.Random; import java.util.Arrays; import gent.zeus.mc13dtl.events.catalog.TestEvent; public class RandomEventExecutor { static List> events = Arrays.asList(TestEvent.class); + static List currentEvents = new ArrayList<>(); public static void executeRandomEvent(Team team) { Random random = new Random(); diff --git a/src/main/java/gent/zeus/mc13dtl/events/RandomEventRunner.java b/src/main/java/gent/zeus/mc13dtl/events/RandomEventRunner.java index 4baace8..7defb20 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/RandomEventRunner.java +++ b/src/main/java/gent/zeus/mc13dtl/events/RandomEventRunner.java @@ -16,6 +16,10 @@ public class RandomEventRunner implements Runnable { long lastRunDay = world.getPersistentDataContainer().get(eventKey, PersistentDataType.LONG); long day = Bukkit.getWorld("world").getFullTime() / 24000; if (day > lastRunDay && Bukkit.getWorld("world").getTime() >= 14000) { + while (!RandomEventExecutor.currentEvents.isEmpty()) { + Event event = RandomEventExecutor.currentEvents.get(0); + event.eventFailed(); + } for (Team i : MC13DTL.board.getTeams()) { RandomEventExecutor.executeRandomEvent(i); } diff --git a/src/main/java/gent/zeus/mc13dtl/events/catalog/TestEvent.java b/src/main/java/gent/zeus/mc13dtl/events/catalog/TestEvent.java index 1d7a8f5..8dfcd85 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/catalog/TestEvent.java +++ b/src/main/java/gent/zeus/mc13dtl/events/catalog/TestEvent.java @@ -26,6 +26,6 @@ public class TestEvent extends Event { @Override protected int scoreAwarded() { - return 5; + return 20; } } diff --git a/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateCommand.java b/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateCommand.java index 94df18f..35edf29 100644 --- a/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateCommand.java +++ b/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateCommand.java @@ -9,7 +9,8 @@ import org.bukkit.persistence.PersistentDataType; import gent.zeus.mc13dtl.MC13DTL; import io.papermc.paper.command.brigadier.BasicCommand; import io.papermc.paper.command.brigadier.CommandSourceStack; -import net.md_5.bungee.api.ChatColor; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; public class GameStateCommand implements BasicCommand { @Override @@ -17,7 +18,7 @@ public class GameStateCommand implements BasicCommand { World world = Bukkit.getWorld("world"); NamespacedKey key = new NamespacedKey(MC13DTL.instance, "game-state"); if (!world.getPersistentDataContainer().get(key, PersistentDataType.STRING).equals("lobby")) { - stack.getSender().sendMessage(ChatColor.RED + "Game is already active"); + stack.getSender().sendMessage(Component.text("Game is already active").color(NamedTextColor.RED)); return; } world.getPersistentDataContainer().set(key, PersistentDataType.STRING, "active"); diff --git a/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateUtil.java b/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateUtil.java index 1131671..e281887 100644 --- a/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateUtil.java +++ b/src/main/java/gent/zeus/mc13dtl/gamestate/GameStateUtil.java @@ -11,7 +11,8 @@ import org.bukkit.persistence.PersistentDataType; import org.bukkit.potion.PotionEffect; import gent.zeus.mc13dtl.MC13DTL; -import net.md_5.bungee.api.ChatColor; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; public class GameStateUtil { static void loadWorld(World world) { @@ -41,7 +42,7 @@ public class GameStateUtil { if (gameState.equals("lobby")) { player.setGameMode(GameMode.ADVENTURE); player.setInvulnerable(true); - player.sendMessage(ChatColor.DARK_PURPLE + "Game hasn't started yet, please wait..."); + player.sendMessage(Component.text("Game hasn't started yet, please wait...").color(NamedTextColor.DARK_PURPLE)); } if (gameState.equals("active")) { NamespacedKey processedKey = new NamespacedKey(MC13DTL.instance, "player-processed"); @@ -51,7 +52,7 @@ public class GameStateUtil { } player.setGameMode(GameMode.SURVIVAL); player.setInvulnerable(false); - player.sendMessage(ChatColor.DARK_PURPLE + "Game is active, have fun!"); + player.sendMessage(Component.text("Game is active, have fun!").color(NamedTextColor.DARK_PURPLE)); } }