Résolu Mon KeyBindind ne fonctionne pas...
-
Bonjour,
Je suis en train de coder un plugin qui ajouter un shop mais j’aimerai pouvoir l’ouvrir avec une touche du clavier. Je me suis tourner vers un mod pour ça car c’est une procédure totalement de côté client. J’ai coder ma touche mais lorsque je vais sur mon jeu, la touche ne marche pas et n’apparait pas dans les controls.
Voici ma classe client :package fr.orgealexj06.fgcore; import java.io.File; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiMainMenu; import net.minecraft.client.gui.GuiMultiplayer; import net.minecraft.client.settings.KeyBinding; import net.minecraftforge.client.event.GuiOpenEvent; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.fml.client.registry.ClientRegistry; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.gameevent.InputEvent; import org.lwjgl.input.Keyboard; public class FgClient extends FgCoreCommon { @Override public void preInit(File configFile) { super.preInit(configFile); System.out.println("pre init côté client"); } @Override public void init() { super.init(); MinecraftForge.EVENT_BUS.register(this); } @SubscribeEvent public void onOpenGui1(GuiOpenEvent event) { if(event.getGui() != null && event.getGui().getClass() == GuiMultiplayer.class) { event.setGui(new GuiCustomMainMenu()); } } @SubscribeEvent public void onOpenGui2(GuiOpenEvent event) { if(event.getGui() != null && event.getGui().getClass() == GuiMainMenu.class) { event.setGui(new GuiCustomMainMenu()); } } private static KeyBinding keyBindOpenShop; public FgClient() { keyBindOpenShop = new KeyBinding("modtest.key", Keyboard.KEY_O, "key.categories.gameplay"); ClientRegistry.registerKeyBinding(keyBindOpenShop); } @SubscribeEvent public void onEvent(InputEvent.KeyInputEvent event) { if(keyBindOpenShop.isPressed()) { keyTestTyped(); } } private void keyTestTyped() { Minecraft.getMinecraft().player.sendChatMessage("/fgshop"); } }
J’ai suivi un tuto sur ce site que j’ai suivi à la lettre mais rien ni fait.
Merci de m’aider -
Bonsoir,
Tu peux envoyer ta classe principale ?
-
@robin4002 Voilà :
package fr.orgealexj06.fgcore; import org.apache.logging.log4j.Logger; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; @Mod(modid = FallenGloryCore.MODID, name = FallenGloryCore.NAME, version = "1.1", acceptedMinecraftVersions = "[1.12.2]", clientSideOnly = true) public class FallenGloryCore { public static final String MODID = "fallenglorycore"; public static final String NAME = "FallenGlory Core"; @SidedProxy(clientSide = "fr.orgealexj06.fgcore.FgClient", serverSide = "fr.orgealexj06.fgcore.FgServer") public static FgCoreCommon proxy; @Instance(FallenGloryCore.MODID) public static FallenGloryCore instance; public static Logger logger; @EventHandler public void preInit(FMLPreInitializationEvent event) { logger = event.getModLog(); proxy.preInit(event.getSuggestedConfigurationFile()); } @EventHandler public void init(FMLInitializationEvent event) { proxy.init(); } }
-
Tout me semble bon. Quand tu lances ton jeu, as-tu une erreur dans les logs ?
-
@robin4002 Salut, bon, j’ai trouver le problème… Le projet à été compiler à un autre dossier que celui où je le met… Enfaite, j’avais une mauvais version du mod, merci comme même, ça marche bien et désolé de t’avoir déranger
-