From ddc9f4e5db630f51a5513b94153de56ee7f0354b Mon Sep 17 00:00:00 2001 From: Hinyari_Gohan Date: Sun, 8 Apr 2018 21:52:31 +0900 Subject: [PATCH] =?UTF-8?q?3.0.1=20Cleanup=20code=20=E3=82=A2=E3=82=A4?= =?UTF-8?q?=E3=83=86=E3=83=A0=E7=B3=BB=E3=81=AEStorageBox=E3=81=AE?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E3=82=92=E3=81=A7=E3=81=8D=E3=81=AA=E3=81=8F?= =?UTF-8?q?=E3=81=99=E3=82=8B=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/storagebox/event/Interact.kt | 30 +++++++++++++++---- .../hinyari/plugin/storagebox/event/Place.kt | 3 +- .../storagebox/extensions/ItemExtension.kt | 1 + src/main/resources/config.yml | 4 +++ 4 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/main/kotlin/net/hinyari/plugin/storagebox/event/Interact.kt b/src/main/kotlin/net/hinyari/plugin/storagebox/event/Interact.kt index 24d0001..39d01f1 100644 --- a/src/main/kotlin/net/hinyari/plugin/storagebox/event/Interact.kt +++ b/src/main/kotlin/net/hinyari/plugin/storagebox/event/Interact.kt @@ -3,7 +3,6 @@ package net.hinyari.plugin.storagebox.event import net.hinyari.plugin.storagebox.StorageBoxMain import net.hinyari.plugin.storagebox.extensions.* import net.hinyari.plugin.storagebox.util.SBUtil -import org.bukkit.Material import org.bukkit.Sound import org.bukkit.event.EventHandler import org.bukkit.event.Listener @@ -12,10 +11,7 @@ import org.bukkit.event.player.PlayerInteractEvent import org.bukkit.inventory.EquipmentSlot class Interact constructor(val plugin: StorageBoxMain) : Listener { - - // StorageBoxの使用に対応するアイテム - private var materialArray = arrayOf(Material.ENDER_PEARL, Material.MINECART, Material.WATER_BUCKET, - Material.LAVA_BUCKET) + private val inventoryUtil = plugin.inventoryUtil @EventHandler @@ -40,12 +36,12 @@ class Interact constructor(val plugin: StorageBoxMain) : Listener { } val isMainHand = event.hand == EquipmentSlot.HAND + val amount = SBUtil.getAmountOfStorageBox(item) // スニーク中 if (player.isSneaking) { // アイテムを取り出す処理 if (event.action == Action.LEFT_CLICK_AIR || event.action == Action.LEFT_CLICK_BLOCK) { // 左クリ - val amount = SBUtil.getAmountOfStorageBox(item) // 0個なら無視 if (amount <= 0) return @@ -62,7 +58,29 @@ class Interact constructor(val plugin: StorageBoxMain) : Listener { player.playSound(player.location, Sound.BLOCK_DISPENSER_DISPENSE, 1.0f, 1.5f) } } + } + + if (!item.type.isSolid) { + event.isCancelled = true + player.sendActionBar("アイテムを使用にはまだ対応していません") + player.playSound(player.location, Sound.BLOCK_NOTE_BASS, 0.2f, 0.4f) return } + + /* + when (item.type) { + Material.ENDER_PEARL -> { + object : BukkitRunnable() { + override fun run() { + // メインハンドにStorageBoxを所持している場合 + if (isMainHand) player.itemInMainHand = item.toStorageBox(amount - 1) + else player.itemInOffHand = item.toStorageBox(amount - 1) + } + }.runTaskLater(plugin, 1L) + } + + else -> return + } + */ } } diff --git a/src/main/kotlin/net/hinyari/plugin/storagebox/event/Place.kt b/src/main/kotlin/net/hinyari/plugin/storagebox/event/Place.kt index 1729abc..b500497 100644 --- a/src/main/kotlin/net/hinyari/plugin/storagebox/event/Place.kt +++ b/src/main/kotlin/net/hinyari/plugin/storagebox/event/Place.kt @@ -37,7 +37,8 @@ class Place constructor(val plugin: StorageBoxMain) : Listener { // 無効化リストに入っていた場合 if (Config.values.uncreatableMaterialList.contains(event.itemInHand.type)) { - player.sendMessageWithErrorPrefix("そのアイテムを設置することは出来ません。") + player.sendActionBar("&cそのアイテムを設置することは出来ません") + event.isCancelled = true return } diff --git a/src/main/kotlin/net/hinyari/plugin/storagebox/extensions/ItemExtension.kt b/src/main/kotlin/net/hinyari/plugin/storagebox/extensions/ItemExtension.kt index a64ac88..6209179 100644 --- a/src/main/kotlin/net/hinyari/plugin/storagebox/extensions/ItemExtension.kt +++ b/src/main/kotlin/net/hinyari/plugin/storagebox/extensions/ItemExtension.kt @@ -52,6 +52,7 @@ fun ItemStack.toStorageBox(amount: Int): ItemStack { } if (type == Material.AIR) { + println("toStorageBox() {type=$type}") return ItemStack(Material.AIR) } diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index 9c8c672..a99986f 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -17,6 +17,10 @@ prefix: normal: "&a&l[ StorageBox ]&r " error: "&c&l[ StorageBox ]&r " noPermission: "このコマンドを実行する権限がありません!" + +sound: + # 十分なアイテムがない場合 + noEnoughItems: [BLOCK_DISPENSER_FAIL, 0.4, 1.0] crafting: # クラフトでStorageBoxを作ることを許可するか