Made Drill fire Block Breaking Event

This commit is contained in:
Ellpeck 2015-11-22 23:02:59 +01:00
parent 6b27b651ae
commit 37d2aa8968

View file

@ -29,8 +29,10 @@ import net.minecraft.util.MovingObjectPosition;
import net.minecraft.util.Vec3; import net.minecraft.util.Vec3;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraft.world.WorldServer; import net.minecraft.world.WorldServer;
import net.minecraftforge.common.ForgeHooks;
import net.minecraftforge.common.IPlantable; import net.minecraftforge.common.IPlantable;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import net.minecraftforge.event.world.BlockEvent;
import net.minecraftforge.fluids.*; import net.minecraftforge.fluids.*;
import java.util.ArrayList; import java.util.ArrayList;
@ -350,6 +352,14 @@ public class WorldUtil{
//If the Block can be harvested or not //If the Block can be harvested or not
boolean canHarvest = block.canHarvestBlock(player, meta); boolean canHarvest = block.canHarvestBlock(player, meta);
//Send Block Breaking Event
if(player instanceof EntityPlayerMP){
BlockEvent.BreakEvent event = ForgeHooks.onBlockBreakEvent(world, ((EntityPlayerMP)player).theItemInWorldManager.getGameType(), (EntityPlayerMP)player, xPos, yPos, zPos);
if(event.isCanceled()){
return false;
}
}
if(!world.isRemote){ if(!world.isRemote){
//Server-Side only, special cases //Server-Side only, special cases
block.onBlockHarvested(world, xPos, yPos, zPos, meta, player); block.onBlockHarvested(world, xPos, yPos, zPos, meta, player);
@ -381,7 +391,9 @@ public class WorldUtil{
if(!world.isRemote){ if(!world.isRemote){
//Update the Client of a Block Change //Update the Client of a Block Change
((EntityPlayerMP)player).playerNetServerHandler.sendPacket(new S23PacketBlockChange(xPos, yPos, zPos, world)); if(player instanceof EntityPlayerMP){
((EntityPlayerMP)player).playerNetServerHandler.sendPacket(new S23PacketBlockChange(xPos, yPos, zPos, world));
}
} }
else{ else{
//Check the Server if a Block that changed on the Client really changed, if not, revert the change //Check the Server if a Block that changed on the Client really changed, if not, revert the change