diff options
author | bot <krampus.sack.never@gmail.com> | 2020-03-31 02:32:34 +0000 |
---|---|---|
committer | Alkalus <draknyte1@hotmail.com> | 2020-03-31 02:32:34 +0000 |
commit | 47816dec7729bde0bf247ff7db8ebf6b25b92048 (patch) | |
tree | 4ea31303e333a7ee145ab5e2903f9d6be519edaa /src/Java/gtPlusPlus/core/handler | |
parent | 4a2d63b01a8c5a85cc4aa5b78fa87a1d4c186765 (diff) | |
parent | 67ca10777454cadcb4ba44a1e2a4345b6a4adb93 (diff) | |
download | GT5-Unofficial-47816dec7729bde0bf247ff7db8ebf6b25b92048.tar.gz GT5-Unofficial-47816dec7729bde0bf247ff7db8ebf6b25b92048.tar.bz2 GT5-Unofficial-47816dec7729bde0bf247ff7db8ebf6b25b92048.zip |
Merged in develop (pull request #3)
Develop
Diffstat (limited to 'src/Java/gtPlusPlus/core/handler')
-rw-r--r-- | src/Java/gtPlusPlus/core/handler/events/PickaxeBlockBreakEventHandler.java | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/src/Java/gtPlusPlus/core/handler/events/PickaxeBlockBreakEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/PickaxeBlockBreakEventHandler.java index cfc274a3d6..956d045b3e 100644 --- a/src/Java/gtPlusPlus/core/handler/events/PickaxeBlockBreakEventHandler.java +++ b/src/Java/gtPlusPlus/core/handler/events/PickaxeBlockBreakEventHandler.java @@ -1,20 +1,19 @@ package gtPlusPlus.core.handler.events; +import java.util.List; import java.util.UUID; import cpw.mods.fml.common.eventhandler.SubscribeEvent; - import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; - +import net.minecraft.world.ChunkPosition; import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.metatileentity.BaseMetaPipeEntity; import gregtech.api.metatileentity.BaseMetaTileEntity; - import gtPlusPlus.core.util.minecraft.PlayerUtils; import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.machines.GregtechMetaSafeBlockBase; import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.event.world.BlockEvent.BreakEvent; +import net.minecraftforge.event.world.ExplosionEvent; public class PickaxeBlockBreakEventHandler { @SubscribeEvent @@ -22,31 +21,54 @@ public class PickaxeBlockBreakEventHandler { try{ final TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); if (entity != null){ - final EntityPlayer playerInternal = event.getPlayer(); - if ((entity instanceof BaseMetaTileEntity) && !(BaseMetaPipeEntity.class.isInstance(entity))){ + if (entity instanceof BaseMetaTileEntity) { + final EntityPlayer playerInternal = event.getPlayer(); final IMetaTileEntity X = ((BaseMetaTileEntity)entity).getMetaTileEntity(); - //final Block ThisBlock = X.getBaseMetaTileEntity().getBlock(event.x, event.y, event.z); - if (X instanceof GregtechMetaSafeBlockBase){ + if(X instanceof GregtechMetaSafeBlockBase) { final UUID ownerUUID = ((GregtechMetaSafeBlockBase)X).ownerUUID; final UUID accessorUUID = playerInternal.getUniqueID(); if (((GregtechMetaSafeBlockBase)X).bUnbreakable){ if (accessorUUID == ownerUUID){ PlayerUtils.messagePlayer(playerInternal, "Since you own this block, it has been destroyed."); - event.setCanceled(false); } else { - event.setCanceled(true); PlayerUtils.messagePlayer(playerInternal, "Since you do not own this block, it has not been destroyed."); + event.setCanceled(true); } } } } + } } catch (final NullPointerException e) { //System.out.print("Caught a NullPointerException involving Safe Blocks. Cause: "+e.getCause()); } } + + @SubscribeEvent + public void onExplode(ExplosionEvent.Detonate event) { + try { + @SuppressWarnings("unchecked") + List<ChunkPosition> pos = event.explosion.affectedBlockPositions; + for(int i = 0;i<pos.size();i++) { + ChunkPosition blockpos = (ChunkPosition) pos.get(i); + TileEntity entity = event.world.getTileEntity(blockpos.chunkPosX, blockpos.chunkPosY, blockpos.chunkPosZ); + if (entity != null){ + if (entity instanceof BaseMetaTileEntity) { + final IMetaTileEntity X = ((BaseMetaTileEntity)entity).getMetaTileEntity(); + if (X instanceof GregtechMetaSafeBlockBase) { + pos.remove(i); + } + } + } + } + } + catch (final NullPointerException e) { + + } + + } @SubscribeEvent |