- 122
- 1
- 5
Регистрирую нормально, а в консолько дальше отправки ничего не пишет.
отправляю так:
SimplePacket:
public class SimplePacket implements IMessage, IMessageHandler<SimplePacket, SimplePacket> {
private ByteBuf buf;
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 (this.buf != null)
buf.writeBytes(this.buf);
}
@SideOnly(Side.CLIENT)
private EntityPlayer clientPlayer() {
return Minecraft.getMinecraft().thePlayer;
}
}
NetworkHandler:
public final class NetworkHandler {
private static short id;
public static final SimpleNetworkWrapper NETWORK = NetworkRegistry.INSTANCE.newSimpleChannel("ChannelName");
public static final void registerPackets() {
register(APacket.class, Side.SERVER);
register(SPacket.class, Side.CLIENT);
}
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 final void sendToServer(IMessage message) {
NetworkHandler.NETWORK.sendToServer(message);
}
private static void register(Class<? extends SimplePacket> packet, Side side) {
try {
NETWORK.registerMessage(packet.newInstance(), packet, id++, side);
} catch (InstantiationException | IllegalAccessException e) {
e.printStackTrace();
}
}
}
APacket:
public final class APacket extends SimplePacket {
public APacket(){}
public APacket(String name) {
ByteBufUtils.writeUTF8String(buf(), name);
}
@Override
public void client(EntityPlayer player) {}
@Override
public void server(EntityPlayerMP player){
String Servername = ByteBufUtils.readUTF8String(buf());
System.out.println(Servername + " +++++++++++++++++++++++++++++");
}
}
SPacket:
public final class SPacket extends SimplePacket {
@Override
public void server(EntityPlayerMP player) {
}
@Override
public void client(EntityPlayer player){
System.out.println("success =============================================================");
NetworkHandler.sendToServer(new APacket("Player"));
}
}
Java:
public void onKeyDown(InputEvent.KeyInputEvent e) {
if (Keyboard.isKeyDown(Keyboard.KEY_F)) {
NetworkHandler.NETWORK.sendToServer(new SPacket());
System.out.println("It's work");
}
}
Последнее редактирование: