Jump to content
  • Home
  • Files
  • Docs
  • Merch
Topics
  • All Content

  • This Topic
  • This Forum

  • Advanced Search
  • Existing user? Sign In  

    Sign In



    • Not recommended on shared computers


    • Forgot your password?

  • Sign Up
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • [Unsolved] Detected leaking worlds in memory?
1.13 Update Notes for Mod Creators
Sign in to follow this  
Followers 1
ThatBenderGuy

[Unsolved] Detected leaking worlds in memory?

By ThatBenderGuy, March 29, 2013 in Modder Support

  • Reply to this topic
  • Start new topic

Recommended Posts

ThatBenderGuy    2

ThatBenderGuy

ThatBenderGuy    2

  • Tree Puncher
  • ThatBenderGuy
  • Members
  • 2
  • 43 posts
Posted March 29, 2013

Okay so I finally get my tile entity to correctly save data but now I'm getting this message in my console

2013-03-29 09:37:39 [sEVERE] [ForgeModLoader] Detected leaking worlds in memory. There are 2 worlds that appear to be persisting. A mod is likely caching the world incorrectly

 

2013-03-29 09:53:19 [sEVERE] [ForgeModLoader] The world 878a1d2 (New World) has leaked.

 

And here is my code

package com.biosystemstudios;

import net.minecraft.block.Block;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet132TileEntityData;
import net.minecraft.tileentity.TileEntity;
import net.minecraft.world.World;

public class CannonTileEntity extends TileEntity{
private boolean powered;
private int frontX;
private int frontY;
private int frontZ;
private long coolDownTime;
private String frontAxis;
private boolean negativeOnAxis;

/**
 * Reads a tile entity from NBT.
 */
public void readFromNBT(NBTTagCompound par1NBTTagCompound)
{
	super.readFromNBT(par1NBTTagCompound);
	this.powered = par1NBTTagCompound.getBoolean("power");
	this.frontX = par1NBTTagCompound.getInteger("fx");
	this.frontY = par1NBTTagCompound.getInteger("fy");
	this.frontZ = par1NBTTagCompound.getInteger("fz");
	this.coolDownTime = par1NBTTagCompound.getLong("cdt");
	this.frontAxis = par1NBTTagCompound.getString("fa");
	this.negativeOnAxis = par1NBTTagCompound.getBoolean("na");   
}

/**
 * Writes a tile entity to NBT.
 */
public void writeToNBT(NBTTagCompound par1NBTTagCompound)
{
	super.writeToNBT(par1NBTTagCompound);
	par1NBTTagCompound.setBoolean("power", powered);
	par1NBTTagCompound.setInteger("fx", frontX);
	par1NBTTagCompound.setInteger("fy", frontY);
	par1NBTTagCompound.setInteger("fz", frontZ);
	par1NBTTagCompound.setLong("cdt", coolDownTime);
	par1NBTTagCompound.setString("fa", frontAxis);
	par1NBTTagCompound.setBoolean("na", negativeOnAxis);
}

public boolean getPowered(){
	return powered;
}
public void powerOn(){
	powered = true;
}

public String destroy(){
	if(coolDownTime <= (this.worldObj.getTotalWorldTime())){
		if(this.worldObj.getBlockId(xCoord, yCoord-1, zCoord) == Block.obsidian.blockID){
			double Dir = 1.0;
			float power = 2.0f;

			if(negativeOnAxis){Dir = -1.0;}

			for(int steps = 1; steps < 256; steps++){
				if(steps<=3)
					power += 0.5f;
				if(frontAxis == "x"){
					this.worldObj.setBlock(frontX + (int)(steps*Dir), frontY, frontZ, 0);
					this.worldObj.createExplosion(null, frontX + (steps*Dir), ((double)frontY)+0.5, frontZ, power, true);
				}

				if(frontAxis == "z"){
					this.worldObj.setBlock(frontX, frontY, frontZ  + (int)(steps*Dir), 0);
					this.worldObj.createExplosion(null, frontX, frontY+0.5, ((double)frontZ) + (steps*Dir), power, true);
				}
			}

			powered = false;
			coolDownTime = (this.worldObj.getTotalWorldTime()) + 29*20;
			return "Fired Cannon, please wait " + getCoolDownTime() + " Seconds Before Using Again.";

		}else{
			powered = false;
			return "Cannon needs an obsidian base to operate";
		}
	}else{
		powered = false;
		return "Cannon Cooling down: "+getCoolDownTime() + " Seconds Left";
	}
}

public void setFrontOfCannon(int x, int y, int z){
	frontX = x;
	frontY = y;
	frontZ = z;
}

public void setFrontDirection(String axis, boolean nDirection){
	frontAxis = axis;
	negativeOnAxis = nDirection;
}

public long getCoolDownTime(){
	return ((coolDownTime - this.worldObj.getTotalWorldTime())/20)+1;
}

public Packet getDescriptionPacket()
   {
   NBTTagCompound tag = new NBTTagCompound();
   this.writeToNBT(tag);
   return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 1, tag);
  }

