1Krokko3213
Пользователь
- Сообщения
- 13
нужно сделать печку которая плавит со скоростью х2. нужно чтобы я ставил печку и если у этой печки есть отличительная особенность (щас имею ввиду першиштент дата контейнер, если у вас другие варики есть напишите) вот код:
p.s разрабы форума не добавили в языки котлин..
Код:
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()
}
}
}