diff --git a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java index 502f2f4..ee9eebf 100644 --- a/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java +++ b/core/src/main/java/eu/mhsl/craftattack/spawn/core/api/client/HttpRepository.java @@ -45,7 +45,7 @@ public abstract class HttpRepository extends Repository { .POST(HttpRequest.BodyPublishers.ofString(this.gson.toJson(data))) .build(); - return this.execute(request, outputType); + return this.execute(request, outputType, data); } protected ReqResp put(String command, TInput data, Class outputType) { @@ -58,7 +58,7 @@ public abstract class HttpRepository extends Repository { .PUT(HttpRequest.BodyPublishers.ofString(this.gson.toJson(data))) .build(); - return this.execute(request, outputType); + return this.execute(request, outputType, data); } protected ReqResp get(String command, Class outputType) { @@ -71,7 +71,7 @@ public abstract class HttpRepository extends Repository { .GET() .build(); - return this.execute(request, outputType); + return this.execute(request, outputType, null); } private URI getUri(String command, Consumer parameters) { @@ -103,11 +103,12 @@ public abstract class HttpRepository extends Repository { return builder; } - private ReqResp execute(HttpRequest request, Class clazz) { + private ReqResp execute(HttpRequest request, Class clazz, Object original) { ReqResp rawResponse = this.sendHttp(request); Main.logger().info(String.format( - "Request: %s\nResponse: %s", + "Request: %s\nRequest-Data: %s\nResponse: %s", request, + this.gson.toJson(original), rawResponse )); return new ReqResp<>(rawResponse.status(), this.gson.fromJson(rawResponse.data(), clazz)); diff --git a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java index d9c7aea..e733637 100644 --- a/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java +++ b/varo/src/main/java/eu/mhsl/craftattack/spawn/varo/appliances/metaGameplay/teams/ConnectivityChangeListener.java @@ -1,6 +1,8 @@ package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; +import eu.mhsl.craftattack.spawn.common.api.repositories.VaroReportRepository; import eu.mhsl.craftattack.spawn.core.Main; +import eu.mhsl.craftattack.spawn.core.api.client.ReqResp; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import org.bukkit.event.EventHandler; @@ -40,10 +42,24 @@ class ConnectivityChangeListener extends ApplianceListener { return; } + if(event.getPlayer().isOp()) return; + VaroTeam team = Main.instance().getAppliance(Teams.class).getTeamFromPlayer(event.getPlayer().getUniqueId()); Objects.requireNonNull(team, "Team not found for player " + event.getPlayer().getUniqueId()); Main.logger().info(String.format("Team %s got a Strike, because they %s left early!", team.name, event.getPlayer().getName())); - // TODO: strike team + + VaroReportRepository.StrikeCreationInfo report = new VaroReportRepository.StrikeCreationInfo( + null, + event.getPlayer().getUniqueId(), + "early left", + "player left the server too early", + null, + null, + 1 + ); + ReqResp response = Main.instance().getRepositoryLoader().getRepository(VaroReportRepository.class).createStrike(report); + Main.logger().info(String.format("Autostrike response for Team %s: %s", team.name, response)); + this.getAppliance().enforceTeamLeave(event.getPlayer()); } }