Jump to content

Recommended Posts

Posted

I am trying to save the password that someone entered every time you save it though all the tile entitys in the world have the same one. So if tile entity A has the password 123 all the other tile entitys of the same type have the same password 123.

 

Can someone please help me thanks alot.

 

package com.techmod.client.tileentity;

import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.tileentity.TileEntity;

public class TileEntityKeyPad extends TileEntity {

public static String pass;
public static int pa;

    public void readFromNBT(NBTTagCompound p_145839_1_) {
        super.readFromNBT(p_145839_1_);

        TileEntityKeyPad.pass = p_145839_1_.getString("Pass");

    }

    public void writeToNBT(NBTTagCompound p_145841_1_)
    {
        super.writeToNBT(p_145841_1_);
        p_145841_1_.setString("Pass", TileEntityKeyPad.pass);
    }



}

Posted

You're making it a static value, which is the same for all TileEntities of that type. You should make it a non-static value and instead of using TileEntityKeyPad.*, use world.getTileEntity(x,y,z) to get the TileEntity at that location, and check if the TileEntity is an instanceof TileEntityKeyPad, then cast it to the appropriate type and then set the value in that.

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/

Posted

Could you please explain a little more on where and how to use the world.getTileEntity(x,y,z). Would I use it in the TileEntityClass or somewhere else?

 

If you make a field non-static, it means every instance of this class has its own copy of that field (basic java)

If you want to access such fields, within the class use this.fieldName (you can actually omit the this., but it's better for code-readabiliy to have it) (basic java)

For accessing it outside of the class, you need an instance of said class and access it with this instance with instanceName.fieldName (again, basic java)

 

To get such an instance of a TileEntity, you need to use world.getTileEntity(x,y,z)

Don't ask for support per PM! They'll get ignored! | If a post helped you, click the "Thank You" button at the top right corner of said post! |

mah twitter

This thread makes me sad because people just post copy-paste-ready code when it's obvious that the OP has little to no programming experience. This is not how learning works.

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.