Browse Source

fixed inconsistent snuvi commands

Kajetan Johannes Hammerle 6 năm trước cách đây
mục cha
commit
079bc7df7f

BIN
src/SpeedTester.jar


+ 1 - 1
src/main/java/me/km/playerbank/PlayerManager.java

@@ -30,7 +30,7 @@ public class PlayerManager extends Module
         return bank;
     }
     
-    public int getPlayerId(UUID uuid)
+    public synchronized int getPlayerId(UUID uuid)
     {
         Integer i = playerIds.get(uuid);
         if(i != null)

+ 17 - 62
src/main/java/me/km/snuviscript/MinecraftFunctions.java

@@ -222,11 +222,7 @@ public class MinecraftFunctions
             ((EntityPlayer) in[0].get(sc)).inventory.clear();
             return Void.TYPE; 
         });  
-        parser.registerFunction("player.inventorytolist", (sc, in) -> 
-        { 
-            in[0].set(sc, ((EntityPlayer) in[1].get(sc)).inventory.mainInventory); 
-            return Void.TYPE; 
-        });    
+        parser.registerFunction("player.inventorytolist", (sc, in) -> ((EntityPlayer) in[1].get(sc)).inventory.mainInventory);    
         parser.registerFunction("player.getnearest", (sc, in) -> 
         {
             Location l = (Location) in[0].get(sc);
@@ -473,21 +469,12 @@ public class MinecraftFunctions
         // Players-library
         // --------------------------------------------------------------------- 
         parser.registerFunction("players.getamount", (sc, in) -> (double) KajetansMod.server.getCurrentPlayerCount());
-        parser.registerFunction("players.tolist", (sc, in) -> 
-        {     
-            in[0].set(sc, new ArrayList(KajetansMod.server.getPlayerList().getPlayers())); 
-            return Void.TYPE; 
-        });    
-        parser.registerFunction("players.toworldlist", (sc, in) -> 
-        {     
-            in[0].set(sc, new ArrayList(((World) in[1].get(sc)).playerEntities)); 
-            return Void.TYPE; 
-        });
+        parser.registerFunction("players.tolist", (sc, in) -> new ArrayList(KajetansMod.server.getPlayerList().getPlayers()));    
+        parser.registerFunction("players.toworldlist", (sc, in) -> new ArrayList(((World) in[0].get(sc)).playerEntities));
         parser.registerFunction("players.near", (sc, in) -> 
         {     
             Location l = (Location) in[1].get(sc);
-            in[0].set(sc, Utils.getPlayers(l.getWorld(), l.getX(), l.getY(), l.getZ(), in[2].getDouble(sc))); 
-            return Void.TYPE;
+            return Utils.getPlayers(l.getWorld(), l.getX(), l.getY(), l.getZ(), in[2].getDouble(sc)); 
         });
         
         // ---------------------------------------------------------------------    
@@ -703,8 +690,7 @@ public class MinecraftFunctions
         });
         parser.registerFunction("item.getlore", (sc, in) -> 
         {    
-            in[0].set(sc, ItemStackUtils.getLore((ItemStack) in[1].get(sc))); 
-            return Void.TYPE; 
+            return ItemStackUtils.getLore((ItemStack) in[1].get(sc)); 
         });
         parser.registerFunction("item.setlore", (sc, in) -> 
         {   
@@ -772,6 +758,7 @@ public class MinecraftFunctions
             }
             return Void.TYPE;
         });
+        parser.registerFunction("item.clone", (sc, in) -> ((ItemStack) in[0].get(sc)).copy());
 
         // ---------------------------------------------------------------------    
         // Location-library
