diff --git a/VelocityCore/src/de/steamwar/velocitycore/commands/CheckCommand.java b/VelocityCore/src/de/steamwar/velocitycore/commands/CheckCommand.java index 289f22dc..b130a2d7 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/commands/CheckCommand.java +++ b/VelocityCore/src/de/steamwar/velocitycore/commands/CheckCommand.java @@ -156,8 +156,7 @@ public class CheckCommand extends SWCommand { } SchematicNode schem = SchematicNode.getSchematicNode(Integer.parseInt(schemID)); - GameModeConfig 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(