Jump to content

[1.10.2] {Solved!!!} Right-Click Item for Chest-like GUI


EscapeMC

Recommended Posts

Hello once again Forge forums!

 

Today I am working on an item that on right click (in hand) it will bring up a GUI for a small-ish chest. I am thinking 9x2 inventory. (I have the GUI)

 

I know how to make a container, and I am making it while I wait for a response. I also know how to do it in my GuiHandler. I assume the gui itself will be VERY similar (if not the same) to that of a custom chest (I have one already).

 

My question(s) now,

1) Would the above information I stated be correct?

 

and 2) How would the tile entity differ? (My currect tile entity for a CHEST is

package com.github.escapemc.thingsmod.tileentity;

import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.items.CapabilityItemHandler;
import net.minecraftforge.items.ItemStackHandler;

public class TileEntityTestChest extends TileEntity {


private String customName;
protected ItemStackHandler inputSlot;

public TileEntityTestChest() {
	inputSlot = new ItemStackHandler(45);
}

@Override
public NBTTagCompound writeToNBT(NBTTagCompound compound) {
	super.writeToNBT(compound);
	compound.setTag("inputSlot", inputSlot.serializeNBT());

	return compound;
}


@Override
public void readFromNBT(NBTTagCompound compound) {
	inputSlot.deserializeNBT(compound.getCompoundTag("inputSlot"));
}

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
	if (capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
		this.markDirty();
		if(worldObj != null && worldObj.getBlockState(pos).getBlock() != getBlockType()) {
			return (T) inputSlot;
		}
		if(facing == null) {
			return (T) inputSlot;
		}
		if(facing == EnumFacing.UP) {
			return (T) inputSlot;
		}
		if(facing == EnumFacing.DOWN) {
			return (T) inputSlot;
		}
		if(facing == EnumFacing.NORTH) {
			return (T) inputSlot;
		}
		if(facing == EnumFacing.EAST) {
			return (T) inputSlot;
		}
		if(facing == EnumFacing.WEST) {
			return (T) inputSlot;
		}
		if(facing == EnumFacing.SOUTH) {
			return (T) inputSlot;
		}
	}
	return super.getCapability(capability, facing);
}	

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
	return this.getCapability(capability, facing) != null;
}

public void setCustomName(String customName) {
	this.customName = customName;
}



}

 

so how would it differ?)

 

EDIT and 3) how would I bind this gui to on a right click open the Gui? with onRightClick or something? What along with that would I need?

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

  • Replies 116
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

1) It is very similar, it's just that you have to adapt your code to not take a position and a

TileEntity

, but an

ItemStack

(see below).

 

2) If you are making an

Item

with an inventory, you don't use a

TileEntity

. You have to save the inventory inside the

ItemStack

's NBT.

 

3) Probably

onItemRightClick

.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

1) It is very similar, it's just that you have to adapt your code to not take a position and a

TileEntity

, but an

ItemStack

(see below).

 

2) If you are making an

Item

with an inventory, you don't use a

TileEntity

. You have to save the inventory inside the

ItemStack

's NBT.

 

3) Probably

onItemRightClick

.

 

Oh wait duh! Why would I use a tile entity!!! *facepalm* -to myself, 'you idiot, its not a tile, and doesn't need an entity'-

 

Alright, how would I "save the inventory inside the ItemStack's NBT." Specifically, hwat are you saying with this and how can I do it?

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Use the capability system to attach an

IItemHandler

inventory to an

ItemStack

.

 

Specifically, override

Item#initCapabilities

to return an

ICapabilityProvider

that provides the 

IItemHandler

capability. The

ICapabilityProvider

also needs to implement

INBTSerializable

to read the data from and write the data to NBT.

 

Forge provides the

ICapabilitySerializable

interface for this purpose: it's simply a shorter way to implement both

ICapabilityProvider

and

INBTSerializable

.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Use the capability system to attach an

IItemHandler

inventory to an

ItemStack

.

 

Specifically, override

Item#initCapabilities

to return an

ICapabilityProvider

that provides the 

IItemHandler

capability. The

ICapabilityProvider

also needs to implement

INBTSerializable

to read the data from and write the data to NBT.

 

Forge provides the

ICapabilitySerializable

interface for this purpose: it's simply a shorter way to implement both

ICapabilityProvider

and

INBTSerializable

.

 

(You have an example? I somewhat get it but am slightly confused)

 

Alright, so instead of making an item, my item needs to be an ItemStack?

 