@@ -1750,7 +1737,6 @@ public class MinecraftFunctions
         parser.registerFunction("databank.workerexecute", (sc, in) -> 
         {    
             final PreparedStatement p = (PreparedStatement) in[0].get(sc);
-            final String name = sc.getName();
             KajetansMod.scheduler.getWorker().add(() -> 
             {
                 try
@@ -1761,8 +1747,7 @@ public class MinecraftFunctions
                 {
                     KajetansMod.scheduler.scheduleTask(() -> 
                     {
-                        ChatChannel.getDevChannel().sendWarning("Worker error in script '" + name + "'");
-                        ChatChannel.getDevChannel().sendWarning(ex.getLocalizedMessage());
+                        sc.getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
                     });
                 }
                 sc.removeCloseable(p);
@@ -1774,8 +1759,7 @@ public class MinecraftFunctions
                 {
                     KajetansMod.scheduler.scheduleTask(() -> 
                     {
-                        ChatChannel.getDevChannel().sendWarning("Worker error in script '" + name + "'");
-                        ChatChannel.getDevChannel().sendWarning(ex.getLocalizedMessage());
+                        sc.getLogger().print("Worker error", ex, null, sc.getName(), sc, -1);
                     });
                 }
             }); 
@@ -1818,11 +1802,7 @@ public class MinecraftFunctions
         // ---------------------------------------------------------------------  
         // Script-library   
         // ---------------------------------------------------------------------    
-        parser.registerFunction("script.playerstolist", (sc, in) -> 
-        {  
-            in[0].set(sc, new ArrayList<>(KajetansMod.scripts.getPlayerList(sc.getId()))); 
-            return Void.TYPE; 
-        }); 
+        parser.registerFunction("script.playerstolist", (sc, in) -> new ArrayList<>(KajetansMod.scripts.getPlayerList(sc.getId()))); 
         parser.registerFunction("script.getplayeramount", (sc, in) -> (double) KajetansMod.scripts.getPlayerList(sc.getId()).size()); 
         parser.registerFunction("script.start", (sc, in) -> 
         {  
@@ -1840,12 +1820,11 @@ public class MinecraftFunctions
             names[0] = o.toString();
             for(int i = 1; i < in.length; i++)
             {
-                names[i - 1] = in[i].getString(sc);
+                names[i] = in[i].getString(sc);
             }
             KajetansMod.scripts.startScript(names);
             return true;
         });
-        parser.registerFunction("script.get", (sc, in) -> KajetansMod.scripts.getScript(in[0].getString(sc)));
         parser.registerFunction("script.join", (sc, in) -> KajetansMod.scripts.registerPlayer((Script) in[0].get(sc), (EntityPlayer) in[1].get(sc)));
         parser.registerFunction("script.kick", (sc, in) -> KajetansMod.scripts.unregisterPlayer(sc, (EntityPlayer) in[0].get(sc)));
         parser.registerFunction("script.getleader", (sc, in) -> 
@@ -1984,23 +1963,12 @@ public class MinecraftFunctions
         // ---------------------------------------------------------------------  
         // Inventory-library   
         // ---------------------------------------------------------------------
-        parser.registerFunction("inv.new", (sc, in) -> 
-        { 
-            in[0].set(sc, new SnuviInventory(in[2].getString(sc), in[1].getInt(sc), inventoryIds++)); 
-            return Void.TYPE; 
-        }); 
-        parser.registerFunction("inv.newdynamic", (sc, in) -> 
-        { 
-            in[0].set(sc, new SnuviInventory(in[2].getString(sc), in[1].getString(sc), inventoryIds++)); 
-            return Void.TYPE; 
-        }); 
-        parser.registerFunction("inv.getid", (sc, in) -> 
-        { 
-            return (double) ((SnuviInventory) in[0].get(sc)).getId(); 
-        }); 
+        parser.registerFunction("inv.new", (sc, in) -> new SnuviInventory(in[1].getString(sc), in[0].getString(sc), inventoryIds++)); 
+        parser.registerAlias("inv.new", "inv.newdynamic");
+        parser.registerFunction("inv.getid", (sc, in) -> (double) ((SnuviInventory) in[0].get(sc)).getId()); 
         parser.registerFunction("inv.loadblock", (sc, in) -> 
         { 
-            Location l = (Location) in[1].get(sc);
+            Location l = (Location) in[0].get(sc);
             TileEntityChest chest = (TileEntityChest) l.getWorld().getTileEntity(l.getBlockPos());
             int size = chest.getSizeInventory();
             if(size % 9 != 0)
@@ -2009,13 +1977,12 @@ public class MinecraftFunctions
                 size++;
                 size *= 9;
             }
-            SnuviInventory inv = new SnuviInventory(in[2].getString(sc), size, inventoryIds++); 
+            SnuviInventory inv = new SnuviInventory(in[1].getString(sc), size, inventoryIds++); 
             for(int i = 0; i < chest.getSizeInventory(); i++)
             {
                 inv.setInventorySlotContents(i, chest.getStackInSlot(i).copy());
             }
-            in[0].set(sc, inv); 
-            return Void.TYPE; 
+            return inv; 
         });
         parser.registerFunction("inv.setitem", (sc, in) -> 
         { 
@@ -2279,18 +2246,6 @@ public class MinecraftFunctions
             return Void.TYPE; 
         });       
         parser.registerFunction("removeformat", (sc, in) -> SnuviUtils.connect(sc, in, 0).replaceAll("§.", ""));           
-        parser.registerFunction("concatspace", (sc, in) -> SnuviUtils.connect(sc, in, " ", 0));     
-        parser.registerFunction("onlyletters", (sc, in) -> 
-        {             
-            for(char c : SnuviUtils.connect(sc, in, 0).toCharArray())
-            {
-                if(!Character.isLetter(c))
-                {
-                    return false;
-                }
-            }
-            return true;
-        });
         parser.registerFunction("command", (sc, in) -> 
         { 
             final String s = SnuviUtils.connect(sc, in, 0);
@@ -2339,7 +2294,7 @@ public class MinecraftFunctions
     {
         if(group instanceof String)
         {
-            switch(group.toString()) 
+            switch(group.toString().toLowerCase()) 
             {
                 case "all":
                     PlayerList list = KajetansMod.server.getPlayerList();

+ 0 - 13
src/main/java/me/km/snuviscript/ScriptModule.java

@@ -117,19 +117,6 @@ public class ScriptModule extends Module
         return playerScript.containsKey(p.getUniqueID());
     }
     
-    public Script getScript(String name)
-    {
-        Collection<Script> scripts = parser.getScripts();
-        for(Script sc : scripts)
-        {
-            if(sc.getName().equals(name))
-            {
-                return sc;
-            }
-        }
-        return null;
-    }
-    
     public Script getScript(EntityPlayer p)
     {
         // check if the player is mapped to a script