Kajetan Johannes Hammerle 7 years ago
parent
commit
196be655e6

+ 2 - 0
src/main/java/me/km/KajetansMod.java

@@ -11,6 +11,7 @@ import me.km.databank.DataBank;
 import me.km.dimensions.ModWorldGeneration;
 import me.km.dimensions.WorldData;
 import me.km.effects.EffectUtils;
+import me.km.events.CustomEventCaller;
 import me.km.fluids.ModFluids;
 import me.km.items.ModItems;
 import me.km.items.ModRecipes;
@@ -100,6 +101,7 @@ public class KajetansMod
         proxy.initEntities();
         MinecraftForge.EVENT_BUS.register(new ClientEvents());
         MinecraftForge.EVENT_BUS.register(new BlockEvents());
+        MinecraftForge.EVENT_BUS.register(new CustomEventCaller());
         ModRecipes.init();
     }
     

+ 1 - 1
src/main/java/me/km/events/CustomEventCaller.java

@@ -72,7 +72,7 @@ public class CustomEventCaller
     @SubscribeEvent
     public void onPlayerHurt(LivingHurtEvent e)
     {      
-        if(e.getEntityLiving() instanceof EntityPlayerMP)
+        if(e.getEntityLiving() instanceof EntityPlayerMP && !(e instanceof PlayerHurtEvent))
         {
             PlayerHurtEvent hurt = new PlayerHurtEvent((EntityPlayerMP) e.getEntityLiving(), e.getSource(), e.getAmount());
             MinecraftForge.EVENT_BUS.post(hurt);

+ 8 - 5
src/main/java/me/km/playerbank/PvpEvent.java

@@ -3,7 +3,9 @@ package me.km.playerbank;
 import me.km.KajetansMod;
 import me.km.api.Module;
 import me.km.api.ModuleListener;
+import me.km.api.Utils;
 import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.util.DamageSource;
 import net.minecraftforge.event.entity.living.LivingAttackEvent;
 import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
 
@@ -24,21 +26,22 @@ public class PvpEvent extends ModuleListener
             return;
         }
         EntityPlayer affectedPlayer = (EntityPlayer) e.getEntityLiving();
-        EntityPlayer p = (EntityPlayer) e.getSource().getSourceOfDamage();    
+        EntityPlayer p = Utils.getDamager(e.getSource());
+        
         if(p == null || affectedPlayer.equals(p))
         {
             return;
         }
         
         PlayerBank pb = KajetansMod.playerbank.getDataBank();
-        if(pb.getTag(p, "pvp") != 1)
+        if(pb.getTag(affectedPlayer, "pvp") != 1)
         {
-            this.getModule().send(affectedPlayer, p.getName() + " hat PVP ausgeschalten!");
+            this.getModule().send(p, affectedPlayer.getName() + " hat PVP ausgeschalten!");
             e.setCanceled(true);
         }
-        if(pb.getTag(affectedPlayer, "pvp") != 1)
+        if(pb.getTag(p, "pvp") != 1)
         {
-            this.getModule().send(affectedPlayer, "Du hast PVP ausgeschalten!");
+            this.getModule().send(p, "Du hast PVP ausgeschalten!");
             e.setCanceled(true);
         }
     }

+ 1 - 0
src/main/java/me/km/snuviscript/CommandScript.java

@@ -234,6 +234,7 @@ public class CommandScript extends ModuleCommand
                         catch(Exception ex)
                         {
                             m.send(cs, "Beim unsicheren Beenden eines Scripts trat ein Fehler auf.");
+                            ex.printStackTrace();
                         } 
                         return true;
                     }

+ 5 - 66
src/main/java/me/km/snuviscript/MinecraftFunctions.java

@@ -12,11 +12,8 @@ import me.km.exception.PlayerNotFoundException;
 import me.km.nms.NmsUtilities;
 import me.km.plots.ProtectionBank;
 import me.km.table.TableAPI;
-import java.time.ZonedDateTime;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Calendar;
-import java.util.GregorianCalendar;
 import java.util.List;
 import java.util.Map;
 import java.util.UUID;
@@ -77,7 +74,7 @@ import net.minecraft.util.math.Vec3d;
 import net.minecraft.util.text.TextComponentString;
 import net.minecraft.world.World;
 import net.minecraft.world.WorldServer;
-import me.hammerle.exceptions.PrescriptException;
+import me.hammerle.exceptions.PreScriptException;
 import me.hammerle.exceptions.IllegalStringException;
 import me.hammerle.code.SnuviParser;
 import me.hammerle.exceptions.HoldCodeException;
@@ -698,9 +695,9 @@ public class MinecraftFunctions implements ISnuviLogger
         else
         {
             sendToDevsWithHelpList("§cFehler:", ex.getClass().getSimpleName());
-            if(ex instanceof PrescriptException)
+            if(ex instanceof PreScriptException)
             {
-                sendToDevsWithList("§c" + ((PrescriptException) ex).getException());
+                sendToDevsWithList("§c" + ((PreScriptException) ex).getException());
                 return;
             }
         }
@@ -742,9 +739,9 @@ public class MinecraftFunctions implements ISnuviLogger
         else
         {
             m.sendWarningToConsole("Fehler: " + ex.getClass().getSimpleName());
-            if(ex instanceof PrescriptException)
+            if(ex instanceof PreScriptException)
             {
-                m.sendWarningToConsole(((PrescriptException) ex).getException());
+                m.sendWarningToConsole(((PreScriptException) ex).getException());
                 return;
             }
         }
@@ -1343,64 +1340,6 @@ public class MinecraftFunctions implements ISnuviLogger
         RecipeUtils.registerShapedRecipe((ItemStack) args[0], s, stacks);
     }
     
