Jump to content

Recommended Posts

Posted

can i see that ? (the code)

 

also dont be afraid to debug a lot, println a lot maybe you cna stpo something weird

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

  • Replies 51
  • Created
  • Last Reply

Top Posters In This Topic

Posted
  On 8/19/2013 at 3:09 PM, hydroflame said:

can i see that ? (the code)

 

also dont be afraid to debug a lot, println a lot maybe you cna stpo something weird

Wait I thought you meant in game, like "You actually put something in the bag didnt you?" anyway heres the code:

@Override
public void openChest()
{
	if(bagpack.hasTagCompound())
	{
		readFromNBT(bagpack.getTagCompound());//Bag pack has some info for the inventory
		System.out.println("call3");
	}
	else
	{
		bagpack.stackTagCompound = new NBTTagCompound();
		System.out.println("call2");

	}
}

@Override
public void closeChest()
{
	if(! bagpack.hasTagCompound())
	{
		//Should never be reached, since done when opening the first time
		bagpack.setTagCompound(writeToNBT(new NBTTagCompound()));
		System.out.println("call");
	}
	else
	{//We made changes to the inventory, save them
		System.out.println("call4");
		writeToNBT(bagpack.getTagCompound());
	}

Posted

well ok so at some point you will set a new nbt to yout bagpack

...

but nothign is ever set inside that :\

so what you have to do is something like this:

ItemStack toStore
ItemStack bagpack;
toStore.writeToNBT(bagpack.getTagCompound());

that will take the first itemStack and write it inside the tagCompound of the bagpack.

 

to read it from the nbt:

ItemStack s;
s.readFromNBT(bagpack.getTagCompound());

 

if you are dealing with a IInventory:

 

  Reveal hidden contents

 

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

well you have to place it where it makes sens, obviously this probably wont go inside a new mob you create.

 

whats the goal of the bagpack, to store 1 item ? 20 item ? 500 items? i imagine you want the content to be updated in the bagpack when you close the gui, the Container class has a onContainerClosed method, might be a good idea to save there, maybe you should be loading when the container opens ?

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

Stores 27 items. " the Container class has a onContainerClosed method, might be a good idea to save there, maybe you should be loading when the container opens ?" Thats what Im currently doing. I meant which bits should I replace w/ your code

Posted

well i guess you could place that inside closechest suince your onContainerClosed calls this anyway, but basicly anywhere where it should make sens to do it. as long as it works

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

You are not using the code i gave you  :'(

You can add println for sure, but at least try it...

 

Anyway, hydroflame suggestion to rework a bit the readFromNBT/ writeToNBT part, I guess is a valid point.

Posted
  Quote
i have no idea

do you understand what the code me n gotolink are talking about ?

do you understand what it does ?

if not which part are you still confused with ?

how are your java skills? beginner intermediate advance ?

because maybe its just a question of practice to know what to place where

 

did you try anything ? println to see what placing the code at certain place does ?

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted
  On 8/19/2013 at 4:22 PM, hydroflame said:

  Quote
i have no idea

do you understand what the code me n gotolink are talking about ?

do you understand what it does ?

if not which part are you still confused with ?

how are your java skills? beginner intermediate advance ?

because maybe its just a question of practice to know what to place where

 

did you try anything ? println to see what placing the code at certain place does ?

"do you understand what the code me n gotolink are talking about ?

do you understand what it does ?"

Not enough to be able to implement it correctly

"how are your java skills? beginner intermediate advance ?" Im pretty familiar w/ all the common stuff, so sorta of intermediate/high beginner

 

"if not which part are you still confused with ?" Just where to put it really aha

Posted

well ok so at some point you will set a new nbt to yout bagpack

...

but nothign is ever set inside that :\

so what you have to do is something like this:

Code: [select]

 

ItemStack toStore

ItemStack bagpack;

toStore.writeToNBT(bagpack.getTagCompound());

 

that will take the first itemStack and write it inside the tagCompound of the bagpack.

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

I already am if it dosent have a tagCompound though?

	if(! bagpack.hasTagCompound())
	{
		bagpack.setTagCompound(writeToNBT(new NBTTagCompound()));
		System.out.println("call");
	}
	else
	{
		System.out.println("call4");
		writeToNBT(bagpack.getTagCompound());
	}

Posted

if(!bagpack.hasTagCompound()){
    bagpack.stackTagCompoud = new NBtTagCompound();
}
toStore.writeToNBT(bagpack.getTagCompound());

the first if create the compound if needed, then you can write for sure as you KNOW theres one

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

toStore.writeToNBT(bagpack.getTagCompound());

This line probably cause it didnt have anything to write but I cant write cos I cant access it

Posted

o, its because tostore equals null.. But how can you get an instance of the full class but ensuring your variable is initialized? and the itemstack constructor is private

Posted

itemstack constructor isnt private,

 

 

toStore was meant to be replaced with the itemstack you want to save :\

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

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




  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • When you name a method like that, with no return value, it is a constructor. The constructor must have the same name as the class it constructs, in this case, ModItems. I would strongly advise reading up on some basic Java tutorials, because you will definitely be running into a lot more issues as you go along without the basics. *I should also add that the Forge documentation is a reference, not a tutorial. Even following tutorials, you should know Java basics, otherwise the smallest of mistakes will trip you up as you copy someone elses code.
    • so, I'm starting modding and I'm following the official documantation for forge: https://docs.minecraftforge.net, but in the registries part it is not working as it is in the docs:   public class ModItems { private static final DeferredRegister<Item> ITEMS = DeferredRegister.create(ForgeRegistries.ITEMS, DarkStarvation.MOD_ID); public static final RegistryObject<Item> TEST_ITEM = ITEMS.register("test_item", () -> new Item(new Item.Properties())); public DarkStarvation(FMLJavaModLoadingContext context) { ITEMS.register(context.getModEventBus()); } } in 'public DarkStarvation(...' the DarkStarvation has this error: Invalid method declaration; return type required and the getModEventBus(): Cannot resolve method 'getModEventBus' in 'FMLJavaModLoadingContext' please help, I asked gpt but it is saying that I'm using an old method, but I'm following the latest version of Forge Docs???
    • I merged your second post with the original , there is no need to post a new thread asking for an answer. If someone sees your post and can help, they will reply. If you are seeking a quicker response, you could try asking in the Minecraft Forge diacord.
    • Create a new instance and start with cobblemon - if this works, add the rest of your mods in groups   Maybe another mod is conflicting - like Sodium/Iris or Radical Cobblemon Trainers
    • https://forums.minecraftforge.net/topic/157393-1201-forge-rocket-flame-particle-trail-moves-up-and-crashes-into-the-rocket-during-flight/#comment-584134
  • Topics

  • Who's Online (See full list)

    • There are no registered users currently online
×
×
  • Create New...

Important Information

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