refactored event hierarchy; replaced SpawnEvent with direct Event implementation, added StrikeUpdateListener and refactored whitelist profile update logic

This commit is contained in:
2025-11-16 12:02:49 +01:00
parent 7a2b9b9763
commit ba2befb467
5 changed files with 59 additions and 26 deletions

View File

@@ -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;

View File

@@ -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);
}
}

View File

@@ -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;

View File

@@ -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<Whitelist> {
@EventHandler
public void onStrikeUpdate(StrikeCreatedEvent event) {
this.getAppliance().profileUpdated(event.getStrike().playerToStrike());
}
}

View File

@@ -122,13 +122,9 @@ public class Whitelist extends Appliance {
return response.data();
}
@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);
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);
@@ -136,6 +132,14 @@ public class Whitelist extends Appliance {
e.getDisconnectScreen().applyKick(player);
}
}
}
@Override
public void httpApi(HttpServer.ApiBuilder apiBuilder) {
record User(UUID user) {
}
apiBuilder.post("update", User.class, (user, request) -> {
this.profileUpdated(user.user);
return HttpServer.nothing;
});
}
@@ -144,7 +148,8 @@ public class Whitelist extends Appliance {
@NotNull
protected List<Listener> listeners() {
return List.of(
new PlayerJoinListener()
new PlayerJoinListener(),
new StrikeUpdateListener()
);
}
}