Jump to content

Recommended Posts

Posted (edited)

Hi,

I was just wondering if there is a better/more reliable way of determining if a player has edited a certain BlockPos in a specific dimension. Currently, the best way I can think of doing this is to create a new instance of WorldSavedData connected to World#getPerWorldStorage() (so its dimension-dependent) containing a list of BlockPos. That list would be updated by a method subscribed to the BlockEvent.PlaceEvent and BlockEvent.MultiPlaceEvent events. When I wanted to, I could pull that world storage instance for the world the player is in and check the list to see if a specific BlockPos has been edited (which for my purposes is only when a new block has been placed). The only problem with this that I see is if anything gets placed that doesn't invoke those two events, such as modded items and commands (like /setblock or /fill).

 

Have I missed something, or does anyone know a better alternative/solution? Thanks - TMG

Edited by TheMasterGabriel
Posted

You could subscribe to WorldTickEvent and check if specific BlockPos has been changed in specific dimension. This would work every time, but probably has more impact on the performance. Maybe check every few seconds?

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.