Browse Source

bugfix, more snuvi stuff

Kajetan Johannes Hammerle 3 years ago
parent
commit
244ee2dc02

+ 14 - 0
src/me/hammerle/kp/snuviscript/commands/BlockCommands.java

@@ -15,6 +15,7 @@ import org.bukkit.block.data.Bisected;
 import org.bukkit.block.data.BlockData;
 import org.bukkit.block.data.Directional;
 import org.bukkit.block.data.Openable;
+import org.bukkit.block.data.type.Bed;
 import org.bukkit.block.data.type.Door;
 import org.bukkit.block.data.type.Leaves;
 import org.bukkit.entity.LivingEntity;
@@ -156,5 +157,18 @@ public class BlockCommands {
         });
         KajetansPlugin.scriptManager.registerFunction("block.isleaves",
                 (sc, in) -> ((Block) in[0].get(sc)).getBlockData() instanceof Leaves);
+        KajetansPlugin.scriptManager.registerFunction("block.isbed",
+                (sc, in) -> ((Block) in[0].get(sc)).getBlockData() instanceof Bed);
+        KajetansPlugin.scriptManager.registerConsumer("block.setbedpart", (sc, in) -> {
+            Block b = (Block) in[0].get(sc);
+            Bed o = (Bed) b.getBlockData();
+            o.setPart(Bed.Part.valueOf(in[1].getString(sc)));
+            b.setBlockData(o);
+        });
+        KajetansPlugin.scriptManager.registerFunction("block.getbedpart", (sc, in) -> {
+            Block b = (Block) in[0].get(sc);
+            Bed o = (Bed) b.getBlockData();
+            return o.getPart().toString();
+        });
     }
 }

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

@@ -70,8 +70,13 @@ public class ItemCommands {
                 (sc, in) -> (double) ((ItemStack) in[0].get(sc)).getAmount());
         KajetansPlugin.scriptManager.registerConsumer("item.setamount",
                 (sc, in) -> ((ItemStack) in[0].get(sc)).setAmount(in[1].getInt(sc)));
-        KajetansPlugin.scriptManager.registerFunction("item.hasname",
-                (sc, in) -> ((ItemStack) in[0].get(sc)).getItemMeta().hasDisplayName());
+        KajetansPlugin.scriptManager.registerFunction("item.hasname", (sc, in) -> {
+            ItemStack stack = (ItemStack) in[0].get(sc);
+            if(stack.getItemMeta() == null) {
+                return false;
+            }
+            return stack.getItemMeta().hasDisplayName();
+        });
         KajetansPlugin.scriptManager.registerFunction("item.getname",
                 (sc, in) -> ((ItemStack) in[0].get(sc)).getItemMeta().displayName());
         KajetansPlugin.scriptManager.registerConsumer("item.setname", (sc, in) -> {

+ 4 - 0
src/me/hammerle/kp/snuviscript/commands/PermissionCommands.java

@@ -23,6 +23,10 @@ public class PermissionCommands {
             }
             p.addAttachment(KajetansPlugin.instance, in[0].getString(sc), true);
         });
+        KajetansPlugin.scriptManager.registerConsumer("perm.remove", (sc, in) -> {
+            Player p = (Player) in[1].get(sc);
+            p.addAttachment(KajetansPlugin.instance, in[0].getString(sc), false);
+        });
         KajetansPlugin.scriptManager.registerConsumer("perm.update", (sc, in) -> {
             Player p = (Player) in[0].get(sc);
             p.recalculatePermissions();

+ 4 - 0
src/me/hammerle/kp/snuviscript/commands/TextCommands.java

@@ -31,6 +31,10 @@ public class TextCommands {
             Component c = (Component) in[0].get(sc);
             return c.clickEvent(ClickEvent.runCommand(in[1].getString(sc)));
         });
+        KajetansPlugin.scriptManager.registerFunction("text.suggest", (sc, in) -> {
+            Component c = (Component) in[0].get(sc);
+            return c.clickEvent(ClickEvent.suggestCommand(in[1].getString(sc)));
+        });
         KajetansPlugin.scriptManager.registerFunction("text.item", (sc, in) -> {
             Component c = (Component) in[0].get(sc);
             return c.hoverEvent(((ItemStack) in[1].get(sc)).asHoverEvent());