Parcourir la source

small command changes, bug fixes

Kajetan Johannes Hammerle il y a 6 ans
Parent
commit
99353cab0d

+ 56 - 0
src/main/java/me/km/playerbank/PlayerBank.java

@@ -88,6 +88,62 @@ public class PlayerBank
         return -1;
     }
     
+    private final IStatement getUUIDfromID = KajetansMod.databank.createStatement(
+            "SELECT uuid_1,uuid_2 FROM players WHERE id=?;");
+    
+    public UUID getUUIDfromID(int id)
+    {
+        try
+        {
+            getUUIDfromID.validate();
+            getUUIDfromID.setInt(1, id);
+            try(ResultSet rs = getUUIDfromID.executeQuery())
+            {
+                if(rs.next())
+                {
+                    return new UUID(rs.getLong(2), rs.getLong(1));
+                }
+            }
+            catch(SQLException ex)
+            {
+                ex.printStackTrace();
+            }
+        }
+        catch(SQLException ex)
+        {
+            ex.printStackTrace();
+        }
+        return null;
+    }
+    
+    private final IStatement getNamefromID = KajetansMod.databank.createStatement(
+            "SELECT name FROM players WHERE id=?;");
+    
+    public String getNamefromID(int id)
+    {
+        try
+        {
+            getNamefromID.validate();
+            getNamefromID.setInt(1, id);
+            try(ResultSet rs = getNamefromID.executeQuery())
+            {
+                if(rs.next())
+                {
+                    return rs.getString(1);
+                }
+            }
+            catch(SQLException ex)
+            {
+                ex.printStackTrace();
+            }
+        }
+        catch(SQLException ex)
+        {
+            ex.printStackTrace();
+        }
+        return "";
+    }
+    
     private final IStatement getUUID = KajetansMod.databank.createStatement(
             "SELECT uuid_1,uuid_2 FROM players WHERE name=?;");
     

+ 29 - 5
src/main/java/me/km/plots/Protection.java

@@ -4,15 +4,23 @@ import me.kcm.events.FarmlandTrampleEvent;
 import me.km.KajetansMod;
 import me.km.permissions.Permissions;
 import net.minecraft.block.Block;
+import net.minecraft.block.BlockDoor;
+import net.minecraft.block.BlockButton;
+import net.minecraft.block.BlockContainer;
+import net.minecraft.block.BlockLever;
+import net.minecraft.block.BlockFenceGate;
 import net.minecraft.entity.Entity;
 import net.minecraft.entity.boss.EntityDragon;
 import net.minecraft.entity.boss.EntityWither;
+import net.minecraft.entity.item.EntityItemFrame;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.init.Blocks;
 import net.minecraft.util.math.BlockPos;
 import net.minecraft.util.math.RayTraceResult;
 import net.minecraft.world.DimensionType;
 import net.minecraftforge.event.entity.EntityJoinWorldEvent;
+import net.minecraftforge.event.entity.EntityStruckByLightningEvent;
+import net.minecraftforge.event.entity.player.AttackEntityEvent;
 import net.minecraftforge.event.entity.player.FillBucketEvent;
 import net.minecraftforge.event.entity.player.PlayerInteractEvent;
 import net.minecraftforge.event.world.BlockEvent;
@@ -121,13 +129,27 @@ public class Protection
                 e.setCanceled(true);
             }
         }
+    }*/
+    
+    @SubscribeEvent(priority = EventPriority.HIGHEST)
+    public void onEntityHit(AttackEntityEvent e)
+    {
+        if(e.getTarget() instanceof EntityItemFrame)
+        {
+            EntityPlayer p = e.getEntityPlayer();
+            if(!KajetansMod.perms.hasPermission(p, Permissions.PLOT_BYPASS) && 
+            !KajetansMod.plots.canBuild(p.world, e.getTarget().getPosition(), p))
+            {
+                e.setCanceled(true);
+            }
+        }
     }
     
     @SubscribeEvent(priority = EventPriority.HIGHEST)
     public void EntityProtectionPotion(EntityStruckByLightningEvent e)
     {
         e.setCanceled(true);
-    }*/
+    }
     
     @SubscribeEvent(priority = EventPriority.HIGHEST)
     public void onPlayerInteract(PlayerInteractEvent.LeftClickBlock e) 
@@ -153,10 +175,12 @@ public class Protection
             return;
         }    
         Block b = e.getWorld().getBlockState(e.getPos()).getBlock();
-        if((b == Blocks.DAYLIGHT_DETECTOR || b == Blocks.DAYLIGHT_DETECTOR_INVERTED ||
-            b == Blocks.POWERED_REPEATER || b == Blocks.UNPOWERED_REPEATER ||
-            b == Blocks.POWERED_COMPARATOR || b == Blocks.UNPOWERED_COMPARATOR ||
-            b == Blocks.DRAGON_EGG) && !KajetansMod.plots.canBuild(e.getWorld(), e.getPos(), p))
+        if(!(b instanceof BlockDoor) && 
+                !(b instanceof BlockButton) && 
+                !(b instanceof BlockContainer) && 
+                !(b instanceof BlockLever) && 
+                !(b instanceof BlockFenceGate) && 
+                !KajetansMod.plots.canBuild(e.getWorld(), e.getPos(), p))
         {
             e.setCanceled(true);
         }

