aboutsummaryrefslogtreecommitdiff
path: root/src/Java/gtPlusPlus/core/handler/events
diff options
context:
space:
mode:
authorDraknyte1 <Draknyte1@hotmail.com>2016-09-07 16:36:25 +1000
committerDraknyte1 <Draknyte1@hotmail.com>2016-09-07 16:36:25 +1000
commit221c2f0fe81430e7dd4087e5f5845bd7c62ec56d (patch)
treed6e0faaef01b9d517828557e1be82500d476f95e /src/Java/gtPlusPlus/core/handler/events
parent5872c0947ce7bc788b03fa2fb690b8815d3d0a04 (diff)
downloadGT5-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')
-rw-r--r--src/Java/gtPlusPlus/core/handler/events/LoginEventHandler.java84
-rw-r--r--src/Java/gtPlusPlus/core/handler/events/PickaxeBlockBreakEventHandler.java71
-rw-r--r--src/Java/gtPlusPlus/core/handler/events/UnbreakableBlockManager.java138
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);
+ }
+ }
+
+}