Jump to content

IF / ELSE Statement Appears to be ignored


Recommended Posts

Both The IF and ELSE statements Fire.

Checked the NBT Data After Logging off of server

Shows my NBT Tag and Data However Gets Overwrote / Blanked (TAG is present but data inside is empty)

after login.

most likely due to the ELSE statement firing which creates and formats the tag.

Please Help! Class Below


public class ManaHandler {

EntityPlayer player;
Integer Timer;

    public void playerData (EntityJoinWorldEvent event)
        if(event.getEntity() instanceof EntityPlayer) {
            player = (EntityPlayer) event.getEntity();
            if(player.getEntityData().hasKey(player.PERSISTED_NBT_TAG)) {
                System.out.println("Player has NBT");
                persistTag = player.getEntityData().getCompoundTag(player.PERSISTED_NBT_TAG);
                System.out.println("Player Does not have NBT");
                persistTag = new NBTTagCompound();
                player.getEntityData().setTag(player.PERSISTED_NBT_TAG, persistTag);
            Timer = 0;
            if (persistTag.hasKey("SMM")){
                modTag = persistTag.getCompoundTag("SMM");
                modTag = new NBTTagCompound();
                persistTag.setTag("SMM", modTag);



Link to comment
Share on other sites

Sorry i left that in after Testing.

the was no side only tag on the the original code.

(I thought maybe the 2 responses where from the code executing on client and server side, so i through in client only to see if that made a difference)

I've been tinkering with this for a bit now, I'll read through that link. Thank you so much ! :D


Link to comment
Share on other sites

If you really thought Java was broken enough to execute both branches of an if-else statement, you should have stepped through it in the debugger to see what was really happening. You could have become famous throughout the Java programming community for being the first to discover this major bug!


Most likely, the server is clobbering whatever data your client is trying to save. Things will clear up after you have wrapped your head around client-server architecture: Client is for I/O, server holds the authoritative data of the world and makes decisions. Another way to look at it is that each client is one player's perception, and the server is "reality".

The debugger is a powerful and necessary tool in any IDE, so learn how to use it. You'll be able to tell us more and get better help here if you investigate your runtime problems in the debugger before posting.

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.

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.

  • Create New...

Important Information

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