-    // -------------------------------------------------------------------------    
-    // Zeit-Handler
-    // ------------------------------------------------------------------------- 
-    
-    private static long getNextDay(Object[] args)       
-    {
-        GregorianCalendar cal = GregorianCalendar.from(ZonedDateTime.now());
-        cal.setTimeInMillis((long) args[0]);
-        cal.add(Calendar.DAY_OF_YEAR, 1);
-        cal.set(Calendar.HOUR, 0);
-        cal.set(Calendar.SECOND, 0);
-        cal.set(Calendar.MINUTE, 0);
-        cal.set(Calendar.MILLISECOND, 0);
-        return cal.getTimeInMillis();   
-    } 
-    
-    private static int getYear(Object[] args)       
-    {
-        GregorianCalendar cal = GregorianCalendar.from(ZonedDateTime.now());
-        cal.setTimeInMillis((long) args[0]);
-        return cal.get(Calendar.YEAR);   
-    }
-    
-    private static int getMonth(Object[] args)       
-    {
-        GregorianCalendar cal = GregorianCalendar.from(ZonedDateTime.now());
-        cal.setTimeInMillis((long) args[0]);
-        return cal.get(Calendar.MONTH) + 1;   
-    }
-    
-    private static int getDay(Object[] args)       
-    {
-        GregorianCalendar cal = GregorianCalendar.from(ZonedDateTime.now());
-        cal.setTimeInMillis((long) args[0]);
-        return cal.get(Calendar.DAY_OF_MONTH);   
-    }
-    
-    private static int getHour(Object[] args)       
-    {
-        GregorianCalendar cal = GregorianCalendar.from(ZonedDateTime.now());
-        cal.setTimeInMillis((long) args[0]);
-        return cal.get(Calendar.HOUR_OF_DAY);   
-    }
-    
-    private static int getMinute(Object[] args)       
-    {
-        GregorianCalendar cal = GregorianCalendar.from(ZonedDateTime.now());
-        cal.setTimeInMillis((long) args[0]);
-        return cal.get(Calendar.MINUTE);   
-    }
-    
-    private static int getSecond(Object[] args)       
-    {
-        GregorianCalendar cal = GregorianCalendar.from(ZonedDateTime.now());
-        cal.setTimeInMillis((long) args[0]);
-        return cal.get(Calendar.SECOND);   
-    }
-    
     // -------------------------------------------------------------------------    
     // Gruppen-Handler
     // ------------------------------------------------------------------------- 

+ 7 - 7
src/main/java/me/km/snuviscript/ScriptModule.java

@@ -7,7 +7,7 @@ import java.util.HashSet;
 import java.util.UUID;
 import me.hammerle.code.SnuviParser;
 import me.hammerle.code.ScriptUtils;
-import me.hammerle.exceptions.PrescriptException;
+import me.hammerle.exceptions.PreScriptException;
 import net.minecraft.command.ICommandSender;
 import net.minecraft.entity.player.EntityPlayer;
 import net.minecraft.util.text.TextFormatting;
@@ -78,14 +78,14 @@ public class ScriptModule extends Module
             }
             return;
         }
-        if(qd.getBooleanVar("no-join"))
+        if(qd.getBooleanVar("no_join"))
         {
             this.send(p, "Du darfst dieser Quest nicht beitreten.");
             return;
         }
         playerScript.put(p.getUniqueID(), qd.getId());
         qd.addPlayer(p);
-        if(!qd.getBooleanVar("no-quest-msg"))
+        if(!qd.getBooleanVar("no_quest_msg"))
         {
             MinecraftFunctions.sendMessageWithSuffix(qd, p.getName() + " ist deiner Quest beigetreten.");
             if(p2 != null)
@@ -97,7 +97,7 @@ public class ScriptModule extends Module
                 this.send(p, "Du bist einer bereits laufenden Quest beigetreten.");
             }
         }
-        qd.setVar("event", "player-join");
+        qd.setVar("event", "player_join");
         ScriptVars.setPlayerVars(qd, p); 
         qd.runCode();
     } 
@@ -172,8 +172,8 @@ public class ScriptModule extends Module
         }
         PlayerScript other = (PlayerScript) parser.getScripts().stream()
                 .filter(qd -> qd.getClass() == PlayerScript.class)
-                .filter(qd -> qd.getVar("add-if-name") != null)
-                .filter(qd -> qd.getVar("add-if-name").equals(name))
+                .filter(qd -> qd.getVar("add_if_name") != null)
+                .filter(qd -> qd.getVar("add_if_name").equals(name))
                 .findAny().orElse(null);
         if(other != null)
         {            
@@ -189,7 +189,7 @@ public class ScriptModule extends Module
         {
             parser.startScript(MinecraftScript.class, name, ScriptUtils.readCode("scripts/" + name, ".txt"), true);
         }
-        catch(PrescriptException ex)
+        catch(PreScriptException ex)
         {
             logger.printException(ex);
         }

+ 1 - 1
src/main/java/me/km/snuviscript/ScriptVars.java

@@ -17,7 +17,7 @@ public class ScriptVars
         IBlockState state = w.getBlockState(pos);
         qd.setEventVar("block_loc", new Location(w, pos));
         qd.setEventVar("block_type", state.getBlock().getRegistryName().toString());
-        qd.setEventVar("block_data", state.getBlock().getMetaFromState(state));
+        qd.setEventVar("block_data", (double) state.getBlock().getMetaFromState(state));
     }
     
     public static void setPlayerVars(Script qd, EntityPlayer p)