Posted December 28, 20213 yr Hi! I am trying to implement villagers following the player and want this to be possible also across dimensions. Now the problem is that the villager can't follow into a portal if his dimension gets unloaded too quickly. That's why my idea is to watch out for an event where the villager gets unloaded and teleport him to the target dimension then. But I found out that the EntityLeaveWorldEvent is generated rather rarely, probably when some dedicated entity cache overflows or something and certainly not just when the player changes the dimension. If the event hasn't been generated yet, the entity might still not receive ticks anymore because of the quite sophisticated Minecraft ticking functionality. I checked the code but couldn't find any Forge events generated when ticking of an entity starts and ends. From what I understand is that ticking entities are managed by net.minecraft.world.level.entity.EntityTickList. There, the events could maybe be generated. Of course, I could hack around it, but in my opinion a Forge event would be appropriate here. Am I missing something? If not, could you please introduce this? Edited December 28, 20213 yr by Brokkoli3000
December 28, 20213 yr do you have a connection between the player and the villager (one knowing of other withing your mods logic)? if so, try subscribing to player clone event. when the player is cloned (new entity for new dimension, old one is one that entered the portal), have the villager following the old player entity make note of new player entity. and when the new player enters the world (in other dimension), you can try to make a clone of the old villager a few blocks from the portal. just make sure that the dimension change is the reason for cloning.
December 28, 20213 yr Author I think this would not meet my requirements well enough, because then the villager would disappear in the old dimension as soon as the player changes his dimension. This would even happen if another player stands in the old dimension watching the portal and thus wondering where the villager who was several meters away suddenly disappeared to. So if somebody is watching the portal, the villager should fully get to the portal and disappear then. So I figured, the event I am actually looking for is when the villager gets removed from the world or does not get updated anymore. Btw: In the meantime I found out that adding these startTick and endTick events to EntityTickList wouldn't suffice, because for example the whole level might not get ticked. Edited December 28, 20213 yr by Brokkoli3000
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.