Posted March 25, 20223 yr Hey there, I wanted to know how I can summon an entity when I right click an item and bind it to the item after summon so that the user can't use it again until the entity is dead. Can someone help me with this?
March 25, 20223 yr overwrite use in your Item class and create a new instance of the Entity you want, add it via Level#addFreshEntity and store the UUID of the Entity in the Tag of the given ItemStack. use as Tag key your mod id + the key you want last but not least put the whole code in a if condition where check if the ItemStack has your key and then check if the Entity is present in the Level
March 25, 20223 yr Author Just now, Luis_ST said: overwrite use in your Item class and create a new instance of the Entity you want, add it via Level#addFreshEntity and store the UUID of the Entity in the Tag of the given ItemStack. use as Tag key your mod id + the key you want last but not least put the whole code in a if condition where check if the ItemStack has your key and then check if the Entity is present in the Level How do I exactly check if the entity is present in the level? All options only work for loaded chunks, what if my chunk isn't loaded?
March 28, 20223 yr Author On 3/27/2022 at 1:49 PM, diesieben07 said: Then you cannot know. So how can I exactly keep track of an entity even though he is in an unloaded chunk? I want to summon an entity and then not let the player summon another one until the entity dies.
March 28, 20223 yr Author 43 minutes ago, diesieben07 said: The only way would be to either make the entity a chunkloader (inefficient) or keep track globally (e.g. WorldSavedData or a World Capability). Can you save entities in NBT? If you save them, You need to resummon them because of chunks, no?
March 28, 20223 yr Author 14 minutes ago, diesieben07 said: You'd store the link between the two (UUID of both player and entity) in the global storage. Then when the entity dies (which it can only do if it is loaded), you remove it from global storage. How do I listen to the death event of a vanilla entity?
March 28, 20223 yr Author 23 minutes ago, diesieben07 said: LivingDeathEvent How will I access the data in the event, I need a serverlevel and I can't get it in event.
March 31, 20223 yr On 3/28/2022 at 11:18 PM, Cappy said: How will I access the data in the event, I need a serverlevel and I can't get it in event. assuming you want to use world saved data and that you want to attach it to overworld only (single save for all dimensions), it would be something like this: entity death event: if client then return; if not enty type we are trying to handle then return verify saved data initialized(parameter: world from event); savedData.summonId = empty; savedData.dirty = true; verify saved data initialized function if savedData not null then return; // not local savedData = ((ServerWorld)currentWorld).getServer().overworld().getDataStorage().computeIfAbsent(OurWorldSavedData::new, OurMod.MODID); do read the manual: https://forge.gemwire.uk/wiki/Saved_Data https://mcforge.readthedocs.io/en/1.18.x/datastorage/saveddata/
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.