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; 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) {} public record CreatedReport(String reporter, String reported, String reason) {}
private final CreatedReport report; private final CreatedReport report;

View File

@@ -2,21 +2,9 @@ package eu.mhsl.craftattack.spawn.core.event;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.event.Event; import org.bukkit.event.Event;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
public abstract class SpawnEvent extends Event { public abstract class SpawnEvent {
private static final HandlerList HANDLERS = new HandlerList(); public static void call(Event event) {
@Override
public @NotNull HandlerList getHandlers() {
return HANDLERS;
}
public static void call(SpawnEvent event) {
Bukkit.getPluginManager().callEvent(event); Bukkit.getPluginManager().callEvent(event);
} }
public SpawnEvent(boolean isAsync) {
super(isAsync);
}
} }

View File

@@ -1,8 +1,22 @@
package eu.mhsl.craftattack.spawn.core.event; 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; 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) {} public record CreatedStrike(UUID playerToStrike) {}
private final CreatedStrike strike; 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(); return response.data();
} }
@Override public void profileUpdated(UUID uuid) {
public void httpApi(HttpServer.ApiBuilder apiBuilder) { Main.instance().getLogger().info(String.format("API Triggered Profile update for %s", uuid));
record User(UUID user) { Player player = Bukkit.getPlayer(uuid);
}
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) { if(player != null) {
try { try {
this.fullIntegrityCheck(player); this.fullIntegrityCheck(player);
@@ -136,6 +132,14 @@ public class Whitelist extends Appliance {
e.getDisconnectScreen().applyKick(player); 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; return HttpServer.nothing;
}); });
} }
@@ -144,7 +148,8 @@ public class Whitelist extends Appliance {
@NotNull @NotNull
protected List<Listener> listeners() { protected List<Listener> listeners() {
return List.of( return List.of(
new PlayerJoinListener() new PlayerJoinListener(),
new StrikeUpdateListener()
); );
} }
} }