Jump to content

[Solved] [1.15.2] Event Handler not Detecting Events


Contomman

Recommended Posts

I have tried many different events and effects in the code below, and I have never gotten the event to fire. The project builds and the client launches without errors. Other aspects of my mod work fine, such as registering new items and blocks with the EventBusSubscriber, so I am not sure why I cant detect other events.

 

 

@Mod.EventBusSubscriber(modid = ExampleMod.MODID, bus = Mod.EventBusSubscriber.Bus.FORGE)
public class TestEventHandler{
    @SubscribeEvent
    public void onJumpEvent(PlayerEvent.LivingJumpEvent event) {
        ExampleMod.LOGGER.info("Event Fired");

        LivingEntity livingEntity = event.getEntityLiving();
        livingEntity.addPotionEffect(new EffectInstance(Effects.JUMP_BOOST,600,255));

    }
}

 


I tried to make a minimum working example, so I made a new mod with only the above class added. For good measure here is the main class, In case I am missing something there. It is mostly Unmodified.
 

@Mod("examplemod")
public class ExampleMod
{
    // Directly reference a log4j logger.
    public static final Logger LOGGER = LogManager.getLogger();
    public static final String MODID = "examplemod";
    public static ExampleMod instance;

    public ExampleMod() {
        instance = this;

        // Register the setup method for modloading
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
        // Register the enqueueIMC method for modloading
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::enqueueIMC);
        // Register the processIMC method for modloading
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::processIMC);
        // Register the doClientStuff method for modloading
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff);

        // Register ourselves for server and other game events we are interested in
        MinecraftForge.EVENT_BUS.register(this);
    }
    private void setup(final FMLCommonSetupEvent event) { }
    private void doClientStuff(final FMLClientSetupEvent event) { }
    private void enqueueIMC(final InterModEnqueueEvent event)
    {
        InterModComms.sendTo("examplemod", "helloworld", () -> { LOGGER.info("Hello world from the MDK"); return "Hello world";});
    }
    private void processIMC(final InterModProcessEvent event)
    {
        LOGGER.info("Got IMC {}", event.getIMCStream().
                map(m->m.getMessageSupplier().get()).
                collect(Collectors.toList()));
    }
    @SubscribeEvent
    public void onServerStarting(FMLServerStartingEvent event) {
    }
}

 

Here is my latest log file. I didnt see anything out of the ordinary in it

https://pastebin.com/2L3gdHrE

***SOLVED EDIT***

I did not make my method static, which Is required to automatically register the class without passing the eventbus an instance of the class, as outlined in https://mcforge.readthedocs.io/en/latest/events/intro/.

Edited by Contomman
Link to comment
Share on other sites

37 minutes ago, Contomman said:

PlayerEvent.LivingJumpEvent

This even doesn't exist within Minecraft Forge 1.15.2. Did you perhaps mean LivingEvent.LivingJumpEvent?

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

7 minutes ago, Animefan8888 said:

This even doesn't exist within Minecraft Forge 1.15.2. Did you perhaps mean LivingEvent.LivingJumpEvent?

Sorry about that. Unfortunately I am not getting a result using LivingEvent.LivingJumpEvent either.
I have also tried using EntityItemPickupEvent, as shown in the docs https://mcforge.readthedocs.io/en/latest/events/intro/

Link to comment
Share on other sites

8 minutes ago, Contomman said:

Sorry about that. Unfortunately I am not getting a result using LivingEvent.LivingJumpEvent either.
I have also tried using EntityItemPickupEvent, as shown in the docs https://mcforge.readthedocs.io/en/latest/events/intro/

Show the actual code you have.

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

 

24 minutes ago, Animefan8888 said:

Show the actual code you have.

Sure. Here is my Event Handler

package com.example.examplemod.events;

import com.example.examplemod.ExampleMod;
import net.minecraft.entity.LivingEntity;
import net.minecraft.potion.EffectInstance;
import net.minecraft.potion.Effects;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.event.entity.living.LivingEvent;
import net.minecraftforge.event.entity.player.ArrowNockEvent;
import net.minecraftforge.event.entity.player.EntityItemPickupEvent;
import net.minecraftforge.event.entity.player.PlayerEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;


@Mod.EventBusSubscriber(modid = ExampleMod.MODID, bus = Mod.EventBusSubscriber.Bus.FORGE)
public class TestEventHandler{
    @SubscribeEvent
    public void onJumpEvent(EntityItemPickupEvent event) {
        ExampleMod.LOGGER.info("Event Fired");

    }
}

And here is the main class

package com.example.examplemod;

