Jump to content

Help: Making a dimension using forge, I need a in-depth tutorial.


REDX36

Recommended Posts

I looked. I would love one on there too....

But I don't really know how to do it in the first place :P

I will add a tutorial on how to use METADATA blocks to have many blocks under one ID while still using Forge's Infinite Sprites.

Link to comment
Share on other sites

I will add a tutorial on how to use METADATA blocks to have many blocks under one ID while still using Forge's Infinite Sprites.

Meh, no real point anymore honestly, unless you are dynamically creating things like RP2's microblocks, we have 4096 IDs now.ย  And if we are lucky then 1.3 or 1.4 will drop metadata (wishful thinking anyway).

Link to comment
Share on other sites

We have no tutorials for that yet, but we would love one placed on the wiki!ย  (*hint*hint*)

ย 

i made a tutorial on minecraft forum, but when i went to put it on here, they'd deleted my topic for no reason :S

Link to comment
Share on other sites

Haha that friend would be me.

The Dimensions API is horribly outdated as the last Forge it worked with was 1.4...

However it's coded for Minecraft 1.2.5 so that would make it easier to make it work with the latest Forge :)

Link to comment
Share on other sites

ย 

ย 

I'm also trying to create an new Dimension, but every time I try to click on my Teleporter Block it says "Entering Dimension" and when it's done loading I get this Error:

ย 

2 mods loaded
Minecraft Forge 3.3.7.135
FML vnull.null.null.null
Forge Mod Loader version null.null.null.null for Minecraft null
mod_dim : Available (src)
mod_MinecraftForge : Available (src)


ย  ย  ย  Minecraft has crashed!ย  ย  ย  
ย  ย  ย  ----------------------ย  ย  ย  

Minecraft has stopped running because it encountered a problem.




--- BEGIN ERROR REPORT 699fbf70 --------
Generated 11.07.12 11:29

Minecraft: Minecraft 1.2.5
OS: Windows Vista (x86) version 6.0
Java: 1.7.0_05, Oracle Corporation
VM: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: GeForce GT 130M/PCI/SSE2 version 3.3.0, NVIDIA Corporation

java.lang.NullPointerException
at net.minecraft.src.ChunkProvider.loadChunk(ChunkProvider.java:115)
at net.minecraft.src.ChunkProvider.provideChunk(ChunkProvider.java:128)
at net.minecraft.src.World.getChunkFromChunkCoords(World.java:648)
at net.minecraft.src.World.getBlockId(World.java:563)
at net.minecraft.client.Minecraft.preloadWorld(Minecraft.java:2199)
at net.minecraft.client.Minecraft.changeWorld(Minecraft.java:2085)
at net.minecraft.client.Minecraft.usePortal(Minecraft.java:1996)
at net.minecraft.src.BlockLeoPort.onBlockClicked(BlockLeoPort.java:16)
at net.minecraft.src.PlayerControllerSP.clickBlock(PlayerControllerSP.java:82)
at net.minecraft.client.Minecraft.clickMouse(Minecraft.java:1351)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1795)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:822)
at net.minecraft.client.Minecraft.run(Minecraft.java:750)
at java.lang.Thread.run(Thread.java:722)
--- END ERROR REPORT c5ca824a ----------


ย 

I think it's a problem with the worldProvider, so here is the Code:

package net.minecraft.src;

public class WorldProviderLEO extends WorldProvider{

@Override
public String getSaveFolder() {
	return "DIM-LEO";
}

@Override
public String getWelcomeMessage() {
	return "Entering LEO";
}

@Override
public String getDepartMessage() {
	return "Leaving LEO";
}

public boolean canRespawnHere(){
	return true;
}

public IChunkProvider getChunkProvider()
ย  ย  {
ย  ย  ย  ย  return new ChunkProviderLEO();
ย  ย  }

}

ย 

And just to be sure the Code of my other classes:

ย 

ย 

mod_dim:

package net.minecraft.src;

import net.minecraft.src.forge.DimensionManager;

