Browse Source

extended item entity api

Kajetan Johannes Hammerle 3 years ago
parent
commit
9b9c8afeb1
1 changed files with 20 additions and 3 deletions
  1. 20 3
      src/me/hammerle/kp/snuviscript/commands/ItemEntityCommands.java

+ 20 - 3
src/me/hammerle/kp/snuviscript/commands/ItemEntityCommands.java

@@ -1,15 +1,32 @@
 package me.hammerle.kp.snuviscript.commands;
 
 import org.bukkit.entity.Item;
+import org.bukkit.entity.SizedFireball;
+import org.bukkit.entity.ThrowableProjectile;
 import org.bukkit.inventory.ItemStack;
 import me.hammerle.kp.KajetansPlugin;
 
 public class ItemEntityCommands {
     public static void registerFunctions() {
-        KajetansPlugin.scriptManager.registerFunction("item.entity.get",
-                (sc, in) -> ((Item) in[0].get(sc)).getItemStack());
+        KajetansPlugin.scriptManager.registerFunction("item.entity.get", (sc, in) -> {
+            Object o = in[0].get(sc);
+            if(o instanceof SizedFireball) {
+                return ((SizedFireball) o).getDisplayItem();
+            } else if(o instanceof ThrowableProjectile) {
+                return ((ThrowableProjectile) o).getItem();
+            }
+            return ((Item) o).getItemStack();
+        });
         KajetansPlugin.scriptManager.registerConsumer("item.entity.set", (sc, in) -> {
-            ((Item) in[0].get(sc)).setItemStack((ItemStack) in[1].get(sc));
+            Object o = in[0].get(sc);
+            ItemStack stack = (ItemStack) in[1].get(sc);
+            if(o instanceof SizedFireball) {
+                ((SizedFireball) o).setDisplayItem(stack);
+            } else if(o instanceof ThrowableProjectile) {
+                ((ThrowableProjectile) o).setItem(stack);
+            } else {
+                ((Item) in[0].get(sc)).setItemStack(stack);
+            }
         });
         KajetansPlugin.scriptManager.registerConsumer("item.entity.setpickupdelay", (sc, in) -> {
             ((Item) in[0].get(sc)).setPickupDelay(in[1].getInt(sc));