Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

[1.12] LivingDeathEvent not firing


TheGoldenProof
 Share

Recommended Posts

I'm trying to do something whenever I kill the Wither boss using LivingDeathEvents and as far as I can tell, the wither boss is an EntityLivingBase, but the event never fires.

@SubscribeEvent
public static void onLivingDeath(LivingDeathEvent event) {
	if (event.getEntity() instanceof EntityWither || event.getEntityLiving() instanceof EntityWither) {
		SAOM.info("IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII"); //Testing if its firing when I kill it, prints to the console
	}
}

Also, I'm not sure the difference between event.getEntity() and event.getEntityLiving(). Is one the thing that killed it and one the thing that was killed, or are they both the same thing?

Link to comment
Share on other sites

If you're sure the event itself is not firing, maybe your class isn't registered on the event bus?  My preferred method is to put this line in the constructor of my class:

MinecraftForge.EVENT_BUS.register(YourClassNameHere.class);

But there is also a tag that does the same thing.  I just can't remember what it is right now.

 

To make absolutely sure you know whether the event is even firing or not (it should fire any time something dies, not just the wither, as you seem to understand already), maybe add a println before your if statement and see if it outputs to console when you kill eg. a pig (if you haven't already tested this)

Link to comment
Share on other sites

They’ve got “public static void” so I assume they’re correctly using the @Mod.EventBusSubscriber annotation. Check your imports (its highly unlikely that there’s another LivingDeathEvent, but it’s possible)

About Me

Spoiler

My Discord - Cadiboo#8887

My WebsiteCadiboo.github.io

My ModsCadiboo.github.io/projects

My TutorialsCadiboo.github.io/tutorials

Versions below 1.14.4 are no longer supported on this forum. Use the latest version to receive support.

When asking support remember to include all relevant log files (logs are found in .minecraft/logs/), code if applicable and screenshots if possible.

Only download mods from trusted sites like CurseForge (minecraft.curseforge.com). A list of bad sites can be found here, with more information available at stopmodreposts.org

Edit your own signature at www.minecraftforge.net/forum/settings/signature/ (Make sure to check its compatibility with the Dark Theme)

Link to comment
Share on other sites

21 hours ago, TheGoldenProof said:

Also, I'm not sure the difference between event.getEntity() and event.getEntityLiving(). Is one the thing that killed it and one the thing that was killed, or are they both the same thing?

I just started making a combat tagging mod, so I'm currently dealing with event.getEntity() and getEntityLiving().  I looked at the source code and, at least without other mods being involved somehow, they both return the exact same value (one returns a field named "entity" and the other a field named "entityLiving", and the "entityLiving" field is only set once, in a constructor, and is set to "entity", so they're redundant afaik).

 

Edit 1 ================================================================

I just realized the "entityLiving" field I mentioned is NOT directly being set to the same value as the "entity" field. It is being set by a CONSTRUCTOR ARGUMENT named "entity".  That being said, in my case, at least, they still both return the same thing.

Edited by Laike_Endaril
Link to comment
Share on other sites

24 minutes ago, Laike_Endaril said:

I just realized the "entityLiving" field I mentioned is NOT directly being set to the same value as the "entity" field. It is being set by a CONSTRUCTOR ARGUMENT named "entity".  That being said, in my case, at least, they still both return the same thing.

The thing is that it extends from the basic EntityEvent so it must have those methods, but since it only fires when a Living entity dies it also provides an EntityLiving(Base) this also makes it so you do not have to cast it yourself.

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

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
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.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • When i launch forge-1.16.5-36.2.23.jar eula.txt doesnt come but in older version like 1.12.2 it comes idk why. do you guys know how i can fix this ?
    • MegaMiner is just my playground mod. Here's the entire MegaMinerEvents class. It's just a static event receiver.   package nu.rydin.explodingarrows.common.events; import net.minecraft.core.BlockPos; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import net.minecraft.world.level.LevelAccessor; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.state.BlockState; import net.minecraftforge.event.TickEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import nu.rydin.explodingarrows.common.Main; import nu.rydin.explodingarrows.common.enchantments.ModEnchantments; import java.util.LinkedList; @Mod.EventBusSubscriber(modid = Main.MOD_ID, bus = Mod.EventBusSubscriber.Bus.FORGE) public class MegaMinerEvents { private static final class BlockToBreak { private final BlockPos pos; private final Player player; public BlockToBreak(final BlockPos pos, final Player player) { this.pos = pos; this.player = player; } } private static final LinkedList<BlockToBreak> queue = new LinkedList<>(); @SubscribeEvent public static void onBreakBlock(final BlockEvent.BreakEvent e) { final LevelAccessor world = e.getWorld(); if (world.isClientSide()) { return; } for (final Tag t : e.getPlayer().getMainHandItem().getEnchantmentTags()) { final CompoundTag ct = (CompoundTag) t; if (ct.getString("id") .equals(ModEnchantments.MEGA_MINER.get().getRegistryName().toString())) { MegaMinerEvents.mineNeighborhood(e.getPos(), e.getPlayer(), e.getState().getBlock()); } } } @SubscribeEvent public static void onTick(final TickEvent.ServerTickEvent e) { if (MegaMinerEvents.queue.isEmpty()) { return; } final BlockToBreak b = MegaMinerEvents.queue.removeFirst(); final Level world = b.player.level; final BlockState bs = world.getBlockState(b.pos); bs.getBlock().playerDestroy(world, b.player, b.pos, bs, null, b.player.getMainHandItem()); world.removeBlock(b.pos, true); // MegaMinerEvents.mineNeighborhood(b.pos, b.player, bs.getBlock()); System.out.println(MegaMinerEvents.queue.size()); } private static void mineNeighborhood( final BlockPos pos, final Player player, final Block blockType) { final float x0 = pos.getX(); final float y0 = pos.getY(); final float z0 = pos.getZ(); for (float z = z0 - 1.0F; z <= z0 + 1; z += 1.0) { for (float y = y0 - 1.0F; y <= y0 + 1; y += 1.0) { for (float x = x0 - 1.0F; x <= x0 + 1; x += 1.0) { final BlockState b = player.getLevel().getBlockState(pos); if (b.is(blockType)) { MegaMinerEvents.queue.addLast(new BlockToBreak(pos, player)); } } } } } }  
    • i am playing modded and NOT ON A SERVER but everytime i join a world my game crashes and the error message is: Exception in server tick loop  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.