This is quite confusing to me... (As stated just above)

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Specifically, override

Item#initCapabilities

to return an

ICapabilityProvider

that provides the 

IItemHandler

capability. The

ICapabilityProvider

also needs to implement

INBTSerializable

to read the data from and write the data to NBT.

The
IItemHandler

can be the same as the one you would use in a

TileEntity

. The default implementation will do fine (

ItemStackHandler

).

 

In

Item#initCapabilities

you have a return a

ICapabilityProvider

, for which you want to use

CapabilityItemHandler.ITEM_HANDLER_CAPABILITY

for an inventory.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Specifically, override

Item#initCapabilities

to return an

ICapabilityProvider

that provides the 

IItemHandler

capability. The

ICapabilityProvider

also needs to implement

INBTSerializable

to read the data from and write the data to NBT.

The
IItemHandler

can be the same as the one you would use in a

TileEntity

. The default implementation will do fine (

ItemStackHandler

).

 

In

Item#initCapabilities

you have a return a

ICapabilityProvider

, for which you want to use

CapabilityItemHandler.ITEM_HANDLER_CAPABILITY

for an inventory.

 

(Again, do you have a reference I can look at to understand this all?)

 

I looked in the TileEntity Class and couldn't find either ItemStackHandler or IItemHandler. Now, am I being stupid? Wait a sec, *looks in my TileEntity for a chest, sees

	protected ItemStackHandler inputSlot;

public TileEntityTestChest() {
	inputSlot = new ItemStackHandler(45);
}

*

Ok, so is it something like this?

And then, for the NBT, would it be something similar to this?

	@Override
public NBTTagCompound writeToNBT(NBTTagCompound compound) {
	super.writeToNBT(compound);
	compound.setTag("inputSlot", inputSlot.serializeNBT());

	return compound;
}


@Override
public void readFromNBT(NBTTagCompound compound) {
	inputSlot.deserializeNBT(compound.getCompoundTag("inputSlot"));
}

 

Or am I very far off and using my TileEntity for a chest as a reference a bad idea?

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Specifically, override

Item#initCapabilities

to return an

ICapabilityProvider

that provides the 

IItemHandler

capability. The

ICapabilityProvider

also needs to implement

INBTSerializable

to read the data from and write the data to NBT.

The
IItemHandler

can be the same as the one you would use in a

TileEntity

. The default implementation will do fine (

ItemStackHandler

).

 

In

Item#initCapabilities

you have a return a

ICapabilityProvider

, for which you want to use

CapabilityItemHandler.ITEM_HANDLER_CAPABILITY

for an inventory.

 

(Again, do you have a reference I can look at to understand this all?)

I currently do not. But why won't you just try it, and if you have a problem we can help?

 

And then, for the NBT, would it be something similar to this?

	@Override
public NBTTagCompound writeToNBT(NBTTagCompound compound) {
	super.writeToNBT(compound);
	compound.setTag("inputSlot", inputSlot.serializeNBT());

	return compound;
}


@Override
public void readFromNBT(NBTTagCompound compound) {
	inputSlot.deserializeNBT(compound.getCompoundTag("inputSlot"));
}

 

Or am I very far off and using my TileEntity for a chest as a reference a bad idea?

NBT will be saved for you. I was wrong in my first comment, as I didn't even think of
Item

capabilities...

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Ok ok ok, one last thing before I start:

 

Is my item I have created (test_bag) need to be an item, and I make a SEPARATE class of an item stack? Or do I make my item and ItemStack, and put all this tileentity-like code in the test_bag itself?

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

You make your bag an

Item

.

 

You don't have to make a custom

ItemStack

class, as the vanilla one handles capabilities for you.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Link to comment
Share on other sites

Ok wait, my brain is twisting.

I so far have a very basic item.

package com.github.escapemc.thingsmod.items;

import com.github.escapemc.thingsmod.Reference;

import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

public class test_bag extends Item {

public test_bag() {



	setUnlocalizedName(Reference.ModItems.TEST_BAG.getUnlocalizedName());
	setRegistryName(Reference.ModItems.TEST_BAG.getRegistryName());

}


}

 

Where do I start?

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Ok wait, my brain is twisting.

I so far have a very basic item.

package com.github.escapemc.thingsmod.items;

import com.github.escapemc.thingsmod.Reference;

import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;

public class test_bag extends Item {

public test_bag() {



	setUnlocalizedName(Reference.ModItems.TEST_BAG.getUnlocalizedName());
	setRegistryName(Reference.ModItems.TEST_BAG.getRegistryName());

}


}

 

