Browse Source

new player move event

Kajetan Johannes Hammerle 6 years ago
parent
commit
a1e611f6c8

+ 5 - 0
build.gradle

@@ -77,3 +77,8 @@ processResources {
         exclude 'mcmod.info'
     }
 }
+
+runClient
+{
+    args '--username', 'kajetanjohannes'
+}

+ 1 - 1
src/main/java/me/km/api/SimpleConfig.java

@@ -59,7 +59,7 @@ public class SimpleConfig extends SnuviConfig
     
     public Location getLocation(String key)
     {
-        return new Location(ModDimensions.getWorldFromName(getString(key + ".world")), 
+        return new Location(ModDimensions.getWorldFromName(getString(key + ".world", "world")), 
                 getDouble(key + ".x", 0), getDouble(key + ".y", 0), getDouble(key + ".z", 0),
                 getFloat(key + ".yaw", 0), getFloat(key + ".pitch", 0));
     }

+ 5 - 0
src/main/java/me/km/databank/DataBank.java

@@ -57,6 +57,11 @@ public class DataBank extends Module
         }
     }
     
+    public boolean isDummyDatabank()
+    {
+        return c == null;
+    }
+    
     public Statement createStatement() throws SQLException
     {
         if(c == null)

+ 20 - 30
src/main/java/me/km/databank/SimpleDataBank.java

@@ -24,6 +24,16 @@ public abstract class SimpleDataBank
         return m;
     }
     
