- 1,470
- 19
- 189
Всем привет. Хочу отправить пакетом инт на гуи. Но он не работает.
Вот код:
PacketsRegister#registerMessages вызываю из init CommonProxy
Устанавливаю так:
Вот код:
Kotlin:
class ManaMessage: IMessage {
companion object {
private val player = Minecraft.getMinecraft().player!!
private val manaCap = player.getCapability<Mana.IManaHandler>(Mana.CAPABILITY_MANA!!, null)
var mana = manaCap?.getMana()
}
override fun fromBytes(buf: ByteBuf?) {
mana = buf?.getInt(mana!!)
}
override fun toBytes(buf: ByteBuf?) {
buf?.writeInt(mana!!)
}
}
Kotlin:
class ManaMessageHandler : IMessageHandler<ManaMessage, IMessage> {
override fun onMessage(message: ManaMessage?, ctx: MessageContext?): IMessage? {
val mainThread = ctx?.serverHandler?.player?.world as WorldServer // or Minecraft.getMinecraft() on the client
mainThread.addScheduledTask { println(String.format("Received %s from %s", ManaMessage.mana, ctx?.serverHandler.player.displayName)) }
return null
}
}
Kotlin:
class PacketsRegister {
companion object {
private val INSTANCE = SimpleNetworkWrapper(modid)
fun registerMessages(){
INSTANCE.registerMessage(ManaMessageHandler::class.java, ManaMessage::class.java, 0, Side.CLIENT)
}
}
}
Устанавливаю так:
Kotlin:
val mana = ManaMessage.mana
mc.fontRenderer.drawString(mana?.toString() + "/40", 35, 29, 0xffffff)