Where do I start?

 

Create an implementation of

ICapabilitySerializable

that stores an

IItemHandler

instance (e.g. an

ItemStackHandler

), provides it from the

ICapabilityProvider

methods and reads it from/writes it to NBT in the

INBTSerializable

methods.

 

Override

Item#initCapabilities

to return a new instance of this class.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

Create an implementation of

ICapabilitySerializable

that stores an

IItemHandler

instance (e.g. an

ItemStackHandler

), provides it from the

ICapabilityProvider

methods and reads it from/writes it to NBT in the

INBTSerializable

methods.

 

Override

Item#initCapabilities

to return a new instance of this class.

Alright... So I implemented ICapabilitySerializable, and it made me add 4 unimplemented methods.

So far, I have edited one, but I am not sure 100% about any of them.

	@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
	return this.getCapability(capability, facing) != null;
}

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
	return null;
}

@Override
public NBTBase serializeNBT() {
	return null;
}

@Override
public void deserializeNBT(NBTBase nbt) {

}

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Do this:

 

1) store an

IItemHandler

instance (e.g. an

ItemStackHandler

)

 

2) provide it from the

ICapabilityProvider

methods and reads it from/writes it to NBT in the

INBTSerializable

methods.

 

3) Override

Item#initCapabilities

to return a new instance of this class.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Do this:

 

1) store an

IItemHandler

instance (e.g. an

ItemStackHandler

)

 

2) provide it from the

ICapabilityProvider

methods and reads it from/writes it to NBT in the

INBTSerializable

methods.

 

3) Override

Item#initCapabilities

to return a new instance of this class.

 

1) Did I do this correctly with my inputSlot stuff? EXCEPT for the capabilities? (Pst, how would I do that? Looking back to my chest, I know there are no directions... so just ==null?)

 

2) Alright, I tried using the NBT stuff from my tileentity for my chest, did not work. I am not sure what to do with this serializeNBT and deserializeNBT.

 

3) Where and how exactly? I see none of this in my chest TE so I am confused

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Deserialize and Serialize mean to read and to write. Did you use IInventory for your Chest?

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Deserialize and Serialize mean to read and to write. Did you use IInventory for your Chest?

 

I know what Deserialize and Serialize mean, I just didn't know what to do with them.

 

As to the IInventory part, no I do not believe I did. This was the code for read/write for my TE of my chest:

	@Override
public NBTTagCompound writeToNBT(NBTTagCompound compound) {
	super.writeToNBT(compound);
	compound.setTag("inputSlot", inputSlot.serializeNBT());

	return compound;
}


@Override
public void readFromNBT(NBTTagCompound compound) {
	inputSlot.deserializeNBT(compound.getCompoundTag("inputSlot"));
}

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Then you should be good... could you post all of the code?

 

For what? My bag? (and that was an accidental thank you, but have it anyway xD:D )

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Then you should be good... could you post all of the code?

 

For what? My bag? (and that was an accidental thank you, but have it anyway xD:D )

OK, and yes.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

package com.github.escapemc.thingsmod.items;

import com.github.escapemc.thingsmod.Reference;

import net.minecraft.item.Item;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ICapabilitySerializable;
import net.minecraftforge.items.ItemStackHandler;

13 public class test_bag extends Item implements ICapabilitySerializable {

protected ItemStackHandler inputSlot;

public test_bag() {

	inputSlot = new ItemStackHandler(18);





	setUnlocalizedName(Reference.ModItems.TEST_BAG.getUnlocalizedName());
	setRegistryName(Reference.ModItems.TEST_BAG.getRegistryName());

}

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
	return this.getCapability(capability, facing) != null;
}

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
	return null;
}

@Override
41	public NBTTagCompound writeToNBT(NBTTagCompound compound) {
42		super.writeToNBT(compound);
	compound.setTag("inputSlot", inputSlot.serializeNBT());

	return compound;
}


@Override
50	public void readFromNBT(NBTTagCompound compound) {
	inputSlot.deserializeNBT(compound.getCompoundTag("inputSlot"));
}

}

 

This gives me the following errors:

 

Line 13: The type test_bag must implement the inherited abstract method INBTSerializable.deserializeNBT(NBTBase)

 

Line 41: The method writeToNBT(NBTTagCompound) of type test_bag must override or implement a supertype method

 

Line 42: The method writeToNBT(NBTTagCompound) is undefined for the type Item

 