@Override
public void onDataPacket(INetworkManager net, Packet132TileEntityData packet)
{
	NBTTagCompound tag = packet.customParam1;
	this.readFromNBT(tag);
}


}

 

The thing about my tile entity saving data is that it will remember the private long coolDownTime variable but when I save and quit and leave my world it has seemed to forget all the other vars. I'm thinking it has something to do with the ForgeModLoader message in my console. Any thoughts or ideas on how to fix this?

  • Quote

Share this post


Link to post
Share on other sites

coolboy4531    66

coolboy4531

coolboy4531    66

  • Dragon Slayer
  • coolboy4531
  • Members
  • 66
  • 584 posts
Posted March 30, 2013

It usually happens, when your world is using too much free RAM. I think, because it has happened to me before.

  • Quote

Share this post


Link to post
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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  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.

  • Insert image from URL
×
  • Desktop
  • Tablet
  • Phone
Sign in to follow this  
Followers 1
Go To Topic Listing



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • thedarkcolour
      [1.14] Patching method with coremod in TreeFeature causes IncompatibleClassChangeError

      By thedarkcolour · Posted 18 minutes ago

      I got it to work by not calling getWorld() and using IWorldGenerationReader#setBlockState, thanks!
    • plugsmustard
      on/off button for custom furnace

      By plugsmustard · Posted 25 minutes ago

      buf.writeBlockPos(pos);  <- this pos isn't right is it? it looks like other examples i've seen, but it's telling me to access it in a static way, which fucks with the other pos. any advice?
    • J0WAY
      [1.12.2] How do i make it so my sword renders in my mobs hand?.

      By J0WAY · Posted 30 minutes ago

      protected void setEquipmentBasedOnDifficult(DifficultyInstance difficulty)     {         this.setItemStackToSlot(EntityEquipmentSlot.MAINHAND, new ItemStack(ModItems.BARBARIAN_SWORD));     }
    • thedarkcolour
      [1.14] Patching method with coremod in TreeFeature causes IncompatibleClassChangeError

      By thedarkcolour · Posted 30 minutes ago

      Am I able to setBlockState with IWorldGenerationReader?
    • Draco18s
      [1.14.4] [UNSOLVED] Server Thread Freezes After Entity Explodes

      By Draco18s · Posted 35 minutes ago

      No, it will outright crash the dedicated server. You can't do this at all. You want to send a message to a player you need to send a message to a player.
  • Topics

    • thedarkcolour
      18
      [1.14] Patching method with coremod in TreeFeature causes IncompatibleClassChangeError

      By thedarkcolour
      Started Yesterday at 06:04 AM

    • plugsmustard
      37
      on/off button for custom furnace

      By plugsmustard
      Started Wednesday at 03:11 PM

    • J0WAY
      5
      [1.12.2] How do i make it so my sword renders in my mobs hand?.

      By J0WAY
      Started 19 hours ago

    • saxon564
      4
      [1.14.4] [UNSOLVED] Server Thread Freezes After Entity Explodes

      By saxon564
      Started 11 hours ago

    • JetCobblestone
      7
      [1.14] layout of a modpack

      By JetCobblestone
      Started 22 hours ago

  • Who's Online (See full list)

    • Draco18s
    • plugsmustard
    • gokupro35442
    • tomatoBhutan
    • solitone
    • Tanizen
    • sidney18
    • raulllano
    • DragonITA
    • flame_antoine
    • Fifou_BE
    • eatthenight
  • All Activity
  • Home
  • Mod Developer Central
  • Modder Support
  • [Unsolved] Detected leaking worlds in memory?
  • Theme
  • Contact Us
  • Discord

Copyright © 2019 ForgeDevelopment LLC · Ads by Curse Powered by Invision Community