Problème d'Event



  • Bonjour. Comment faire fonctionner l'event PlayerEvent.PlayerLoggedOutEvent

    @SubscribeEvent
    	public void entityJoinWorld(PlayerEvent.PlayerLoggedOutEvent event) {
    
    		System.out.println("test");
    }
    	
    

    j'ai essayer de faire comme ceci mais ça marche pas.

    est ce que vous pouvez m'aider svp.
    est ce que il existe un outre moyen de savoir si le joueur a quitte le serveur ou non du cote client.



  • Donne tout le code car on peut penser que l'event n'est pas engristré(PS:Elle doit etre engristré dans le constructeur et ton event existe bien)



  • Yo, tu dois enregistrer ton event dans ta class principale de cette facon ci : Minecraft.EVENT_BUS.register(new TaClass()), sinon tu peux enregistrer ta class via l'annotation @EventBusSubscriber mais tes méthodes d'event devront avoir l'attribut static, l'event que tu souhaite utiliser est appelé lors de la déconnection du joueur du monde



  • @Daich_20 @SpyMan

    Voici le code

    package ru.frostdelta.svrum;
    
    
    import cpw.mods.fml.common.Mod;
    import cpw.mods.fml.common.Mod.EventHandler;
    import cpw.mods.fml.common.event.FMLLoadCompleteEvent;
    import cpw.mods.fml.common.event.FMLPostInitializationEvent;
    import cpw.mods.fml.common.event.FMLPreInitializationEvent;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.network.FMLEventChannel;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraftforge.common.MinecraftForge;
    import net.minecraftforge.common.config.Configuration;
    @Mod(modid = "RPC", dependencies = "after:Minecraft Forge", canBeDeactivated = false)
    
    
    public class Main {
    
        
        public static String username;
        public static FMLEventChannel channel;
        
    
        @EventHandler
        public void preInit(FMLPreInitializationEvent event) {
    
           
        }
    
    
    
        
        @EventHandler
        public void postInit(FMLPostInitializationEvent event) {
            MinecraftForge.EVENT_BUS.register(new test());
        }
    
        @EventHandler
        public void loadComplete(FMLLoadCompleteEvent event) {
        }
    
    
    }
    
    package ru.frostdelta.svrum;
    
    import cpw.mods.fml.client.FMLClientHandler;
    import cpw.mods.fml.common.eventhandler.SubscribeEvent;
    import cpw.mods.fml.common.gameevent.PlayerEvent;
    import cpw.mods.fml.common.network.FMLNetworkEvent;
    import cpw.mods.fml.common.network.FMLNetworkEvent.ServerDisconnectionFromClientEvent;
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraft.entity.player.EntityPlayer;
    import net.minecraftforge.client.event.RenderGameOverlayEvent;
    import net.minecraftforge.event.entity.EntityJoinWorldEvent;
    
    
    
    public class test{
    	
    	 
    	@SubscribeEvent
    	    public void entityJoinWorld(EntityJoinWorldEvent event) {
    
    		System.out.println("join");
    
    
    	 }
    	
    	@SubscribeEvent
    	public static void entityExitWorld(PlayerEvent.PlayerLoggedOutEvent event) {
     
    		System.out.println("exit");
    }
    	
    	
    
    	
    	
    	
    }
    


  • ta méthode est en static, donc tu dois utiliser l'annotation pour enregistrer ton event, comme je l'ai dit ci dessus, sinon tu dois juste retirer l'attribut static de ta méthode, et ça devrait fonctionner car tu la enregistré dans ta class principale



  • @SpyMan
    quand je met @EventBusSubcriver ca me met une erreur
    15066626-1c31-4beb-a982-d6319a573290-image.png



  • Comment on peut vérifier que le jouer est dans le menu principale ?
    1e26d5cf-e6eb-4bed-8706-683ada1a8bbf-image.png


  • Administrateurs

    Bonjour,

    EventBusSubscriber a été ajouté en 1.8.

    Donc forcement en 1.7.10 ça ne fonctionne pas.



  • @robin4002 est ce que il existe un notre moyen de vérifier si un jouer a quitter le serveur ou est sorti du monde ?


  • Administrateurs

    Si Minecraft.getMinecraft().world est null, aucun monde n'est chargé.



  • @robin4002 Merci


Log in to reply