1
0
forked from xjboss/KCauldronX
This commit is contained in:
Prototik 2015-06-05 20:41:54 +07:00
parent 9c2057bf68
commit 7f699c1473
21 changed files with 398 additions and 42 deletions

View File

@ -780,7 +780,7 @@
public float func_145772_a(Explosion p_145772_1_, World p_145772_2_, int p_145772_3_, int p_145772_4_, int p_145772_5_, Block p_145772_6_) public float func_145772_a(Explosion p_145772_1_, World p_145772_2_, int p_145772_3_, int p_145772_4_, int p_145772_5_, Block p_145772_6_)
{ {
return p_145772_6_.getExplosionResistance(this, p_145772_2_, p_145772_3_, p_145772_4_, p_145772_5_, posX, posY + getEyeHeight(), posZ); return p_145772_6_.getExplosionResistance(this, p_145772_2_, p_145772_3_, p_145772_4_, p_145772_5_, posX, posY + getEyeHeight(), posZ);
@@ -2474,4 +2925,10 @@ @@ -2474,4 +2925,14 @@
} }
} }
} }
@ -789,5 +789,9 @@
+ public boolean entityAllowedToSpawn() { + public boolean entityAllowedToSpawn() {
+ return true; + return true;
+ } + }
+
+ public boolean entityProjectileHook() {
+ return false;
+ }
+ // Cauldron end + // Cauldron end
} }

View File

