Kaynağa Gözat

Merge pull request #121 from RedstoneFuture/fix/paste-command

Differentiation between a schematic and display-name argument
RedstoneFuture 1 yıl önce
ebeveyn
işleme
cbebe31c40

+ 1 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/commands/MWCommands.java

@@ -110,7 +110,7 @@ public class MWCommands extends BaseCommand {
             return;
             return;
         }
         }
 
 
-        Missile missile = (Missile) game.getArena().getMissileConfiguration().getSchematicFromName(args[0]);
+        Missile missile = (Missile) game.getArena().getMissileConfiguration().getSchematicFromFileName(args[0]);
         if (missile == null) {
         if (missile == null) {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
             return;
             return;

+ 13 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/MissileConfiguration.java

@@ -77,13 +77,22 @@ public class MissileConfiguration extends SchematicConfiguration {
     }
     }
 
 
     @Override
     @Override
-    public SchematicObject getSchematicFromName(String name) {
-        String filteredName = name.replaceAll("§.", "");
+    public SchematicObject getSchematicFromFileName(String fileName) {
 
 
         for (Missile missile : getSchematics()) {
         for (Missile missile : getSchematics()) {
-            if (missile.getSchematicName(true).equalsIgnoreCase(filteredName)) return missile;
+            if (missile.getSchematicName(true).equals(fileName)) return missile;
         }
         }
-        Logger.WARN.log("Schematic not found: " + filteredName);
+        Logger.WARN.log(getObjectNameSingular() + " not found: '" + fileName.replaceAll("§", "").replaceAll("&", "") + "'");
+        return null;
+    }
+
+    @Override
+    public SchematicObject getSchematicFromDisplayName(String displayName) {
+
+        for (Missile missile : getSchematics()) {
+            if (missile.getDisplayName().equals(displayName)) return missile;
+        }
+        Logger.WARN.log(getObjectNameSingular() + " not found: '" + displayName.replaceAll("§", "").replaceAll("&", "") + "'");
         return null;
         return null;
     }
     }
 
 

+ 13 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/configuration/arena/ShieldConfiguration.java

@@ -67,13 +67,22 @@ public class ShieldConfiguration extends SchematicConfiguration {
     }
     }
 
 
     @Override
     @Override
-    public SchematicObject getSchematicFromName(String name) {
-        String filteredName = name.replaceAll("§.", "");
+    public SchematicObject getSchematicFromFileName(String fileName) {
 
 
         for (Shield shield : getSchematics()) {
         for (Shield shield : getSchematics()) {
-            if (shield.getSchematicName(true).equalsIgnoreCase(filteredName)) return shield;
+            if (shield.getSchematicName(true).equals(fileName)) return shield;
         }
         }
-        Logger.WARN.log("Schematic not found: " + filteredName);
+        Logger.WARN.log(getObjectNameSingular() + " not found: '" + fileName.replaceAll("§", "").replaceAll("&", "") + "'");
+        return null;
+    }
+
+    @Override
+    public SchematicObject getSchematicFromDisplayName(String displayName) {
+
+        for (Shield shield : getSchematics()) {
+            if (shield.getDisplayName().equals(displayName)) return shield;
+        }
+        Logger.WARN.log(getObjectNameSingular() + " not found: '" + displayName.replaceAll("§", "").replaceAll("&", "") + "'");
         return null;
         return null;
     }
     }
 
 

+ 2 - 2
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/Game.java

@@ -636,7 +636,7 @@ public class Game {
         ItemMeta itemMeta = itemStack.getItemMeta();
         ItemMeta itemMeta = itemStack.getItemMeta();
         if (itemMeta == null) return;
         if (itemMeta == null) return;
         
         
-        Missile missile = (Missile) this.arena.getMissileConfiguration().getSchematicFromName(itemMeta.getDisplayName());
+        Missile missile = (Missile) this.arena.getMissileConfiguration().getSchematicFromDisplayName(itemMeta.getDisplayName());
         if (missile == null) {
         if (missile == null) {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
             return;
             return;
@@ -658,7 +658,7 @@ public class Game {
         ItemMeta itemMeta = ball.getItem().getItemMeta();
         ItemMeta itemMeta = ball.getItem().getItemMeta();
         if (itemMeta == null) return;
         if (itemMeta == null) return;
 
 
-        Shield shield = (Shield) this.arena.getShieldConfiguration().getSchematicFromName(itemMeta.getDisplayName());
+        Shield shield = (Shield) this.arena.getShieldConfiguration().getSchematicFromDisplayName(itemMeta.getDisplayName());
         if (shield == null) {
         if (shield == null) {
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
             player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
             return;
             return;

+ 3 - 1
missilewars-plugin/src/main/java/de/butzlabben/missilewars/game/schematics/SchematicConfiguration.java

@@ -16,7 +16,9 @@ public abstract class SchematicConfiguration {
 
 
     public abstract List<String> getSchematicNames();
     public abstract List<String> getSchematicNames();
 
 
-    public abstract SchematicObject getSchematicFromName(String name);
+    public abstract SchematicObject getSchematicFromFileName(String name);
+    
+    public abstract SchematicObject getSchematicFromDisplayName(String name);
 
 
     public abstract void check();
     public abstract void check();