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.


Log in to reply