@ -1,19 +1,31 @@
--- ../src-base/minecraft/net/minecraft/entity/EntityLeashKnot.java --- ../src-base/minecraft/net/minecraft/entity/EntityLeashKnot.java
+++ ../src-work/minecraft/net/minecraft/entity/EntityLeashKnot.java +++ ../src-work/minecraft/net/minecraft/entity/EntityLeashKnot.java
@@ -11,6 +11,12 @@ @@ -2,8 +2,10 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+
import java.util.Iterator;
import java.util.List;
+
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
@@ -11,6 +13,13 @@
import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.AxisAlignedBB;
import net.minecraft.world.World; import net.minecraft.world.World;
+ // CraftBukkit start + // CraftBukkit start
+import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.EntityPlayerMP;
+import net.minecraft.network.play.server.S1BPacketEntityAttach; +import net.minecraft.network.play.server.S1BPacketEntityAttach;
+
+import org.bukkit.craftbukkit.event.CraftEventFactory; +import org.bukkit.craftbukkit.event.CraftEventFactory;
+// CraftBukkit end +// CraftBukkit end
+ +
public class EntityLeashKnot extends EntityHanging public class EntityLeashKnot extends EntityHanging
{ {
private static final String __OBFID = "CL_00001548"; private static final String __OBFID = "CL_00001548";
@@ -84,6 +90,14 @@ @@ -84,6 +93,14 @@
if (entityliving.getLeashed() && entityliving.getLeashedToEntity() == p_130002_1_) if (entityliving.getLeashed() && entityliving.getLeashedToEntity() == p_130002_1_)
{ {
@ -28,7 +40,7 @@
entityliving.setLeashedToEntity(this, true); entityliving.setLeashedToEntity(this, true);
flag = true; flag = true;
} }
@@ -93,9 +107,12 @@ @@ -93,9 +110,12 @@
if (!this.worldObj.isRemote && !flag) if (!this.worldObj.isRemote && !flag)
{ {
@ -43,7 +55,7 @@
{ {
d0 = 7.0D; d0 = 7.0D;
list = this.worldObj.getEntitiesWithinAABB(EntityLiving.class, AxisAlignedBB.getBoundingBox(this.posX - d0, this.posY - d0, this.posZ - d0, this.posX + d0, this.posY + d0, this.posZ + d0)); list = this.worldObj.getEntitiesWithinAABB(EntityLiving.class, AxisAlignedBB.getBoundingBox(this.posX - d0, this.posY - d0, this.posZ - d0, this.posX + d0, this.posY + d0, this.posZ + d0));
@@ -110,11 +127,27 @@ @@ -110,11 +130,27 @@
if (entityliving.getLeashed() && entityliving.getLeashedToEntity() == this) if (entityliving.getLeashed() && entityliving.getLeashedToEntity() == this)
{ {
@ -72,3 +84,15 @@
} }
return true; return true;
@@ -154,4 +190,11 @@
return null;
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -214,3 +214,56 @@
} }
Packet pkt = FMLNetworkHandler.getEntitySpawningPacket(this.myEntity); Packet pkt = FMLNetworkHandler.getEntitySpawningPacket(this.myEntity);
@@ -491,7 +589,7 @@
{
return new S0EPacketSpawnObject(this.myEntity, 1);
}
- else if (!(this.myEntity instanceof IAnimals) && !(this.myEntity instanceof EntityDragon))
+ else if (myEntity.entityProjectileHook())
{
if (this.myEntity instanceof EntityFishHook)
{
@@ -528,13 +626,13 @@
return new S0EPacketSpawnObject(this.myEntity, 76);
}
else
- {
- S0EPacketSpawnObject s0epacketspawnobject;
+ //{
+ // S0EPacketSpawnObject s0epacketspawnobject;
if (this.myEntity instanceof EntityFireball)
{
EntityFireball entityfireball = (EntityFireball)this.myEntity;
- s0epacketspawnobject = null;
+ S0EPacketSpawnObject s0epacketspawnobject = null;
byte b0 = 63;
if (this.myEntity instanceof EntitySmallFireball)
@@ -584,7 +682,7 @@
else if (this.myEntity instanceof EntityItemFrame)
{
EntityItemFrame entityitemframe = (EntityItemFrame)this.myEntity;
- s0epacketspawnobject = new S0EPacketSpawnObject(this.myEntity, 71, entityitemframe.hangingDirection);
+ S0EPacketSpawnObject s0epacketspawnobject = new S0EPacketSpawnObject(this.myEntity, 71, entityitemframe.hangingDirection);
s0epacketspawnobject.func_148996_a(MathHelper.floor_float((float)(entityitemframe.field_146063_b * 32)));
s0epacketspawnobject.func_148995_b(MathHelper.floor_float((float)(entityitemframe.field_146064_c * 32)));
s0epacketspawnobject.func_149005_c(MathHelper.floor_float((float)(entityitemframe.field_146062_d * 32)));
@@ -593,7 +691,7 @@
else if (this.myEntity instanceof EntityLeashKnot)
{
EntityLeashKnot entityleashknot = (EntityLeashKnot)this.myEntity;
- s0epacketspawnobject = new S0EPacketSpawnObject(this.myEntity, 77);
+ S0EPacketSpawnObject s0epacketspawnobject = new S0EPacketSpawnObject(this.myEntity, 77);
s0epacketspawnobject.func_148996_a(MathHelper.floor_float((float)(entityleashknot.field_146063_b * 32)));
s0epacketspawnobject.func_148995_b(MathHelper.floor_float((float)(entityleashknot.field_146064_c * 32)));
s0epacketspawnobject.func_149005_c(MathHelper.floor_float((float)(entityleashknot.field_146062_d * 32)));
@@ -607,7 +705,7 @@
{
throw new IllegalArgumentException("Don\'t know how to add " + this.myEntity.getClass() + "!");
}
- }
+ //}
}
else
{

View File

@ -47,3 +47,15 @@
} }
} }
} }
@@ -101,4 +116,11 @@
return true;
}
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -0,0 +1,23 @@
--- ../src-base/minecraft/net/minecraft/entity/item/EntityEnderEye.java
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityEnderEye.java
@@ -117,7 +117,7 @@
this.rotationYaw = this.prevRotationYaw + (this.rotationYaw - this.prevRotationYaw) * 0.2F;
if (!this.worldObj.isRemote)
- {
+ {
double d0 = this.targetX - this.posX;
double d1 = this.targetZ - this.posZ;
float f1 = (float)Math.sqrt(d0 * d0 + d1 * d1);
@@ -203,4 +203,11 @@
{
return false;
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -1,9 +1,10 @@
--- ../src-base/minecraft/net/minecraft/entity/item/EntityEnderPearl.java --- ../src-base/minecraft/net/minecraft/entity/item/EntityEnderPearl.java
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityEnderPearl.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityEnderPearl.java
@@ -12,6 +12,12 @@ @@ -12,6 +12,13 @@
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.living.EnderTeleportEvent; import net.minecraftforge.event.entity.living.EnderTeleportEvent;
+
+// CraftBukkit start +// CraftBukkit start
+import org.bukkit.Bukkit; +import org.bukkit.Bukkit;
+import org.bukkit.craftbukkit.event.CraftEventFactory; +import org.bukkit.craftbukkit.event.CraftEventFactory;
@ -13,7 +14,7 @@
public class EntityEnderPearl extends EntityThrowable public class EntityEnderPearl extends EntityThrowable
{ {
private static final String __OBFID = "CL_00001725"; private static final String __OBFID = "CL_00001725";
@@ -52,18 +58,31 @@ @@ -52,22 +59,42 @@
if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj) if (entityplayermp.playerNetServerHandler.func_147362_b().isChannelOpen() && entityplayermp.worldObj == this.worldObj)
{ {
@ -54,3 +55,14 @@
} }
} }
this.setDead();
}
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -22,3 +22,15 @@
while (i > 0) while (i > 0)
{ {
int j = EntityXPOrb.getXPSplit(i); int j = EntityXPOrb.getXPSplit(i);
@@ -56,4 +67,11 @@
this.setDead();
}
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -1,6 +1,17 @@
--- ../src-base/minecraft/net/minecraft/entity/item/EntityFallingBlock.java --- ../src-base/minecraft/net/minecraft/entity/item/EntityFallingBlock.java
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityFallingBlock.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityFallingBlock.java
@@ -19,9 +19,11 @@ @@ -2,8 +2,10 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+
import java.util.ArrayList;
import java.util.Iterator;
+
import net.minecraft.block.Block;
import net.minecraft.block.BlockFalling;
import net.minecraft.block.ITileEntityProvider;
@@ -19,9 +21,11 @@
import net.minecraft.util.MathHelper; import net.minecraft.util.MathHelper;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -13,7 +24,7 @@
public int field_145814_a; public int field_145814_a;
public int field_145812_b; public int field_145812_b;
public boolean field_145813_c; public boolean field_145813_c;
@@ -103,7 +105,8 @@ @@ -103,7 +107,8 @@
if (this.field_145812_b == 1) if (this.field_145812_b == 1)
{ {
@ -23,7 +34,7 @@
{ {
this.setDead(); this.setDead();
return; return;
@@ -122,8 +125,17 @@ @@ -122,8 +127,17 @@
{ {
this.setDead(); this.setDead();
@ -42,7 +53,7 @@
if (this.field_145811_e instanceof BlockFalling) if (this.field_145811_e instanceof BlockFalling)
{ {
((BlockFalling)this.field_145811_e).func_149828_a(this.worldObj, i, j, k, this.field_145814_a); ((BlockFalling)this.field_145811_e).func_149828_a(this.worldObj, i, j, k, this.field_145814_a);
@@ -189,8 +201,10 @@ @@ -189,8 +203,10 @@
while (iterator.hasNext()) while (iterator.hasNext())
{ {
@ -55,3 +66,15 @@
} }
if (flag && (double)this.rand.nextFloat() < 0.05000000074505806D + (double)i * 0.05D) if (flag && (double)this.rand.nextFloat() < 0.05000000074505806D + (double)i * 0.05D)
@@ -304,4 +320,11 @@
{
return this.field_145811_e;
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -9,3 +9,15 @@
private static final String __OBFID = "CL_00001718"; private static final String __OBFID = "CL_00001718";
public EntityFireworkRocket(World p_i1762_1_) public EntityFireworkRocket(World p_i1762_1_)
@@ -199,4 +199,11 @@
{
return false;
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -14,3 +14,15 @@
this.func_146065_b(p_70097_1_.getEntity(), false); this.func_146065_b(p_70097_1_.getEntity(), false);
this.setDisplayedItem((ItemStack)null); this.setDisplayedItem((ItemStack)null);
} }
@@ -203,4 +210,11 @@
return true;
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -1,6 +1,16 @@
--- ../src-base/minecraft/net/minecraft/entity/item/EntityPainting.java --- ../src-base/minecraft/net/minecraft/entity/item/EntityPainting.java
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityPainting.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityPainting.java
@@ -19,6 +19,7 @@ @@ -2,7 +2,9 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+
import java.util.ArrayList;
+
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityHanging;
import net.minecraft.entity.player.EntityPlayer;
@@ -19,6 +21,7 @@
public EntityPainting(World p_i1599_1_) public EntityPainting(World p_i1599_1_)
{ {
super(p_i1599_1_); super(p_i1599_1_);
@ -8,3 +18,15 @@
} }
public EntityPainting(World p_i1600_1_, int p_i1600_2_, int p_i1600_3_, int p_i1600_4_, int p_i1600_5_) public EntityPainting(World p_i1600_1_, int p_i1600_2_, int p_i1600_3_, int p_i1600_4_, int p_i1600_5_)
@@ -170,4 +173,11 @@
this.offsetY = p_i1598_7_;
}
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -55,3 +55,15 @@
} }
protected void writeEntityToNBT(NBTTagCompound p_70014_1_) protected void writeEntityToNBT(NBTTagCompound p_70014_1_)
@@ -107,4 +124,11 @@
{
return this.tntPlacedBy;
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -1,9 +1,10 @@
--- ../src-base/minecraft/net/minecraft/entity/item/EntityXPOrb.java --- ../src-base/minecraft/net/minecraft/entity/item/EntityXPOrb.java
+++ ../src-work/minecraft/net/minecraft/entity/item/EntityXPOrb.java +++ ../src-work/minecraft/net/minecraft/entity/item/EntityXPOrb.java
@@ -12,13 +12,18 @@ @@ -12,13 +12,19 @@
import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.entity.player.PlayerPickupXpEvent; import net.minecraftforge.event.entity.player.PlayerPickupXpEvent;
+
+// CraftBukkit start +// CraftBukkit start
+import org.bukkit.craftbukkit.event.CraftEventFactory; +import org.bukkit.craftbukkit.event.CraftEventFactory;
+import org.bukkit.event.entity.EntityTargetEvent; +import org.bukkit.event.entity.EntityTargetEvent;
@ -20,7 +21,7 @@
private EntityPlayer closestPlayer; private EntityPlayer closestPlayer;
private int xpTargetColor; private int xpTargetColor;
private static final String __OBFID = "CL_00001544"; private static final String __OBFID = "CL_00001544";
@@ -115,18 +120,27 @@ @@ -115,18 +121,27 @@
if (this.closestPlayer != null) if (this.closestPlayer != null)
{ {
@ -58,7 +59,7 @@
} }
} }
@@ -210,7 +224,7 @@ @@ -210,7 +225,7 @@
p_70100_1_.xpCooldown = 2; p_70100_1_.xpCooldown = 2;
this.worldObj.playSoundAtEntity(p_70100_1_, "random.orb", 0.1F, 0.5F * ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.8F)); this.worldObj.playSoundAtEntity(p_70100_1_, "random.orb", 0.1F, 0.5F * ((this.rand.nextFloat() - this.rand.nextFloat()) * 0.7F + 1.8F));
p_70100_1_.onItemPickup(this, 1); p_70100_1_.onItemPickup(this, 1);
@ -67,7 +68,7 @@
this.setDead(); this.setDead();
} }
} }
@@ -229,6 +243,88 @@ @@ -229,6 +244,88 @@
public static int getXPSplit(int p_70527_0_) public static int getXPSplit(int p_70527_0_)
{ {
@ -156,3 +157,15 @@
return p_70527_0_ >= 2477 ? 2477 : (p_70527_0_ >= 1237 ? 1237 : (p_70527_0_ >= 617 ? 617 : (p_70527_0_ >= 307 ? 307 : (p_70527_0_ >= 149 ? 149 : (p_70527_0_ >= 73 ? 73 : (p_70527_0_ >= 37 ? 37 : (p_70527_0_ >= 17 ? 17 : (p_70527_0_ >= 7 ? 7 : (p_70527_0_ >= 3 ? 3 : 1))))))))); return p_70527_0_ >= 2477 ? 2477 : (p_70527_0_ >= 1237 ? 1237 : (p_70527_0_ >= 617 ? 617 : (p_70527_0_ >= 307 ? 307 : (p_70527_0_ >= 149 ? 149 : (p_70527_0_ >= 73 ? 73 : (p_70527_0_ >= 37 ? 37 : (p_70527_0_ >= 17 ? 17 : (p_70527_0_ >= 7 ? 7 : (p_70527_0_ >= 3 ? 3 : 1)))))))));
} }
@@ -236,4 +333,11 @@
{
return false;
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -1,11 +1,22 @@
--- ../src-base/minecraft/net/minecraft/entity/projectile/EntityArrow.java --- ../src-base/minecraft/net/minecraft/entity/projectile/EntityArrow.java
+++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityArrow.java +++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityArrow.java
@@ -23,6 +23,13 @@ @@ -2,7 +2,9 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+
import java.util.List;
+
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.enchantment.EnchantmentHelper;
@@ -23,6 +25,14 @@
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
+// CraftBukkit start +// CraftBukkit start
+import net.minecraft.entity.item.EntityItem; +import net.minecraft.entity.item.EntityItem;
+
+import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.LivingEntity;
+import org.bukkit.event.entity.EntityCombustByEntityEvent; +import org.bukkit.event.entity.EntityCombustByEntityEvent;
+import org.bukkit.event.player.PlayerPickupItemEvent; +import org.bukkit.event.player.PlayerPickupItemEvent;
@ -14,7 +25,7 @@
public class EntityArrow extends Entity implements IProjectile public class EntityArrow extends Entity implements IProjectile
{ {
private int field_145791_d = -1; private int field_145791_d = -1;
@@ -30,14 +37,14 @@ @@ -30,14 +40,14 @@
private int field_145789_f = -1; private int field_145789_f = -1;
private Block field_145790_g; private Block field_145790_g;
private int inData; private int inData;
@ -31,7 +42,7 @@
private static final String __OBFID = "CL_00001715"; private static final String __OBFID = "CL_00001715";
public EntityArrow(World p_i1753_1_) public EntityArrow(World p_i1753_1_)
@@ -61,6 +68,7 @@ @@ -61,6 +71,7 @@
super(p_i1755_1_); super(p_i1755_1_);
this.renderDistanceWeight = 10.0D; this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1755_2_; this.shootingEntity = p_i1755_2_;
@ -39,7 +50,7 @@
if (p_i1755_2_ instanceof EntityPlayer) if (p_i1755_2_ instanceof EntityPlayer)
{ {
@@ -91,6 +99,7 @@ @@ -91,6 +102,7 @@
super(p_i1756_1_); super(p_i1756_1_);
this.renderDistanceWeight = 10.0D; this.renderDistanceWeight = 10.0D;
this.shootingEntity = p_i1756_2_; this.shootingEntity = p_i1756_2_;
@ -47,7 +58,7 @@
if (p_i1756_2_ instanceof EntityPlayer) if (p_i1756_2_ instanceof EntityPlayer)
{ {
@@ -199,7 +208,7 @@ @@ -199,7 +211,7 @@
{ {
++this.ticksInGround; ++this.ticksInGround;
@ -56,7 +67,7 @@
{ {
this.setDead(); this.setDead();
} }
@@ -246,7 +255,7 @@ @@ -246,7 +258,7 @@
if (movingobjectposition1 != null) if (movingobjectposition1 != null)
{ {
@ -65,7 +76,7 @@
if (d1 < d0 || d0 == 0.0D) if (d1 < d0 || d0 == 0.0D)
{ {
@@ -277,6 +286,8 @@ @@ -277,6 +289,8 @@
if (movingobjectposition != null) if (movingobjectposition != null)
{ {
@ -74,7 +85,7 @@
if (movingobjectposition.entityHit != null) if (movingobjectposition.entityHit != null)
{ {
f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ); f2 = MathHelper.sqrt_double(this.motionX * this.motionX + this.motionY * this.motionY + this.motionZ * this.motionZ);
@@ -298,13 +309,23 @@ @@ -298,13 +312,23 @@
damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity); damagesource = DamageSource.causeArrowDamage(this, this.shootingEntity);
} }
@ -103,7 +114,7 @@
if (movingobjectposition.entityHit instanceof EntityLivingBase) if (movingobjectposition.entityHit instanceof EntityLivingBase)
{ {
EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit; EntityLivingBase entitylivingbase = (EntityLivingBase)movingobjectposition.entityHit;
@@ -487,6 +508,23 @@ @@ -487,6 +511,23 @@
{ {
if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0) if (!this.worldObj.isRemote && this.inGround && this.arrowShake <= 0)
{ {
@ -127,7 +138,7 @@
boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode; boolean flag = this.canBePickedUp == 1 || this.canBePickedUp == 2 && p_70100_1_.capabilities.isCreativeMode;
if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(Items.arrow, 1))) if (this.canBePickedUp == 1 && !p_70100_1_.inventory.addItemStackToInventory(new ItemStack(Items.arrow, 1)))
@@ -553,4 +591,11 @@ @@ -553,4 +594,18 @@
byte b0 = this.dataWatcher.getWatchableObjectByte(16); byte b0 = this.dataWatcher.getWatchableObjectByte(16);
return (b0 & 1) != 0; return (b0 & 1) != 0;
} }
@ -138,4 +149,11 @@
+ return inGround; + return inGround;
+ } + }
+ // CraftBukkit end + // CraftBukkit end
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
} }

View File

@ -1,22 +1,24 @@
--- ../src-base/minecraft/net/minecraft/entity/projectile/EntityEgg.java --- ../src-base/minecraft/net/minecraft/entity/projectile/EntityEgg.java
+++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityEgg.java +++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityEgg.java
@@ -6,6 +6,15 @@ @@ -6,6 +6,17 @@
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
+// CraftBukkit start +// CraftBukkit start
+import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.EntityPlayerMP;
+
+import org.bukkit.entity.Ageable; +import org.bukkit.entity.Ageable;
+import org.bukkit.entity.EntityType; +import org.bukkit.entity.EntityType;
+import org.bukkit.entity.Player; +import org.bukkit.entity.Player;
+import org.bukkit.event.player.PlayerEggThrowEvent; +import org.bukkit.event.player.PlayerEggThrowEvent;
+
+import net.minecraft.entity.Entity; +import net.minecraft.entity.Entity;
+// CraftBukkit end +// CraftBukkit end
+ +
public class EntityEgg extends EntityThrowable public class EntityEgg extends EntityThrowable
{ {
private static final String __OBFID = "CL_00001724"; private static final String __OBFID = "CL_00001724";
@@ -32,24 +41,43 @@ @@ -32,24 +43,43 @@
p_70184_1_.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 0.0F); p_70184_1_.entityHit.attackEntityFrom(DamageSource.causeThrownDamage(this, this.getThrower()), 0.0F);
} }
@ -71,3 +73,15 @@
for (int j = 0; j < 8; ++j) for (int j = 0; j < 8; ++j)
{ {
this.worldObj.spawnParticle("snowballpoof", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D); this.worldObj.spawnParticle("snowballpoof", this.posX, this.posY, this.posZ, 0.0D, 0.0D, 0.0D);
@@ -60,4 +90,11 @@
this.setDead();
}
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -1,14 +1,16 @@
--- ../src-base/minecraft/net/minecraft/entity/projectile/EntityFireball.java --- ../src-base/minecraft/net/minecraft/entity/projectile/EntityFireball.java
+++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityFireball.java +++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityFireball.java
@@ -3,6 +3,7 @@ @@ -2,7 +2,9 @@
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly; import cpw.mods.fml.relauncher.SideOnly;
+
import java.util.List; import java.util.List;
+ +
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
@@ -15,6 +16,8 @@ @@ -15,6 +17,8 @@
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -17,7 +19,7 @@
public abstract class EntityFireball extends Entity public abstract class EntityFireball extends Entity
{ {
private int field_145795_e = -1; private int field_145795_e = -1;
@@ -28,6 +31,8 @@ @@ -28,6 +32,8 @@
public double accelerationX; public double accelerationX;
public double accelerationY; public double accelerationY;
public double accelerationZ; public double accelerationZ;
@ -26,7 +28,7 @@
private static final String __OBFID = "CL_00001717"; private static final String __OBFID = "CL_00001717";
public EntityFireball(World p_i1759_1_) public EntityFireball(World p_i1759_1_)
@@ -62,11 +67,19 @@ @@ -62,11 +68,19 @@
{ {
super(p_i1761_1_); super(p_i1761_1_);
this.shootingEntity = p_i1761_2_; this.shootingEntity = p_i1761_2_;
@ -46,7 +48,7 @@
p_i1761_3_ += this.rand.nextGaussian() * 0.4D; p_i1761_3_ += this.rand.nextGaussian() * 0.4D;
p_i1761_5_ += this.rand.nextGaussian() * 0.4D; p_i1761_5_ += this.rand.nextGaussian() * 0.4D;
p_i1761_7_ += this.rand.nextGaussian() * 0.4D; p_i1761_7_ += this.rand.nextGaussian() * 0.4D;
@@ -140,7 +153,7 @@ @@ -140,7 +154,7 @@
if (movingobjectposition1 != null) if (movingobjectposition1 != null)
{ {
@ -55,7 +57,7 @@
if (d1 < d0 || d0 == 0.0D) if (d1 < d0 || d0 == 0.0D)
{ {
@@ -159,6 +172,14 @@ @@ -159,6 +173,14 @@
if (movingobjectposition != null) if (movingobjectposition != null)
{ {
this.onImpact(movingobjectposition); this.onImpact(movingobjectposition);
@ -70,7 +72,7 @@
} }
this.posX += this.motionX; this.posX += this.motionX;
@@ -227,6 +248,8 @@ @@ -227,6 +249,8 @@
p_70014_1_.setShort("zTile", (short)this.field_145794_g); p_70014_1_.setShort("zTile", (short)this.field_145794_g);
p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145796_h)); p_70014_1_.setByte("inTile", (byte)Block.getIdFromBlock(this.field_145796_h));
p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0)); p_70014_1_.setByte("inGround", (byte)(this.inGround ? 1 : 0));
@ -79,7 +81,7 @@
p_70014_1_.setTag("direction", this.newDoubleNBTList(new double[] {this.motionX, this.motionY, this.motionZ})); p_70014_1_.setTag("direction", this.newDoubleNBTList(new double[] {this.motionX, this.motionY, this.motionZ}));
} }
@@ -238,8 +261,17 @@ @@ -238,8 +262,17 @@
this.field_145796_h = Block.getBlockById(p_70037_1_.getByte("inTile") & 255); this.field_145796_h = Block.getBlockById(p_70037_1_.getByte("inTile") & 255);
this.inGround = p_70037_1_.getByte("inGround") == 1; this.inGround = p_70037_1_.getByte("inGround") == 1;
@ -98,7 +100,7 @@
NBTTagList nbttaglist = p_70037_1_.getTagList("direction", 6); NBTTagList nbttaglist = p_70037_1_.getTagList("direction", 6);
this.motionX = nbttaglist.func_150309_d(0); this.motionX = nbttaglist.func_150309_d(0);
this.motionY = nbttaglist.func_150309_d(1); this.motionY = nbttaglist.func_150309_d(1);
@@ -273,6 +305,13 @@ @@ -273,6 +306,13 @@
if (p_70097_1_.getEntity() != null) if (p_70097_1_.getEntity() != null)
{ {
@ -112,7 +114,7 @@
Vec3 vec3 = p_70097_1_.getEntity().getLookVec(); Vec3 vec3 = p_70097_1_.getEntity().getLookVec();
if (vec3 != null) if (vec3 != null)
@@ -288,6 +327,7 @@ @@ -288,6 +328,7 @@
if (p_70097_1_.getEntity() instanceof EntityLivingBase) if (p_70097_1_.getEntity() instanceof EntityLivingBase)
{ {
this.shootingEntity = (EntityLivingBase)p_70097_1_.getEntity(); this.shootingEntity = (EntityLivingBase)p_70097_1_.getEntity();
@ -120,3 +122,15 @@
} }
return true; return true;
@@ -315,4 +356,11 @@
{
return 15728880;
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -114,3 +114,15 @@
} }
} }
} }
@@ -594,4 +645,11 @@
this.field_146042_b.fishEntity = null;
}
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -1,12 +1,26 @@
--- ../src-base/minecraft/net/minecraft/entity/projectile/EntityPotion.java --- ../src-base/minecraft/net/minecraft/entity/projectile/EntityPotion.java
+++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityPotion.java +++ ../src-work/minecraft/net/minecraft/entity/projectile/EntityPotion.java
@@ -14,9 +14,16 @@ @@ -2,8 +2,10 @@
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
+
import java.util.Iterator;
import java.util.List;
+
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.init.Items;
import net.minecraft.item.ItemStack;
@@ -14,9 +16,19 @@
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraft.world.World; import net.minecraft.world.World;
+
+// CraftBukkit start +// CraftBukkit start
+import java.util.HashMap; +import java.util.HashMap;
+
+import net.minecraft.entity.player.EntityPlayerMP; +import net.minecraft.entity.player.EntityPlayerMP;
+
+import org.bukkit.craftbukkit.entity.CraftLivingEntity; +import org.bukkit.craftbukkit.entity.CraftLivingEntity;
+import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.LivingEntity;
+// CraftBukkit end +// CraftBukkit end
@ -18,7 +32,7 @@
private static final String __OBFID = "CL_00001727"; private static final String __OBFID = "CL_00001727";
public EntityPotion(World p_i1788_1_) public EntityPotion(World p_i1788_1_)
@@ -88,14 +95,16 @@ @@ -88,14 +100,16 @@
{ {
List list = Items.potionitem.getEffects(this.potionDamage); List list = Items.potionitem.getEffects(this.potionDamage);
@ -37,7 +51,7 @@
while (iterator.hasNext()) while (iterator.hasNext())
{ {
@@ -111,6 +120,25 @@ @@ -111,6 +125,25 @@
d1 = 1.0D; d1 = 1.0D;
} }
@ -63,7 +77,7 @@
Iterator iterator1 = list.iterator(); Iterator iterator1 = list.iterator();
while (iterator1.hasNext()) while (iterator1.hasNext())
@@ -118,9 +146,22 @@ @@ -118,9 +151,22 @@
PotionEffect potioneffect = (PotionEffect)iterator1.next(); PotionEffect potioneffect = (PotionEffect)iterator1.next();
int i = potioneffect.getPotionID(); int i = potioneffect.getPotionID();
@ -87,3 +101,15 @@
} }
else else
{ {
@@ -170,4 +216,11 @@
p_70014_1_.setTag("Potion", this.potionDamage.writeToNBT(new NBTTagCompound()));
}
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -42,3 +42,15 @@
} }
} }
@@ -85,4 +102,11 @@
{
return false;
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -0,0 +1,14 @@
--- ../src-base/minecraft/net/minecraft/entity/projectile/EntitySnowball.java
+++ ../src-work/minecraft/net/minecraft/entity/projectile/EntitySnowball.java
@@ -49,4 +49,11 @@
this.setDead();
}
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}

View File

@ -36,3 +36,15 @@
this.setDead(); this.setDead();
} }
} }
@@ -125,4 +136,11 @@
{
this.dataWatcher.updateObject(10, Byte.valueOf((byte)(p_82343_1_ ? 1 : 0)));
}
+
+ // Cauldron start
+ @Override
+ public boolean entityProjectileHook() {
+ return true;
+ }
+ // Cauldron end
}