forked from SteamWar/SteamWar
Improve CheckCommand
This commit is contained in:
@@ -156,8 +156,7 @@ public class CheckCommand extends SWCommand {
|
||||
}
|
||||
|
||||
SchematicNode schem = SchematicNode.getSchematicNode(Integer.parseInt(schemID));
|
||||
GameModeConfig<String, String> gameModeConfig = ArenaMode.getBySchemType(schem.getSchemtype());
|
||||
if (!gameModeConfig.Checkers.isEmpty() && !gameModeConfig.Checkers.contains(sender.user().getId())) {
|
||||
if (!mayCheck(sender.user(), schem)) {
|
||||
sender.system("CHECK_SCHEMATIC_EVENT");
|
||||
return;
|
||||
}
|
||||
@@ -313,60 +312,6 @@ public class CheckCommand extends SWCommand {
|
||||
}
|
||||
|
||||
private void accept() {
|
||||
// TODO: This Code is only for the WGS and because YoyoNow is not available this can be removed or changed after the WGS!
|
||||
if (schematic.getSchemtype().toDB().equals("cwargearseason26")) {
|
||||
int userId = schematic.getOwner();
|
||||
SteamwarUser user = SteamwarUser.byId(userId);
|
||||
int teamId = user.getTeam();
|
||||
|
||||
SchematicNode teamFolder = SchematicNode.getSchematicNodeInNode(172325)
|
||||
.stream()
|
||||
.filter(schematicNode -> schematicNode.getName().startsWith(teamId + "_"))
|
||||
.findFirst()
|
||||
.orElse(null);
|
||||
if (teamFolder == null) {
|
||||
internalAccept();
|
||||
return;
|
||||
}
|
||||
|
||||
// Remove any added players from the schematic in the folder
|
||||
for (SchematicNode schematicNode : SchematicNode.getSchematicNodeInNode(teamFolder.getNodeId())) {
|
||||
for (NodeMember nodeMember : NodeMember.getNodeMembers(schematicNode.getNodeId())) {
|
||||
nodeMember.delete();
|
||||
}
|
||||
}
|
||||
|
||||
// Copy Schem into team folder of -1 user
|
||||
String name = DateTimeFormatter.ofPattern("yyyy.MM.dd_HH:mm:ss").format(schematic.getLastUpdate().toLocalDateTime());
|
||||
NodeData data = NodeData.getLatest(schematic);
|
||||
SchematicNode node = SchematicNode.createSchematic(-1, name, teamFolder.getNodeId());
|
||||
NodeData.saveFromStream(node, data.schemData(false), data.getNodeFormat());
|
||||
|
||||
// Accept the team folder schematic and set other to Normal as well as adding the original owner on the schematic
|
||||
node.setSchemtype(GameModeConfig.getBySchematicType(schematic.getSchemtype()).Schematic.Type);
|
||||
NodeMember.createNodeMember(node.getNodeId(), schematic.getOwner());
|
||||
for (NodeMember nodeMember : NodeMember.getNodeMembers(schematic.getId())) {
|
||||
NodeMember.createNodeMember(node.getNodeId(), nodeMember.getMember());
|
||||
}
|
||||
|
||||
// Conclude by setting send in schematic to normal and broadcast
|
||||
concludeCheckSession("freigegeben", SchematicType.Normal, () -> {
|
||||
Chatter owner = Chatter.of(SteamwarUser.byId(schematic.getOwner()).getUUID());
|
||||
owner.withPlayerOrOffline(
|
||||
player -> owner.system("CHECK_ACCEPTED", schematic.getSchemtype().name(), schematic.getName()),
|
||||
() -> DiscordAlert.send(owner, Color.GREEN, new Message("DC_TITLE_SCHEMINFO"), new Message("DC_SCHEM_ACCEPT", schematic.getName()), true)
|
||||
);
|
||||
notifyTeam(new Message("CHECK_ACCEPTED_TEAM", schematic.getName(), owner.user().getUserName()));
|
||||
|
||||
return owner.getPlayer() != null;
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
internalAccept();
|
||||
}
|
||||
|
||||
private void internalAccept() {
|
||||
concludeCheckSession("freigegeben", GameModeConfig.getBySchematicType(schematic.getSchemtype()).Schematic.Type, () -> {
|
||||
Chatter owner = Chatter.of(SteamwarUser.byId(schematic.getOwner()).getUUID());
|
||||
owner.withPlayerOrOffline(
|
||||
|
||||
Reference in New Issue
Block a user