import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraftforge.common.MinecraftForge;
import net.minecraftforge.event.RegistryEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.InterModComms;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLClientSetupEvent;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import net.minecraftforge.fml.event.lifecycle.InterModEnqueueEvent;
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
import net.minecraftforge.fml.event.server.FMLServerStartingEvent;
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.util.stream.Collectors;

// The value here should match an entry in the META-INF/mods.toml file
@Mod("examplemod")
public class ExampleMod
{
    // Directly reference a log4j logger.
    public static final Logger LOGGER = LogManager.getLogger();
    public static final String MODID = "examplemod";
    public static ExampleMod instance;

    public ExampleMod() {
        instance = this;

        // Register the setup method for modloading
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::setup);
        // Register the enqueueIMC method for modloading
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::enqueueIMC);
        // Register the processIMC method for modloading
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::processIMC);
        // Register the doClientStuff method for modloading
        FMLJavaModLoadingContext.get().getModEventBus().addListener(this::doClientStuff);

        // Register ourselves for server and other game events we are interested in
        MinecraftForge.EVENT_BUS.register(this);
    }
    private void setup(final FMLCommonSetupEvent event) { }
    private void doClientStuff(final FMLClientSetupEvent event) { }
    private void enqueueIMC(final InterModEnqueueEvent event)
    {
        InterModComms.sendTo("examplemod", "helloworld", () -> { LOGGER.info("Hello world from the MDK"); return "Hello world";});
    }
    private void processIMC(final InterModProcessEvent event)
    {
        LOGGER.info("Got IMC {}", event.getIMCStream().
                map(m->m.getMessageSupplier().get()).
                collect(Collectors.toList()));
    }
    @SubscribeEvent
    public void onServerStarting(FMLServerStartingEvent event) {
    }
}

Ive made a (poorly recorded,sorry) video of me building the project and trying to trigger the event, without success. I have tried several events, such as EntityItemPickupEvent and ArrowNockEvent, and I cant get any logger output, system output, potion effects triggering, etc.



This is a newly created mod for the purpose of showing this issue, so there shouldn't be any other interactions I am causing, to the best of my knowledge.

Link to comment
Share on other sites

2 minutes ago, Contomman said:

@Mod.EventBusSubscriber(modid = ExampleMod.MODID, bus = Mod.EventBusSubscriber.Bus.FORGE)

When registering this way your methods need to be static. And I don't know how I didn't notice that on the first post.

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

11 minutes ago, Animefan8888 said:

When registering this way your methods need to be static. And I don't know how I didn't notice that on the first post.

Works Great. Thanks for your patience lol. should have read the docs more carefully

 

 

