SteamWar/BauSystem
Archiviert
13
0

Script Turing Completeness #152

Manuell gemergt
YoyoNow hat 14 Commits von ScriptBranches nach master 2021-01-09 20:40:17 +01:00 zusammengeführt
Nur Änderungen aus Commit ffd080411f werden angezeigt - Alle Commits anzeigen

Datei anzeigen

@ -32,6 +32,10 @@ import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import org.bukkit.event.block.Action;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryCreativeEvent;
import org.bukkit.event.inventory.InventoryInteractEvent;
import org.bukkit.event.inventory.InventoryMoveItemEvent;
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
import org.bukkit.event.player.PlayerInteractEvent;
import org.bukkit.inventory.ItemStack;
@ -72,6 +76,43 @@ public class ScriptListener implements Listener {
new ScriptExecutor((BookMeta) item.getItemMeta(), event.getPlayer());
}
@EventHandler(priority = EventPriority.HIGH)
public void onInventoryClick(InventoryClickEvent event) {
if (!(event.isShiftClick() && event.isLeftClick())) {
return;
}
ItemStack item = event.getCurrentItem();
if(item == null || isNoBook(item) || item.getItemMeta() == null)
return;
Veraltet
Review

Mach das System nicht komplexer als nötig.

Mach das System nicht komplexer als nötig.
if (item.getItemMeta().getDisplayName().equals("§8Script Buch")) {
return;
Veraltet
Review

Wenn jemand mehr als 200 Befehle in ein Skriptbuch packt, dann werden eben mehr als 200 Befehle ausgeführt. Du kannst damit nicht Serverabstürze verhindern.

Wenn jemand mehr als 200 Befehle in ein Skriptbuch packt, dann werden eben mehr als 200 Befehle ausgeführt. Du kannst damit nicht Serverabstürze verhindern.
Veraltet
Review

Ich will damit auch verhindern, dass du unendlich schleifen machst. Aber ich habe es nun rausgenommen.

Ich will damit auch verhindern, dass du unendlich schleifen machst. Aber ich habe es nun rausgenommen.
}
event.setCancelled(true);
new ScriptExecutor((BookMeta) item.getItemMeta(), (Player) event.getWhoClicked());
}
@EventHandler(priority = EventPriority.HIGH)
public void onInventoryCreative(InventoryCreativeEvent event) {
System.out.println(event + " " + event.getCursor() + " " + event.getClick() + " " + event.getCurrentItem());
if (!(event.isShiftClick() && event.isLeftClick())) {
return;
}
ItemStack item = event.getCurrentItem();
if(item == null || isNoBook(item) || item.getItemMeta() == null)
return;
if (item.getItemMeta().getDisplayName().equals("§8Script Buch")) {
return;
}
event.setCancelled(true);
new ScriptExecutor((BookMeta) item.getItemMeta(), (Player) event.getWhoClicked());
}
private boolean isNoBook(ItemStack item){
switch(Core.getVersion()){
case 12: