29 juin 2017, 13:59

GuiVaultNew

package fr.fifou.economy.gui;

import java.io.IOException;

import org.lwjgl.input.Keyboard;

import fr.fifou.economy.ModEconomy;
import fr.fifou.economy.blocks.tileentity.TileEntityBlockVault;
import fr.fifou.economy.packets.PacketVaultCreated;
import net.minecraft.client.Minecraft;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.GuiTextField;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import net.minecraftforge.fml.client.config.GuiButtonExt;

public class GuiVaultNew extends GuiScreen
{
private static final ResourceLocation background = new ResourceLocation(ModEconomy.MODID ,"textures/gui/screen/gui_item.png");

protected int xSize = 256;
protected int ySize = 124;
protected int guiLeft;
protected int guiTop;

private String owner = "";
private String pass = "";

private GuiTextField textbox;
private GuiButtonExt create;

@Override
public void initGui()
{
this.guiLeft = (this.width - this.xSize) / 2;
   this.guiTop = (this.height - this.ySize) / 2;
   textbox = new GuiTextField(1, fontRendererObj, width / 2 - 63, height / 2 - 13 , 126, 26);
this.buttonList.add(this.create = new GuiButtonExt(1, width / 2 + 75, height / 2 + 25, 35, 20,  "Create"));
}

@Override
protected void keyTyped(char typedChar, int keyCode) throws IOException
{
textbox.textboxKeyTyped(typedChar, keyCode);
super.keyTyped(typedChar, keyCode);
}

@Override
protected void mouseClicked(int mouseX, int mouseY, int mouseButton) throws IOException
{
textbox.mouseClicked(mouseX, mouseY, mouseButton);
super.mouseClicked(mouseX, mouseY, mouseButton);
}
@Override
 public boolean doesGuiPauseGame()
   {
       return false;
   }

protected void actionPerformed(GuiButton button, BlockPos pos) throws IOException
{
if(button == this.create)
{
int x = pos.getX();
int y = pos.getY();
int z = pos.getZ();

if(textbox != null)
{
pass = textbox.toString();
ModEconomy.network.sendToServer(new PacketVaultCreated(pass, x,y,z));
}
}
}

@Override
public void updateScreen()
{
textbox.updateCursorCounter();
super.updateScreen();
}

@Override
public void drawScreen(int mouseX, int mouseY, float partialTicks)
{

this.drawDefaultBackground();
       // added
       this.mc.getTextureManager().bindTexture(background);
       int i = this.guiLeft;
       int j = this.guiTop;
       this.drawTexturedModalRect(i, j, 0, 0, this.xSize, this.ySize);
       textbox.drawTextBox();
super.drawScreen(mouseX, mouseY, partialTicks);
}
}

onBlockActivated


@Override
public boolean onBlockActivated(World worldIn, BlockPos pos,IBlockState state, EntityPlayer playerIn, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) 
{
    EntityPlayer player = Minecraft.getMinecraft().player;
    TileEntity te = worldIn.getTileEntity(pos);

    if(te.getTileData().hasKey("Owner"))
    {
    this.setBlockUnbreakable();
    this.setResistance(20000.0F);
    }
    else
    {
    System.out.println(te.getTileData().hasKey("Owner"));
    if (worldIn.isRemote)
            {
    playerIn.openGui(ModEconomy.instance, GuiHandler.BLOCK_VAULT_NEW, worldIn, 0, 0, 0);
            }
    }

         return true;
     }

GuiHandler

package fr.fifou.economy.gui;

import javax.annotation.Nullable;

import org.lwjgl.opengl.GL11;

import fr.fifou.economy.ModEconomy;

import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.client.resources.I18n;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.network.IGuiHandler;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;

public class GuiHandler implements IGuiHandler
{
public static final int ITEM_CARD_GUI = 0;
public static final int ITEM_CARD_DELETE = 1;
public static final int BLOCK_VAULT_NEW = 2;

public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
return null;
}

public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z)
{
if(ID == ITEM_CARD_GUI)
{
return new GuiItem();
}
else if(ID == ITEM_CARD_DELETE)
{
return new GuiDelete();
}
else if(ID == BLOCK_VAULT_NEW)
{
return new GuiVaultNew();
}
return null;
}

}

Pour l’instanceof tu veut dire dans le packet ?