- 2
- 0
Всем хорошего дня, уже какой час занимаюсь анальной терапией с forge и bukkit plugin, мне нужно из бакита получить определенный стринг и инт,
PacketAPI пробовал, с ним не получилось. Тут где-то прикреплю мои варианты попыток, а и версия 1.12.2
Forge:
Bukkit plugin:
Очень спасибо заранее если кто-то поможет
PacketAPI пробовал, с ним не получилось. Тут где-то прикреплю мои варианты попыток, а и версия 1.12.2
Forge:
java:
NetworkRegistry.INSTANCE.newEventDrivenChannel("redutills").register(this);
Java:
@SubscribeEvent
public void onPacket(FMLNetworkEvent.ClientCustomPacketEvent e) {
ByteBuf buf = e.getPacket().payload();
System.out.println(Arrays.toString(buf.array()));
//Minecraft.getMinecraft().player.sendChatMessage(data);
// System.out.println(data);
//String data = ByteBufUtils.readUTF8String(event.getPacket().payload());
//Minecraft.getMinecraft().player.sendChatMessage(data);
// String data = new String(e.getPacket().payload().array());
// Minecraft.getMinecraft().player.sendChatMessage(data);
}
Bukkit plugin:
Java:
NmsManager.sendPluginMessage(event.getPlayer(), TimerPlugin.CHANNEL_NAME, "REGISTER".getBytes(TimerPlugin.UTF_8_CHARSET));
Java:
public static void sendPluginMessage(Player player, String channel, byte[] message) {
try {
Object packet;
// 1.13+
if (NmsManager.minecraftKeyClass != null) {
Object minecraftKey = NmsManager.minecraftKeyConstructor.newInstance("redutills");
Object byteBuf = NmsManager.wrappedBufferMethod.invoke(null, (Object) message);
Object packetDataSerializer = NmsManager.packetDataSerializerConstructor.newInstance(byteBuf);
packet = NmsManager.packetPlayOutCustomPayloadConstructor.newInstance(minecraftKey, packetDataSerializer);
} else if (NmsManager.packetDataSerializerClass != null) { // 1.8+
Object byteBuf = NmsManager.wrappedBufferMethod.invoke(null, (Object) message);
Object packetDataSerializer = NmsManager.packetDataSerializerConstructor.newInstance(byteBuf);
packet = NmsManager.packetPlayOutCustomPayloadConstructor.newInstance(channel, packetDataSerializer);
} else { // 1.7
// Work our magic to make the packet
packet = NmsManager.packetPlayOutCustomPayloadConstructor.newInstance(channel, message);
}
// Work our magic to send the packet
Object nmsPlayer = NmsManager.getHandleMethod.invoke(player);
Object playerConnection = NmsManager.playerConnectionField.get(nmsPlayer);
NmsManager.sendPacketMethod.invoke(playerConnection, packet);
} catch (Exception ex) {
NmsManager.plugin.getLogger().severe("");
ex.printStackTrace();
}
}
Очень спасибо заранее если кто-то поможет