+ 7 - 18
src/main/java/me/km/snuviscript/MinecraftFunctions.java

@@ -259,7 +259,8 @@ public class MinecraftFunctions
             ((EntityPlayer) in[0].get(sc)).getFoodStats().setFoodLevel(in[1].getInt(sc)); 
             return Void.TYPE; 
         });
-        parser.registerFunction("player.getsaturation", (sc, in) -> (double) ReflectionUtils.getSaturation(((EntityPlayer) in[0].get(sc)).getFoodStats()));
+        ;
+        parser.registerFunction("player.getsaturation", (sc, in) -> (double) ((EntityPlayer) in[0].get(sc)).getFoodStats().getSaturationLevel());
         parser.registerFunction("player.setsaturation", (sc, in) -> 
         { 
             ReflectionUtils.setSaturation(((EntityPlayer) in[0].get(sc)).getFoodStats(), in[1].getFloat(sc)); 
@@ -283,11 +284,13 @@ public class MinecraftFunctions
             }
             return KajetansMod.playerbank.getDataBank().getUUID(o.toString());
         });
-        parser.registerFunction("player.getid", (sc, in) -> KajetansMod.playerbank.getPlayerId(getUUID(in[0].get(sc))));
+        parser.registerFunction("player.getid", (sc, in) -> (double) KajetansMod.playerbank.getPlayerId(getUUID(in[0].get(sc))));
         parser.registerFunction("player.get", (sc, in) -> 
         { 
             return KajetansMod.server.getPlayerList().getPlayerByUUID(getUUID(in[0].get(sc)));
         });
+        parser.registerFunction("player.getuuidfromid", (sc, in) -> KajetansMod.playerbank.getDataBank().getUUIDfromID(in[0].getInt(sc)));
+        parser.registerFunction("player.getnamefromid", (sc, in) -> KajetansMod.playerbank.getDataBank().getNamefromID(in[0].getInt(sc)));
         parser.registerFunction("player.getip", (sc, in) -> ((EntityPlayerMP) in[0].get(sc)).connection.netManager.getRemoteAddress().toString());
         parser.registerFunction("player.iscreative", (sc, in) -> ((EntityPlayer) in[0].get(sc)).isCreative());
         parser.registerFunction("player.isspectator", (sc, in) -> ((EntityPlayer) in[0].get(sc)).isSpectator());
@@ -429,20 +432,6 @@ public class MinecraftFunctions
             p.addExperience((int) (f * p.xpBarCap()));
             return Void.TYPE; 
         });
-        parser.registerFunction("player.getfoodlevel", (sc, in) -> (double) ((EntityPlayer) in[0].get(sc)).getFoodStats().getFoodLevel());
-        parser.registerFunction("player.getsaturationlevel", (sc, in) -> (double) ((EntityPlayer) in[0].get(sc)).getFoodStats().getSaturationLevel());
-        parser.registerFunction("player.setfoodlevel", (sc, in) -> 
-        {
-            EntityPlayer p = (EntityPlayer) in[0].get(sc);
-            p.getFoodStats().setFoodLevel(in[1].getInt(sc));
-            return Void.TYPE; 
-        });
-        parser.registerFunction("player.setsaturationlevel", (sc, in) -> 
-        {
-            EntityPlayer p = (EntityPlayer) in[0].get(sc);
-            p.getFoodStats().setFoodSaturationLevel(in[1].getFloat(sc));
-            return Void.TYPE; 
-        });
         parser.registerFunction("player.gethead", (sc, in) -> 
         {
             ItemStack stack = new ItemStack(Items.SKULL, 1, 3);
@@ -451,7 +440,7 @@ public class MinecraftFunctions
             {
                 return stack;
             }
-            GameProfile gp = KajetansMod.server.getPlayerProfileCache().getProfileByUUID(getUUID(in[0].get(sc)));
+            GameProfile gp = new GameProfile(getUUID(in[0].get(sc)), in[1].getString(sc));
             gp = TileEntitySkull.updateGameprofile(gp);
             com.setTag("SkullOwner", NBTUtil.writeGameProfile(new NBTTagCompound(), gp));
             return stack;
@@ -1644,7 +1633,7 @@ public class MinecraftFunctions
             {
                 try
                 {
-                    p.executeQuery();
+                    p.execute();
                 }
                 catch(SQLException ex)
                 {

+ 1 - 6
src/main/java/me/km/utils/ReflectionUtils.java

@@ -174,12 +174,7 @@ public class ReflectionUtils
     public static void setSaturation(FoodStats stats, float f)
     {
         setFloat(stats, FOOD_SATURATION_LEVEL, f);
-    }
-    
-    public static float getSaturation(FoodStats stats)
-    {
-        return getFloat(stats, FOOD_SATURATION_LEVEL, 0);
-    }
+    }   
     
     // -----------------------------------------------------------------------------------
     // player stats

+ 0 - 1
src/main/java/me/km/utils/Utils.java

@@ -1,6 +1,5 @@
 package me.km.utils;
 
-import java.io.File;
 import java.util.Arrays;
 import java.util.List;
 import java.util.stream.Collectors;