public class mod_dim extends BaseMod{

public static final Block BlockPortal = new BlockLeoPort(160, Material.portal);


public static final WorldProvider wpLEO = new WorldProviderLEO();


@Override
public void load() {
	ModLoader.registerBlock(BlockPortal);
	BlockPortal.blockIndexInTexture = ModLoader.addOverride("/terrain.png", "/portal.png");
	ModLoader.addName(BlockPortal, "Portal");
	ModLoader.addRecipe(new ItemStack(BlockPortal, 1), new Object [] {"#", Character.valueOf('#'), Block.dirt});

	DimensionManager.registerDimension(10, wpLEO, true);

}

@Override
public String getVersion() {
	// TODO Auto-generated method stub
	return null;
}



}

ย 

BlockLeoPort:

package net.minecraft.src;

import net.minecraft.client.Minecraft;

public class BlockLeoPort extends Block {

protected BlockLeoPort(int par1, Material par2Material) {
	super(par1, par2Material);
	// TODO Auto-generated constructor stub
}

public void onBlockClicked(World par1World, int par2, int par3, int par4, EntityPlayer par5EntityPlayer) {
	Minecraft mc = ModLoader.getMinecraftInstance();
	TeleporterLEO tl = new TeleporterLEO();

	mc.usePortal(10, tl);

	System.out.println("click");

}

public void onBlockClicked(World par1World, int par2, int par3, int par4, Entity par5Entity) {
	Minecraft mc = ModLoader.getMinecraftInstance();
	TeleporterLEO tl = new TeleporterLEO();

	mc.usePortal(10, tl);

	System.out.println("click");

	par5Entity.setFire(1);
}

public void onBlockActivated(World par1World, int par2, int par3, int par4, Entity par5Entity) {
	Minecraft mc = ModLoader.getMinecraftInstance();
	TeleporterLEO tl = new TeleporterLEO();

	mc.usePortal(10, tl);

	System.out.println("act");

	par5Entity.setFire(1);
}

}

ย 

TeleporterLEO:

package net.minecraft.src;

import java.util.Random;

