Browse Source

getMissileFromName now use schematic name instead of display name

RedstoneFuture 3 years ago
parent
commit
e841fcd074

+ 4 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/wrapper/abstracts/arena/MissileConfiguration.java

@@ -70,9 +70,9 @@ public class MissileConfiguration {
     }
     }
 
 
     public Missile getMissileFromName(String name) {
     public Missile getMissileFromName(String name) {
-        for (Missile m : missiles) {
-            if (m.getName().equalsIgnoreCase(name) || m.getName().replaceAll("§.", "").equalsIgnoreCase(name))
-                return m;
+        String filteredName = name.replaceAll("§.", "");
+        for (Missile missile : missiles) {
+            if (missile.getSchematicName(false).equalsIgnoreCase(filteredName)) return missile;
         }
         }
         return null;
         return null;
     }
     }
@@ -82,7 +82,7 @@ public class MissileConfiguration {
         for (Missile missile : missiles) {
         for (Missile missile : missiles) {
             File schematic = missile.getSchematic();
             File schematic = missile.getSchematic();
             if (!schematic.exists()) {
             if (!schematic.exists()) {
-                Logger.WARN.log(missile.getName() + " §7has no schematic. Removing this missile");
+                Logger.WARN.log(missile.getDisplayName() + " §7has no schematic. Removing this missile");
                 toRemove.add(missile);
                 toRemove.add(missile);
             }
             }
         }
         }

+ 12 - 4
missilewars-plugin/src/main/java/de/butzlabben/missilewars/wrapper/missile/Missile.java

@@ -45,7 +45,7 @@ import java.io.File;
 public class Missile {
 public class Missile {
 
 
     private final String schematic;
     private final String schematic;
-    @Getter private final String name;
+    @Getter private final String displayName;
     private final EntityType egg;
     private final EntityType egg;
     private final int down;
     private final int down;
     private final int dist;
     private final int dist;
@@ -77,17 +77,25 @@ public class Missile {
             PasteProvider.getPaster().pasteMissile(getSchematic(), pastePos, rotation, loc.getWorld(),
             PasteProvider.getPaster().pasteMissile(getSchematic(), pastePos, rotation, loc.getWorld(),
                     game.getPlayer(p).getTeam());
                     game.getPlayer(p).getTeam());
         } catch (Exception e) {
         } catch (Exception e) {
-            Logger.ERROR.log("Could not load " + name);
+            Logger.ERROR.log("Could not load " + displayName);
             e.printStackTrace();
             e.printStackTrace();
         }
         }
     }
     }
 
 
     public File getSchematic() {
     public File getSchematic() {
         File pluginDir = MissileWars.getInstance().getDataFolder();
         File pluginDir = MissileWars.getInstance().getDataFolder();
-        File file = new File(pluginDir, "missiles/" + schematic);
+        File file = new File(pluginDir, "missiles/" + getSchematicName(false));
         return file;
         return file;
     }
     }
 
 
+    public String getSchematicName(boolean withoutExtension) {
+        if (withoutExtension) {
+            return schematic.replace(".schematic", "")
+                    .replace(".schem", "");
+        }
+        return schematic;
+    }
+
     public EntityType getType() {
     public EntityType getType() {
         return egg;
         return egg;
     }
     }
@@ -112,7 +120,7 @@ public class Missile {
             is.setAmount(1);
             is.setAmount(1);
         }
         }
         ItemMeta im = is.getItemMeta();
         ItemMeta im = is.getItemMeta();
-        im.setDisplayName(name);
+        im.setDisplayName(displayName);
         is.setItemMeta(im);
         is.setItemMeta(im);
         return is;
         return is;
     }
     }