GuiHandler :
public class GuiHandler implements IGuiHandler {
public static HashMap<EntityPlayer,Integer> indentifier = new HashMap();
public static HashMap<EntityPlayer,IComputerAccess> ssGui = new HashMap();
@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world,
int x, int y, int z) {
// TODO Auto-generated method stub
if(ID == 1){
ItemStack stack = utils.getModularItemInInventory(player,"Power Fist");
if(stack != null && ModuleManager.itemHasActiveModule(stack, BagModule.NAME)){
int indentifier = 0;
if(this.indentifier.containsKey(player)){
indentifier = this.indentifier.get(player);
}else{
indentifier = utils.generateRandomInteger();
this.indentifier.put(player, indentifier);
}
if(stack.stackTagCompound.hasKey("bag")){
stack.stackTagCompound.getCompoundTag("bag").setInteger("indentifier",indentifier);
}else{
stack.stackTagCompound.setCompoundTag("bag", new NBTTagCompound());
stack.stackTagCompound.getCompoundTag("bag").setInteger("indentifier",indentifier);
}
if(!stack.stackTagCompound.getCompoundTag("bag").hasKey("freq")){
stack.stackTagCompound.getCompoundTag("bag").setInteger("freq",1);
}
if(!stack.stackTagCompound.getCompoundTag("bag").hasKey(String.valueOf(stack.stackTagCompound.getCompoundTag("bag").getInteger("freq")))){
NBTTagCompound nbt1 = stack.stackTagCompound.getCompoundTag("bag");
NBTTagCompound nbt = new NBTTagCompound();
NBTTagList itemList = new NBTTagList();
nbt.setTag("Inventory", itemList);
nbt1.setCompoundTag(String.valueOf(stack.stackTagCompound.getCompoundTag("bag").getInteger("freq")),nbt);
stack.stackTagCompound.setCompoundTag("bag", nbt1);
}
return new ContainerBag(stack,player,indentifier);
}
//return new ContainerBag( null, null,null,player,1);
}else if(ID == 2){
IInventory[] invs = utils.getPeripheralInventories(player, world);
MovingObjectPosition spot = RemoteItem.getPlayerLookingSpot(player, false);
if(spot != null && spot.typeOfHit != null){
switch(spot.typeOfHit){
case ENTITY:
break;
case TILE :
if(world.getBlockTileEntity(spot.blockX, spot.blockY, spot.blockZ) != null && world.getBlockTileEntity(spot.blockX, spot.blockY, spot.blockZ) instanceof ChairTile){
return new ContainerPeripheral(invs[0],invs[1],(ChairTile) world.getBlockTileEntity(spot.blockX, spot.blockY, spot.blockZ));
}
}
}
}else if(ID == 3){
return new SensorScreenGui(ssGui.get(player));
}
return null;
}
@Override
public Object getClientGuiElement(int ID, EntityPlayer player, World world,
int x, int y, int z) {
if(ID == 1){
ItemStack stack = utils.getModularItemInInventory(player, "Power Fist");
if(stack != null && ModuleManager.itemHasActiveModule(stack, BagModule.NAME)){
int indentifier = 0;
if(this.indentifier.containsKey(player)){
indentifier = this.indentifier.get(player);
}else{
indentifier = utils.generateRandomInteger();
this.indentifier.put(player, indentifier);
}
if(stack.stackTagCompound.hasKey("bag")){
stack.stackTagCompound.getCompoundTag("bag").setInteger("indentifier",indentifier);
}else{
stack.stackTagCompound.setCompoundTag("bag", new NBTTagCompound());
stack.stackTagCompound.getCompoundTag("bag").setInteger("indentifier",indentifier);
}
if(!stack.stackTagCompound.getCompoundTag("bag").hasKey("freq")){
stack.stackTagCompound.getCompoundTag("bag").setInteger("freq",1);
}
if(!stack.stackTagCompound.getCompoundTag("bag").hasKey(String.valueOf(stack.stackTagCompound.getCompoundTag("bag").getInteger("freq")))){
NBTTagCompound nbt1 = stack.stackTagCompound.getCompoundTag("bag");
NBTTagCompound nbt = new NBTTagCompound();
NBTTagList itemList = new NBTTagList();
nbt.setTag("Inventory", itemList);
nbt1.setCompoundTag(String.valueOf(stack.stackTagCompound.getCompoundTag("bag").getInteger("freq")),nbt);
stack.stackTagCompound.setCompoundTag("bag", nbt1);
}
return new GuiBag(new ContainerBag(stack,player,indentifier));
}
//return new GuiBag( null, null,null,player,1,new ContainerBag(null, null,null,player,1));
}else if(ID == 2){
IInventory[] invs = utils.getPeripheralInventories(player, world);
MovingObjectPosition spot = RemoteItem.getPlayerLookingSpot(player, false);
if(spot != null && spot.typeOfHit != null){
switch(spot.typeOfHit){
case ENTITY:
break;
case TILE :
if(world.getBlockTileEntity(spot.blockX, spot.blockY, spot.blockZ) != null && world.getBlockTileEntity(spot.blockX, spot.blockY, spot.blockZ) instanceof ChairTile){
return new GuiPeripheral(invs[0],invs[1],(ChairTile) world.getBlockTileEntity(spot.blockX, spot.blockY, spot.blockZ));
}
}
}
}else if(ID == 3){
return new SensorScreenGui(ssGui.get(player));
}
return null;
}
Gui Registration :
@EventHandler
public void load(FMLInitializationEvent event)
{
//Recipes
LoadStuff.loadRecipes();
//
blockCheese = (ChairBlock) new ChairBlock(blockCheeseID,Material.wood).setCreativeTab(CreativeTabs.tabDecorations).setUnlocalizedName("Russoul's Peripheral");
russy = (Russy_Ore) new Russy_Ore(russyID,Material.rock).setCreativeTab(CreativeTabs.tabBlock).setUnlocalizedName("Russy ore");
itemBlasterRifle = new ItemBlasterRifle(this.itemBlasterRifleID).setUnlocalizedName("BlasterRifle").setCreativeTab(CreativeTabs.tabRedstone);
itemBlasterBolt = new ItemBlasterBolt(this.itemBlasterBoltID).setUnlocalizedName("BlasterBolt").setCreativeTab(CreativeTabs.tabRedstone);
TickRegistry.registerTickHandler(new MyTickHandler(EnumSet.of(TickType.PLAYER)), Side.SERVER);
proxy.registerRenderers();
proxy.registerEvents();
EntityRegistry.registerModEntity(EntityBlasterBolt.class, "BlasterBolt", EntityRegistry.findGlobalUniqueEntityId(), this, 64, 10, true);
GameRegistry.registerBlock(blockCheese,ItemBlock.class,"R_Peripheral",modID);
GameRegistry.registerBlock(russy,ItemBlock.class,"Russy Ore",modID);
LanguageRegistry.addName(itemBlasterRifle, "Blaster Rifle");
LanguageRegistry.addName(itemBlasterBolt, "Blaster Bolt");
LanguageRegistry.addName(blockCheese, "Russoul's Peripheral");
LanguageRegistry.addName(russy, "Russy Ore");
GameRegistry.registerTileEntity(ChairTile.class, "Russoul's_Peripheral");
GameRegistry.registerWorldGenerator(new MyGenerator());
NetworkRegistry.instance().registerGuiHandler(this, new GuiHandler());
//LoadStuff.loadAspects();
LoadStuff.loadModules();
}
openGui
public class MyTickHandler implements ITickHandler{
private final EnumSet<TickType> ticksToGet;
private static EntityPlayer tickedPlayer;
public static HashMap<String,ArrayList<String>> key = new HashMap();
private static HashMap<Integer,IComputerAccess> events = new HashMap() ;
private static HashMap<Integer,ChairTile> registeredIDs = new HashMap();
public static HashMap<String,String> mouse = new HashMap();
public MyTickHandler(EnumSet<TickType> ticksToGet)
{
this.ticksToGet = ticksToGet;
}
/*
* I suggest putting all your tick Logic in EITHER of these, but staying in one
*/
@Override
public void tickStart(EnumSet<TickType> type, Object... tickData)
{
playerTick((EntityPlayer)tickData[0]);
this.tickedPlayer = (EntityPlayer) tickData[0];
}
@Override
public void tickEnd(EnumSet<TickType> type, Object... tickData)
{
key.clear();
mouse.clear();
}
@Override
public EnumSet<TickType> ticks()
{
return ticksToGet;
}
@Override
public String getLabel()
{
return "TutorialPlayerTick";
}
public static void playerTick(EntityPlayer player)
{
if(player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getDisplayName().equals("Power Fist")){
ItemStack stack = player.getCurrentEquippedItem();
for(int i = 0;i < ModuleManager.getRightClickModules().size();i++){
if(stack.stackTagCompound.hasKey("button")){
if(stack.stackTagCompound.getCompoundTag("button").hasKey(ModuleManager.getRightClickModules().get(i).getDataName())){
String key = stack.stackTagCompound.getCompoundTag("button").getString(ModuleManager.getRightClickModules().get(i).getDataName());
if(utils.isKeyPressed(player.username) && utils.whatKeyIsPressed(player.username).equals(key)){
if(ModuleManager.getRightClickModules().get(i).getDataName() == "Remote"){
MovingObjectPosition spot = RemoteItem.getPlayerLookingSpot(player, false);
new RemoteModule(LoadStuff.TOOLONLY).onRightClick(player, player.worldObj, stack);
}else if(ModuleManager.getRightClickModules().get(i).getDataName() == "Blink Drive"){
new BlinkDriveModule(LoadStuff.TOOLONLY).onRightClick(player, player.worldObj, stack);
}
}
}
}
}
}
if(!registeredIDs.isEmpty()){
for(int j = 0;j<300;j++){
if(registeredIDs.containsKey(j)){
//for(int i = 0;i<keys.length;i++){
if(registeredIDs.get(j) != null){
String Username = registeredIDs.get(j).Username;
if(Username != null){
if(player != null && player.username.equalsIgnoreCase(Username)){
ItemStack stack = utils.getModularItemInInventory(player, "Power Fist");
if(stack != null){
if(ModuleManager.itemHasModule(stack, RemoteModule.NAME)){
if(utils.isKeyPressed(player.username)){
IComputerAccess pc = getEvent(j);
try{
pc.queueEvent("My_Key_Event", new Object[]{utils.whatKeyIsPressedForMyKeyEventComputerCraftStuff(player.username)});
unregister(j);
}catch(Exception e){
e.printStackTrace();
}
}
}
}
}
}
}
//}
}
}
}
if(utils.getModularItemInInventory(player, "Power Fist") != null){
ItemStack stack = utils.getModularItemInInventory(player, "Power Fist");
if(utils.isKeyPressed(player.username) && utils.whatKeyIsPressed(player.username).contains("Z")){
if(stack != null && stack.getItem().equals(ModularPowersuits.powerTool)){
if(stack.stackTagCompound != null){
if(stack.stackTagCompound.hasKey("PeripheralPassword")){
utils.chat(player, "has not key");
String ind = stack.stackTagCompound.getString("PeripheralPassword");
ChairTile p = utils.getChairTileWithEniqueIndentifier(player.worldObj, player.username, ind,player);
if(p != null){
utils.chat(player, "p ! null");
if(p.pc != null){
utils.chat(player, "p.pc ! null");
GuiHandler.ssGui.put(player, p.pc);
//player.openGui(Main.instance, 3, player.worldObj,(int) player.posX,(int) player.posX,(int) player.posX);
FMLCommonHandler.instance().showGuiScreen(new SensorScreenGui(p.pc));
}
}
}
}
}
}
}
}
public static void openPC(TileEntityComputer Computer,String Username){
EntityPlayer player = tickedPlayer;
if(Computer instanceof TileEntityComputer && player.username.equalsIgnoreCase(Username)){
Computer.getBlockType().onBlockActivated(Computer.worldObj, Computer.xCoord, Computer.yCoord, Computer.zCoord, player, 0, 0, 0, 0);
player.openGui(OpenPeripheral.instance, OpenPeripheral.Gui.remote.ordinal(), Computer.worldObj, Computer.xCoord, Computer.yCoord, Computer.zCoord);
}
}
public static IComputerAccess getEvent(int id){
return events.get(id);
}
public static void register(int id,ChairTile tile, IComputerAccess pc){
events.put(id, pc);
registeredIDs.put(id,tile);
}
public static void unregister(int id){
events.remove(id);
registeredIDs.remove(id);
}
public static HashMap<Integer,ChairTile> getRegisteredIDs(){
return registeredIDs;
}
public static void setKeyPressed(String player,String key1){
if(!key.containsKey(player)){
ArrayList<String> array = new ArrayList();
array.add(key1);
key.put(player, array);
}else{
ArrayList<String> array = key.get(player);
array.add(key1);
key.put(player, array);
}
}
public static void setMousePressed(String player,String mouse1){
mouse.put(player, mouse1);
}