From 1e922c93a85edb5278e7c935c12e25dbd71aab8e Mon Sep 17 00:00:00 2001 From: Mathieu Strypsteen Date: Sat, 14 Sep 2024 22:35:55 +0200 Subject: [PATCH] Rework events --- .../java/gent/zeus/mc13dtl/events/Event.java | 31 ++++++++++++++++--- .../mc13dtl/events/RandomEventExecutor.java | 16 +++++----- .../mc13dtl/events/RandomEventRunner.java | 10 ++---- .../mc13dtl/events/catalog/TestEvent.java | 25 +++++---------- 4 files changed, 46 insertions(+), 36 deletions(-) diff --git a/src/main/java/gent/zeus/mc13dtl/events/Event.java b/src/main/java/gent/zeus/mc13dtl/events/Event.java index bb15f77..7cc6c05 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/Event.java +++ b/src/main/java/gent/zeus/mc13dtl/events/Event.java @@ -1,13 +1,34 @@ package gent.zeus.mc13dtl.events; +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; import org.bukkit.entity.Player; +import org.bukkit.scoreboard.Team; -public interface Event { - public String getMessage(); +import net.md_5.bungee.api.ChatColor; - public int getScore(); +public abstract class Event { + protected Team team; - public int getDifficultyThreshold(); + public Event(Team team) { + this.team = team; + for (Player player : getPlayers()) { + player.sendMessage(ChatColor.GRAY + "" + ChatColor.ITALIC + getMessage()); + } + } - public void run(Player player); + protected List getPlayers() { + List players = new ArrayList<>(); + for (String entry : team.getEntries()) { + Player player = Bukkit.getPlayer(entry); + if (player != null) { + players.add(player); + } + } + return players; + } + + protected abstract String getMessage(); } diff --git a/src/main/java/gent/zeus/mc13dtl/events/RandomEventExecutor.java b/src/main/java/gent/zeus/mc13dtl/events/RandomEventExecutor.java index f1ddc3e..12aa2eb 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/RandomEventExecutor.java +++ b/src/main/java/gent/zeus/mc13dtl/events/RandomEventExecutor.java @@ -1,20 +1,22 @@ package gent.zeus.mc13dtl.events; -import org.bukkit.entity.Player; +import org.bukkit.scoreboard.Team; + import java.util.List; import java.util.Random; import java.util.Arrays; import gent.zeus.mc13dtl.events.catalog.TestEvent; -import net.md_5.bungee.api.ChatColor; public class RandomEventExecutor { - static List events = Arrays.asList(new TestEvent()); + static List> events = Arrays.asList(TestEvent.class); - public static void executeRandomEvent(Player player) { + public static void executeRandomEvent(Team team) { Random random = new Random(); int i = random.nextInt(events.size()); - Event event = events.get(i); - player.sendMessage(ChatColor.ITALIC + event.getMessage()); - event.run(player); + Class event = events.get(i); + try { + event.getConstructor(Team.class).newInstance(team); + } catch (Exception e) { + } } } diff --git a/src/main/java/gent/zeus/mc13dtl/events/RandomEventRunner.java b/src/main/java/gent/zeus/mc13dtl/events/RandomEventRunner.java index 81acc3d..c3438de 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/RandomEventRunner.java +++ b/src/main/java/gent/zeus/mc13dtl/events/RandomEventRunner.java @@ -2,9 +2,9 @@ package gent.zeus.mc13dtl.events; import org.bukkit.Bukkit; import org.bukkit.NamespacedKey; -import org.bukkit.OfflinePlayer; import org.bukkit.World; import org.bukkit.persistence.PersistentDataType; +import org.bukkit.scoreboard.Team; import gent.zeus.mc13dtl.MC13DTL; @@ -16,12 +16,8 @@ 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) { - for (OfflinePlayer i : Bukkit.getOfflinePlayers()) { - if (i.isOnline()) { - RandomEventExecutor.executeRandomEvent(i.getPlayer()); - } else { - // TODO: Punishment - } + for (Team i : MC13DTL.scoreboard.getTeams()) { + RandomEventExecutor.executeRandomEvent(i); } world.getPersistentDataContainer().set(eventKey, PersistentDataType.LONG, day); } 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 cb1f440..0fd095f 100644 --- a/src/main/java/gent/zeus/mc13dtl/events/catalog/TestEvent.java +++ b/src/main/java/gent/zeus/mc13dtl/events/catalog/TestEvent.java @@ -1,26 +1,17 @@ package gent.zeus.mc13dtl.events.catalog; -import org.bukkit.entity.Player; +import org.bukkit.scoreboard.Team; import gent.zeus.mc13dtl.events.Event; -public class TestEvent implements Event { +public class TestEvent extends Event { + public TestEvent(Team team) { + super(team); + System.err.println("test"); + } + @Override - public String getMessage() { + protected String getMessage() { return "test"; } - - @Override - public int getScore() { - return 1; - } - - @Override - public int getDifficultyThreshold() { - return 0; - } - - @Override - public void run(Player player) { - } }