diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties index 2f2ec0d..4ed1e9f 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties +++ b/FightSystem_Core/src/de/steamwar/fightsystem/FightSystem.properties @@ -150,6 +150,7 @@ NO_ENTERN= NO_TEAMAREA=§cDu darfst nicht zu den Teams TEST_BECOME_LEADER=§7Werde zum Teamleader mit §8/§eleader PREPARE_SCHEM_DELETED=§cAnscheinend wurde die auszufahrende Schematic gelöscht, Einsenden wird abgebrochen. +PREPARE_SCHEM_EXISTS=§cEs existiert bereits eine Schem mit Namenszusatz -prepared, diese bitte umbenennen oder löschen, Einsenden wird abgebrochen. PREPARE_ACTIVE_PISTON=§cIm Teambereich wurden sich noch bewegende Pistons gefunden, Einsenden wird abgebrochen. PREPARE_FAILED_SAVING=§cDie Schematic konnte nicht gespeichert werden, Einsenden wird abgebrochen. PREPARE_SENT_IN=§aDie Schematic wird nun zeitnah von einem Teammitglied überprüft @@ -190,7 +191,6 @@ BAR_RUNNING0={1} {3} {0} {4} {2} BAR_RUNNING1={1} {3} {5} {0} {6} {4} {2} BAR_RUNNING2={1} {3} {5} {7} {0} {6} {8} {4} {2} BAR_RUNNING3={1} {3} {5} {7} {9} {0} {6} {8} {10} {4} {2} -BAR_SPECTATE={1} §7Kampf vorbei {0} {2} BAR_TIE={1} §7Unentschieden {0} {2} BAR_WIN={1} §7Sieg {3} {0} {2} BAR_POINTS={0} §8Punkte diff --git a/FightSystem_Core/src/de/steamwar/fightsystem/listener/PrepareSchem.java b/FightSystem_Core/src/de/steamwar/fightsystem/listener/PrepareSchem.java index 191310d..c411a48 100644 --- a/FightSystem_Core/src/de/steamwar/fightsystem/listener/PrepareSchem.java +++ b/FightSystem_Core/src/de/steamwar/fightsystem/listener/PrepareSchem.java @@ -86,15 +86,20 @@ public class PrepareSchem implements Listener { return; } + if(schemExists(schem)) + return; + + schem = SchematicNode.createSchematicNode(schem.getOwner(), preparedName(schem), schem.getParent(), Config.SchematicType.checkType().toDB(), schem.getItem()); + try{ WorldeditWrapper.impl.saveSchem(schem, region, minY); }catch(WorldEditException e){ FightSystem.getMessage().broadcast("PREPARE_FAILED_SAVING"); Bukkit.shutdown(); + schem.delete(); throw new SecurityException("Could not save schem", e); } - schem.setSchemtype(Config.SchematicType.checkType()); FightSystem.getMessage().broadcast("PREPARE_SENT_IN"); Bukkit.shutdown(); } @@ -114,5 +119,20 @@ public class PrepareSchem implements Listener { FightSystem.setPreSchemState(); FightSystem.setPostSchemState(); } + + schemExists(SchematicNode.getSchematicNode(Config.PrepareSchemID)); + } + + private boolean schemExists(SchematicNode schem) { + if(SchematicNode.getSchematicNode(schem.getOwner(), preparedName(schem), schem.getParent()) != null) { + FightSystem.getMessage().broadcast("PREPARE_SCHEM_EXISTS"); + Bukkit.shutdown(); + return true; + } + return false; + } + + private String preparedName(SchematicNode schem) { + return schem.getName() + "-prepared"; } }