public class TeleporterLEO extends Teleporter
{
//The Teleporter class handles finding existing portals and generating new ones. It pinpoints
//the location to which the player should be teleported when traveling across dimensions.

private Random random;

public TeleporterLEO()
{
	random = new Random();
}

public void placeInPortal(World world, Entity entity)
{
	if (placeInExistingPortal(world, entity))
	{
		return;
	}
	else
	{
		createPortal(world, entity);
		placeInExistingPortal(world, entity);
		return;
	}
}

public boolean placeInExistingPortal(World world, Entity entity)
{
	char c = '\200';
	double d = -1D;
	int i = 0;
	int j = 0;
	int k = 0;
	int l = MathHelper.floor_double(entity.posX);
	int i1 = MathHelper.floor_double(entity.posZ);
	for (int j1 = l - c; j1 <= l + c; j1++)
	{
		double d1 = ((double)j1 + 0.5D) - entity.posX;
		for (int j2 = i1 - c; j2 <= i1 + c; j2++)
		{
			double d3 = ((double)j2 + 0.5D) - entity.posZ;
			for (int k2 = 128 - 1; k2 >= 0; k2--)
			{
				if (world.getBlockId(j1, k2, j2) != 4)
				{
					continue;
				}
				for (; world.getBlockId(j1, k2 - 1, j2) == 4; k2--) { }
				double d5 = ((double)k2 + 0.5D) - entity.posY;
				double d7 = d1 * d1 + d5 * d5 + d3 * d3;
				if (d < 0.0D || d7 < d)
				{
					d = d7;
					i = j1;
					j = k2;
					k = j2;
				}
			}
		}
	}

	if (d >= 0.0D)
	{
		int k1 = i;
		int l1 = j;
		int i2 = k;
		double d2 = (double)k1 + 0.5D;
		double d4 = (double)l1 + 0.5D;
		double d6 = (double)i2 + 0.5D;
		if (world.getBlockId(k1 - 1, l1, i2) == 4)
		{
			d2 -= 0.5D;
		}
		if (world.getBlockId(k1 + 1, l1, i2) == 4)
		{
			d2 += 0.5D;
		}
		if (world.getBlockId(k1, l1, i2 - 1) == 4)
		{
			d6 -= 0.5D;
		}
		if (world.getBlockId(k1, l1, i2 + 1) == 4)
		{
			d6 += 0.5D;
		}
		entity.setLocationAndAngles(d2, d4, d6, entity.rotationYaw, 0.0F);
		entity.motionX = entity.motionY = entity.motionZ = 0.0D;
		return true;
	}
	else
	{
		return false;
	}
}

public boolean createPortal(World world, Entity entity)
{
	byte byte0 = 16;
	double d = -1D;
	int i = MathHelper.floor_double(entity.posX);
	int j = MathHelper.floor_double(entity.posY);
	int k = MathHelper.floor_double(entity.posZ);
	int l = i;
	int i1 = j;
	int j1 = k;
	int k1 = 0;
	int l1 = random.nextInt(4);
	for (int i2 = i - byte0; i2 <= i + byte0; i2++)
	{
		double d1 = ((double)i2 + 0.5D) - entity.posX;
		for (int j3 = k - byte0; j3 <= k + byte0; j3++)
		{
			double d3 = ((double)j3 + 0.5D) - entity.posZ;
			for (int k4 = 128 - 1; k4 >= 0; k4--)
			{
				if (!world.isAirBlock(i2, k4, j3))
				{
					continue;
				}
				for (; k4 > 0 && world.isAirBlock(i2, k4 - 1, j3); k4--) { }
				label0:
					for (int k5 = l1; k5 < l1 + 4; k5++)
					{
						int l6 = k5 % 2;
						int i8 = 1 - l6;
						if (k5 % 4 >= 2)
						{
							l6 = -l6;
							i8 = -i8;
						}
						for (int j9 = 0; j9 < 3; j9++)
						{
							for (int k10 = 0; k10 < 4; k10++)
							{
								for (int l11 = -1; l11 < 4; l11++)
								{
									int j12 = i2 + (k10 - 1) * l6 + j9 * i8;
									int l12 = k4 + l11;
									int j13 = (j3 + (k10 - 1) * i8) - j9 * l6;
									if (l11 < 0 && !world.getBlockMaterial(j12, l12, j13).isSolid() || l11 >= 0 && !world.isAirBlock(j12, l12, j13))
									{
										break label0;
									}
								}
							}
						}

						double d5 = ((double)k4 + 0.5D) - entity.posY;
						double d7 = d1 * d1 + d5 * d5 + d3 * d3;
						if (d < 0.0D || d7 < d)
						{
							d = d7;
							l = i2;
							i1 = k4;
							j1 = j3;
							k1 = k5 % 4;
						}
					}
			}
		}
	}

	if (d < 0.0D)
	{
		for (int j2 = i - byte0; j2 <= i + byte0; j2++)
		{
			double d2 = ((double)j2 + 0.5D) - entity.posX;
			for (int k3 = k - byte0; k3 <= k + byte0; k3++)
			{
				double d4 = ((double)k3 + 0.5D) - entity.posZ;
				for (int l4 = 128 - 1; l4 >= 0; l4--)
				{
					if (!world.isAirBlock(j2, l4, k3))
					{
						continue;
					}
					for (; l4 > 0 && world.isAirBlock(j2, l4 - 1, k3); l4--) { }
					label1:
						for (int l5 = l1; l5 < l1 + 2; l5++)
						{
							int i7 = l5 % 2;
							int j8 = 1 - i7;
							for (int k9 = 0; k9 < 4; k9++)
							{
								for (int l10 = -1; l10 < 4; l10++)
								{
									int i12 = j2 + (k9 - 1) * i7;
									int k12 = l4 + l10;
									int i13 = k3 + (k9 - 1) * j8;
									if (l10 < 0 && !world.getBlockMaterial(i12, k12, i13).isSolid() || l10 >= 0 && !world.isAirBlock(i12, k12, i13))
									{
										break label1;
									}
								}
							}

							double d6 = ((double)l4 + 0.5D) - entity.posY;
							double d8 = d2 * d2 + d6 * d6 + d4 * d4;
							if (d < 0.0D || d8 < d)
							{
								d = d8;
								l = j2;
								i1 = l4;
								j1 = k3;
								k1 = l5 % 2;
							}
						}
				}
			}
		}
	}
	int k2 = k1;
	int l2 = l;
	int i3 = i1;
	int l3 = j1;
	int i4 = k2 % 2;
	int j4 = 1 - i4;
	if (k2 % 4 >= 2)
	{
		i4 = -i4;
		j4 = -j4;
	}
	if (d < 0.0D)
	{
		if (i1 < 70)
		{
			i1 = 70;
		}
		if (i1 > 128 - 10)
		{
			i1 = 128 - 10;
		}
		i3 = i1;
		for (int i5 = -1; i5 <= 1; i5++)
		{
			for (int i6 = 1; i6 < 3; i6++)
			{
				for (int j7 = -1; j7 < 3; j7++)
				{
					int k8 = l2 + (i6 - 1) * i4 + i5 * j4;
					int l9 = i3 + j7;
					int i11 = (l3 + (i6 - 1) * j4) - i5 * i4;
					boolean flag = j7 < 0;
					world.setBlockWithNotify(k8, l9, i11, flag ? Block.cobblestone.blockID : 0);
				}
			}
		}
	}
	for (int j5 = 0; j5 < 4; j5++)
	{
		world.editingBlocks = true;
		//You can add your own portal's generation here (and delete all the code up to
		//"world.editingBlocks = false"). This particular portal is like a Nether portal, but with
		//sandstone instead of obsidian, and obviously the Taiga portal block instead of the Nether
		//one.
		for (int j6 = 0; j6 < 4; j6++)
		{
			for (int k7 = -1; k7 < 4; k7++)
			{
				int l8 = l2 + (j6 - 1) * i4;
				int i10 = i3 + k7;
				int j11 = l3 + (j6 - 1) * j4;
				boolean flag1 = j6 == 0 || j6 == 3 || k7 == -1 || k7 == 3;
				world.setBlock(l8, i10, j11, 4);
			}
		}

		world.editingBlocks = false;
		for (int k6 = 0; k6 < 4; k6++)
		{
			for (int l7 = -1; l7 < 4; l7++)
			{
				int i9 = l2 + (k6 - 1) * i4;
				int j10 = i3 + l7;
				int k11 = l3 + (k6 - 1) * j4;
				world.notifyBlocksOfNeighborChange(i9, j10, k11, world.getBlockId(i9, j10, k11));
			}
		}
	}

	return true;
}
}

ย 

ย 

ย 

ย 

ย 

ย 

ย 

ย 

Edit:

ย 

I think the WorldProvider was not what causes the Problem.Now I think it was the ChunkProvider. I've changed a few thinks and now I get this Error:

ย 

2 mods loaded
Minecraft Forge 3.3.7.135
FML vnull.null.null.null
Forge Mod Loader version null.null.null.null for Minecraft null
mod_dim : Available (src)
mod_MinecraftForge : Available (src)


ย  ย  ย  Minecraft has crashed!ย  ย  ย  
ย  ย  ย  ----------------------ย  ย  ย  

Minecraft has stopped running because it encountered a problem.




--- BEGIN ERROR REPORT 699fbf70 --------
Generated 13.07.12 09:25

Minecraft: Minecraft 1.2.5
OS: Windows Vista (x86) version 6.0
Java: 1.7.0_05, Oracle Corporation
VM: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
LWJGL: 2.4.2
OpenGL: GeForce GT 130M/PCI/SSE2 version 3.3.0, NVIDIA Corporation

java.lang.NullPointerException
at net.minecraft.src.PlayerControllerSP.onPlayerDestroyBlock(PlayerControllerSP.java:49)
at net.minecraft.src.PlayerControllerSP.clickBlock(PlayerControllerSP.java:87)
at net.minecraft.client.Minecraft.clickMouse(Minecraft.java:1351)
at net.minecraft.client.Minecraft.runTick(Minecraft.java:1795)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:822)
at net.minecraft.client.Minecraft.run(Minecraft.java:750)
at java.lang.Thread.run(Thread.java:722)
--- END ERROR REPORT fa404cdf ----------

ย 

The ChunkProvider now looks like this:

ย 

package net.minecraft.src;

import java.util.List;
import java.util.Random;

