Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mc.utopia.plugin.advancements
- import io.netty.channel.ChannelDuplexHandler
- import io.netty.channel.ChannelHandlerContext
- import io.netty.channel.ChannelPromise
- import mc.utopia.plugin.util.JsonResourceBundle
- import org.bukkit.entity.Player
- class AdvancementsPacketListener(
- private val player: Player,
- private val resourceBundle: JsonResourceBundle
- ) : ChannelDuplexHandler() {
- override fun write(context: ChannelHandlerContext, packet: Any, promise: ChannelPromise) {
- if (packet is PacketPlayOutAdvancements) {
- val advancements = packet.advancements.mapValues { (_, advancement) ->
- val title = resourceBundle.getIChatBaseComponent(advancement.display.title.string, player.locale)
- val description = resourceBundle.getIChatBaseComponent(advancement.display.description.string, player.locale)
- advancement.apply {
- display.title = title
- display.description = description
- }
- }
- val newPacket = PacketPlayOutAdvancements(packet.clear, advancements, packet.remove, packet.progresses)
- super.write(context, newPacket, promise)
- } else {
- super.write(context, packet, promise)
- }
- }
- private fun JsonResourceBundle.getIChatBaseComponent(key: String, locale: String, vararg args: Any?): IChatBaseComponent =
- ChatSerializer.a(getElement(key, locale).toString().format(*args))!!
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement