Jump to content

[1.10.2] [solved] Setting worldborder


coolkiddo

Recommended Posts

Hi, I've been trying to set world border upon creating a new world in that world, and didn't have any success.

 

Basically, all I did for testing was creating a new class ModEventHandler and putting this there:

       @SubscribeEvent
public void oregen(OreGenEvent.Post event)
{
    	boolean placed = false;
    	if(placed != true) { 
    		World world = event.getWorld();
    		int x = world.getSpawnPoint().getX();
    		int z = world.getSpawnPoint().getZ();
    		WorldBorder worldborder = world.getWorldBorder();
    		worldborder.setCenter(x, z);
    		worldborder.setSize(10);
	System.out.println("Border set at coordinates "+x + "/" +z+ " and of size "+ worldborder.getSize());
	placed = true;
        	}
    	System.out.println("Am I being called?");
}

 

When I get into the game, I die in a second and it says that I suffocated in a wall (just like if I was stuck in world border). But /worldborder get says that the world border is still 60000000 blocks wide. And the border itself can't be seen. I suppose something is wrong with setSize but in source files it is a very plain setter function.

 

And by the way, is there an event that only runs once on creating new world? OreGenEvent was called really many times and I'm not sure putting that boolean there is a good thing.

Link to comment
Share on other sites

Use the WorldLoadEvent instead of OreGenEvent.Post as that will get called a lot.

Yep, only gets called three times now for all three dimensions. Still, the border won't work.

 

Inb4: I was looking through CommandWorldBorder and realized setCenter arguments are double and they get incremented by 0.5. With hope that this is the problem, I changed the line in my code to this

worldborder.setCenter((double)x+0.5D, (double)z+0.5D);

And it still won't work.

 

Link to comment
Share on other sites

Use the WorldLoadEvent instead of OreGenEvent.Post as that will get called a lot.

Yep, only gets called three times now for all three dimensions. Still, the border won't work.

 

Inb4: I was looking through CommandWorldBorder and realized setCenter arguments are double and they get incremented by 0.5. With hope that this is the problem, I changed the line in my code to this

worldborder.setCenter((double)x+0.5D, (double)z+0.5D);

And it still won't work.

I'm pretty sure set center does not change the length of the world border.

VANILLA MINECRAFT CLASSES ARE THE BEST RESOURCES WHEN MODDING

I will be posting 1.15.2 modding tutorials on this channel. If you want to be notified of it do the normal YouTube stuff like subscribing, ect.

Forge and vanilla BlockState generator.

Link to comment
Share on other sites

I'm pretty sure set center does not change the length of the world border.

It has to change its center (clearly). But in game it won't. I found out that the border will remain at 0,0 no matter what coordinates I specify in setCenter. Moreover, I'm unable to move the border with in-game commands. This is really weird.

 

Basically, I need a world border that would start from the world spawn and have size of ~16 chunks (8 chunks radius). Maybe it's been coded in someone else's mod?

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



×
×
  • Create New...

Important Information

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