Jump to content

Recommended Posts

Posted

If you've done everything correctly, running update_patches should generate all your new patches, thats the exact script i use.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

Oh thats easy, thanks dude.

 

So I make a src_base folder in mcp folder. Then I place everything inside src into it. Then I make src_work and place src into it then modified source into src_work and run update_patches.sh?

 

I need to use setup.sh. :)

Posted

That didn't work either. Can't even extract the FML stuff. So i'll have to do something about it. Just want you (Lex) to know that Entity.getEntityData is not working. :( So I made my own NBT thingy for forge. I'll post it in the requests thingy page.

Posted

Your failure to double click two scrips makes me instantly weary of anything you have to input.

However, how exactly is getEntityData not working.. My tests show it working..

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

It was always returning null meaning that the statements you put in read/write nbt were never called. I did test this. Sorry I meant that the data is never written to either the "level.dat" or the player.dat when using getEntityData

Posted

As long as you call getEntityData() it'll save it to the entity next time it is written.

It's been working for quite some time.

It does not save anything if getEntityData() was never called for that entity.

So...

Show me code.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

Made a quick test mod, it was saying it was reading and all. But no ForgeData in the dats and the value went back to zero. Never read.

 

 

package net.minecraft.src;

import java.util.EnumSet;

import net.minecraft.client.Minecraft;
import net.minecraft.src.thirstmod.ThirstMod;

import cpw.mods.fml.common.ITickHandler;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.Init;
import cpw.mods.fml.common.Side;
import cpw.mods.fml.common.TickType;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.registry.TickRegistry;

@Mod(modid = "Test", version = "1.0.0")
public class TestModNBT implements ITickHandler {

private boolean shouldRead = true;
private float randomValue;
private int writeTime;

@Init
public void onLoad(FMLInitializationEvent event) {
	TickRegistry.registerTickHandler(this, Side.CLIENT);
}

@Override
public void tickStart(EnumSet<TickType> type, Object... tickData) {

}

@Override
public void tickEnd(EnumSet<TickType> type, Object... tickData) {
	if(ModLoader.getMinecraftInstance().currentScreen != null) {
		tickGui(ModLoader.getMinecraftInstance().currentScreen);
	} else if(ModLoader.getMinecraftInstance().thePlayer != null) {
		tickGame(ModLoader.getMinecraftInstance());
	}
}

@Override
public EnumSet<TickType> ticks() {
	return EnumSet.of(TickType.CLIENT);
}

@Override
public String getLabel() {
	return null;
}

private void tickGui(GuiScreen gui) {
	if(gui instanceof GuiMainMenu) {
		shouldRead = true;
		//Just to make sure the data gets read and I don't get tricked.
		randomValue = 0f;
	}
}

private void tickGame(Minecraft minecraft) {
	if(shouldRead == true) {
		randomValue = minecraft.thePlayer.getEntityData().getFloat("value");
		System.out.println("Data was read. Value is: " + randomValue);
		shouldRead = false;
	} else {
		randomValue = randomValue + 0.0000001f;
		writeTime++;
		if(writeTime > 100 /*5 seconds*/) {
			minecraft.thePlayer.getEntityData().setFloat("value", randomValue);
			System.out.println("Data was written");
			System.out.println(randomValue);
			writeTime = 0;
		}
	}
}
}

 

I know it used to work cause I used it! But now for some reason it doesn't. The code looks the same as in 1.2.5. Don't know what the problem is. I'll continue using the NBTEvent thing I made until you fix this or I find out out the make patches.

Posted

Well your issue there is fairly obvious.

You're writing to the CLIENT entity.

Not the server entity.

Your client entity never gets saved.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

Posted

That.. is some horrible code. There is a function around there to get the player by name.

Your code wont get you what you want if someone happened to join the server before you.

I do Forge for free, however the servers to run it arn't free, so anything is appreciated.
Consider supporting the team on Patreon

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.

×
×
  • Create New...

Important Information

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