Вопрос Как узнать першишент дата контейнер у печки? (Kotlin)

Версия Minecraft
1.16.X

1Krokko3213

Пользователь
Сообщения
13
нужно сделать печку которая плавит со скоростью х2. нужно чтобы я ставил печку и если у этой печки есть отличительная особенность (щас имею ввиду першиштент дата контейнер, если у вас другие варики есть напишите) вот код:
Код:
package me.krokko.dev.untitled7

import org.bukkit.Bukkit
import org.bukkit.Material
import org.bukkit.NamespacedKey
import org.bukkit.block.Furnace
import org.bukkit.command.*
import org.bukkit.entity.Entity
import org.bukkit.entity.Player
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.block.BlockPlaceEvent
import org.bukkit.event.inventory.FurnaceBurnEvent
import org.bukkit.inventory.ItemStack
import org.bukkit.persistence.PersistentDataType
import org.bukkit.plugin.java.JavaPlugin
import sun.invoke.empty.Empty

class FastFurnacePlugin : JavaPlugin(), Listener {

    companion object {
        lateinit var instance: FastFurnacePlugin
    }

    override fun onEnable() {
        instance = this
        getCommand("givefastfurnance")!!.setExecutor(cmd())
        getCommand("givefastfurnance")!!.setTabCompleter(cmd());
        server.pluginManager.registerEvents(this, this)
    }

    @EventHandler
    fun onBlockPlace(event: BlockPlaceEvent, player: Player) {
        val block = event.block
        if (player.inventory.itemInMainHand.type == Material.FURNACE) {// почему нельзя получить инвентарь игрока сука нахуй блять ЭТО ПРИМЕР ЕСЛ ЧО ЩА УЗНАЕМ
            if (block.type == Material.FURNACE || block.type == Material.BLAST_FURNACE || block.type == Material.SMOKER) {
                val furnace = block.state as Furnace
                val container = furnace.persistentDataContainer
                val key = NamespacedKey(instance, "fast_furnace")
                container.set(key, PersistentDataType.BYTE, 1)
                furnace.update()
            }
        }
    }

    @EventHandler
    fun onFurnaceBurn(event: FurnaceBurnEvent) {
        val block = event.block
        if (block.type == Material.FURNACE || block.type == Material.BLAST_FURNACE || block.type == Material.SMOKER) {
            val furnace = block.state as Furnace
            val container = furnace.persistentDataContainer
            val key = NamespacedKey(instance, "fast_furnace")
            if (container.has(key, PersistentDataType.BYTE)) {
                event.burnTime /= 2
            }
        }
    }
    class cmd () : TabExecutor {
        override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<out String>): Boolean {
            if (sender is Player) {
                val player = sender
                val item = ItemStack(Material.FURNACE)
                val meta = item.itemMeta
                val container = meta.persistentDataContainer
                val key = NamespacedKey(FastFurnacePlugin.instance, "fast_furnace")
                container.set(key, PersistentDataType.BYTE, 1)
                item.itemMeta = meta
                player.inventory.addItem(item)
                player.sendMessage("Вы получили ускоренную печь!")
                return true
            }
            return false
        }

        override fun onTabComplete(sender: CommandSender, command: Command, alias: String, args: Array<out String>): List<String> { // блять это то что такое
                return if (args.size > 0) {
                    emptyList();
                } else emptyList()
            }
        }


    }
p.s разрабы форума не добавили в языки котлин..
 
Назад
Сверху Снизу