diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/ReportCreatedEvent.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/ReportCreatedEvent.java index d0d40cb..777c02c 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/ReportCreatedEvent.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/ReportCreatedEvent.java @@ -1,6 +1,20 @@ package eu.mhsl.craftattack.spawn.core.event; -public class ReportCreatedEvent extends SpawnEvent { +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; + +public class ReportCreatedEvent extends Event { + private static final HandlerList HANDLERS = new HandlerList(); + @Override + public @NotNull HandlerList getHandlers() { + return HANDLERS; + } + + public static HandlerList getHandlerList() { + return HANDLERS; + } + public record CreatedReport(String reporter, String reported, String reason) {} private final CreatedReport report; diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/SpawnEvent.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/SpawnEvent.java index 3d55016..a0f34a5 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/SpawnEvent.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/SpawnEvent.java @@ -2,21 +2,9 @@ package eu.mhsl.craftattack.spawn.core.event; import org.bukkit.Bukkit; import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; -import org.jetbrains.annotations.NotNull; -public abstract class SpawnEvent extends Event { - private static final HandlerList HANDLERS = new HandlerList(); - @Override - public @NotNull HandlerList getHandlers() { - return HANDLERS; - } - - public static void call(SpawnEvent event) { +public abstract class SpawnEvent { + public static void call(Event event) { Bukkit.getPluginManager().callEvent(event); } - - public SpawnEvent(boolean isAsync) { - super(isAsync); - } } diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/StrikeCreatedEvent.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/StrikeCreatedEvent.java index de8dbe3..889deaf 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/StrikeCreatedEvent.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/event/StrikeCreatedEvent.java @@ -1,8 +1,22 @@ package eu.mhsl.craftattack.spawn.core.event; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; + import java.util.UUID; -public class StrikeCreatedEvent extends SpawnEvent { +public class StrikeCreatedEvent extends Event { + private static final HandlerList HANDLERS = new HandlerList(); + @Override + public @NotNull HandlerList getHandlers() { + return HANDLERS; + } + + public static HandlerList getHandlerList() { + return HANDLERS; + } + public record CreatedStrike(UUID playerToStrike) {} private final CreatedStrike strike; diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/StrikeUpdateListener.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/StrikeUpdateListener.java new file mode 100644 index 0000000..b9bae4b --- /dev/null +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/StrikeUpdateListener.java @@ -0,0 +1,12 @@ +package eu.mhsl.craftattack.spawn.craftattack.appliances.tooling.whitelist; + +import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; +import eu.mhsl.craftattack.spawn.core.event.StrikeCreatedEvent; +import org.bukkit.event.EventHandler; + +public class StrikeUpdateListener extends ApplianceListener { + @EventHandler + public void onStrikeUpdate(StrikeCreatedEvent event) { + this.getAppliance().profileUpdated(event.getStrike().playerToStrike()); + } +} diff --git a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java index 0e5d690..f903804 100644 --- a/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java +++ b/craftattack/src/main/java/eu/mhsl/craftattack/spawn/craftattack/appliances/tooling/whitelist/Whitelist.java @@ -122,20 +122,24 @@ public class Whitelist extends Appliance { return response.data(); } + public void profileUpdated(UUID uuid) { + Main.instance().getLogger().info(String.format("API Triggered Profile update for %s", uuid)); + Player player = Bukkit.getPlayer(uuid); + if(player != null) { + try { + this.fullIntegrityCheck(player); + } catch(DisconnectInfo.Throwable e) { + e.getDisconnectScreen().applyKick(player); + } + } + } + @Override public void httpApi(HttpServer.ApiBuilder apiBuilder) { record User(UUID user) { } apiBuilder.post("update", User.class, (user, request) -> { - Main.instance().getLogger().info(String.format("API Triggered Profile update for %s", user.user)); - Player player = Bukkit.getPlayer(user.user); - if(player != null) { - try { - this.fullIntegrityCheck(player); - } catch(DisconnectInfo.Throwable e) { - e.getDisconnectScreen().applyKick(player); - } - } + this.profileUpdated(user.user); return HttpServer.nothing; }); } @@ -144,7 +148,8 @@ public class Whitelist extends Appliance { @NotNull protected List listeners() { return List.of( - new PlayerJoinListener() + new PlayerJoinListener(), + new StrikeUpdateListener() ); } }