Fix CustomScript duplication errors
Signed-off-by: yoyosource <yoyosource@nidido.de>
Dieser Commit ist enthalten in:
Ursprung
ba04619bf4
Commit
a88573aaec
@ -191,6 +191,27 @@ public class CustomScript {
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean equals(MenuCommand menuCommand) {
|
||||
if (menuCommand.args.length != args.length) {
|
||||
return false;
|
||||
}
|
||||
for (int i = 0; i < args.length; i++) {
|
||||
if (i == 0) continue;
|
||||
String s1 = args[i];
|
||||
String s2 = menuCommand.args[i];
|
||||
if (s1.equals(s2)) {
|
||||
return true;
|
||||
}
|
||||
if (s1.startsWith("<") && s1.endsWith(">") && s2.startsWith("<") && s2.endsWith(">")) {
|
||||
return true;
|
||||
}
|
||||
if (s1.startsWith("[<") && s1.endsWith(">]") && s2.startsWith("[<") && s2.endsWith(">]")) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void toYAPION(YAPIONMap yapionMap) {
|
||||
YAPIONArray yapionArray = new YAPIONArray();
|
||||
@ -200,7 +221,7 @@ public class CustomScript {
|
||||
|
||||
@Override
|
||||
public SWItem toItem() {
|
||||
SWItem swItem = new SWItem(Material.WRITABLE_BOOK, "§8/§e" + String.join(" ", args));
|
||||
SWItem swItem = new SWItem(Material.WRITABLE_BOOK, "§7Command§8: §e" + String.join(" ", args));
|
||||
BookMeta bookMeta = (BookMeta) swItem.getItemMeta();
|
||||
bookMeta.setPages(pages.toArray(new String[0]));
|
||||
swItem.setItemMeta(bookMeta);
|
||||
|
@ -156,22 +156,6 @@ public class CustomScriptListener implements Listener {
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent e) {
|
||||
if (e.getMessage().startsWith("/script:")) {
|
||||
e.setMessage("/" + e.getMessage().substring(8));
|
||||
return;
|
||||
}
|
||||
|
||||
List<CustomScript.CustomCommand> customCommands = playerMap.getOrDefault(e.getPlayer(), new ArrayList<>()).stream().filter(CustomScript.CustomCommand.class::isInstance).map(CustomScript.CustomCommand.class::cast).collect(Collectors.toList());
|
||||
String[] command = e.getMessage().split(" ");
|
||||
for (CustomScript.CustomCommand customCommand : customCommands) {
|
||||
if (customCommand.execute(command, e)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean isNoBook(ItemStack item) {
|
||||
return VersionedCallable.call(new VersionedCallable<>(() -> ScriptListener_15.isNoBook(item), 15));
|
||||
}
|
||||
@ -229,7 +213,7 @@ public class CustomScriptListener implements Listener {
|
||||
if (!(script instanceof CustomScript.MenuCommand)) {
|
||||
continue;
|
||||
}
|
||||
if (Arrays.equals(((CustomScript.MenuCommand) script).args, menuCommand.args)) {
|
||||
if (((CustomScript.MenuCommand) script).equals(menuCommand)) {
|
||||
p.sendMessage("§cCommand '" + (String.join(" ", menuCommand.args)) + "' bereits definiert");
|
||||
return;
|
||||
}
|
||||
@ -251,4 +235,22 @@ public class CustomScriptListener implements Listener {
|
||||
}));
|
||||
menuCommandSWListInv.open();
|
||||
}
|
||||
|
||||
// EventListener for Commands as well as Events
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent e) {
|
||||
if (e.getMessage().startsWith("/script:")) {
|
||||
e.setMessage("/" + e.getMessage().substring(8));
|
||||
return;
|
||||
}
|
||||
|
||||
List<CustomScript.CustomCommand> customCommands = playerMap.getOrDefault(e.getPlayer(), new ArrayList<>()).stream().filter(CustomScript.CustomCommand.class::isInstance).map(CustomScript.CustomCommand.class::cast).collect(Collectors.toList());
|
||||
String[] command = e.getMessage().split(" ");
|
||||
for (CustomScript.CustomCommand customCommand : customCommands) {
|
||||
if (customCommand.execute(command, e)) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
In neuem Issue referenzieren
Einen Benutzer sperren