Browse Source

armor stand api, fixed custom item stack size, logger has timestamp,
whitelist api

Kajetan Johannes Hammerle 3 years ago
parent
commit
b019103fad

+ 0 - 2
src/me/hammerle/kp/CustomItems.java

@@ -62,8 +62,6 @@ public class CustomItems {
         GEAR(80, "Gear", 64),
         MINUS_GREEN(82, "Green Minus", 64),
         MINUS_RED(84, "Red Minus", 64),
-        MUSHROOM_STICK_COOKED(86, "Raw Mushroom Stick", 64),
-        MUSHROOM_STICK_RAW(88, "Cooked Mushroom Stick", 64),
         WOLF_FUR(94, "Wolf Fur", 64),
         SCROLL(96, "Scroll", 64);
 

+ 1 - 0
src/me/hammerle/kp/KajetansPlugin.java

@@ -104,6 +104,7 @@ public class KajetansPlugin extends JavaPlugin implements ISnuviScheduler {
         DamageCommands.registerFunctions();
         EntityCommands.registerFunctions();
         LivingCommands.registerFunctions();
+        ArmorStandCommands.registerFunctions();
         HumanCommands.registerFunctions();
         DatabaseCommands.registerFunctions();
         PlotCommands.registerFunctions();

+ 17 - 6
src/me/hammerle/kp/snuviscript/SnuviLogger.java

@@ -9,8 +9,19 @@ import me.hammerle.snuviscript.exceptions.StackTrace;
 public class SnuviLogger implements ISnuviLogger {
     private boolean printErrorToConsole = true;
     private boolean printDebugToConsole = true;
-    private final RingArray<String> debugHistory = new RingArray<>(100);
-    private final RingArray<String> errorHistory = new RingArray<>(100);
+
+    public static class Message {
+        public final String message;
+        public final long timestamp;
+
+        public Message(String message) {
+            this.message = message;
+            this.timestamp = System.currentTimeMillis();
+        }
+    }
+
+    private final RingArray<Message> debugHistory = new RingArray<>(100);
+    private final RingArray<Message> errorHistory = new RingArray<>(100);
 
     public void setConsoleErrorLogging(boolean b) {
         printErrorToConsole = b;
@@ -20,11 +31,11 @@ public class SnuviLogger implements ISnuviLogger {
         printDebugToConsole = b;
     }
 
-    public RingArray<String> getDebugHistory() {
+    public RingArray<Message> getDebugHistory() {
         return debugHistory;
     }
 
-    public RingArray<String> getErrorHistory() {
+    public RingArray<Message> getErrorHistory() {
         return errorHistory;
     }
 
@@ -70,13 +81,13 @@ public class SnuviLogger implements ISnuviLogger {
 
         String msg = sb.toString();
         if(ex == null) {
-            debugHistory.add(msg);
+            debugHistory.add(new Message(msg));
             if(printDebugToConsole) {
                 KajetansPlugin.log(msg);
             }
             sendToPlayers(msg, "script.debug");
         } else {
-            errorHistory.add(msg);
+            errorHistory.add(new Message(msg));
             if(printErrorToConsole) {
                 KajetansPlugin.log(msg);
             }

+ 74 - 0
src/me/hammerle/kp/snuviscript/commands/ArmorStandCommands.java

@@ -0,0 +1,74 @@
+package me.hammerle.kp.snuviscript.commands;
+
+import me.hammerle.kp.KajetansPlugin;
+import org.bukkit.entity.ArmorStand;
+import org.bukkit.util.EulerAngle;
+
+public class ArmorStandCommands {
+    public static void registerFunctions() {
+        KajetansPlugin.scriptManager.registerFunction("as.getBodyPose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).getBodyPose());
+        KajetansPlugin.scriptManager.registerFunction("as.getHeadPose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).getHeadPose());
+        KajetansPlugin.scriptManager.registerFunction("as.getleftarmpose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).getLeftArmPose());
+        KajetansPlugin.scriptManager.registerFunction("as.getleftlegpose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).getLeftLegPose());
+        KajetansPlugin.scriptManager.registerFunction("as.getrightarmpose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).getRightArmPose());
+        KajetansPlugin.scriptManager.registerFunction("as.getrightlegpose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).getRightLegPose());
+        KajetansPlugin.scriptManager.registerFunction("as.hasarms",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).hasArms());
+        KajetansPlugin.scriptManager.registerFunction("as.hasbaseplate",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).hasArms());
+        KajetansPlugin.scriptManager.registerFunction("as.ismarker",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).isMarker());
+        KajetansPlugin.scriptManager.registerFunction("as.issmall",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).isSmall());
+        KajetansPlugin.scriptManager.registerConsumer("as.setarms",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).setArms(in[1].getBoolean(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.setbaseplate",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).setBasePlate(in[1].getBoolean(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.setmarker",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).setMarker(in[1].getBoolean(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.setsmall",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).setSmall(in[1].getBoolean(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.setbodypose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).setBodyPose((EulerAngle) in[1].get(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.canmove",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).setCanMove(in[1].getBoolean(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.cantick",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).setCanTick(in[1].getBoolean(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.setheadpose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc)).setHeadPose((EulerAngle) in[1].get(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.setleftarmpose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc))
+                        .setLeftArmPose((EulerAngle) in[1].get(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.setleftlegpose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc))
+                        .setLeftLegPose((EulerAngle) in[1].get(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.setrightarmpose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc))
+                        .setRightArmPose((EulerAngle) in[1].get(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("as.setrightlegpose",
+                (sc, in) -> ((ArmorStand) in[0].get(sc))
+                        .setRightLegPose((EulerAngle) in[1].get(sc)));
+
+        KajetansPlugin.scriptManager.registerConsumer("euler.new",
+                (sc, in) -> new EulerAngle(in[0].getDouble(sc), in[1].getDouble(sc),
+                        in[2].getDouble(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("euler.getx",
+                (sc, in) -> ((EulerAngle) in[0].get(sc)).getX());
+        KajetansPlugin.scriptManager.registerConsumer("euler.gety",
+                (sc, in) -> ((EulerAngle) in[0].get(sc)).getY());
+        KajetansPlugin.scriptManager.registerConsumer("euler.getz",
+                (sc, in) -> ((EulerAngle) in[0].get(sc)).getZ());
+        KajetansPlugin.scriptManager.registerConsumer("euler.setx",
+                (sc, in) -> ((EulerAngle) in[0].get(sc)).setX(in[1].getDouble(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("euler.sety",
+                (sc, in) -> ((EulerAngle) in[0].get(sc)).setY(in[1].getDouble(sc)));
+        KajetansPlugin.scriptManager.registerConsumer("euler.setz",
+                (sc, in) -> ((EulerAngle) in[0].get(sc)).setZ(in[1].getDouble(sc)));
+    }
+}

+ 17 - 0
src/me/hammerle/kp/snuviscript/commands/BanCommands.java

@@ -27,5 +27,22 @@ public class BanCommands {
         KajetansPlugin.scriptManager.registerConsumer("ban.remove", (sc, in) -> {
             Bukkit.getBanList(BanList.Type.NAME).pardon(in[0].getString(sc));
         });
+        KajetansPlugin.scriptManager.registerConsumer("whitelist.enable", (sc, in) -> {
+            Bukkit.setWhitelist(true);
+        });
+        KajetansPlugin.scriptManager.registerConsumer("whitelist.disable", (sc, in) -> {
+            Bukkit.setWhitelist(false);
+        });
+        KajetansPlugin.scriptManager.registerConsumer("whitelist.add", (sc, in) -> {
+            Bukkit.getWhitelistedPlayers()
+                    .add(Bukkit.getOfflinePlayer(CommandUtils.getUUID(in[0].get(sc))));
+        });
+        KajetansPlugin.scriptManager.registerConsumer("whitelist.remove", (sc, in) -> {
+            Bukkit.getWhitelistedPlayers()
+                    .remove(Bukkit.getOfflinePlayer(CommandUtils.getUUID(in[0].get(sc))));
+        });
+        KajetansPlugin.scriptManager.registerConsumer("whitelist.clear", (sc, in) -> {
+            Bukkit.getWhitelistedPlayers().clear();
+        });
     }
 }

+ 8 - 2
src/me/hammerle/kp/snuviscript/commands/ErrorCommands.java

@@ -11,7 +11,10 @@ public class ErrorCommands {
             return (double) KajetansPlugin.logger.getErrorHistory().getLength();
         });
         KajetansPlugin.scriptManager.registerFunction("error.getindex", (sc, in) -> {
-            return KajetansPlugin.logger.getErrorHistory().get(in[0].getInt(sc));
+            return KajetansPlugin.logger.getErrorHistory().get(in[0].getInt(sc)).message;
+        });
+        KajetansPlugin.scriptManager.registerFunction("error.getindextime", (sc, in) -> {
+            return (double) KajetansPlugin.logger.getErrorHistory().get(in[0].getInt(sc)).timestamp;
         });
         KajetansPlugin.scriptManager.registerConsumer("error.setconsoleprint", (sc, in) -> {
             KajetansPlugin.logger.setConsoleErrorLogging(in[0].getBoolean(sc));
@@ -23,7 +26,10 @@ public class ErrorCommands {
             return KajetansPlugin.logger.getDebugHistory().getLength();
         });
         KajetansPlugin.scriptManager.registerFunction("debug.getindex", (sc, in) -> {
-            return KajetansPlugin.logger.getDebugHistory().get(in[0].getInt(sc));
+            return KajetansPlugin.logger.getDebugHistory().get(in[0].getInt(sc)).message;
+        });
+        KajetansPlugin.scriptManager.registerFunction("debug.getindextime", (sc, in) -> {
+            return (double) KajetansPlugin.logger.getDebugHistory().get(in[0].getInt(sc)).timestamp;
         });
         KajetansPlugin.scriptManager.registerConsumer("debug.setconsoleprint", (sc, in) -> {
             KajetansPlugin.logger.setConsoleDebugLogging(in[0].getBoolean(sc));

+ 2 - 1
src/me/hammerle/kp/snuviscript/commands/ItemCommands.java

@@ -21,6 +21,7 @@ import org.bukkit.potion.PotionEffect;
 import org.bukkit.potion.PotionEffectType;
 import me.hammerle.kp.CustomItems;
 import me.hammerle.kp.KajetansPlugin;
+import me.hammerle.kp.NMS;
 import me.hammerle.kp.CustomItems.CustomItem;
 import net.kyori.adventure.text.Component;
 
@@ -64,7 +65,7 @@ public class ItemCommands {
         KajetansPlugin.scriptManager.registerFunction("item.gettype",
                 (sc, in) -> ((ItemStack) in[0].get(sc)).getType());
         KajetansPlugin.scriptManager.registerFunction("item.getmaxamount",
-                (sc, in) -> (double) ((ItemStack) in[0].get(sc)).getMaxStackSize());
+                (sc, in) -> (double) NMS.map((ItemStack) in[0].get(sc)).d());
         KajetansPlugin.scriptManager.registerFunction("item.getamount",
                 (sc, in) -> (double) ((ItemStack) in[0].get(sc)).getAmount());
         KajetansPlugin.scriptManager.registerConsumer("item.setamount",