summaryrefslogtreecommitdiff
path: root/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java
diff options
context:
space:
mode:
authorOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-04-23 18:08:44 +0100
committerOnyxDarkKnight <sor1n.iliutza16@gmail.com>2015-04-23 18:08:44 +0100
commit05f43b228ae0de5bd33ccd303ebbadfaaa464bc7 (patch)
treedf2067001e0b28c2d40edc5ccde43830616ec8ce /src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java
parent2a7e0a624f482a28af1c770dbcf2a20f52f94f78 (diff)
Added new curses!
Diffstat (limited to 'src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java')
-rw-r--r--src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java55
1 files changed, 33 insertions, 22 deletions
diff --git a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java
index f9152a7..c608658 100644
--- a/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java
+++ b/src/main/java/darkknight/jewelrycraft/events/EntityEventHandler.java
@@ -1,6 +1,5 @@
package darkknight.jewelrycraft.events;
-import ibxm.Player;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
@@ -9,13 +8,11 @@ import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import java.util.Random;
-import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLiving;
import net.minecraft.entity.item.EntityItem;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
-import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.CompressedStreamTools;
import net.minecraft.nbt.NBTTagCompound;
@@ -24,15 +21,13 @@ import net.minecraft.util.AxisAlignedBB;
import net.minecraft.util.ChatComponentText;
import net.minecraft.util.MathHelper;
import net.minecraftforge.client.event.EntityViewRenderEvent;
-import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.EntityJoinWorldEvent;
import net.minecraftforge.event.entity.item.ItemTossEvent;
import net.minecraftforge.event.entity.living.LivingAttackEvent;
import net.minecraftforge.event.entity.living.LivingDeathEvent;
+import net.minecraftforge.event.entity.living.LivingDropsEvent;
import net.minecraftforge.event.entity.living.LivingEvent.LivingUpdateEvent;
-import net.minecraftforge.event.entity.living.LivingFallEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
-import net.minecraftforge.event.entity.player.PlayerFlyableFallEvent;
import net.minecraftforge.event.world.WorldEvent;
import org.lwjgl.opengl.GL11;
import cpw.mods.fml.common.FMLCommonHandler;
@@ -40,20 +35,16 @@ import cpw.mods.fml.common.eventhandler.SubscribeEvent;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import darkknight.jewelrycraft.JewelrycraftMod;
-import darkknight.jewelrycraft.config.ConfigHandler;
import darkknight.jewelrycraft.curses.Curse;
import darkknight.jewelrycraft.damage.DamageSourceList;
import darkknight.jewelrycraft.entities.EntityHalfHeart;
import darkknight.jewelrycraft.entities.EntityHeart;
import darkknight.jewelrycraft.item.ItemBaseJewelry;
-import darkknight.jewelrycraft.item.ItemBracelet;
import darkknight.jewelrycraft.item.ItemList;
import darkknight.jewelrycraft.network.PacketClearColorCache;
import darkknight.jewelrycraft.network.PacketRequestPlayerInfo;
-import darkknight.jewelrycraft.network.PacketSendCurseStats;
-import darkknight.jewelrycraft.network.PacketSendPlayerInfo;
+import darkknight.jewelrycraft.network.PacketSendServerPlayersInfo;
import darkknight.jewelrycraft.util.BlockUtils;
-import darkknight.jewelrycraft.util.JewelryNBT;
import darkknight.jewelrycraft.util.JewelrycraftUtil;
import darkknight.jewelrycraft.util.PlayerUtils;
import darkknight.jewelrycraft.util.Variables;
@@ -63,6 +54,8 @@ import darkknight.jewelrycraft.util.Variables;
*/
public class EntityEventHandler
{
+ int updateTime = 0;
+
/**
* @param event
*/
@@ -110,6 +103,7 @@ public class EntityEventHandler
EntityPlayer player = (EntityPlayer)entity;
NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
playerInfo.setBoolean("fancyRender", JewelrycraftMod.fancyRender);
+ if (updateTime > 0) updateTime--;
if (playerInfo.getBoolean("stunned") && playerInfo.getInteger("stunTime") > 0){
player.motionX *= 0D;
player.motionZ *= 0D;
@@ -124,7 +118,7 @@ public class EntityEventHandler
if (playerInfo.hasKey("ext" + i)){
NBTTagCompound nbt = (NBTTagCompound)playerInfo.getTag("ext" + i);
ItemStack item = ItemStack.loadItemStackFromNBT(nbt);
- if(item != null) ((ItemBaseJewelry)item.getItem()).action(item, player);
+ if (item != null) ((ItemBaseJewelry)item.getItem()).action(item, player);
}
if (!player.worldObj.isRemote){
if (playerInfo.hasKey("reselectCurses") && !playerInfo.getBoolean("reselectCurses")){
@@ -142,9 +136,9 @@ public class EntityEventHandler
JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
if (playerInfo.getBoolean("playerCursePointsChanged")) playerInfo.setBoolean("playerCursePointsChanged", false);
- if (playerInfo.getBoolean("sendInfo")){
- JewelrycraftMod.netWrapper.sendToAll(new PacketSendCurseStats());
- playerInfo.setBoolean("sendInfo", false);
+ if (updateTime == 0){
+ JewelrycraftMod.netWrapper.sendToAll(new PacketSendServerPlayersInfo());
+ updateTime = 200;
}
for(Curse curse: Curse.getCurseList())
if (playerInfo.getInteger(curse.getName()) > 0) curse.action(player.worldObj, player);
@@ -152,6 +146,17 @@ public class EntityEventHandler
}
}
+ @SubscribeEvent
+ public void onEntityLivingDropItems(LivingDropsEvent event)
+ {
+ if (event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)event.source.getEntity();
+ NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
+ for(Curse curse: Curse.getCurseList())
+ if (playerInfo.getInteger(curse.getName()) > 0) curse.entityDropItems(player, event.entityLiving, event.drops);
+ }
+ }
+
/**
* @param event
*/
@@ -259,10 +264,10 @@ public class EntityEventHandler
playerInfo.setBoolean("reselectCurses", false);
}
}
- playerInfo.setBoolean("sendInfo", true);
+
playerInfo.setFloat("BlueHeart", 0f);
playerInfo.setFloat("BlackHeart", 0f);
- playerInfo.setFloat("WhiteHeart", 0f);
+ playerInfo.setFloat("WhiteHeart", 0f);
for(Curse curse: Curse.getCurseList())
if (playerInfo.getInteger(curse.getName()) > 0) curse.respawnAction(player.worldObj, player);
}
@@ -281,7 +286,7 @@ public class EntityEventHandler
Curse cur = Curse.availableCurses.get(no);
playerInfo.setInteger(cur.getName(), 1);
Curse.availableCurses.remove(cur);
- playerInfo.setBoolean("sendInfo", true);
+
}
}
@@ -291,7 +296,7 @@ public class EntityEventHandler
if (Curse.availableCurses.size() > 0 && Curse.availableCurses.contains(cur)){
playerInfo.setInteger(cur.getName(), grade);
Curse.availableCurses.remove(cur);
- playerInfo.setBoolean("sendInfo", true);
+
}
}
@@ -351,13 +356,19 @@ public class EntityEventHandler
}
}
}
+ if (event.source.getEntity() != null && event.source.getEntity() instanceof EntityPlayer){
+ EntityPlayer player = (EntityPlayer)event.source.getEntity();
+ NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
+ for(Curse curse: Curse.getCurseList())
+ if (playerInfo.getInteger(curse.getName()) > 0) curse.entityDeathAction(player.worldObj, event.entityLiving, player);
+ }
}
if (entity instanceof EntityPlayer){
EntityPlayer player = (EntityPlayer)entity;
NBTTagCompound playerInfo = PlayerUtils.getModPlayerPersistTag(player, Variables.MODID);
playerInfo.setFloat("BlueHeart", 0f);
playerInfo.setFloat("BlackHeart", 0f);
- playerInfo.setFloat("WhiteHeart", 0f);
+ playerInfo.setFloat("WhiteHeart", 0f);
if (playerInfo.hasKey("reselectCurses") && playerInfo.getBoolean("reselectCurses")){
for(Curse l: Curse.getCurseList()){
if (playerInfo.getInteger(l.getName()) == 1){
@@ -367,9 +378,9 @@ public class EntityEventHandler
}
if (entity.worldObj.isRemote) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}
- playerInfo.setBoolean("sendInfo", true);
+
for(Curse curse: Curse.getCurseList())
- if (playerInfo.getInteger(curse.getName()) > 0) curse.deathAction(player.worldObj, player);
+ if (playerInfo.getInteger(curse.getName()) > 0) curse.playerDeathAction(player.worldObj, player);
}
if (event.entity instanceof EntityPlayer && !(event.entity instanceof EntityPlayerMP)) JewelrycraftMod.netWrapper.sendToServer(new PacketRequestPlayerInfo());
}