diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/ScriptCommand.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/ScriptCommand.java index 9d5ed54e..cfeb16c8 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/ScriptCommand.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/ScriptCommand.java @@ -1,17 +1,20 @@ package de.steamwar.bausystem.features.script; -import de.steamwar.bausystem.SWUtils; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; import de.steamwar.command.SWCommand; +import de.steamwar.inventory.SWItem; +import de.steamwar.inventory.SWListInv; import org.bukkit.Material; import org.bukkit.entity.Player; -import org.bukkit.inventory.ItemStack; -import org.bukkit.inventory.meta.BookMeta; import java.util.ArrayList; +import java.util.Arrays; +import java.util.Comparator; import java.util.List; +import static de.steamwar.bausystem.features.script.ScriptExecutor.SPECIAL_COMMANDS; + @Linked(LinkageType.COMMAND) public class ScriptCommand extends SWCommand { @@ -19,49 +22,7 @@ public class ScriptCommand extends SWCommand { super("script"); } - public static final ItemStack BOOK = new ItemStack(Material.WRITTEN_BOOK, 1); - - static { - List pages = new ArrayList<>(); - pages.add("§6Script System§8\n\n- Commands\n- Kommentare\n- Scriptausführung\n- Sleep\n- Variablen\n- Konstanten\n- Abfragen\n- Schleifen\n- \"echo\"\n- \"input\"\n- Arithmetik\n- Logik"); - pages.add("§6Commands§8\n\nEin minecraft Befehl wird im Scriptbuch so hingeschrieben. Dabei kann man ein '/' weglassen. Um Befehle zu trennen kommen diese in neue Zeilen.\n\nStatt\n/tnt -> tnt\n//pos1 -> /pos1"); - pages.add("§6Kommentare§8\n\nFür ein Kommentar fängt die Zeile mit einem '#' an. Diese Zeilen werden bei dem Ausführen dann ignoriert.\n\nBeispiel:\n§9# TNT an/aus\ntnt"); - pages.add("§6Scriptausführung§8\n\nWenn du mit dem Buch in der Hand links klickst wird dieses ausgeführt."); - pages.add("§6Sleep§8\n\nUm Sachen langsamer zu machen kann man ein 'sleep' in sein Script schreiben. Danach kommt eine Zahl mit der Anzahl der GameTicks die zu schlafen sind.\n\nBeispiel:\n§9# 1 Sekunde schlafen\nsleep 20"); - pages.add("§6Variablen§8\n\nMit Variablen kann man sich Zahlen speichern. Man definiert diese mit 'var '.\n\nBeispiel:\n§9# Setze i zu 0\nvar i 0§8\n\nEs gibt einige spezial values. Dazu zählen"); - pages.add("§8'true', 'yes', 'false' und 'no', welche für 1, 1, 0 und 0 stehen.\n\nMan kann eine Variable auch um einen erhöhen oder verkleinern. Hierfür schreibt man statt einer Zahl '++', 'inc' oder '--', 'dec'.\n\nBeispiel:\n§9var i ++"); - pages.add("§8Variablen kann man referenzieren\ndurch '<' vor dem Variablennamen und '>' nach diesem. Diese kann man in jedem Befehl verwenden.\n\nBeispiel:\n§9# Stacked um 10\nvar stacks 10\n/stack "); - pages.add("§8Man kann auch explizit eine globale, locale, oder konstante variable referenzieren, indem 'global.', 'local.' oder 'const.' vor den Namen in die Klammern zu schreiben."); - pages.add("§8Um Variablen über das Script ausführen zu speichern gibt es 'global' und 'unglobal' als Befehle. Der erste speichert eine locale Variable global und das zweite löscht eine globale wieder."); - pages.add("§8Des weiteren kann man Lokale Variablen mit 'unvar' löschen. Nach dem verlassen einer Welt werden alle Globalen Variablen gelöscht. Globale Variablen kann man mit '/scriptvars' einsehen."); - pages.add("§6Konstanten§8\n\nNeben den variablen gibt es noch 5 Konstante Werte, welche nicht mit dem 'var' Befehl verändert werden können.\n\nDiese sind:\n- trace/autotrace\n- tnt\n- freeze\n- fire"); - pages.add("§8Des weiteren gibt es 3 weitere Variablen, welche explizit Spieler gebunden sind\n\nDiese sind:\n- x\n- y\n- z"); - pages.add("§6Abfragen§8\n\nMit Abfragen kann man nur Gleichheit von 2 Werten überprüft werden. Hierfür verwendet man\n'if '.\nNach den zwei Werten kann man ein oder 2 Jump-Points schreiben\n'if [...] (JP)'."); - pages.add("§8Des weiteren kann man überprüfen, ob eine Variable existiert mit 'if exists' wonach dann wieder 1 oder 2 Jump-Points sein müssen."); - pages.add("§8Ein Jump-Point ist eine Zeile Script, wohin man springen kann. Dieser wird mit einem '.' am Anfang der Zeile beschrieben und direkt danach der Jump-Point Namen ohne Leerzeichen.\n\nBeispiel:\n§9# Jump-Point X\n.X§8"); - pages.add("§8Um zu einem Jump-Point ohne Abfrage zu springen kann man den\n'jump ' Befehl verwenden."); - pages.add("§6Schleifen§8\n\nSchleifen werden mit Jump-Points, if Abfragen und Jumps gebaut.\n\nBeispiel:\n§9var i 0\n.JUMP\nvar i ++\nif i 10 END JUMP\n.END§8"); - pages.add("§6\"echo\"§8\n\nDer echo Befehl ist da um Ausgaben zu tätigen. Hier drin kann man sowohl Variablen ausgeben, als auch Farbcodes verwenden. Es wird alles nach dem Befehl ausgegeben.\n\nBeispiel:\n§9echo &eSteam&8war &7war hier!"); - pages.add("§6\"input\"§8\n\nDer input Befehl ist eine Aufforderung einer Eingabe des Users. Die Argumente sind eine Variable und ein Text als Nachricht.\n\nBeispiel:\n§9input age &eDein Alter?"); - pages.add("§6Arithmetik§8\n\nEs gibt 4 Arithmetische Befehle:\n- add\n- sub\n- mul\n- div\n\nDer erste Parameter ist die Variable welche den ausgerechneten Wert halten soll. Hiernach muss ein"); - pages.add("§8Wert oder Variable kommen welcher verrechnet wird. Hierbei wird das erste Argument als ersten Operand genommen.\n\nBeispiel:\n§9var i 2\nvar j 3\nadd i j\necho $i"); - pages.add("§8Man kann auch 3 Argumente angeben. Dann wird die arithmetische Operation zwischen den letzten beiden Argumenten berechnet und als Variable des ersten Arguments abgespeichert. \n\nBeispiel auf der nächsten Seite -->"); - pages.add("§8Beispiel:\n§9var i 2\nvar j 2\nadd k i j\necho $k"); - pages.add("§6Logik§8\n\nEs gibt 3 Vergleichs Befehle:\n- equal\n- less\n- greater\n\nUnd 3 Logik Befehle:\n- and\n- or\n- not"); - pages.add("§8Der erste Parameter ist die Variable welche den ausgerechneten Wert halten soll. Hiernach muss ein Wert oder Variable kommen welcher verrechnet wird. Hierbei wird das erste Argument als ersten Operand genommen. Dies gilt nicht für den 'not' Befehl, welcher"); - pages.add("§8nur 2 Parameter nimmt. Der erste die Variable und der zweite eine optionale Variable oder ein Wert. Equal vergleicht 2 Werte, less gibt zurück ob der erste kleiner als der zweite Wert ist, greater gibt zurück ob der erste größer als der zweite Wert ist."); - pages.add("§8And vergleicht ob 2 Werte true (1) sind. Or vergleicht ob 1 Wert oder 2 Werte true (1) ist/sind. Not invertiert den Wert von true (1) auf false und anders rum."); - pages.add("§8Beispiel:\n§9var i 1\nvar j 1\n#Ist i und j gleich\nequal k i j\nvar j 0\n#Ist i kleiner j\nless k i j\n#Ist i größer j\ngreater k i j\n#Ist i und j true\nand k i j\n#Beispiel weiter auf nächster Seite"); - pages.add("§9#Ist i oder j true\nor k i j\n#Invertiere i\nnot k i"); - - BookMeta bookMeta = (BookMeta) BOOK.getItemMeta(); - bookMeta.setGeneration(BookMeta.Generation.ORIGINAL); - bookMeta.setAuthor("§eSteam§8war"); - bookMeta.setTitle("§7Script Buch"); - bookMeta.setDisplayName("§7Script Buch"); - bookMeta.setPages(pages); - BOOK.setItemMeta(bookMeta); - } + private static List> swItems = new ArrayList<>(); @Register(help = true) public void genericHelp(Player p, String... args) { @@ -70,7 +31,41 @@ public class ScriptCommand extends SWCommand { @Register public void giveCommand(Player p) { - SWUtils.giveItemToPlayer(p, BOOK); + if (swItems.isEmpty()) { + List specialCommands = new ArrayList<>(SPECIAL_COMMANDS); + specialCommands.sort(Comparator.comparing(specialCommand -> specialCommand.getClass().getTypeName())); + specialCommands.forEach(specialCommand -> { + List strings = new ArrayList<>(); + boolean b = false; + for (String s : specialCommand.description()) { + if (s.isEmpty()) { + b = true; + } + while (b && s.length() > 50) { + int index = s.indexOf(' ', 50); + if (index == -1) { + strings.add("§7" + s); + s = null; + break; + } else { + strings.add("§7" + s.substring(0, index)); + s = s.substring(index + 1); + } + } + if (s != null) { + strings.add("§7" + s); + } + } + + SWItem swItem = new SWItem(specialCommand.material(), "§7Command: §e" + specialCommand.command(), strings, false, clickType -> { + }); + swItems.add(new SWListInv.SWListEntry<>(swItem, null)); + }); + } + + SWListInv swListInv = new SWListInv<>(p, "Script Elements", swItems, (clickType, o) -> { + }); + swListInv.open(); } } diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/ScriptListener.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/ScriptListener.java index 129f7bb4..2065ba94 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/ScriptListener.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/ScriptListener.java @@ -30,10 +30,7 @@ public class ScriptListener implements Listener { @EventHandler(priority = EventPriority.HIGH) public void onLeftClick(PlayerInteractEvent event) { ItemStack item = event.getItem(); - if (item == null || isNoBook(item) || item.getItemMeta() == null) - return; - - if (ScriptCommand.BOOK.getItemMeta() != null && item.getItemMeta().hasDisplayName() && item.getItemMeta().getDisplayName().equals(ScriptCommand.BOOK.getItemMeta().getDisplayName())) { + if (item == null || isNoBook(item) || item.getItemMeta() == null) { return; } diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/SpecialCommand.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/SpecialCommand.java index 5a44dbe9..04fa511c 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/SpecialCommand.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/SpecialCommand.java @@ -1,11 +1,17 @@ package de.steamwar.bausystem.features.script; +import org.bukkit.Material; + public interface SpecialCommand { default String[] description() { return new String[0]; } + default Material material() { + return Material.PAPER; + } + String command(); boolean execute(String[] command, ScriptExecutor scriptExecutor); diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Exit.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Exit.java index 2e2025d1..7c8dfcc6 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Exit.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Exit.java @@ -4,6 +4,7 @@ import de.steamwar.bausystem.features.script.ScriptExecutor; import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Exit implements SpecialCommand { @@ -17,6 +18,11 @@ public class Exit implements SpecialCommand { }; } + @Override + public Material material() { + return Material.BARRIER; + } + @Override public String command() { return "exit"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/If.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/If.java index 7f5db48e..2492a6e0 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/If.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/If.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class If implements SpecialCommand { @@ -20,6 +21,11 @@ public class If implements SpecialCommand { }; } + @Override + public Material material() { + return Material.OBSERVER; + } + @Override public String command() { return "if"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Jump.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Jump.java index 9c9bcbdc..23b52ae4 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Jump.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Jump.java @@ -5,6 +5,7 @@ import de.steamwar.bausystem.features.script.ScriptExecutor; import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Jump implements SpecialCommand { @@ -18,6 +19,11 @@ public class Jump implements SpecialCommand { }; } + @Override + public Material material() { + return Material.LEATHER_BOOTS; + } + @Override public String command() { return "jump"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Sleep.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Sleep.java index 3e88313f..842581b8 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Sleep.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/Sleep.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; import org.bukkit.Bukkit; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Sleep implements SpecialCommand { @@ -13,12 +14,17 @@ public class Sleep implements SpecialCommand { @Override public String[] description() { return new String[]{ - "§esleep §8<§8Time§8>", + "§esleep §8<§7Time§8>", "", "Pausiert das Ausführen des Scripts. Das erste Argument ist in GameTicks." }; } + @Override + public Material material() { + return Material.CLOCK; + } + @Override public String command() { return "sleep"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Add.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Add.java index 4f65b91a..b8103f8f 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Add.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Add.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Add implements SpecialCommand { @@ -16,10 +17,15 @@ public class Add implements SpecialCommand { "§eadd §8<§7Variable§8> §8<§7Variable§8>", "§eadd §8<§7Variable§8> §8<§7Variable§8> §8<§7Variable§8>", "", - "Addition zwischen den letzten beiden Variablen und schreibe es in die erste." + "Addition zwischen den letzten beiden Variablen und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.REDSTONE; + } + @Override public String command() { return "add"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Div.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Div.java index 1b2a1f91..8049b627 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Div.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Div.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Div implements SpecialCommand { @@ -16,10 +17,15 @@ public class Div implements SpecialCommand { "§ediv §8<§7Variable§8> §8<§7Variable§8>", "§ediv §8<§7Variable§8> §8<§7Variable§8> §8<§7Variable§8>", "", - "Division zwischen den letzten beiden Variablen und schreibe es in die erste." + "Division zwischen den letzten beiden Variablen und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.REDSTONE; + } + @Override public String command() { return "div"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Mul.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Mul.java index 038212bd..59bd9072 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Mul.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Mul.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Mul implements SpecialCommand { @@ -16,10 +17,15 @@ public class Mul implements SpecialCommand { "§emul §8<§7Variable§8> §8<§7Variable§8>", "§emul §8<§7Variable§8> §8<§7Variable§8> §8<§7Variable§8>", "", - "Multiplikation zwischen den letzten beiden Variablen und schreibe es in die erste." + "Multiplikation zwischen den letzten beiden Variablen und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.REDSTONE; + } + @Override public String command() { return "mul"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Sub.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Sub.java index afd5677c..06d4345f 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Sub.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/arithmetic/Sub.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Sub implements SpecialCommand { @@ -16,10 +17,15 @@ public class Sub implements SpecialCommand { "§esub §8<§7Variable§8> §8<§7Variable§8>", "§esub §8<§7Variable§8> §8<§7Variable§8> §8<§7Variable§8>", "", - "Subtraktion zwischen den letzten beiden Variablen und schreibe es in die erste." + "Subtraktion zwischen den letzten beiden Variablen und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.REDSTONE; + } + @Override public String command() { return "sub"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/io/Echo.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/io/Echo.java index ad2000af..b2c94b92 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/io/Echo.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/io/Echo.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; import net.md_5.bungee.api.ChatColor; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Echo implements SpecialCommand { @@ -19,6 +20,11 @@ public class Echo implements SpecialCommand { }; } + @Override + public Material material() { + return Material.OAK_SIGN; + } + @Override public String command() { return "echo"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/io/Input.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/io/Input.java index 192604be..e4960e9a 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/io/Input.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/io/Input.java @@ -8,6 +8,7 @@ import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; import de.steamwar.inventory.SWAnvilInv; import org.bukkit.ChatColor; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Input implements SpecialCommand { @@ -21,6 +22,11 @@ public class Input implements SpecialCommand { }; } + @Override + public Material material() { + return Material.ANVIL; + } + @Override public String command() { return "input"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/And.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/And.java index 55be7bc5..e7526748 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/And.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/And.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class And implements SpecialCommand { @@ -16,10 +17,15 @@ public class And implements SpecialCommand { "§eand §8<§7Variable§8> §8<§7Variable§8>", "§eand §8<§7Variable§8> §8<§7Variable§8> §8<§7Variable§8>", "", - "Das logische Und zwischen den letzten beiden Variablen und schreibe es in die erste." + "Das logische Und zwischen den letzten beiden Variablen und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.COMPARATOR; + } + @Override public String command() { return "and"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Equal.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Equal.java index 941a82bc..a02aaf71 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Equal.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Equal.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Equal implements SpecialCommand { @@ -16,10 +17,15 @@ public class Equal implements SpecialCommand { "§eequal §8<§7Variable§8> §8<§7Variable§8>", "§eequal §8<§7Variable§8> §8<§7Variable§8> §8<§7Variable§8>", "", - "Vergleiche die letzten beiden Variablen und schreibe es in die erste." + "Vergleiche die letzten beiden Variablen und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.COMPARATOR; + } + @Override public String command() { return "equal"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Greater.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Greater.java index 628b0a84..196b3ad4 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Greater.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Greater.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Greater implements SpecialCommand { @@ -16,10 +17,15 @@ public class Greater implements SpecialCommand { "§egreater §8<§7Variable§8> §8<§7Variable§8>", "§egreater §8<§7Variable§8> §8<§7Variable§8> §8<§7Variable§8>", "", - "Vergleiche die letzten beiden Variablen und schreibe es in die erste." + "Vergleiche die letzten beiden Variablen und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.COMPARATOR; + } + @Override public String command() { return "greater"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Less.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Less.java index 6052f313..32cfd20d 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Less.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Less.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Less implements SpecialCommand { @@ -16,10 +17,15 @@ public class Less implements SpecialCommand { "§eless §8<§7Variable§8> §8<§7Variable§8>", "§eless §8<§7Variable§8> §8<§7Variable§8> §8<§7Variable§8>", "", - "Vergleiche die letzten beiden Variablen und schreibe es in die erste." + "Vergleiche die letzten beiden Variablen und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.COMPARATOR; + } + @Override public String command() { return "less"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Not.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Not.java index 9d3cb70c..72c9a59f 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Not.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Not.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Not implements SpecialCommand { @@ -16,10 +17,15 @@ public class Not implements SpecialCommand { "§enot §8<§7Variable§8>", "§enot §8<§7Variable§8> §8<§7Variable§8>", "", - "Das logische Nicht von der letzten Variable und schreibe es in die erste." + "Das logische Nicht von der letzten Variable und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.COMPARATOR; + } + @Override public String command() { return "not"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Or.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Or.java index 5060632c..ce67eede 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Or.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/logic/Or.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Or implements SpecialCommand { @@ -16,10 +17,15 @@ public class Or implements SpecialCommand { "§eor §8<§7Variable§8> §8<§7Variable§8>", "§eor §8<§7Variable§8> §8<§7Variable§8> §8<§7Variable§8>", "", - "Das logische Oder zwischen den letzten beiden Variablen und schreibe es in die erste." + "Das logische Oder zwischen den letzten beiden Variablen und schreibt es in die erste." }; } + @Override + public Material material() { + return Material.COMPARATOR; + } + @Override public String command() { return "or"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Insert.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Insert.java index 358ba86e..e3629d0e 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Insert.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Insert.java @@ -25,6 +25,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Insert implements SpecialCommand { @@ -39,6 +40,11 @@ public class Insert implements SpecialCommand { }; } + @Override + public Material material() { + return Material.HOPPER; + } + @Override public String command() { return "insert"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Length.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Length.java index 6fc610cf..749c1511 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Length.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Length.java @@ -25,6 +25,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Length implements SpecialCommand { @@ -39,6 +40,11 @@ public class Length implements SpecialCommand { }; } + @Override + public Material material() { + return Material.REPEATER; + } + @Override public String command() { return "length"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Remove.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Remove.java index b6b8fcd5..f6bad4d7 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Remove.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Remove.java @@ -25,6 +25,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Remove implements SpecialCommand { @@ -39,6 +40,11 @@ public class Remove implements SpecialCommand { }; } + @Override + public Material material() { + return Material.SHEARS; + } + @Override public String command() { return "remove"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Replace.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Replace.java index c07e6074..3aacb7de 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Replace.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Replace.java @@ -25,6 +25,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Replace implements SpecialCommand { @@ -39,6 +40,11 @@ public class Replace implements SpecialCommand { }; } + @Override + public Material material() { + return Material.WOODEN_AXE; + } + @Override public String command() { return "replace"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Substring.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Substring.java index ca17c970..edba61f8 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Substring.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/string/Substring.java @@ -25,6 +25,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Substring implements SpecialCommand { @@ -39,6 +40,11 @@ public class Substring implements SpecialCommand { }; } + @Override + public Material material() { + return Material.STICKY_PISTON; + } + @Override public String command() { return "substring"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Global.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Global.java index 1497ae42..9c983fd6 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Global.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Global.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Global implements SpecialCommand { @@ -19,6 +20,11 @@ public class Global implements SpecialCommand { }; } + @Override + public Material material() { + return Material.MAP; + } + @Override public String command() { return "global"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Unglobal.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Unglobal.java index 5c7ae176..1471e384 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Unglobal.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Unglobal.java @@ -5,6 +5,7 @@ import de.steamwar.bausystem.features.script.ScriptExecutor; import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Unglobal implements SpecialCommand { @@ -18,6 +19,11 @@ public class Unglobal implements SpecialCommand { }; } + @Override + public Material material() { + return Material.BEACON; + } + @Override public String command() { return "unglobal"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Unvar.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Unvar.java index 9cac9000..275d4f30 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Unvar.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Unvar.java @@ -5,6 +5,7 @@ import de.steamwar.bausystem.features.script.ScriptExecutor; import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Unvar implements SpecialCommand { @@ -18,6 +19,11 @@ public class Unvar implements SpecialCommand { }; } + @Override + public Material material() { + return Material.STRUCTURE_VOID; + } + @Override public String command() { return "unvar"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Var.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Var.java index 108a1808..5204940c 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Var.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/variable/Var.java @@ -6,6 +6,7 @@ import de.steamwar.bausystem.features.script.SpecialCommand; import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; +import org.bukkit.Material; @Linked(LinkageType.SCRIPT_COMMAND) public class Var implements SpecialCommand { @@ -19,6 +20,11 @@ public class Var implements SpecialCommand { }; } + @Override + public Material material() { + return Material.STRUCTURE_BLOCK; + } + @Override public String command() { return "var"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/world/GetMaterial.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/world/GetMaterial.java index 2f71b529..15186ca9 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/world/GetMaterial.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/world/GetMaterial.java @@ -26,6 +26,7 @@ import de.steamwar.bausystem.features.script.variables.Value; import de.steamwar.bausystem.linkage.LinkageType; import de.steamwar.bausystem.linkage.Linked; import org.bukkit.Bukkit; +import org.bukkit.Material; import org.bukkit.World; @Linked(LinkageType.SCRIPT_COMMAND) @@ -42,6 +43,11 @@ public class GetMaterial implements SpecialCommand { }; } + @Override + public Material material() { + return Material.STICKY_PISTON; + } + @Override public String command() { return "getmaterial"; diff --git a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/world/SetMaterial.java b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/world/SetMaterial.java index d64b9795..ea062c52 100644 --- a/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/world/SetMaterial.java +++ b/BauSystem_Main/src/de/steamwar/bausystem/features/script/command/world/SetMaterial.java @@ -42,6 +42,11 @@ public class SetMaterial implements SpecialCommand { }; } + @Override + public Material material() { + return Material.PISTON; + } + @Override public String command() { return "setmaterial";