Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.48 KB | None | 0 0
  1. package mc.utopia.plugin.advancements
  2.  
  3. import io.netty.channel.ChannelDuplexHandler
  4. import io.netty.channel.ChannelHandlerContext
  5. import io.netty.channel.ChannelPromise
  6. import mc.utopia.plugin.util.JsonResourceBundle
  7. import org.bukkit.entity.Player
  8.  
  9. class AdvancementsPacketListener(
  10.     private val player: Player,
  11.     private val resourceBundle: JsonResourceBundle
  12. ) : ChannelDuplexHandler() {
  13.     override fun write(context: ChannelHandlerContext, packet: Any, promise: ChannelPromise) {
  14.         if (packet is PacketPlayOutAdvancements) {
  15.             val advancements = packet.advancements.mapValues { (_, advancement) ->
  16.                 val title = resourceBundle.getIChatBaseComponent(advancement.display.title.string, player.locale)
  17.                 val description = resourceBundle.getIChatBaseComponent(advancement.display.description.string, player.locale)
  18.                 advancement.apply {
  19.                     display.title = title
  20.                     display.description = description
  21.                 }
  22.             }
  23.             val newPacket = PacketPlayOutAdvancements(packet.clear, advancements, packet.remove, packet.progresses)
  24.             super.write(context, newPacket, promise)
  25.         } else {
  26.             super.write(context, packet, promise)
  27.         }
  28.     }
  29.  
  30.     private fun JsonResourceBundle.getIChatBaseComponent(key: String, locale: String, vararg args: Any?): IChatBaseComponent =
  31.         ChatSerializer.a(getElement(key, locale).toString().format(*args))!!
  32. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement