@Override
public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
ICAPCustomInventory inv = player.getCapability(CAPCustomInventoryProvider.INVENTORY_CAP, null);
if(ID == INVENTORY_GUI_ID) {
return new ContainerCustomInv(player.inventory, inv.getInventory(), player);
}
if(ID == INVENTORY_GUI_ID_1) {
return new ContainerCustomInv2(player.inventory, inv.getInventory(), player);
}
return null;
}
NetworkHandler.network.sendToServer(new OpenInventoryMessage_1());
public class OpenInventoryMessage_1 implements IMessage {
public OpenInventoryMessage_1() { }
@Override
public void fromBytes(ByteBuf buf) {
}
@Override
public void toBytes(ByteBuf buf) {
}
public static class Handler implements IMessageHandler<OpenInventoryMessage, IMessage> {
@Override
public IMessage onMessage(OpenInventoryMessage message, MessageContext ctx) {
EntityPlayerMP player = ctx.getServerHandler().player;
player.openGui(Main.INSTANCE, GuiHandler.INVENTORY_GUI_ID_1, player.getEntityWorld(), (int)player.posX, (int)player.posY, (int)player.posZ);
return null;
}
}
}
Не равенOpenInventoryMessage_1
Т.е. твой хандлер обрабатывает, не тот IMessage.OpenInventoryMessage
Исправил. Однако я немного ошибся, и при нажатии кнопки у меня не открывается другой контейнер, а старый остаетсяТ.е. твой хандлер обрабатывает, не тот IMessage
Возможно пакет не отсылается.не открывается другой контейнер,
network.registerMessage(OpenInventoryMessage.Handler.class, OpenInventoryMessage.class, 0, Side.SERVER);
network.registerMessage(OpenInventoryMessage_1.Handler.class, OpenInventoryMessage_1.class, 0, Side.SERVER);