+    private void printException(String query, SQLException ex)
+    {
+        if(!c.isDummyDatabank())
+        {
+            m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
+            m.sendWarningToConsole(query);
+            m.sendWarningToConsole(ex.toString());
+        }
+    }
+    
     /** Führt den gegebenen Query aus und gibt den Erfolg zurück.
      *
      * @param query ein Query, irgendetwas mit "INSERT, UPDATE, ..."
@@ -41,9 +51,7 @@ public abstract class SimpleDataBank
         {
             if(!ignore)
             {
-                m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-                m.sendWarningToConsole(query);
-                m.sendWarningToConsole(ex.toString());
+                printException(query, ex);
             }
             return false;
         }
@@ -71,9 +79,7 @@ public abstract class SimpleDataBank
         }
         catch(SQLException ex) 
         {
-            m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-            m.sendWarningToConsole(query);
-            m.sendWarningToConsole(ex.toString());
+            printException(query, ex);
             return null;
         }
     }
@@ -97,9 +103,7 @@ public abstract class SimpleDataBank
         }
         catch(SQLException ex) 
         {
-            m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-            m.sendWarningToConsole(query);
-            m.sendWarningToConsole(ex.toString());
+            printException(query, ex);
             return null;
         }
     }
@@ -132,9 +136,7 @@ public abstract class SimpleDataBank
         {
             if(!ex.getLocalizedMessage().startsWith("Column Index"))
             {
-                m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-                m.sendWarningToConsole(query);
-                m.sendWarningToConsole(ex.toString());
+                printException(query, ex);
                 return null;
             }
             return list;
@@ -162,9 +164,7 @@ public abstract class SimpleDataBank
         }
         catch(SQLException ex) 
         {
-            m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-            m.sendWarningToConsole(query);
-            m.sendWarningToConsole(ex.toString());
+            printException(query, ex);
             return null;
         }
         catch(IllegalStateException ex) 
@@ -194,9 +194,7 @@ public abstract class SimpleDataBank
         }
         catch(SQLException ex) 
         {
-            m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-            m.sendWarningToConsole(query);
-            m.sendWarningToConsole(ex.toString());
+            printException(query, ex);
             return null;
         }
         catch(IllegalStateException ex) 
@@ -234,9 +232,7 @@ public abstract class SimpleDataBank
                 {
                     if(!ex.getLocalizedMessage().startsWith("Column Index"))
                     {
-                        m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-                        m.sendWarningToConsole(query);
-                        m.sendWarningToConsole(ex.toString());
+                        printException(query, ex);
                         return null;
                     }
                 }
@@ -246,9 +242,7 @@ public abstract class SimpleDataBank
         }
         catch(SQLException ex) 
         {
-            m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-            m.sendWarningToConsole(query);
-            m.sendWarningToConsole(ex.toString());
+            printException(query, ex);
             return null;
         }
         catch(IllegalStateException ex) 
@@ -276,9 +270,7 @@ public abstract class SimpleDataBank
         }
         catch(SQLException ex) 
         {
-            m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-            m.sendWarningToConsole(query);
-            m.sendWarningToConsole(ex.toString());
+            printException(query, ex);
             return null;
         }
         catch(IllegalStateException ex) 
@@ -300,9 +292,7 @@ public abstract class SimpleDataBank
         }
         catch(SQLException ex) 
         {
-            m.sendWarningToConsole("Der folgende Query hat einen Error ausgelöst:");
-            m.sendWarningToConsole("SHOW TABLES LIKE '" + table + "';");
-            m.sendWarningToConsole(ex.toString());
+            printException("SHOW TABLES LIKE '" + table + "';", ex);
             return false;
         }
     }

+ 0 - 7
src/main/java/me/km/effects/EffectBlockChanger.java

@@ -2,8 +2,6 @@ package me.km.effects;
 
 import me.km.KajetansMod;
 import java.util.ArrayList;
-import java.util.function.Consumer;
-import me.km.api.Location;
 import net.minecraft.block.Block;
 import net.minecraft.block.state.IBlockState;
 import net.minecraft.util.math.BlockPos;
@@ -44,11 +42,6 @@ public class EffectBlockChanger
         return w;
     }
     
-    public void forEachLocation(Consumer<? super Location> c)
-    {
-        list.stream().map(l -> new Location(w, l.pos)).forEach(c);
-    }
-    
     private class ChangeBlock
     {
         private BlockPos pos;

+ 1 - 3
src/main/java/me/km/effects/active/NailTrap.java

@@ -11,9 +11,7 @@ public class NailTrap extends ActiveEffectBase
     @Override
     protected boolean executeEffect(EntityPlayerMP p, int power) 
     {
-        Location l = new Location(p);
-        l.round();
-        KajetansMod.skills.getEvent(TrapEffects.class).addNailTraps(l, KajetansMod.playerbank.getGuildId(p));
+        TrapEffects.addNailTrap(new Location(p), KajetansMod.playerbank.getGuildId(p));
         KajetansMod.skills.send(p, "Du hast 9 Trittnagelfallen platziert.");
         return true;
     }

+ 1 - 3
src/main/java/me/km/effects/active/NetTrap.java

@@ -11,9 +11,7 @@ public class NetTrap extends ActiveEffectBase
     @Override
     protected boolean executeEffect(EntityPlayerMP p, int power) 
     {
-        Location l = new Location(p);
-        l.round();
-        KajetansMod.skills.getEvent(TrapEffects.class).addNetTrap(l, KajetansMod.playerbank.getGuildId(p));
+        TrapEffects.addNetTrap(new Location(p), KajetansMod.playerbank.getGuildId(p));
         KajetansMod.skills.send(p, "Du hast eine Netzfalle platziert.");
         return true;
     }

+ 4 - 17
src/main/java/me/km/effects/active/VineTrap.java

@@ -1,6 +1,7 @@
 package me.km.effects.active;
 
 import me.km.KajetansMod;
+import me.km.api.Location;
 import me.km.api.Utils;
 import me.km.effects.EffectBlockChanger;
 import me.km.effects.ActiveEffectBase;
@@ -8,35 +9,21 @@ import me.km.effects.passive.TrapEffects;
 import net.minecraft.entity.player.EntityPlayerMP;
 import net.minecraft.init.Blocks;
 import net.minecraft.util.math.BlockPos;
-import net.minecraft.world.World;
 
 public class VineTrap extends ActiveEffectBase
 {
     @Override
     protected boolean executeEffect(EntityPlayerMP p, int power) 
     {
-        int i = KajetansMod.playerbank.getGuildId(p);
-        
-        TrapEffects e = KajetansMod.skills.getEvent(TrapEffects.class);
         BlockPos l = Utils.getPlayerTarget(p, power + 7).add(0, 1, 0);
-        
-        World w = p.world;
-        EffectBlockChanger list = new EffectBlockChanger(w);
+        EffectBlockChanger list = new EffectBlockChanger(p.world);
         list.addBlock(l, Blocks.LOG, 1);
         list.addBlock(l.add(1, 0, 0), Blocks.VINE, 4);
         list.addBlock(l.add(-1, 0, 0), Blocks.VINE, 1);
         list.addBlock(l.add(0, 0, 1), Blocks.VINE, 8);
-        list.addBlock(l.add(0, 0, -1), Blocks.VINE, 2);
-        
-        list.forEachLocation(lo -> e.addVineTrap(lo, i));
+        list.addBlock(l.add(0, 0, -1), Blocks.VINE, 2);      
         list.run(160);
-        KajetansMod.scheduler.scheduleTask(() -> 
-        {
-            list.forEachLocation(lo -> 
-            {
-                e.removeVineTrap(lo);
-            });
-        }, 160);
+        TrapEffects.addVineTrap(new Location(p.world, l), KajetansMod.playerbank.getGuildId(p), 160);
         return true;
     }
 }

+ 49 - 94
src/main/java/me/km/effects/passive/TrapEffects.java

@@ -1,123 +1,78 @@
 package me.km.effects.passive;
 
-import java.util.HashMap;
 import me.km.KajetansMod;
 import me.km.api.Location;
-import me.km.api.Module;
-import me.km.api.ModuleListener;
 import me.km.api.Utils;
 import me.km.effects.EffectBlockChanger;
 import me.km.effects.EffectUtils;
-import me.km.events.PlayerMoveEvent;
-import net.minecraft.entity.player.EntityPlayer;
+import me.km.events.CustomEventCaller;
+import me.km.events.PlayerMoveData;
 import net.minecraft.init.Blocks;
 import net.minecraft.init.MobEffects;
 import net.minecraft.util.DamageSource;
 import net.minecraft.util.math.BlockPos;
-import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
 
-public class TrapEffects extends ModuleListener
-{    
-    private final HashMap<Location, Integer> netTraps;    
-    private final HashMap<Location, Integer> vineTraps;   
-    private final HashMap<Location, Integer> nailTraps;
-    
-    public TrapEffects(Module m)
+public class TrapEffects
+{        
+    public static void addNailTrap(Location l, int id)
     {
-        super(m);
-        netTraps = new HashMap<>();
-        vineTraps = new HashMap<>();
-        nailTraps = new HashMap<>();
-    }
-    
-    public void addNailTraps(Location l, int id)
-    {
-        l = l.copy();
-        l.round();
-        for(int x = -1; x <= 1; x++)
+        l = l.copyAdd(-1.5, 0, -1.5);
+        for(int x = 0; x < 3; x++)
         {
-            for(int y = -1; y <= 1; y++)
+            for(int z = 0; z < 3; z++)
             {
-                nailTraps.put(l.copyAdd(x, 0, y), id);
+                CustomEventCaller.registerMoveData(new PlayerMoveData((p, data) -> 
+                        {
+                            if((int) data != KajetansMod.playerbank.getGuildId(p))
+                            {
+                                p.attackEntityFrom(DamageSource.GENERIC, 6);
+                                EffectUtils.addPotionTo(p, MobEffects.SLOWNESS, 200, 1);
+                            }
+                        }, l.copyAdd(x, 0, z), l.copyAdd(x + 1, 1, z + 1), -1, -1, id));
             }
         }
     }
     
-    public void addNetTrap(Location l, int id)
-    {
-        l = l.copy();
-        l.round();
-        netTraps.put(l, id);
-    }
-    
-    public void addVineTrap(Location l, int id)
+    public static void addNetTrap(Location oldL, int id)
     {
-        l = l.copy();
-        l.round();
-        vineTraps.put(l, id);
-    }
-    
-    public void removeVineTrap(Location l)
-    {
-        l = l.copy();
-        l.round();
-        vineTraps.remove(l);
-    }
-    
-    @SubscribeEvent
-    public void executeTrap(PlayerMoveEvent e)
-    {       
-        EntityPlayer p = e.getEntityPlayer();
-        Location l = new Location(p);
-        l.round();
-        if(netTraps.containsKey(l))
-        {
-            Integer i = netTraps.get(l);
-            if(!(i < 0 && i == -KajetansMod.playerbank.getDataBank().getIdByUUID(p.getUniqueID().toString())) && 
-                    i != KajetansMod.playerbank.getGuildId(p))
-            {
-                netTraps.remove(l);
-                BlockPos b = l.getBlockPos();
-                EffectBlockChanger changer = new EffectBlockChanger(l.getWorld());
-                for(int x = -3; x <= 3; x++)
+        Location l = oldL.copyAdd(-0.5, 0, -0.5);
+        CustomEventCaller.registerMoveData(new PlayerMoveData((p, data) -> 
                 {
-                    for(int y = 0; y <= 3; y++)
+                    if((int) data != KajetansMod.playerbank.getGuildId(p))
                     {
-                        for(int z = -3; z <= 3; z++)
+                        BlockPos b = l.getBlockPos();
+                        EffectBlockChanger changer = new EffectBlockChanger(l.getWorld());
+                        for(int x = -3; x <= 3; x++)
                         {
-                            if((Math.abs(x) == 3 ? 1 : 0) + (Math.abs(y) == 3 ? 1 : 0) + (Math.abs(z) == 3 ? 1 : 0) >= 2)
+                            for(int y = 0; y <= 3; y++)
                             {
-                                continue;
-                            }
-                            if(Utils.randomInt(1, 10) >= 3)
-                            {
-                                changer.addBlock(b.add(x, y, z), Blocks.WEB);
+                                for(int z = -3; z <= 3; z++)
+                                {
+                                    if((Math.abs(x) == 3 ? 1 : 0) + (Math.abs(y) == 3 ? 1 : 0) + (Math.abs(z) == 3 ? 1 : 0) >= 2)
+                                    {
+                                        continue;
+                                    }
+                                    if(Utils.randomInt(1, 10) >= 3)
+                                    {
+                                        changer.addBlock(b.add(x, y, z), Blocks.WEB);
+                                    }
+                                }
                             }
                         }
+                        changer.run(120);
                     }
-                }
-                changer.run(120);
-            }
-        }
-        if(vineTraps.containsKey(l))
-        {
-            Integer i = vineTraps.get(l);
-            if(!(i < 0 && i == -KajetansMod.playerbank.getDataBank().getIdByUUID(p.getUniqueID().toString())) && 
-                    i != KajetansMod.playerbank.getGuildId(p))
-            {
-                EffectUtils.addPotionTo(p, MobEffects.POISON, 60, 2);
-            }
-        }
-        if(nailTraps.containsKey(l))
-        {
-            Integer i = nailTraps.get(l);
-            if(!(i < 0 && i == -KajetansMod.playerbank.getDataBank().getIdByUUID(p.getUniqueID().toString())) && 
-                    i != KajetansMod.playerbank.getGuildId(p))
-            {
-                nailTraps.remove(l);
-                p.attackEntityFrom(DamageSource.GENERIC, 6);
-                EffectUtils.addPotionTo(p, MobEffects.SLOWNESS, 200, 1);
-            }
-        }
+                }, l, l.copyAdd(1, 1, 1), -1, -1, id));
+    }
+    
+    public static void addVineTrap(Location l, int id, int livingTime)
+    {
+        l = l.copyAdd(-0.9, 0, -0.9);
+        CustomEventCaller.registerMoveData(new PlayerMoveData((p, data) -> 
+                {
+                    if((int) data != KajetansMod.playerbank.getGuildId(p))
+                    {
+                        EffectUtils.addPotionTo(p, MobEffects.POISON, 60, 2);
+                    }
+                }, l, l.copyAdd(2.8, 1, 2.8), 10, livingTime, id));
     }
 }

+ 34 - 18
src/main/java/me/km/events/CustomEventCaller.java

@@ -1,6 +1,9 @@
 package me.km.events;
 
 import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedList;
+import me.km.KajetansMod;
 import me.km.utils.ReflectionUtils;
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.player.EntityPlayer;
@@ -12,35 +15,48 @@ import net.minecraftforge.event.entity.EntityJoinWorldEvent;
 import net.minecraftforge.event.entity.living.LivingHurtEvent;
 import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
 import net.minecraftforge.fml.common.gameevent.TickEvent;
-import net.minecraftforge.fml.relauncher.Side;
 
 public class CustomEventCaller 
 {
     private static final ArrayList<EntityArrow> ARROWS = new ArrayList<>();
     
-    private static double x;
-    private static double y;
-    private static double z;
+    private static final HashMap<Integer, PlayerMoveData> MOVE_DATA = new HashMap<>();
+    private static int idCounter = 0;
+    private static final LinkedList<Integer> REMOVE_QUEUE = new LinkedList<>();
+    
+    public static int registerMoveData(PlayerMoveData data)
+    {
+        idCounter++;
+        MOVE_DATA.put(idCounter, data);
+        return idCounter;
+    }
+    
+    public static void removeMoveData(int id)
+    {
+        REMOVE_QUEUE.add(id);
+    }
     
     @SubscribeEvent
-    public void onPlayerMove(TickEvent.PlayerTickEvent e)
+    public void onPlayerMove(TickEvent.ServerTickEvent e)
     {      
-        if(e.side == Side.SERVER)
+        if(e.phase == TickEvent.Phase.END)
         {
-            if(e.phase == TickEvent.Phase.END)
-            {
-                EntityPlayer p = e.player;
-                x = p.prevPosX;
-                y = p.prevPosY;
-                z = p.prevPosZ;
-            }
-            else
+            MOVE_DATA.values().removeIf(data -> 
             {
-                EntityPlayer p = e.player;
-                if(p.posX != x || p.posY != y || p.posZ != z)
+                if(data.tickLiving())
                 {
-                    MinecraftForge.EVENT_BUS.post(new PlayerMoveEvent(p));
-                }  
+                    return true;
+                }
+                if(data.tick())
+                {
+                    return false;
+                }
+                return KajetansMod.server.getPlayerList().getPlayers().stream().anyMatch(p -> data.check(p));
+            });
+            if(!REMOVE_QUEUE.isEmpty())
+            {
+                REMOVE_QUEUE.forEach(i -> MOVE_DATA.remove(i));
+                REMOVE_QUEUE.clear();
             }
         }
     } 

+ 102 - 0
src/main/java/me/km/events/PlayerMoveData.java

@@ -0,0 +1,102 @@
+package me.km.events;
+
+import java.util.function.BiConsumer;
+import me.hammerle.snuviscript.code.Script;
+import me.km.KajetansMod;
+import me.km.api.Location;
+import me.km.snuviscript.ScriptEvents;
+import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.world.World;
+
+public class PlayerMoveData 
+{
+    private final Script sc;
+    private final BiConsumer<EntityPlayerMP, Object> c;
+    private final int coolDown;
+    private int ticks;
+    private int livingTime;
+    
+    private Object data;
+    
+    private final World w;
+    private final double minX;
+    private final double minY;
+    private final double minZ;
+    private final double maxX;
+    private final double maxY;
+    private final double maxZ;
+    
+    private PlayerMoveData(Script sc, BiConsumer<EntityPlayerMP, Object> c, Location l1, Location l2, int cooldown, int livingTime, Object data)
+    {
+        this.sc = sc;
+        this.c = c;
+        this.coolDown = cooldown;
+        this.ticks = cooldown;
+        this.livingTime = livingTime;
+        this.w = l1.getWorld();
+        this.minX = Math.min(l1.getX(), l2.getX());
+        this.minY = Math.min(l1.getY(), l2.getY());
+        this.minZ = Math.min(l1.getZ(), l2.getZ());
+        this.maxX = Math.max(l1.getX(), l2.getX());
+        this.maxY = Math.max(l1.getY(), l2.getY());
+        this.maxZ = Math.max(l1.getZ(), l2.getZ());
+        this.data = data;
+        
+        System.out.println("X DATA FROM " + minX +" TO " + maxX);
+        System.out.println("Y DATA FROM " + minY +" TO " + maxY);
+        System.out.println("Z DATA FROM " + minZ +" TO " + maxZ);
+    }
+    
+    public PlayerMoveData(Script sc, Location l1, Location l2, int cooldown, int livingTime)
+    {
+        this(sc, null, l1, l2, cooldown, livingTime, null);
+    }
+    
+    public PlayerMoveData(BiConsumer<EntityPlayerMP, Object> c, Location l1, Location l2, int cooldown, int livingTime, Object data)
+    {
+        this(null, c, l1, l2, cooldown, livingTime, data);
+    }
+    
+    public Object getData()
+    {
+        return data;
+    }
+    
+    public boolean tickLiving()
+    {
+        if(livingTime == -1)
+        {
+            return false;
+        }
+        livingTime--;
+        return livingTime < 0;
+    }
+    
+    public boolean tick()    
+    {
+        ticks--;
+        if(ticks > 0)
+        {
+            return true;
+        }
+        ticks = coolDown;
+        return false;
+    }
+    
+    public boolean check(EntityPlayerMP p)    
+    {
+        if(p.world != w || p.posX < minX || p.posX > maxX || p.posZ < minZ || p.posZ > maxZ || p.posY < minY || p.posY > maxY)
+        {
+            return false;
+        }
+        if(sc != null)
+        {
+            KajetansMod.scripts.getEvent(ScriptEvents.class).onPlayerMove(p);
+        }
+        if(c != null)
+        {
+            c.accept(p, data);
+        }
+        return coolDown == -1;
+    }
+}

+ 0 - 12
src/main/java/me/km/events/PlayerMoveEvent.java

@@ -1,12 +0,0 @@
-package me.km.events;
-
-import net.minecraft.entity.player.EntityPlayer;
-import net.minecraftforge.event.entity.player.PlayerEvent;
-
-public class PlayerMoveEvent extends PlayerEvent
-{
-    public PlayerMoveEvent(EntityPlayer player) 
-    {
-        super(player);
-    }
-}

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

@@ -41,7 +41,8 @@ public class PlayerManager extends Module
         int i = bank.getTag(uuid, "gilde");
         if(i == 0)
         {
-            i = -bank.getIdByUUID(uuid);
+            Integer in = bank.getIdByUUID(uuid);
+            i = in == null ? 0 : -in;
         }
         return i;
     }

+ 6 - 15
src/main/java/me/km/snuviscript/MinecraftFunctions.java

@@ -64,6 +64,8 @@ import net.minecraft.util.math.Vec3d;
 import net.minecraft.world.World;
 import net.minecraft.world.WorldServer;
 import me.km.effects.Effect;
+import me.km.events.CustomEventCaller;
+import me.km.events.PlayerMoveData;
 import me.km.exception.IllegalStringException;
 import me.km.inventory.CustomContainer;
 import me.km.networking.ModPacketHandler;
@@ -818,22 +820,11 @@ public class MinecraftFunctions
         // ---------------------------------------------------------------------    
         // Event-Bibliothek 
         // ---------------------------------------------------------------------  
-        parser.registerFunction("event.addloc", (sc, in) -> 
+        parser.registerFunction("event.addmovedata", (sc, in) -> CustomEventCaller.registerMoveData(new PlayerMoveData(
+                sc, (Location) in[0].get(sc), (Location) in[1].get(sc), in[2].getInt(sc), in[3].getInt(sc))));
+        parser.registerFunction("event.removemovedata", (sc, in) -> 
         { 
-            // TODO
-            //((MinecraftScript) qd).addLocation((Location) in[0].get(sc)); 
-            return Void.TYPE; 
-        });
-        parser.registerFunction("event.removeloc", (sc, in) -> 
-        { 
-            // TODO
-            //((MinecraftScript) qd).removeLocation((Location) in[0].get(sc)); 
-            return Void.TYPE; 
-        });
-        parser.registerFunction("event.clearlocs", (sc, in) -> 
-        { 
-            // TODO
-            //((MinecraftScript) qd).clearLocations(); 
+            CustomEventCaller.removeMoveData(in[0].getInt(sc));
             return Void.TYPE; 
         });
 

+ 3 - 17
src/main/java/me/km/snuviscript/ScriptEvents.java

@@ -111,24 +111,10 @@ public class ScriptEvents extends ModuleListener
     // events
     // -------------------------------------------------------------------------
 
-    /*@SubscribeEvent
-    public void onPlayerMove(PlayerMoveEvent e)
+    public void onPlayerMove(EntityPlayer p)
     {      
-        EntityPlayer p = e.getEntityPlayer();
-        Location l = new Location(p);
-        l.round();
-        parser.callEvent("player_move", (sc) -> ScriptVars.setPlayerVars(sc, p), null, 
-                sc -> ((MinecraftScript) sc).removeLocation(l));
-      
-        PlayerScript data = KajetansMod.scripts.getScript(p);
-        if(data != null)
-        {
-            parser.callEvent("player_move", data, (sc) -> 
-            {
-                ScriptVars.setPlayerVars(sc, p); 
-            }, null, data.removeLocation(l));
-        }
-    } */
+        handleEvent(p, "player_move", null);
+    }
     
     public boolean onInventoryClick(Script script, SnuviInventory inv, int slot, ClickType click, EntityPlayer p)
     {