Skip to content

Commit cbebe31

Browse files
Merge pull request RedstoneFuture#121 from RedstoneFuture/fix/paste-command
Differentiation between a schematic and display-name argument
2 parents da2f807 + de53d20 commit cbebe31

File tree

5 files changed

+32
-12
lines changed

5 files changed

+32
-12
lines changed

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

+1-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ public void pasteCommand(CommandSender sender, String[] args) {
110110
return;
111111
}
112112

113-
Missile missile = (Missile) game.getArena().getMissileConfiguration().getSchematicFromName(args[0]);
113+
Missile missile = (Missile) game.getArena().getMissileConfiguration().getSchematicFromFileName(args[0]);
114114
if (missile == null) {
115115
player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
116116
return;

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

+13-4
Original file line numberDiff line numberDiff line change
@@ -77,13 +77,22 @@ public List<String> getSchematicNames() {
7777
}
7878

7979
@Override
80-
public SchematicObject getSchematicFromName(String name) {
81-
String filteredName = name.replaceAll("§.", "");
80+
public SchematicObject getSchematicFromFileName(String fileName) {
8281

8382
for (Missile missile : getSchematics()) {
84-
if (missile.getSchematicName(true).equalsIgnoreCase(filteredName)) return missile;
83+
if (missile.getSchematicName(true).equals(fileName)) return missile;
8584
}
86-
Logger.WARN.log("Schematic not found: " + filteredName);
85+
Logger.WARN.log(getObjectNameSingular() + " not found: '" + fileName.replaceAll("§", "").replaceAll("&", "") + "'");
86+
return null;
87+
}
88+
89+
@Override
90+
public SchematicObject getSchematicFromDisplayName(String displayName) {
91+
92+
for (Missile missile : getSchematics()) {
93+
if (missile.getDisplayName().equals(displayName)) return missile;
94+
}
95+
Logger.WARN.log(getObjectNameSingular() + " not found: '" + displayName.replaceAll("§", "").replaceAll("&", "") + "'");
8796
return null;
8897
}
8998

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

+13-4
Original file line numberDiff line numberDiff line change
@@ -67,13 +67,22 @@ public List<String> getSchematicNames() {
6767
}
6868

6969
@Override
70-
public SchematicObject getSchematicFromName(String name) {
71-
String filteredName = name.replaceAll("§.", "");
70+
public SchematicObject getSchematicFromFileName(String fileName) {
7271

7372
for (Shield shield : getSchematics()) {
74-
if (shield.getSchematicName(true).equalsIgnoreCase(filteredName)) return shield;
73+
if (shield.getSchematicName(true).equals(fileName)) return shield;
7574
}
76-
Logger.WARN.log("Schematic not found: " + filteredName);
75+
Logger.WARN.log(getObjectNameSingular() + " not found: '" + fileName.replaceAll("§", "").replaceAll("&", "") + "'");
76+
return null;
77+
}
78+
79+
@Override
80+
public SchematicObject getSchematicFromDisplayName(String displayName) {
81+
82+
for (Shield shield : getSchematics()) {
83+
if (shield.getDisplayName().equals(displayName)) return shield;
84+
}
85+
Logger.WARN.log(getObjectNameSingular() + " not found: '" + displayName.replaceAll("§", "").replaceAll("&", "") + "'");
7786
return null;
7887
}
7988

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -636,7 +636,7 @@ public void spawnMissile(Player player, ItemStack itemStack) {
636636
ItemMeta itemMeta = itemStack.getItemMeta();
637637
if (itemMeta == null) return;
638638

639-
Missile missile = (Missile) this.arena.getMissileConfiguration().getSchematicFromName(itemMeta.getDisplayName());
639+
Missile missile = (Missile) this.arena.getMissileConfiguration().getSchematicFromDisplayName(itemMeta.getDisplayName());
640640
if (missile == null) {
641641
player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
642642
return;
@@ -658,7 +658,7 @@ public void spawnShield(Player player, Snowball ball) {
658658
ItemMeta itemMeta = ball.getItem().getItemMeta();
659659
if (itemMeta == null) return;
660660

661-
Shield shield = (Shield) this.arena.getShieldConfiguration().getSchematicFromName(itemMeta.getDisplayName());
661+
Shield shield = (Shield) this.arena.getShieldConfiguration().getSchematicFromDisplayName(itemMeta.getDisplayName());
662662
if (shield == null) {
663663
player.sendMessage(Messages.getMessage(true, Messages.MessageEnum.COMMAND_INVALID_MISSILE));
664664
return;

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@ public String getObjectNamePlural() {
1616

1717
public abstract List<String> getSchematicNames();
1818

19-
public abstract SchematicObject getSchematicFromName(String name);
19+
public abstract SchematicObject getSchematicFromFileName(String name);
20+
21+
public abstract SchematicObject getSchematicFromDisplayName(String name);
2022

2123
public abstract void check();
2224

0 commit comments

Comments
 (0)