Missing updates from last commit

This commit is contained in:
LexManos 2012-09-26 22:12:01 -07:00
parent 0e5c0be23e
commit 6ec887b34f
2 changed files with 64 additions and 26 deletions

View File

@ -18,11 +18,12 @@
/** The world object that this object is connected to. */ /** The world object that this object is connected to. */
public World theWorld; public World theWorld;
@@ -134,6 +144,12 @@ @@ -134,6 +144,13 @@
{ {
if (!this.gameType.isAdventure()) if (!this.gameType.isAdventure())
{ {
+ if (!ForgeEventFactory.onPlayerInteract(thisPlayerMP, Action.LEFT_CLICK_BLOCK, par1, par2, par3, par4)) + PlayerInteractEvent event = ForgeEventFactory.onPlayerInteract(thisPlayerMP, Action.LEFT_CLICK_BLOCK, par1, par2, par3, par4);
+ if (event.isCanceled())
+ { + {
+ thisPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(par1, par2, par3, theWorld)); + thisPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(par1, par2, par3, theWorld));
+ return; + return;
@ -31,7 +32,46 @@
if (this.isCreative()) if (this.isCreative())
{ {
if (!this.theWorld.extinguishFire((EntityPlayer)null, par1, par2, par3, par4)) if (!this.theWorld.extinguishFire((EntityPlayer)null, par1, par2, par3, par4))
@@ -225,7 +241,7 @@ @@ -143,15 +160,32 @@
}
else
{
- this.theWorld.extinguishFire(this.thisPlayerMP, par1, par2, par3, par4);
this.initialDamage = this.curblockDamage;
float var5 = 1.0F;
int var6 = this.theWorld.getBlockId(par1, par2, par3);
-
- if (var6 > 0)
- {
- Block.blocksList[var6].onBlockClicked(this.theWorld, par1, par2, par3, this.thisPlayerMP);
- var5 = Block.blocksList[var6].getPlayerRelativeBlockHardness(this.thisPlayerMP, this.thisPlayerMP.worldObj, par1, par2, par3);
+ Block block = Block.blocksList[var6];
+
+ if (block != null)
+ {
+ if (event.useBlock != Event.Result.DENY)
+ {
+ block.onBlockClicked(theWorld, par1, par2, par3, thisPlayerMP);
+ theWorld.extinguishFire(thisPlayerMP, par1, par2, par3, par4);
+ }
+ else
+ {
+ thisPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(par1, par2, par3, theWorld));
+ }
+ var5 = block.getPlayerRelativeBlockHardness(thisPlayerMP, thisPlayerMP.worldObj, par1, par2, par3);
+ }
+
+ if (event.useItem == Event.Result.DENY)
+ {
+ if (var5 >= 1.0f)
+ {
+ thisPlayerMP.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(par1, par2, par3, theWorld));
+ }
+ return;
}
if (var6 > 0 && var5 >= 1.0F)
@@ -225,7 +259,7 @@
var4.onBlockHarvested(this.theWorld, par1, par2, par3, var5, this.thisPlayerMP); var4.onBlockHarvested(this.theWorld, par1, par2, par3, var5, this.thisPlayerMP);
} }
@ -40,7 +80,7 @@
if (var4 != null && var6) if (var4 != null && var6)
{ {
@@ -246,19 +262,30 @@ @@ -246,19 +280,30 @@
} }
else else
{ {
@ -73,7 +113,7 @@
if (var7 != null) if (var7 != null)
{ {
@@ -267,9 +294,11 @@ @@ -267,9 +312,11 @@
if (var7.stackSize == 0) if (var7.stackSize == 0)
{ {
this.thisPlayerMP.destroyCurrentEquippedItem(); this.thisPlayerMP.destroyCurrentEquippedItem();
@ -85,7 +125,7 @@
if (var6 && var8) if (var6 && var8)
{ {
Block.blocksList[var4].harvestBlock(this.theWorld, this.thisPlayerMP, par1, par2, par3, var5); Block.blocksList[var4].harvestBlock(this.theWorld, this.thisPlayerMP, par1, par2, par3, var5);
@@ -306,6 +335,7 @@ @@ -306,6 +353,7 @@
if (var6.stackSize == 0) if (var6.stackSize == 0)
{ {
par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = null; par1EntityPlayer.inventory.mainInventory[par1EntityPlayer.inventory.currentItem] = null;
@ -93,7 +133,7 @@
} }
return true; return true;
@@ -318,29 +348,54 @@ @@ -318,29 +366,54 @@
*/ */
public boolean activateBlockOrUseItem(EntityPlayer par1EntityPlayer, World par2World, ItemStack par3ItemStack, int par4, int par5, int par6, int par7, float par8, float par9, float par10) public boolean activateBlockOrUseItem(EntityPlayer par1EntityPlayer, World par2World, ItemStack par3ItemStack, int par4, int par5, int par6, int par7, float par8, float par9, float par10)
{ {
@ -170,7 +210,7 @@
} }
/** /**
@@ -350,4 +405,13 @@ @@ -350,4 +423,13 @@
{ {
this.theWorld = par1WorldServer; this.theWorld = par1WorldServer;
} }

View File

@ -1,15 +1,17 @@
--- ../src_base/common/net/minecraft/src/NetServerHandler.java --- ../src_base/common/net/minecraft/src/NetServerHandler.java
+++ ../src_work/common/net/minecraft/src/NetServerHandler.java +++ ../src_work/common/net/minecraft/src/NetServerHandler.java
@@ -10,6 +10,8 @@ @@ -10,6 +10,10 @@
import cpw.mods.fml.common.network.FMLNetworkHandler; import cpw.mods.fml.common.network.FMLNetworkHandler;
import net.minecraft.server.MinecraftServer; import net.minecraft.server.MinecraftServer;
+import net.minecraftforge.event.Event;
+import net.minecraftforge.event.ForgeEventFactory; +import net.minecraftforge.event.ForgeEventFactory;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.event.entity.player.PlayerInteractEvent;
+import net.minecraftforge.event.entity.player.PlayerInteractEvent.Action;
public class NetServerHandler extends NetHandler public class NetServerHandler extends NetHandler
{ {
@@ -310,7 +312,7 @@ @@ -310,7 +314,7 @@
this.playerEntity.setPositionAndRotation(var5, var7, var9, var11, var12); this.playerEntity.setPositionAndRotation(var5, var7, var9, var11, var12);
boolean var32 = var2.getCollidingBoundingBoxes(this.playerEntity, this.playerEntity.boundingBox.copy().contract((double)var27, (double)var27, (double)var27)).isEmpty(); boolean var32 = var2.getCollidingBoundingBoxes(this.playerEntity, this.playerEntity.boundingBox.copy().contract((double)var27, (double)var27, (double)var27)).isEmpty();
@ -18,7 +20,7 @@
{ {
this.setPlayerLocation(this.lastPosX, this.lastPosY, this.lastPosZ, var11, var12); this.setPlayerLocation(this.lastPosX, this.lastPosY, this.lastPosZ, var11, var12);
return; return;
@@ -318,7 +320,7 @@ @@ -318,7 +322,7 @@
AxisAlignedBB var33 = this.playerEntity.boundingBox.copy().expand((double)var27, (double)var27, (double)var27).addCoord(0.0D, -0.55D, 0.0D); AxisAlignedBB var33 = this.playerEntity.boundingBox.copy().expand((double)var27, (double)var27, (double)var27).addCoord(0.0D, -0.55D, 0.0D);
@ -27,7 +29,7 @@
{ {
if (var29 >= -0.03125D) if (var29 >= -0.03125D)
{ {
@@ -395,7 +397,10 @@ @@ -395,7 +399,10 @@
double var12 = this.playerEntity.posZ - ((double)var7 + 0.5D); double var12 = this.playerEntity.posZ - ((double)var7 + 0.5D);
double var14 = var8 * var8 + var10 * var10 + var12 * var12; double var14 = var8 * var8 + var10 * var10 + var12 * var12;
@ -39,36 +41,32 @@
{ {
return; return;
} }
@@ -417,7 +422,7 @@ @@ -417,8 +424,9 @@
if (par1Packet14BlockDig.status == 0) if (par1Packet14BlockDig.status == 0)
{ {
- if (var20 <= 16 && !var3) - if (var20 <= 16 && !var3)
- {
+ if (var20 <= mcServer.spawnProtectionSize && !var3) + if (var20 <= mcServer.spawnProtectionSize && !var3)
{ + {
+ ForgeEventFactory.onPlayerInteract(playerEntity, Action.LEFT_CLICK_BLOCK, var5, var6, var7, 0);
this.playerEntity.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(var5, var6, var7, var2)); this.playerEntity.playerNetServerHandler.sendPacketToPlayer(new Packet53BlockChange(var5, var6, var7, var2));
} }
@@ -463,6 +468,7 @@ else
@@ -479,7 +487,11 @@
public void handlePlace(Packet15Place par1Packet15Place)
{
+ System.out.println("15: " + par1Packet15Place.creationTimeMillis);
WorldServer var2 = this.mcServer.worldServerForDimension(this.playerEntity.dimension);
ItemStack var3 = this.playerEntity.inventory.getCurrentItem();
boolean var4 = false;
@@ -479,7 +485,10 @@
return; return;
} }
- this.playerEntity.theItemInWorldManager.tryUseItem(this.playerEntity, var2, var3); - this.playerEntity.theItemInWorldManager.tryUseItem(this.playerEntity, var2, var3);
+ if (ForgeEventFactory.onPlayerInteract(playerEntity, PlayerInteractEvent.Action.RIGHT_CLICK_AIR, 0, 0, 0, -1)) + PlayerInteractEvent event = ForgeEventFactory.onPlayerInteract(playerEntity, PlayerInteractEvent.Action.RIGHT_CLICK_AIR, 0, 0, 0, -1);
+ if (event.useItem != Event.Result.DENY)
+ { + {
+ this.playerEntity.theItemInWorldManager.tryUseItem(this.playerEntity, var2, var3); + this.playerEntity.theItemInWorldManager.tryUseItem(this.playerEntity, var2, var3);
+ } + }
} }
else if (par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit() - 1 && (par1Packet15Place.getDirection() == 1 || par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit())) else if (par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit() - 1 && (par1Packet15Place.getDirection() == 1 || par1Packet15Place.getYPosition() >= this.mcServer.getBuildLimit()))
{ {
@@ -497,7 +506,9 @@ @@ -497,7 +509,9 @@
var12 = var11; var12 = var11;
} }
@ -79,7 +77,7 @@
{ {
this.playerEntity.theItemInWorldManager.activateBlockOrUseItem(this.playerEntity, var2, var3, var5, var6, var7, var8, par1Packet15Place.getXOffset(), par1Packet15Place.getYOffset(), par1Packet15Place.getZOffset()); this.playerEntity.theItemInWorldManager.activateBlockOrUseItem(this.playerEntity, var2, var3, var5, var6, var7, var8, par1Packet15Place.getXOffset(), par1Packet15Place.getYOffset(), par1Packet15Place.getZOffset());
} }
@@ -798,7 +809,7 @@ @@ -798,7 +812,7 @@
return; return;
} }