Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

Hello Guys!

 

I have a little problem with a mod I am developing. It is my first mod to include a tile entity. I have registered the tile entity in the main mod file, and the block interacts with the tile entity perfectly. If I close the world and open it again, the data is reloaded and it is great! However, whenever you close the game and open the world again, the tile entity throws this exception:

 

2013-09-07 22:13:27 [sEVERE] [ForgeModLoader] A TileEntity fortress_teleporter_tile_ent(assets.fortress.romejanic.common.tileentity.TileEntityTeleporter) has thrown an exception during loading, its state cannot be restored. Report this to the mod author

net.minecraft.util.ReportedException: Reading NBT data

at net.minecraft.nbt.NBTTagCompound.getDouble(NBTTagCompound.java:282)

at assets.fortress.romejanic.common.tileentity.TileEntityTeleporter.readFromNBT(TileEntityTeleporter.java:46)

at net.minecraft.tileentity.TileEntity.createAndLoadEntity(TileEntity.java:152)

at net.minecraft.world.chunk.storage.AnvilChunkLoader.readChunkFromNBT(AnvilChunkLoader.java:440)

at net.minecraft.world.chunk.storage.AnvilChunkLoader.checkedReadChunkFromNBT(AnvilChunkLoader.java:103)

at net.minecraft.world.chunk.storage.AnvilChunkLoader.loadChunk(AnvilChunkLoader.java:83)

at net.minecraft.world.gen.ChunkProviderServer.safeLoadChunk(ChunkProviderServer.java:182)

at net.minecraft.world.gen.ChunkProviderServer.loadChunk(ChunkProviderServer.java:118)

at net.minecraft.server.MinecraftServer.initialWorldChunkLoad(MinecraftServer.java:292)

at net.minecraft.server.integrated.IntegratedServer.loadAllWorlds(IntegratedServer.java:90)

at net.minecraft.server.integrated.IntegratedServer.startServer(IntegratedServer.java:107)

at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:443)

at net.minecraft.server.ThreadMinecraftServer.run(ThreadMinecraftServer.java:16)

Caused by: java.lang.ClassCastException: net.minecraft.nbt.NBTTagInt cannot be cast to net.minecraft.nbt.NBTTagDouble

at net.minecraft.nbt.NBTTagCompound.getDouble(NBTTagCompound.java:278)

... 12 more

 

and it's data is lost. For some reason when the game restarts, it has problems reading the block's NBT data from the world save files, resulting in the tile entity's complete file loss.

 

It would be brilliant of someone could help me out with this! I would really appreciate it and you would help a good mod reach the goal of release! Here is some of my code...

 

Registry in main mod file:

 

GameRegistry.registerTileEntity(TileEntityTeleporter.class, "fortress_teleporter_tile_ent");

 

Tile Entity Code:

 

package assets.fortress.romejanic.common.tileentity;

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

public class TileEntityTeleporter extends TileEntity{

public boolean onlyOwner = false;
public boolean hasBeenSetUp = false;
public String owner = null;
public double x = 0d;
public double y = 0d;
public double z = 0d;

@Override
public void writeToNBT(NBTTagCompound par1)
{

	par1.setBoolean("onlyOwnerCanTeleport", onlyOwner);
	par1.setBoolean("hasBeenSetUp", hasBeenSetUp);

	if(owner != null){
	par1.setString("owner", owner);
	}
	else{
	par1.setString("owner", "");
	}

	par1.setDouble("x", x);
	par1.setDouble("y", y);
	par1.setDouble("z", z);

	super.writeToNBT(par1);

}

@Override
public void readFromNBT(NBTTagCompound par1)
{

	onlyOwner = par1.getBoolean("onlyOwnerCanTeleport");
	hasBeenSetUp = par1.getBoolean("hasBeenSetUp");

	owner = par1.getString("owner");

	x = par1.getDouble("x");
	y = par1.getDouble("y");
	z = par1.getDouble("z");

	super.readFromNBT(par1);

}

}

 

Thanks Guys! Hope you can help out!

 

Romejanic

Romejanic

 

Creator of Witch Hats, Explosive Chickens and Battlefield!

You aren't allowed to use "x","y","z" entries. They are used for storing tile entity coordinates.

  • Author

MY GOD  ;D

 

It works! Thank you so much for that! I really appreciate it!

 

Thanks!

Romejanic

Romejanic

 

Creator of Witch Hats, Explosive Chickens and Battlefield!

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...

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.