Non résolu Packets 1.7.10
-
Bonjour, je travail actuellement sur un GUI de métiers. Afin que les stats soient envoyées au client/GUI, je souhaite utiliser les packets. En effectuant des tests, j’ai mis l’envoi d’un message sur un event mais je n’arrive pas à savoir si le serveur l’a bien reçu.
Voici le code qui envoi le packet :
package fr.fulllager.elonia.events; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import fr.fulllager.elonia.EloniaChannel; import fr.fulllager.elonia.Main; import fr.fulllager.elonia.achievements.AchievementHandler; import fr.fulllager.elonia.guis.WarpGui; import fr.fulllager.elonia.init.BlockMod; import net.minecraft.client.Minecraft; import net.minecraft.client.network.NetHandlerPlayClient; import net.minecraft.init.Blocks; import net.minecraftforge.event.world.BlockEvent.BreakEvent; public class AchievementsBreakListener { /*@SubscribeEvent public void onBreak(BreakEvent e) { if(e.block == BlockMod.rubis_ore) { e.getPlayer().addStat(AchievementHandler.rubis_ore, 1); } if(e.block == BlockMod.sapphir_ore) { e.getPlayer().addStat(AchievementHandler.sapphir_ore, 1); } if(e.block == BlockMod.fluorine_ore) { e.getPlayer().addStat(AchievementHandler.fluorine_ore, 1); } }*/ @SubscribeEvent @SideOnly(Side.CLIENT) public void onCasse(BreakEvent e) { if(e.block == BlockMod.prismarine_block) { Main.network.sendToServer(new EloniaChannel("EloniaChannel")); } } }
La classe du channel :
package fr.fulllager.elonia; import cpw.mods.fml.common.network.ByteBufUtils; import cpw.mods.fml.common.network.simpleimpl.IMessage; import cpw.mods.fml.common.network.simpleimpl.IMessageHandler; import cpw.mods.fml.common.network.simpleimpl.MessageContext; import io.netty.buffer.ByteBuf; public class EloniaChannel implements IMessage { private String text; public EloniaChannel() { } public EloniaChannel(String text) { this.text = text; } @Override public void fromBytes(ByteBuf buf) { text = ByteBufUtils.readUTF8String(buf); } @Override public void toBytes(ByteBuf buf) { ByteBufUtils.writeUTF8String(buf, text); } public static class Handler implements IMessageHandler <EloniaChannel, IMessage> { @Override public IMessage onMessage(EloniaChannel message, MessageContext ctx) { System.out.println(String.format("Received %s from %s", message.text, ctx.getServerHandler().playerEntity.getDisplayName())); return null; } } }
Je ne comprend pas pourquoi aucun message n’est affiché dans la console du serveur. Merci de votre aide.
-
Désolé, Up.