added verbose logging for api requests
added autostrike for early leave
This commit is contained in:
@ -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));
|
||||||
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user