Edited by Contomman
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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • I didn't. The quotation marks are still around the file path first part. & tried with quotation marks both jdk-17 & -17.0.9. Just double-checked.  
    • https://www.dropbox.com/scl/fi/r92sbb0ywoc6d0wwzx8wj/crash-2023-08-17_11.43.40-server.txt?rlkey=do2x4ategaht2czeezi39v7cx&dl=0 Is there a way to fix it without my world crashing
    • DAFTAR KLIK DISINI DAFTAR KLIK DISINI Prediksi HK merupakan salah satu metode meracik angka yang sangat dibutuhkan para pecinta togel Hongkong untuk mendapatkan angka jitu. Prediksi Hongkong akan memberikan anda racikan yang sudah dibuat oleh para master angka togel dan akan dibagikan melalui situs Prediksi HK ini. Namun sebelum itu kami menegaskan yang namanya prediksi tidak ada yang sempurna, karena yang sempurna hanya milik Tuhan saja. Kami juga tidak mengatakan bahwa prediksi yang kami berikan itu asal dan tidak berdasar. Kami memberikan Bocoran HK malam ini pastinya melalui berbagai macam rumus dan dibantu oleh peracik angka togel handal. Jadi anda tidak ada salahnya juga jika menggunakan Prediksi Bocoran Togel Hongkong yang akan kami berikan disitus ini. Selaku situs Prediksi Hongkong jitu malam ini, kami juga memberikan saran kepada anda jika ingin mencari prediksi togel HK yang bagus jangan asal memilih. Karena banyak situs palsu yang tersebar di internet dan hanya memberikan angka prediksi Hk asal dan tidak berdasar. Maka kami sarankan anda bisa menggunakan Bocoran Togel Hongkong di situs kami ini sebagai acuan memilih angka yang ingin dipasang. Bocoran HK Paling Jitu Malam Ini Bocoran Hk Malam Ini tentu saja sangat membantu untuk para member yang kesulitan untuk mendapatkan angka racikan togel HK malam ini. Tapi tenang saja kami disini akan memberikan Prediksi Bocoran HK Jitu secara gratis untuk anda, sehingga anda tidak perlu lagi khawatir jika ingin mencari situs prediksi togel HK yang akurat dan gratis. Tetapi kami juga mengingatkan untuk anda jika sering mendapatkan jackpot dari bocoran togel hongkong malam ini yang ada di situs ini, kami berharap anda dapat membagikannya juga kepada kerabat dan teman anda yang memiliki hobi yang sama yaitu bermain togel online. Dengan saling berbagi tidak ada ruginya bahkan kita bisa mengalahkan bandot togel bersama-sama. Forum Master Prediksi Hongkong Malam Ini Terpercaya Apakah anda sedang mencari Master Prediksi HK yang akan memberikan racikan atau bocoran togel khususnya pasaran Hongkong? Maka disini adalah tempat yang tepat jika anda mencari racikan Prediksi Hongkong dari master togel terpercaya. Pada kesempatan hari ini Master Prediksi Togel Hongkong telah memberikan racikannya yang dapat anda lihat dalam tabel bocoran HK di atas. Kami sangat senang jika anda selalu mengunjungi forum atau situs prediksi HK kami ini. Seluruh Bocoran HK yang telah kami berikan tentu saja gratis dan tanpa dipungut biaya apapun. Karena kami membuat situs prediksi ini murni demi membantu para pemain togel yang bingung untuk mencari angka kuat untuk dipasangkan dalam pasaran togel Hongkong Malam Ini. Manfaat Prediksi Togel Hongkong Untuk Para Togelers Prediksi Togel Hongkong tentu saja sangat bermanfaat bagi setiap pemain togel online yang menggunakannya. Manfaat yang paling menonjol yaitu anda bisa mencocokkan angka anda sendiri dengan angka yang telah diracik oleh para master togel jitu. Selain itu apabila anda tidak memiliki angka sama sekali yang ingin dipasangkan, anda dapat menggunakan hasil racikan Bocoran HK dalam situs ini untuk dijadikan angka taruhan. Jadi jangan sampai kelewatan segala jenis prediksi togel hongkong yang sudah kami bagikan pada hari ini sehingga anda mendapatkan angka jitu yang ingin digunakan. Sekali lagi kami ingatkan bahwa setiap prediksi yang diberikan tidak kami jamin 100% akan tembus, tetapi setidaknya menambah peluang kemenangan. Sekian pembahasan kami dan kami harapkan anda puas dengan prediksi hk yang sudah kami berikan di situs ini. Semoga kalian jackpot dan salam togel mania. Angka Main: 5746 Angka Ikut: 8463 Colok Bebas: 6 Kepala: 5 7 | Ekor: 8 3 Twin: 44 / 66 ANGKA JITU 2D 57*54*56*58*53*75*74*76* 78*73*45*47*46*48*43*65* SHIO: KAMBING Angka Main: 4092 Angka Ikut: 6410 Colok Bebas: 4 Kepala: 6 9 | Ekor: 1 2 Twin: 44 / 00 ANGKA JITU 2D 40*49*42*46*41*04*09*02* 06*01*94*90*92*96*91*24* SHIO: TIKUS Angka Main: 6128 Angka Ikut: 4368 Colok Bebas: 8 Kepala: 1 4 | Ekor: 3 2 Twin: 66 / 88 ANGKA JITU 2D 61*62*68*64*63*16*12*18* 14*13*26*21*28*24*23*86* SHIO: HARIMAU Angka Main: 1495 Angka Ikut: 5871 Colok Bebas: 5 Kepala: 8 9 | Ekor: 7 4 Twin: 11 / 55 ANGKA JITU 2D 14*19*15*18*17*41*49*45* 48*47*91*94*95*98*97*51* SHIO: AYAM Angka Main: 9124 Angka Ikut: 4859 Colok Bebas: 9 Kepala: 5 1 | Ekor: 2 8 Twin: 99 / 44 ANGKA JITU 2D 91*92*94*98*95*19*12*14* 18*15*29*21*24*28*25*49* SHIO: KERBAU Angka Main: 2095 Angka Ikut: 8152 Colok Bebas: 2 Kepala: 1 0 | Ekor: 9 8 Twin: 22 / 55 ANGKA JITU 2D 20*29*25*28*21*02*09*05* 08*01*92*90*95*98*91*52* SHIO: KUDA
    • Hm. I did try adding that in the user_jvm_args.txt but I get this:  Error: Could not find or load main class C:Program FilesJavajdk-17.0.9binjavaw.exe Caused by: java.lang.ClassNotFoundException: C:Program FilesJavajdk-17.0.9binjavaw.exe Press any key to continue . . . I tried both with "\jdk-17\" (as it appears in the program files) as well as "\jdk-17.0.9\"  No luck. am I placing it in the wrong file? Could the second part be incorrect? 
  • Topics

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.