Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hey, i have an error a crash when i click on my item :
I have this crash report

at cpw.mods.fml.common.network.NetworkRegistry.getLocalGuiContainer(NetworkRegistry.java:265)
	at cpw.mods.fml.common.network.internal.FMLNetworkHandler.openGui(FMLNetworkHandler.java:93)
	at net.minecraft.entity.player.EntityPlayer.openGui(EntityPlayer.java:2501)
	at fr.axicraft.mod.GuiHandler.openGui(GuiHandler.java:36)
	at fr.axicraft.mod.init.items.ItemBackpack.onItemRightClick(ItemBackpack.java:20)
	at net.minecraft.item.ItemStack.useItemRightClick(ItemStack.java:164)
	at net.minecraft.client.multiplayer.PlayerControllerMP.sendUseItem(PlayerControllerMP.java:430)
	at net.minecraft.client.Minecraft.func_147121_ag(Minecraft.java:1557)

Class Guihandler

package fr.axicraft.mod;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;

public class GuiHandler implements cpw.mods.fml.common.network.IGuiHandler {

	@Override
	public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		ItemStack current = player.getCurrentEquippedItem();
		if (current != null) {
			if (ID == GuiID.BACKPACK.ordinal())
				return new ContainerItemStorage(player,
						new InventoryItemStorage(current));
		}
		return null;
	}

	@Override
	public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
		ItemStack current = player.getCurrentEquippedItem();
		if (current != null) {
			if (ID == GuiID.BACKPACK.ordinal())
				return new GuiItemStorage(player,
						new InventoryItemStorage(current));
		}
		return null;
	}

	public static void openGui(GuiID ID, EntityPlayer player, int x, int y, int z) {
		player.openGui(Main.instance, ID.ordinal(), player.worldObj, x, y, z);
	}

	public static void openGui(GuiID ID, EntityPlayer player) {
		player.openGui(Main.instance, ID.ordinal(), player.worldObj, (int)player.posX, (int)player.posY, (int)player.posZ);
	}

	public static enum GuiID {
		BACKPACK;
	}

}

Class ItemBackpack

package fr.axicraft.mod.init.items;



import java.util.List;

import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import fr.axicraft.mod.GuiHandler;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World;

public class ItemBackpack extends Item {
	public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer player) {

			GuiHandler.openGui(GuiHandler.GuiID.BACKPACK, player);
		
		return super.onItemRightClick(is, world, player);
	}

	@SideOnly(Side.CLIENT)
	public void getSubItems(Item id, CreativeTabs table, List list) {
		//list.add(new ItemStack(id, 1, 0));
		list.add(addNBT(new ItemStack(id, 1, 0), 1));
		list.add(addNBT(new ItemStack(id, 1, 0), 3));
		list.add(addNBT(id, SizeStorage.SIZE1));
		list.add(addNBT(id, SizeStorage.SIZE2));
		list.add(addNBT(id, SizeStorage.SIZE3));
		list.add(addNBT(id, SizeStorage.SIZE4));
		list.add(addNBT(id, SizeStorage.SIZE5));
		list.add(addNBT(id, SizeStorage.SIZE6));
		list.add(addNBT(id, SizeStorage.SIZE7));
		list.add(addNBT(id, SizeStorage.SIZE8));
		list.add(addNBT(id, SizeStorage.SIZE9));
	}

	public void addInformation(ItemStack is, EntityPlayer player, List list, boolean flag) {
		NBTTagCompound nbt = is.getTagCompound();
		if (nbt != null && nbt.hasKey("CustomSize")) list.add("Slots: " + (int)(nbt.getByte("CustomSize") & 255) + ".");
	}

	public static ItemStack addNBT(Item item, SizeStorage size) {
		return addNBT(new ItemStack(item, 1, 0), size);
	}

	public static ItemStack addNBT(ItemStack is, SizeStorage size) {
		return addNBT(is, size.getSize());
	}

	public static ItemStack addNBT(ItemStack is, int size) {
		NBTTagCompound nbt = new NBTTagCompound();
		nbt.setByte("CustomSize", (byte)size);
		is.setTagCompound(nbt);
		return is;
	}

	public static enum SizeStorage {

		SIZE1(9),//(9 * 1)
		SIZE2(18),//(9 * 2)
		SIZE3(27),//(9 * 3)//размеры как у одинарного сундука
		SIZE4(36),//(9 * 4)
		SIZE5(45),//(9 * 5)
		SIZE6(54),//(9 * 6)//размеры как у двойного сундука
		SIZE7(63),//(9 * 7)
		SIZE8(72),//(9 * 8)
		SIZE9(81);//(9 * 9)

		private final int size;

		SizeStorage(int size) {
			this.size = size;
		}

		public int getSize() {
			return size;
		}

	}

}

 

Guest
This topic is now closed to further replies.

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.