added verbose logging for api requests

added autostrike for early leave
This commit is contained in:
2025-06-21 21:22:49 +02:00
parent c71a2567bd
commit 831eacaf47
2 changed files with 23 additions and 6 deletions

View File

@ -45,7 +45,7 @@ public abstract class HttpRepository extends Repository {
.POST(HttpRequest.BodyPublishers.ofString(this.gson.toJson(data))) .POST(HttpRequest.BodyPublishers.ofString(this.gson.toJson(data)))
.build(); .build();
return this.execute(request, outputType); return this.execute(request, outputType, data);
} }
protected <TInput, TOutput> ReqResp<TOutput> put(String command, TInput data, Class<TOutput> outputType) { protected <TInput, TOutput> ReqResp<TOutput> put(String command, TInput data, Class<TOutput> outputType) {
@ -58,7 +58,7 @@ public abstract class HttpRepository extends Repository {
.PUT(HttpRequest.BodyPublishers.ofString(this.gson.toJson(data))) .PUT(HttpRequest.BodyPublishers.ofString(this.gson.toJson(data)))
.build(); .build();
return this.execute(request, outputType); return this.execute(request, outputType, data);
} }
protected <TOutput> ReqResp<TOutput> get(String command, Class<TOutput> outputType) { protected <TOutput> ReqResp<TOutput> get(String command, Class<TOutput> outputType) {
@ -71,7 +71,7 @@ public abstract class HttpRepository extends Repository {
.GET() .GET()
.build(); .build();
return this.execute(request, outputType); return this.execute(request, outputType, null);
} }
private URI getUri(String command, Consumer<URIBuilder> parameters) { private URI getUri(String command, Consumer<URIBuilder> parameters) {
@ -103,11 +103,12 @@ public abstract class HttpRepository extends Repository {
return builder; return builder;
} }
private <TResponse> ReqResp<TResponse> execute(HttpRequest request, Class<TResponse> clazz) { private <TResponse> ReqResp<TResponse> execute(HttpRequest request, Class<TResponse> clazz, Object original) {
ReqResp<String> rawResponse = this.sendHttp(request); ReqResp<String> rawResponse = this.sendHttp(request);
Main.logger().info(String.format( Main.logger().info(String.format(
"Request: %s\nResponse: %s", "Request: %s\nRequest-Data: %s\nResponse: %s",
request, request,
this.gson.toJson(original),
rawResponse rawResponse
)); ));
return new ReqResp<>(rawResponse.status(), this.gson.fromJson(rawResponse.data(), clazz)); return new ReqResp<>(rawResponse.status(), this.gson.fromJson(rawResponse.data(), clazz));

View File

@ -1,6 +1,8 @@
package eu.mhsl.craftattack.spawn.varo.appliances.metaGameplay.teams; 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.Main;
import eu.mhsl.craftattack.spawn.core.api.client.ReqResp;
import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener; import eu.mhsl.craftattack.spawn.core.appliance.ApplianceListener;
import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo; import eu.mhsl.craftattack.spawn.core.util.text.DisconnectInfo;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
@ -40,10 +42,24 @@ class ConnectivityChangeListener extends ApplianceListener<Teams> {
return; return;
} }
if(event.getPlayer().isOp()) return;
VaroTeam team = Main.instance().getAppliance(Teams.class).getTeamFromPlayer(event.getPlayer().getUniqueId()); VaroTeam team = Main.instance().getAppliance(Teams.class).getTeamFromPlayer(event.getPlayer().getUniqueId());
Objects.requireNonNull(team, "Team not found for player " + 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())); 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<Void> 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()); this.getAppliance().enforceTeamLeave(event.getPlayer());
} }
} }