aboutsummaryrefslogtreecommitdiff
path: root/src/Java/miscutil/core/handler/XEventHandler.java
blob: 3742f29e47ccfefbc35f45be64e1cb8102e10fff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package miscutil.core.handler;

import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
import gregtech.api.metatileentity.BaseMetaTileEntity;
import gregtech.api.metatileentity.BaseTileEntity;
import miscutil.core.util.Utils;
import miscutil.gregtech.metatileentity.implementations.base.GregtechMetaSafeBlockBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.event.world.BlockEvent.BreakEvent;
import cpw.mods.fml.common.eventhandler.SubscribeEvent;

public class XEventHandler {
	@SubscribeEvent
	public void onBreakBlock(BreakEvent event) {
		TileEntity entity = event.world.getTileEntity(event.x, event.y, event.z);
		EntityPlayer playerInternal = event.getPlayer();

		try{
			if (entity instanceof BaseTileEntity){
				IMetaTileEntity X = ((BaseMetaTileEntity)entity).getMetaTileEntity();
				if (X instanceof GregtechMetaSafeBlockBase){
					
					String ownerUUID = ((GregtechMetaSafeBlockBase)X).ownerUUID;
					String accessorUUID = playerInternal.getUniqueID().toString();
					Utils.LOG_WARNING("Owner UUID: "+ownerUUID);
					Utils.LOG_WARNING("Accessor UUID: "+accessorUUID);					
					
					if (((GregtechMetaSafeBlockBase)X).bUnbreakable){
						if (accessorUUID.equals(ownerUUID)){							
							Utils.messagePlayer(playerInternal, "Since you own this block, it has been destroyed.");
							event.setCanceled(false);
						}
						else {
							Utils.messagePlayer(playerInternal, "Since you do not own this block, it has not been destroyed.");
							event.setCanceled(true);
						}
						//
					}
				}
			}
		}
		catch (NullPointerException e) {
			System.out.print("Caught a NullPointerException involving Safe Blocks. Cause: "+e.getCause());
		}














	}
}