Jump to content

getVillageCollection returns null


Scruffy

Recommended Posts

Hey everyone, I've made some simple mod items so far with 1.9.4, and I'd like to find the nearest village around the player, but I am encountering a NullPointerException when using getVillageCollection.

It seems that the abstract world class just declares it, and theWorld (WorldClient subclass of world) variable in Minecraft class isn't implemented.  So I'm guessing that something else implements it.

It returns a villageCollectionObj, which is = null (because it isn't implemented in WorldClient).

 

Unless it's because it is running from a Client side event handler?  It's a single player/LAN only mod, so I thought Client was the way to go (nothing happens in the Server event handlers).

 

The player is standing in a village, so it would be giving me something if it worked.

 

WorldClient w = null;
Village closest = null;
VillageCollection villages = null;

w = Minecraft.getMinecraft().theWorld;
villages = w.getVillageCollection();
closest = villages.getNearestVillage(blockpos, radius);

 

Stack trace points to

closest = villages.getNearestVillage(p, 500);

 

[08:18:14] [Server thread/INFO] [STDERR]: [com.scruffy.event.EventHandlerClient:playerTickEvent:145]: java.lang.NullPointerException
[08:18:14] [Server thread/INFO] [STDERR]: [com.scruffy.event.EventHandlerClient:playerTickEvent:145]:     at com.scruffy.event.EventHandlerClient.playerTickEvent(EventHandlerClient.java:123)

 

 

 

 

Link to comment
Share on other sites

37 minutes ago, OreCruncher said:

Village information is kept server side.

Hm ok thanks that explains that.  Must I use packets between server and client just to get the village collection?  Can't I just hack it into a public static like the forge docs tell you not to?  I don't want to change anything about the village, I just want the client to be able to know how close it is to a village.  For this mod, I'm not too fussed with "proper" methods, as I have limited time to do this (I should really be doing revision for my exams next week).

Link to comment
Share on other sites

12 minutes ago, Scruffy said:

 Must I use packets between server and client just to get the village collection? 

 

If you want it to work properly, yes.

 

12 minutes ago, Scruffy said:

Can't I just hack it into a public static like the forge docs tell you not to?  I don't want to change anything about the village, I just want the client to be able to know how close it is to a village.  For this mod, I'm not too fussed with "proper" methods, as I have limited time to do this (I should really be doing revision for my exams next week).


That may work in single player, but it's guaranteed to break when the server isn't running in the same process as the client (i.e. LAN hosted by another player or a dedicated server).

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

Link to comment
Share on other sites

1 hour ago, Scruffy said:

OK so I need to implement some network packet stuff.  I shall Google that now, thanks guys.

 

Forge's documentation has a page on the Simple Network Wrapper here. This is what you should use to send the packets.

Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.

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.