Пакеты

Версия Minecraft
1.7.10
API
Forge
Всем привет. Не работает система пакетов. Я уверен, что допускаю где-то ошибку, но не пойму где.


Java:
public final class SPacketParticles extends SimplePacket {
    
    @Override
    public void server(EntityPlayerMP player) {
        NetworkHandler.sendToAllAround(new CPacketParticles(), player.worldObj, player.posX, player.posY, player.posZ, 10);
    }
}


Java:
public final class CPacketParticles extends SimplePacket {
    
    public CPacketParticles(){}
    
    public CPacketParticles(double x, double y, double z) {
        buf().writeDouble(x);
        buf().writeDouble(y);
        buf().writeDouble(z);
    }

    @Override
    public void client(EntityPlayer player) {
        double
                x = buf().readDouble(),
                y = buf().readDouble(),
                z = buf().readDouble(),
                newPosX, newPosZ, speedX, speedZ,
                doublePi = 2 * Math.PI;

        final double RADIUS = 0.4;

        for (double i = 0; i < doublePi; i += doublePi / 50) {
            newPosX = x + RADIUS * Math.cos(i);
            newPosZ = z + RADIUS * Math.sin(i);

            speedX = (newPosX - x) * 0.2D;
            speedZ = (newPosZ - z) * 0.2D;

            player.worldObj.spawnParticle("flame", newPosX, y, newPosZ, speedX, 0.0D, speedZ);
        }
    }
}


Java:
public class SimplePacket implements IMessage, IMessageHandler<SimplePacket, SimplePacket> {
    
    private ByteBuf buf;

    @Override
    public SimplePacket onMessage(SimplePacket sp, MessageContext ctx) {
        if (ctx.side.isServer())
            sp.server(ctx.getServerHandler().playerEntity);
        else
            sp.client(clientPlayer());
        return null;
    }

    protected ByteBuf buf() {
        return buf != null ? buf : (buf = Unpooled.buffer());
    }

    public void client(EntityPlayer player) {}
    public void server(EntityPlayerMP player) {}

    @Override
    public final void fromBytes(ByteBuf buf) {
        this.buf = buf;
    }

    @Override
    public final void toBytes(ByteBuf buf) {
        if (buf != null)
            buf.writeBytes(this.buf);
    }

    @SideOnly(Side.CLIENT)
    private EntityPlayer clientPlayer() {
        return Minecraft.getMinecraft().thePlayer;
    }
}


Java:
public final class NetworkHandler {
    
    private short id;

    public static final SimpleNetworkWrapper NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel("NewChannel");

    public NetworkHandler() {
        register(CPacketParticles.class, Side.CLIENT);
        register(SPacketParticles.class, Side.SERVER);   
    }

    public static void sendToAllAround(SimplePacket packet, World world, double x, double y, double z, double distance) {
        NETWORK.sendToAllAround(packet, new NetworkRegistry.TargetPoint(world.provider.dimensionId, x, y, z, distance));
    }
    
    public static void sendToServer(SimplePacket packet) {
        NETWORK.sendToServer(packet);
    }

    public static void sendToClient(SimplePacket packet, EntityPlayerMP player) {
        NETWORK.sendTo(packet, player);
    }

    private void register(Class<? extends SimplePacket> packet, Side side) {
        try {
            NETWORK.registerMessage(packet.newInstance(), packet, id++, side);
        } catch (InstantiationException | IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}

Пытался отлавливать момент передачи пакета и выводить в консоль, реакции ноль

заранее всем спасибо за помощь, если уж какая-то слишком очевидная ошибка - извиняюсь, не столь давно сижу в java
 
@xMafee теперь ElegantNetworking не имеет зависимости от CodeChickenLib
Смело добавляй в проект, теперь либа тебя не задавит)
 
Назад
Сверху