public class ChunkProviderLEO implements IChunkProvider {

ย  ย  private World worldObj;
ย  ย  private Random random;
ย  ย  private final boolean useStructures;
ย  ย  private MapGenVillage villageGen = new MapGenVillage(1);


ย  ย  public ChunkProviderLEO(World par1World, long par2, boolean par4)
ย  ย  {
ย  ย  ย  ย  this.worldObj = par1World;
ย  ย  ย  ย  this.useStructures = par4;
ย  ย  ย  ย  this.random = new Random(par2);
ย  ย  }

ย  ย  private void generate(byte[] par1ArrayOfByte)
ย  ย  {
ย  ย  ย  ย  int var2 = par1ArrayOfByte.length / 256;

ย  ย  ย  ย  for (int var3 = 0; var3 < 16; ++var3)
ย  ย  ย  ย  {
ย  ย  ย  ย  ย  ย  for (int var4 = 0; var4 < 16; ++var4)
ย  ย  ย  ย  ย  ย  {
ย  ย  ย  ย  ย  ย  ย  ย  for (int var5 = 0; var5 < var2; ++var5)
ย  ย  ย  ย  ย  ย  ย  ย  {
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  int var6 = 0;

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  if (var5 == 0)
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  {
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  var6 = Block.bedrock.blockID;
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  }
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  else if (var5 <= 2)
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  {
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  var6 = Block.dirt.blockID;
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  }
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  else if (var5 == 3)
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  {
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  var6 = Block.grass.blockID;
ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  }

ย  ย  ย  ย  ย  ย  ย  ย  ย  ย  par1ArrayOfByte[var3 << 11 | var4 << 7 | var5] = (byte)var6;
ย  ย  ย  ย  ย  ย  ย  ย  }
ย  ย  ย  ย  ย  ย  }
ย  ย  ย  ย  }
ย  ย  }


ย  ย  public Chunk loadChunk(int par1, int par2)
ย  ย  {
ย  ย  ย  ย  return this.provideChunk(par1, par2);
ย  ย  }

ย  ย  public Chunk provideChunk(int par1, int par2)
ย  ย  {
ย  ย  ย  ย  byte[] var3 = new byte[32768];
ย  ย  ย  ย  this.generate(var3);
ย  ย  ย  ย  Chunk var4 = new Chunk(this.worldObj, var3, par1, par2);

ย  ย  ย  ย  BiomeGenBase[] var5 = this.worldObj.getWorldChunkManager().loadBlockGeneratorData((BiomeGenBase[])null, par1 * 16, par2 * 16, 16, 16);
ย  ย  ย  ย  byte[] var6 = var4.getBiomeArray();

ย  ย  ย  ย  for (int var7 = 0; var7 < var6.length; ++var7)
ย  ย  ย  ย  {
ย  ย  ย  ย  ย  ย  var6[var7] = (byte)var5[var7].biomeID;
ย  ย  ย  ย  }

ย  ย  ย  ย  var4.generateSkylightMap();
ย  ย  ย  ย  return var4;
ย  ย  }

ย  ย  public boolean chunkExists(int par1, int par2)
ย  ย  {
ย  ย  ย  ย  return true;
ย  ย  }

ย  ย  public void populate(IChunkProvider par1IChunkProvider, int par2, int par3)
ย  ย  {
ย  ย  ย  ย  this.random.setSeed(this.worldObj.getSeed());
ย  ย  ย  ย  long var4 = this.random.nextLong() / 2L * 2L + 1L;
ย  ย  ย  ย  long var6 = this.random.nextLong() / 2L * 2L + 1L;
ย  ย  ย  ย  this.random.setSeed((long)par2 * var4 + (long)par3 * var6 ^ this.worldObj.getSeed());

ย  ย  }

ย  ย  public boolean saveChunks(boolean par1, IProgressUpdate par2IProgressUpdate)
ย  ย  {
ย  ย  ย  ย  return true;
ย  ย  }


ย  ย  public boolean unload100OldestChunks()
ย  ย  {
ย  ย  ย  ย  return false;
ย  ย  }

ย  ย  public boolean canSave()
ย  ย  {
ย  ย  ย  ย  return true;
ย  ย  }

ย  ย  public String makeString()
ย  ย  {
ย  ย  ย  ย  return "LEOLevelSource";
ย  ย  }


ย  ย  public List getPossibleCreatures(EnumCreatureType par1EnumCreatureType, int par2, int par3, int par4)
ย  ย  {
ย  ย  ย  ย  //BiomeGenBase var5 = this.worldObj.getBiomeGenForCoords(par2, par4);
ย  ย  ย  ย  //return var5 == null ? null : var5.getSpawnableList(par1EnumCreatureType);
ย  ย  	return null;
ย  ย  }


ย  ย  public ChunkPosition findClosestStructure(World par1World, String par2Str, int par3, int par4, int par5)
ย  ย  {
ย  ย  ย  ย  return null;
ย  ย  }

}

