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)))
.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) {
@ -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 <TOutput> ReqResp<TOutput> get(String command, Class<TOutput> 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<URIBuilder> parameters) {
@ -103,11 +103,12 @@ public abstract class HttpRepository extends Repository {
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);
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));

View File

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