[SANS SUITE] Crash Serveur
-
Vire le constructeur du packet ayant un integer en paramètre, il ne te sert à rien. Et vire le
@SideOnly(Side.CLIENT) dans ta sous classe Handler et dans ta classe Gui. Tu n’en as pas besoin.EDIT = Ton onGuiClosed que tu as override dans ta classe gui, ne sert à rien, puisque tu l’as laissé vide, et que de base (n’ai pas les sources sous les yeux), je crois qu’il est déjà vide.
Ton boolean coma dans ta classe EventHandler, sera commun à tous les joueurs, or je pense que tu ne le souhaites pas ? Si oui, go ––> l’enregistrer dans ton ExtProp -
Dans ta fonction onMessage, “return message;” devrait être “return null;”, t comme Plaigon l’a dit, retires tout ce qui touches à l’int i.
-
Dernières remarques :
- À quoi ton setter setTimer peut te servir si ta variable timer est déjà en static ?
- Comme ton onGuiClosed, même remarque pour ta fonction updateScreen
- Pourquoi divises-tu ta variabe timer par 100 dans actionPerformed, alors que tu indiques qu’il s’agit d seconde. Je te rappelle que 20 ticks est égale à 1 seconde. Donc faut mieux diviser par 20

- Lorsque tu te sers du setDead dans ta classe gui Mort, je ne suis pas trop sûr, mais il y a des chances que cela ne marche pas, car setDead() doit être appelé côté serveur (si quelqu’un pouvait me confirmer :))
-
@‘Plaigon’:
Dernières remarques :
- À quoi ton setter setTimer peut te servir si ta variable timer est déjà en static ?
- Comme ton onGuiClosed, même remarque pour ta fonction updateScreen
- Pourquoi divises-tu ta variabe timer par 100 dans actionPerformed, alors que tu indiques qu’il s’agit d seconde. Je te rappelle que 20 ticks est égale à 1 seconde. Donc faut mieux diviser par 20

