diff options
author | Draknyte1 <Draknyte1@hotmail.com> | 2016-09-07 16:36:25 +1000 |
---|---|---|
committer | Draknyte1 <Draknyte1@hotmail.com> | 2016-09-07 16:36:25 +1000 |
commit | 221c2f0fe81430e7dd4087e5f5845bd7c62ec56d (patch) | |
tree | d6e0faaef01b9d517828557e1be82500d476f95e /src/Java/gtPlusPlus/core/handler/events | |
parent | 5872c0947ce7bc788b03fa2fb690b8815d3d0a04 (diff) | |
download | GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.tar.gz GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.tar.bz2 GT5-Unofficial-221c2f0fe81430e7dd4087e5f5845bd7c62ec56d.zip |
% Refactored the entire project to stop using MiscUtils everywhere possible, now it's gtPlusPlus.
Diffstat (limited to 'src/Java/gtPlusPlus/core/handler/events')
3 files changed, 293 insertions, 0 deletions
diff --git a/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java new file mode 100644 index 0000000000..9cf0cb8bb7 --- /dev/null +++ b/src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java @@ -0,0 +1,84 @@ +package gtPlusPlus.core.handler.events; + +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.core.util.player.PlayerCache; + +import java.util.UUID; + +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.EntityPlayerMP; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; +import cpw.mods.fml.common.gameevent.PlayerEvent; + +public class LoginEventHandler { + + public String localPlayersName; + public UUID localPlayersUUID; + private EntityPlayer localPlayerRef; + + @SubscribeEvent + public void onPlayerLogin(PlayerEvent.PlayerLoggedInEvent event) { + + this.localPlayerRef = event.player; + this.localPlayersName = event.player.getDisplayName(); + this.localPlayersUUID = event.player.getUniqueID(); + + try { + + + if (localPlayerRef instanceof EntityPlayerMP && localPlayerRef != null){ + + //Populates player cache + if (!localPlayerRef.worldObj.isRemote){ + PlayerCache.appendParamChanges(localPlayersName, localPlayersUUID.toString()); + } + + + /*if (localPlayerRef.getCommandSenderName().toLowerCase().equalsIgnoreCase("ImQ009") || localPlayerRef.getCommandSenderName().toLowerCase().contains("player")){ + Utils.LOG_INFO("Spawning a new Santa Thread."); + Thread t = new Thread() { + UUID threadHandlerIDthing = localPlayersUUID; + @Override + public void run() { + while(true && Minecraft.getMinecraft().getIntegratedServer() != null) { + try { + if(localPlayerRef == null){ + localPlayerRef = Utils.getPlayerOnServerFromUUID(threadHandlerIDthing); + } + + + //ImQ009 is a legend. + if (localPlayerRef.getCommandSenderName().toLowerCase().equalsIgnoreCase("ImQ009")){ + Utils.messagePlayer(localPlayerRef, "Enjoy some complimentary Raisin Bread."); + localPlayerRef.inventory.addItemStackToInventory(UtilsItems.getSimpleStack(ModItems.itemIngotRaisinBread, MathUtils.randInt(1, 5))); + } + + + if (localPlayerRef.getCommandSenderName().toLowerCase().contains("player")){ + Utils.messagePlayer(localPlayerRef, "Enjoy some complimentary Raisin Bread."); + localPlayerRef.inventory.addItemStackToInventory(UtilsItems.getSimpleStack(ModItems.itemIngotRaisinBread, MathUtils.randInt(1, 5))); + } + Thread.sleep(1000*60*MathUtils.randInt(15, 90)); + } catch (InterruptedException ie) { + Utils.LOG_INFO("Santa Mode Disabled."); + } + } + + Utils.LOG_INFO("Thread Stopped. Handler Closed."); + + } + }; + //t.start(); + + + }*/ + + + } + } catch (Throwable errr){ + Utils.LOG_INFO("Login Handler encountered an error."); + + } + } + +}
\ No newline at end of file diff --git a/src/Java/gtPlusPlus/core/handler/events/PickaxeBlockBreakEventHandler.java b/src/Java/gtPlusPlus/core/handler/events/PickaxeBlockBreakEventHandler.java new file mode 100644 index 0000000000..a7c689a79a --- /dev/null +++ b/src/Java/gtPlusPlus/core/handler/events/PickaxeBlockBreakEventHandler.java @@ -0,0 +1,71 @@ +package gtPlusPlus.core.handler.events; + +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.metatileentity.BaseMetaPipeEntity; +import gregtech.api.metatileentity.BaseMetaTileEntity; +import gregtech.api.metatileentity.BaseTileEntity; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.base.machines.GregtechMetaSafeBlockBase; + +import java.util.UUID; + +import net.minecraft.block.Block; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.tileentity.TileEntity; +import net.minecraftforge.event.entity.player.PlayerInteractEvent; +import net.minecraftforge.event.world.BlockEvent.BreakEvent; +import cpw.mods.fml.common.eventhandler.SubscribeEvent; + +public class PickaxeBlockBreakEventHandler { + @SubscribeEvent + public void onBreakBlock(BreakEvent event) { + try{ + TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z); + if (entity != null && !entity.equals(null)){ + EntityPlayer playerInternal = event.getPlayer(); + Utils.LOG_WARNING(entity.getClass().getSimpleName()); + if (entity.getClass().getSimpleName().equals("")){ + + } + if (entity instanceof BaseTileEntity && !(entity instanceof BaseMetaPipeEntity)){ + IMetaTileEntity X = ((BaseMetaTileEntity)entity).getMetaTileEntity(); + Block ThisBlock = X.getBaseMetaTileEntity().getBlock(event.x, event.y, event.z); + if (X instanceof GregtechMetaSafeBlockBase){ + + UUID ownerUUID = ((GregtechMetaSafeBlockBase)X).ownerUUID; + UUID accessorUUID = playerInternal.getUniqueID(); + Utils.LOG_WARNING("Owner UUID: "+ownerUUID); + Utils.LOG_WARNING("Accessor UUID: "+accessorUUID); + + if (((GregtechMetaSafeBlockBase)X).bUnbreakable){ + + Utils.LOG_INFO("UUID info. Accessor: "+accessorUUID + " | Owner: "+ownerUUID); + + if (accessorUUID == ownerUUID){ + Utils.messagePlayer(playerInternal, "Since you own this block, it has been destroyed."); + event.setCanceled(false); + } + else { + event.setCanceled(true); + Utils.messagePlayer(playerInternal, "Since you do not own this block, it has not been destroyed."); + } + // + } + } + } + } + + } + catch (NullPointerException e) { + System.out.print("Caught a NullPointerException involving Safe Blocks. Cause: "+e.getCause()); + } + } + + + @SubscribeEvent + public void onPlayerInteraction(PlayerInteractEvent aEvent) { + if (aEvent.entityPlayer != null && aEvent.entityPlayer.worldObj != null && aEvent.action != null && aEvent.world.provider != null && !aEvent.entityPlayer.worldObj.isRemote && aEvent.action != null && aEvent.action != PlayerInteractEvent.Action.RIGHT_CLICK_AIR) { + //Utils.LOG_ERROR("Test"); + } + } +} diff --git a/src/Java/gtPlusPlus/core/handler/events/UnbreakableBlockManager.java b/src/Java/gtPlusPlus/core/handler/events/UnbreakableBlockManager.java new file mode 100644 index 0000000000..3e126d4463 --- /dev/null +++ b/src/Java/gtPlusPlus/core/handler/events/UnbreakableBlockManager.java @@ -0,0 +1,138 @@ +package gtPlusPlus.core.handler.events; + +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.metatileentity.BaseMetaPipeEntity; +import gregtech.api.metatileentity.BaseMetaTileEntity; +import gregtech.api.metatileentity.BaseTileEntity; +import gtPlusPlus.core.util.Utils; +import gtPlusPlus.xmod.gregtech.api.metatileentity.implementations.GregtechMetaSafeBlock; +import net.minecraft.block.Block; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.world.World; + +public class UnbreakableBlockManager{ + + private static boolean hasRun = false; + + public final BaseMetaTileEntity getmTileEntity() { + return mTileEntity; + } + + + public final void setmTileEntity(BaseMetaTileEntity mTileEntity/*, EntityPlayer aPlayer*/) { + UnbreakableBlockManager.mTileEntity = mTileEntity; + if (!hasRun){ + hasRun = true; + makeIndestructible(/*aPlayer*/); + } + else { + Utils.LOG_WARNING("Why do you run twice?"); + } + } + + + //BaseMetaTileEntity + //GregtechMetaSafeBlock + private static BaseMetaTileEntity mTileEntity = null; + + + private void makeIndestructible(/*EntityPlayer aPlayer*/){ + + + Utils.LOG_WARNING("Initializing the code to set this TE to -1 hardness and make it indestructible."); + int X = ((BaseMetaTileEntity)mTileEntity).xCoord; //(GregtechMetaSafeBlock) this.mTileEntity.getXCoord(); + int Y = ((BaseMetaTileEntity)mTileEntity).yCoord; + int Z = ((BaseMetaTileEntity)mTileEntity).zCoord; + Utils.LOG_WARNING("Grabbing TileEntity @ [x,y,z] |"+X+"|"+Y+"|"+Z+"|"); + + + + try{ + GregtechMetaSafeBlock MetaSafeBlock = ((GregtechMetaSafeBlock) this.mTileEntity.getMetaTileEntity()); + TileEntity BaseMetaTileEntity = ((BaseMetaTileEntity)mTileEntity).getTileEntity(X, Y, Z); + //MetaSafeBlockBase. + World TE_WORLD = MetaSafeBlock.getBaseMetaTileEntity().getWorld(); + Utils.LOG_WARNING("Checking new State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + TileEntity entity = BaseMetaTileEntity; + innerInvincible(MetaSafeBlock, entity, TE_WORLD, /*aPlayer,*/ X, Y, Z); + } + catch (NullPointerException e) { + System.out.print("Caught a NullPointerException involving Safe Blocks. Cause: "); + e.printStackTrace(); + } + } + + + private static void innerInvincible(GregtechMetaSafeBlock MetaSafeBlock, TileEntity entity, World TE_WORLD, /*EntityPlayer aPlayer,*/ int X, int Y, int Z){ + if (entity != null && !entity.equals(null)){ + Utils.LOG_WARNING("Checking new State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + Utils.LOG_WARNING("Grabbed TE: "+entity.toString()); + + + + + if (entity instanceof BaseTileEntity && !(entity instanceof BaseMetaPipeEntity)){ + IMetaTileEntity I = ((BaseMetaTileEntity)entity).getMetaTileEntity(); + Utils.LOG_WARNING("Checking State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + Utils.LOG_WARNING("I Details: "+I.getMetaName()+" | "+I.getTileEntityBaseType()+" | "+I.toString()); + + + + + + if (I instanceof GregtechMetaSafeBlock){ + Utils.LOG_WARNING("Checking State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + + Block ThisBlock = I.getBaseMetaTileEntity().getBlock(X, Y, Z); + Utils.LOG_WARNING("Block Details: "+ThisBlock.toString()); + + + if (((GregtechMetaSafeBlock)I).bUnbreakable){ + ThisBlock.setHardness(Integer.MAX_VALUE); + //ThisBlock.setResistance(18000000.0F); + ThisBlock.setResistance(-1); + ThisBlock.setBlockUnbreakable(); + Utils.LOG_WARNING("Changing State of Flag. Old Value="+MetaSafeBlock.bUnbreakable+" Expected Value=true"); + MetaSafeBlock.bUnbreakable = true; + //entity.markDirty(); + Utils.LOG_WARNING("Checking new State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + Utils.LOG_ERROR("New Indestructible Flag enabled."); + //GT_Utility.sendChatToPlayer(aPlayer, "Block is now unbreakable."); + } + + + + + else { + ThisBlock.setHardness(1); + ThisBlock.setResistance(1.0F); + Utils.LOG_WARNING("Changing State of Flag. Old Value="+MetaSafeBlock.bUnbreakable+" Expected Value=false"); + MetaSafeBlock.bUnbreakable = false; + //entity.markDirty(); + Utils.LOG_WARNING("Checking new State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + Utils.LOG_ERROR("New Indestructible Flag disabled."); + //GT_Utility.sendChatToPlayer(aPlayer, "Block is now breakable."); + } + + //entity.markDirty(); + + Utils.LOG_WARNING("Block Hardness: "+ThisBlock.getBlockHardness(TE_WORLD, X, Y, Z)); + Utils.LOG_WARNING("Checking State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + hasRun = false; + + } + else { + Utils.LOG_WARNING("I is not an instanceof MetaSafeBlockBase"); + Utils.LOG_WARNING("Checking State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + } + } else { + Utils.LOG_WARNING("TE is not an instanceof BaseTileEntity or may be a pipe."); + Utils.LOG_WARNING("Checking State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + } + }else { + Utils.LOG_WARNING("Did not grab a TE instance to make a block instance from."); + Utils.LOG_WARNING("Checking State of Flag[nUnbreakable]. Value="+MetaSafeBlock.bUnbreakable); + } + } + +} |