ย 

When I reenter the save I spawn in some Blocks, so I die after a few seconds. When I respawn I spawn so high over the ground, that I die by the falldamage.

I think the Problem now is the Teleporter, but I can't find what causes the Problem, so could someone please help me? For the Teleporterยดs Code look in the Spoiler above.

ย 

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.

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • https://pastebin.com/VwpAW6PX My game crashes upon launch when trying to implement the Oculus mod to this mod compilation, above is the crash report, I do not know where to begin to attempt to fix this issue and require assistance.
    • https://youtube.com/shorts/gqLTSMymgUg?si=5QOeSvA4TTs-bL46
    • CubeHaven is a SMP server with unique features that can't be found on the majority of other servers! Java: MC.CUBEHAVEN.NET Bedrock: MC.CUBEHAVEN.NET:19132 3 different stores: - CubeHaven Store: Our store to purchase using real money. - Bitcoin Store: Store for Bitcoin. Bitcoin can be earned from playing the server. Giving options for players if they want to spend real money or grind to obtain exclusive packages. - Black Market: A hidden store for trading that operates outside our traditional stores, like custom enchantments, exclusive items and more. Some of our features include: Rank Up: Progress through different ranks to unlock new privileges and perks. ๐Ÿ“ˆ Skills: RPG-style skill system that enhances your gaming experience! ๐ŸŽฎ Leaderboards: Compete and shine! Top players are rewarded weekly! ๐Ÿ† Random Teleporter: Travel instantly across different worlds with a click! ๐ŸŒ Custom World Generation: Beautifully generated world. ๐ŸŒ Dungeons: Explore challenging and rewarding dungeons filled with treasures and monsters. ๐Ÿฐ Kits: Unlock ranks and gain access to various kits. ๐Ÿ› ๏ธ Fishing Tournament: Compete in a friendly fishing tournament! ๐ŸŽฃ Chat Games: Enjoy games right within the chat! ๐ŸŽฒ Minions: Get some help from your loyal minions. ๐Ÿ‘ฅ Piรฑata Party: Enjoy a festive party with Piรฑatas! ๐ŸŽ‰ Quests: Over 1000 quests that you can complete! ๐Ÿ“œ Bounty Hunter: Set a bounty on a player's head. ๐Ÿ’ฐ Tags: Displayed on nametags, in the tab list, and in chat. ๐Ÿท๏ธ Coinflip: Bet with other players on coin toss outcomes, victory, or defeat! ๐ŸŸข Invisible & Glowing Frames: Hide your frames for a cleaner look or apply a glow to it for a beautiful look. ๐Ÿ”ฒโœจ[ Player Warp: Set your own warp points for other players to teleport to. ๐ŸŒŸ Display Shop: Create your own shop and sell to other players! ๐Ÿ›’ Item Skins: Customize your items with unique skins. ๐ŸŽจ Pets: Your cute loyal companion to follow you wherever you go! ๐Ÿพ Cosmetics: Enhance the look of your character with beautiful cosmetics! ๐Ÿ’„ XP-Bottle: Store your exp safely in a bottle for later use! ๐Ÿถ Chest & Inventory Sorting: Keep your items neatly sorted in your inventory or chest! ๐Ÿ“ฆ Glowing: Stand out from other players with a colorful glow! โœจ Player Particles: Over 100 unique particle effects to show off. ๐ŸŽ‡ Portable Inventories: Over virtual inventories with ease. ๐Ÿงณ And a lot more! Become part of our growing community today! Discord:ย https://cubehaven.net/discord Java: MC.CUBEHAVEN.NET Bedrock: MC.CUBEHAVEN.NET:19132
    • # Problematic frame: # C [libopenal.so+0x9fb4d] It is always the same issue - this refers to the Linux OS - so your system may prevent Java from working ย  I am not familiar with Linux - check for similar/related issues ย 
  • Topics

×
×
  • Create New...

Important Information

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