- Lorsque tu te sers du setDead dans ta classe gui Mort, je ne suis pas trop sûr, mais il y a des chances que cela ne marche pas, car setDead() doit être appelé côté serveur (si quelqu’un pouvait me confirmer :))
Alors,
J’ai fais ça du coup:
public class PacketGui implements IMessage { public PacketGui(){ } @Override public void fromBytes(ByteBuf buf) { } @Override public void toBytes(ByteBuf buf) { } public static class Handler implements IMessageHandler <packetgui, imessage="">{ public IMessage onMessage(PacketGui message, MessageContext ctx) { Minecraft.getMinecraft().displayGuiScreen(new Mort()); Mort.settimer(10000); System.out.println("packet"); return null; } } }Crash au démarrage du serveur au niveau de la main class fonction init java 56 il me semble sa pointe le register du packetGui.</packetgui,>
-
Mets un @SideOnly(Side.CLIENT) sur ta fontcion onMessage.
-
Le problème ne vient pas de là, le side only n’est pas obligatoire
-
@‘SCAREX’:
Le problème ne vient pas de là, le side only n’est pas obligatoire
J’ai une question dites moi si je me trompe,
Dans un packet le double constructeur n’est pas obligatoire ?? -
@‘floriangabet’:
@‘SCAREX’:
Le problème ne vient pas de là, le side only n’est pas obligatoire
J’ai une question dites moi si je me trompe,
Dans un packet le double constructeur n’est pas obligatoire ??Si car tu as besoin d’un constructeur vide (qui sera appelé au moment où tu enregistres le paquet) et un constructeur que tu utiliseras pour envoyer tes données
-
Du coup vous savez pas? Si il faut je me trompe ça ne vient pas de la, je vous glisse le crash report au cas ou:
normalement c’est la ligne 56 dans la main class je vous la passe aussi:
network.registerMessage(PacketGui.Handler.class, PacketGui.class, 0, Side.CLIENT); -
@‘Plaigon’:
@SideOnly(Side.CLIENT) dans ta sous classe Handler et dans ta classe Gui. Tu n’en as pas besoin.
@‘SCAREX’:
Le problème ne vient pas de là, le side only n’est pas obligatoire
Si. S’il n’y est pas le serveur crash lors du chargement de la classe à cause du Minecraft.getMinecraft() qui se trouve dans la fonction.
-
Vivement que je récupère mon ordi et les sources que je puisse enfin revoir les packets
-
Plus de crash mais en multijoueur le gui ne s’ouvre pas
… -
debug debug debug
Et ensuite tu nous envoies les logs logs logs (et tu nous dis aussi où tu as mit les différents print). -
Alors tien les logs:
Le packet n’est simplement pas appeler.
[18:10:17] [User Authenticator #1/INFO]: UUID of player floriangabet is c8dd1304-3452-48aa-904b-a405287c8826 [18:10:17] [Netty IO #1/INFO]: Client protocol version 2 [18:10:17] [Netty IO #1/INFO]: Client attempting to join with 10 mods : dd@1.0,mcp@9.05,FML@7.10.99.99,PTRModelLib@1.0.0,customnpcs@1.7.10d,Forge@10.13.4.1448,BiblioCraft@1.11.5,instantblocks@1.5.4,chisel@1.5.7,props@2.3.2 [18:10:17] [Netty IO #1/INFO]: Attempting connection with missing mods [kimagine] at CLIENT [18:10:17] [Server thread/INFO]: [Server thread] Server side modded connection established [18:10:17] [Server thread/INFO]: floriangabet[/0.0.0.0] logged in with entity id 196 at ([world] -249.92391524313697, 92.0, 249.70805660889624) [18:10:22] [Server thread/INFO]: floriangabet issued server command: /kill [18:10:22] [Server thread/INFO]: Event onDeath [18:10:22] [Server thread/INFO]: boolean: true [18:10:22] [Server thread/INFO]: floriangabet diedClass:
event:
@SubscribeEvent public void onDeath(LivingDeathEvent event) { booleantrue(); if(event.entityLiving instanceof EntityPlayer) { event.entityLiving.setHealth(1); Main.network.sendTo(new PacketGui(), (EntityPlayerMP)event.entityLiving); System.out.println("Event onDeath"); System.out.println("boolean: " + coma); } }Packet:
public class PacketGui implements IMessage { public PacketGui(){ } @Override public void fromBytes(ByteBuf buf) { } @Override public void toBytes(ByteBuf buf) { } public static class Handler implements IMessageHandler <packetgui, imessage="">{ @SideOnly(Side.CLIENT) public IMessage onMessage(PacketGui message, MessageContext ctx) { Minecraft.getMinecraft().displayGuiScreen(new Mort()); Mort.settimer(10000); System.out.println("Packet"); return null; } } } ```</packetgui,> -
Packet ne s’affichera jamais côté serveur comme il se trouve dans une fonction client.
Ajoutes System.out.println(“Packet serveur”); dans la fonction toBytes
-
@‘robin4002’:
Packet ne s’affichera jamais côté serveur comme il se trouve dans une fonction client.
Ajoutes System.out.println(“Packet serveur”); dans la fonction toBytes
C’est bon a savoir.
Oui il s’affiche:
[18:48:30] [Server thread/INFO]: floriangabet issued server command: /kill [18:48:30] [Server thread/INFO]: Packet serveur [18:48:30] [Server thread/INFO]: Event onDeath [18:48:30] [Server thread/INFO]: boolean: true [18:48:30] [Server thread/INFO]: floriangabet died -
Du-coup il faut regarder si Packet s’affiche dans les logs du client.
-
@‘robin4002’:
Du-coup il faut regarder si Packet s’affiche dans les logs du client.
Comment ? worldisremote ?
-
System.out.println(“coucou, je suis de quel côté ?”) et tu envoies les logs
-
@‘SCAREX’:
System.out.println(“coucou, je suis de quel côté ?”) et tu envoies les logs
Bah j’ai que côté serveur

[18:48:30] [Server thread/INFO]: Packet serveur