Line 50: The method readFromNBT(NBTTagCompound) of type test_bag must override or implement a supertype method

 

I mentioned the lines in the

[code] thing

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

package com.github.escapemc.thingsmod.items;

import com.github.escapemc.thingsmod.Reference;

import net.minecraft.item.Item;
import net.minecraft.nbt.NBTBase;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.EnumFacing;
import net.minecraftforge.common.capabilities.Capability;
import net.minecraftforge.common.capabilities.ICapabilitySerializable;
import net.minecraftforge.items.ItemStackHandler;

13 public class test_bag extends Item implements ICapabilitySerializable {

protected ItemStackHandler inputSlot;

public test_bag() {

	inputSlot = new ItemStackHandler(18);





	setUnlocalizedName(Reference.ModItems.TEST_BAG.getUnlocalizedName());
	setRegistryName(Reference.ModItems.TEST_BAG.getRegistryName());

}

@Override
public boolean hasCapability(Capability<?> capability, EnumFacing facing) {
	return this.getCapability(capability, facing) != null;
}

@Override
public <T> T getCapability(Capability<T> capability, EnumFacing facing) {
	return null;
}

@Override
41	public NBTTagCompound writeToNBT(NBTTagCompound compound) {
42		super.writeToNBT(compound);
	compound.setTag("inputSlot", inputSlot.serializeNBT());

	return compound;
}


@Override
50	public void readFromNBT(NBTTagCompound compound) {
	inputSlot.deserializeNBT(compound.getCompoundTag("inputSlot"));
}

}

 

This gives me the following errors:

 

Line 13: The type test_bag must implement the inherited abstract method INBTSerializable.deserializeNBT(NBTBase)

 

Line 41: The method writeToNBT(NBTTagCompound) of type test_bag must override or implement a supertype method

 

Line 42: The method writeToNBT(NBTTagCompound) is undefined for the type Item

 

Line 50: The method readFromNBT(NBTTagCompound) of type test_bag must override or implement a supertype method

 

I mentioned the lines in the

[code] thing

Change readFromNBT to deserializeNBT(NBTBase nbt)

Change writeToNBT to serializeNBT()

 

Don't make you Item implement ICapabilitySerializable make a new class that does, then override initCapabilities in your Item class.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Change readFromNBT to deserializeNBT(NBTBase nbt)

Change writeToNBT to serializeNBT()

 

Wait can you write out exactly what each thing needs to change to because ti still does not work and I have a feeling that I am just doing 1-2 thing(s) wrong.

 

Don't make you Item implement ICapabilitySerializable make a new class that does, then override initCapabilities in your Item class.

 

How should I do this? What should I make this class? (What type?)

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Change readFromNBT to deserializeNBT(NBTBase nbt)

Change writeToNBT to serializeNBT()

 

Wait can you write out exactly what each thing needs to change to because ti still does not work and I have a feeling that I am just doing 1-2 thing(s) wrong.

 

Don't make you Item implement ICapabilitySerializable make a new class that does, then override initCapabilities in your Item class.

 

How should I do this? What should I make this class? (What type?)

I don't think I can get anymore specific than what I said...

And just a class that implements ICapabilitySerializable

And in your ItemBag make a method called initCapabilities()

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

Change readFromNBT to deserializeNBT(NBTBase nbt)

Change writeToNBT to serializeNBT()

 

Wait can you write out exactly what each thing needs to change to because ti still does not work and I have a feeling that I am just doing 1-2 thing(s) wrong.

 

Don't make you Item implement ICapabilitySerializable make a new class that does, then override initCapabilities in your Item class.

 

How should I do this? What should I make this class? (What type?)

I don't think I can get anymore specific than what I said...

And just a class that implements ICapabilitySerializable

And in your ItemBag make a method called initCapabilities()

 

Alright. So I've made this class. I called it "TestBagCapabilities"

Now I created initCapabilities in test_bag. Now what?

 

And the read/write NBT still isn't working..

I Love To Help People. Unless They Are The Kind Of People Who Just Doesn't Know Anything. Those People Need Some Serious Help. This Could Help But......

https://www.youtube.com/watch?v=6t0GlXWx_PY

 

ThingsMod Git: https://github.com/EscapeMC/Things-Mod-1.10.2

 

TeamMadness Mod Git: https://github.com/EscapeMC/TeamMadness-Mod-1.10.2

 

If I somehow help you, please click the "Thank You" button. If I am a total waste of time, please click the "Applaud" button.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements




×
×
  • Create New...

Important Information

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