Résolu 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’attributstatic
, 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
-
Comment on peut vérifier que le jouer est dans le menu principale ?
-
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 ?
-
Si
Minecraft.getMinecraft().world
est null, aucun monde n’est chargé. -
@robin4002 Merci