From 59d7f1822edce7827c763acf266ce54778e4238e Mon Sep 17 00:00:00 2001 From: 5vl Date: Tue, 21 Jun 2022 16:09:14 +0200 Subject: [PATCH] put stuff in lambda function thing --- src/main/java/me/fivevl/itemadder/AbilityType.kt | 8 -------- .../java/me/fivevl/itemadder/InteractListener.kt | 7 ++++--- src/main/java/me/fivevl/itemadder/Item.kt | 12 ++++++++---- src/main/java/me/fivevl/itemadder/Items.kt | 5 +++++ src/main/java/me/fivevl/itemadder/ItemsCommand.kt | 1 + src/main/java/me/fivevl/itemadder/ItemsGui.kt | 2 +- src/main/java/me/fivevl/itemadder/Main.kt | 9 ++++++--- src/main/java/me/fivevl/itemadder/Utils.kt | 3 --- .../java/me/fivevl/itemadder/types/AbilityType.kt | 6 ++++++ .../fivevl/itemadder/{Type.kt => types/ItemType.kt} | 4 ++-- .../java/me/fivevl/itemadder/{ => types}/Rarity.kt | 2 +- 11 files changed, 34 insertions(+), 25 deletions(-) delete mode 100644 src/main/java/me/fivevl/itemadder/AbilityType.kt create mode 100644 src/main/java/me/fivevl/itemadder/Items.kt create mode 100644 src/main/java/me/fivevl/itemadder/types/AbilityType.kt rename src/main/java/me/fivevl/itemadder/{Type.kt => types/ItemType.kt} (51%) rename src/main/java/me/fivevl/itemadder/{ => types}/Rarity.kt (89%) diff --git a/src/main/java/me/fivevl/itemadder/AbilityType.kt b/src/main/java/me/fivevl/itemadder/AbilityType.kt deleted file mode 100644 index 563b939..0000000 --- a/src/main/java/me/fivevl/itemadder/AbilityType.kt +++ /dev/null @@ -1,8 +0,0 @@ -package me.fivevl.itemadder - -import org.bukkit.event.player.PlayerInteractEvent - -enum class AbilityType(val event: PlayerInteractEvent) { - LEFT_CLICK(Utils.interactEvent), - RIGHT_CLICK(Utils.interactEvent) -} \ No newline at end of file diff --git a/src/main/java/me/fivevl/itemadder/InteractListener.kt b/src/main/java/me/fivevl/itemadder/InteractListener.kt index 862a83a..d9acca7 100644 --- a/src/main/java/me/fivevl/itemadder/InteractListener.kt +++ b/src/main/java/me/fivevl/itemadder/InteractListener.kt @@ -1,5 +1,6 @@ package me.fivevl.itemadder +import me.fivevl.itemadder.types.AbilityType import org.bukkit.entity.Player import org.bukkit.event.EventHandler import org.bukkit.event.Listener @@ -12,14 +13,14 @@ class InteractListener : Listener { @EventHandler fun onInteract(e: PlayerInteractEvent) { if (e.item == null) return - for (check in Utils.items.values) { + for (check in Items.items.values) { if (check.finalItem == e.item) { for (ability in check.abilities.keys) { if (check.abilities[ability]!! == AbilityType.RIGHT_CLICK && (e.action == Action.RIGHT_CLICK_AIR || e.action == Action.RIGHT_CLICK_BLOCK)) { - ability.run() + ability.invoke(e) } if (check.abilities[ability]!! == AbilityType.LEFT_CLICK && (e.action == Action.LEFT_CLICK_AIR || e.action == Action.LEFT_CLICK_BLOCK)) { - ability.run() + ability.invoke(e) } } } diff --git a/src/main/java/me/fivevl/itemadder/Item.kt b/src/main/java/me/fivevl/itemadder/Item.kt index 80fb297..70e882d 100644 --- a/src/main/java/me/fivevl/itemadder/Item.kt +++ b/src/main/java/me/fivevl/itemadder/Item.kt @@ -1,12 +1,16 @@ package me.fivevl.itemadder +import me.fivevl.itemadder.types.AbilityType +import me.fivevl.itemadder.types.ItemType +import me.fivevl.itemadder.types.Rarity import net.kyori.adventure.text.Component import org.bukkit.Material +import org.bukkit.event.player.PlayerInteractEvent import org.bukkit.inventory.ItemStack -class Item(uniqueName: String, name: Component, rarity: Rarity, material: Material, type: Type, lore: String) { +class Item(uniqueName: String, name: Component, rarity: Rarity, material: Material, type: ItemType, lore: String) { val finalItem: ItemStack - val abilities = HashMap() + val abilities = HashMap<(PlayerInteractEvent) -> Unit, AbilityType>() init { val item = ItemStack(material) @@ -15,10 +19,10 @@ class Item(uniqueName: String, name: Component, rarity: Rarity, material: Materi meta.lore(Utils.loreBuilder(lore, "", rarity.formatted + " " + type.type)) item.itemMeta = meta finalItem = item - Utils.items[uniqueName] = this + Items.items[uniqueName] = this } - fun addAbility(type: AbilityType, runnable: Runnable) { + fun addAbility(type: AbilityType, runnable: (PlayerInteractEvent) -> Unit) { abilities[runnable] = type } } \ No newline at end of file diff --git a/src/main/java/me/fivevl/itemadder/Items.kt b/src/main/java/me/fivevl/itemadder/Items.kt new file mode 100644 index 0000000..d7b2e27 --- /dev/null +++ b/src/main/java/me/fivevl/itemadder/Items.kt @@ -0,0 +1,5 @@ +package me.fivevl.itemadder + +object Items { + val items = HashMap() +} \ No newline at end of file diff --git a/src/main/java/me/fivevl/itemadder/ItemsCommand.kt b/src/main/java/me/fivevl/itemadder/ItemsCommand.kt index 8dcb8d3..43d5c1e 100644 --- a/src/main/java/me/fivevl/itemadder/ItemsCommand.kt +++ b/src/main/java/me/fivevl/itemadder/ItemsCommand.kt @@ -14,6 +14,7 @@ class ItemsCommand : CommandExecutor { val p = sender.player!! if (p.hasPermission("itemadder.items")) { p.openInventory(ItemsGui.getGui()) + Utils.inItemsGui.add(p) } else { p.sendMessage(Utils.color("You don't have permission to use this command")) } diff --git a/src/main/java/me/fivevl/itemadder/ItemsGui.kt b/src/main/java/me/fivevl/itemadder/ItemsGui.kt index a0a3e20..3c4deca 100644 --- a/src/main/java/me/fivevl/itemadder/ItemsGui.kt +++ b/src/main/java/me/fivevl/itemadder/ItemsGui.kt @@ -6,7 +6,7 @@ import org.bukkit.inventory.Inventory object ItemsGui { fun getGui(): Inventory { val gui = Bukkit.createInventory(null, 54, Utils.color("Items")) - for (item in Utils.items.values) { + for (item in Items.items.values) { gui.addItem(item.finalItem) } return gui diff --git a/src/main/java/me/fivevl/itemadder/Main.kt b/src/main/java/me/fivevl/itemadder/Main.kt index a0b6f69..e26d432 100644 --- a/src/main/java/me/fivevl/itemadder/Main.kt +++ b/src/main/java/me/fivevl/itemadder/Main.kt @@ -1,16 +1,19 @@ package me.fivevl.itemadder +import me.fivevl.itemadder.types.AbilityType +import me.fivevl.itemadder.types.ItemType +import me.fivevl.itemadder.types.Rarity import org.bukkit.Bukkit import org.bukkit.Material +import org.bukkit.event.player.PlayerInteractEvent import org.bukkit.plugin.java.JavaPlugin class Main : JavaPlugin() { override fun onEnable() { Bukkit.getPluginManager().registerEvents(InteractListener(), this) getCommand("items")?.setExecutor(ItemsCommand()) - Item("TEST_ITEM", Utils.color("Test Item"), Rarity.EPIC, Material.STONE_SWORD, Type.WEAPON, "The most basic testing\nsword, by 5vl") - Utils.items["TEST_ITEM"]!!.addAbility(AbilityType.RIGHT_CLICK) { - val e = AbilityType.RIGHT_CLICK.event + Item("TEST_ITEM", Utils.color("Test Item"), Rarity.EPIC, Material.STONE_SWORD, ItemType.WEAPON, "The most basic testing\nsword, by 5vl") + Items.items["TEST_ITEM"]!!.addAbility(AbilityType.RIGHT_CLICK) { e: PlayerInteractEvent -> e.player.sendMessage(Utils.color("You right clicked the TEST_ITEM!")) } } diff --git a/src/main/java/me/fivevl/itemadder/Utils.kt b/src/main/java/me/fivevl/itemadder/Utils.kt index 73bfb30..7af9317 100644 --- a/src/main/java/me/fivevl/itemadder/Utils.kt +++ b/src/main/java/me/fivevl/itemadder/Utils.kt @@ -3,11 +3,8 @@ package me.fivevl.itemadder import net.kyori.adventure.text.Component import net.kyori.adventure.text.minimessage.MiniMessage import org.bukkit.entity.Player -import org.bukkit.event.player.PlayerInteractEvent object Utils { - lateinit var interactEvent: PlayerInteractEvent - val items = HashMap() val inItemsGui = ArrayList() fun color(s: String): Component { return MiniMessage.miniMessage().deserialize(s) diff --git a/src/main/java/me/fivevl/itemadder/types/AbilityType.kt b/src/main/java/me/fivevl/itemadder/types/AbilityType.kt new file mode 100644 index 0000000..57413cb --- /dev/null +++ b/src/main/java/me/fivevl/itemadder/types/AbilityType.kt @@ -0,0 +1,6 @@ +package me.fivevl.itemadder.types + +enum class AbilityType { + LEFT_CLICK, + RIGHT_CLICK +} \ No newline at end of file diff --git a/src/main/java/me/fivevl/itemadder/Type.kt b/src/main/java/me/fivevl/itemadder/types/ItemType.kt similarity index 51% rename from src/main/java/me/fivevl/itemadder/Type.kt rename to src/main/java/me/fivevl/itemadder/types/ItemType.kt index 6f4546d..07f7969 100644 --- a/src/main/java/me/fivevl/itemadder/Type.kt +++ b/src/main/java/me/fivevl/itemadder/types/ItemType.kt @@ -1,6 +1,6 @@ -package me.fivevl.itemadder +package me.fivevl.itemadder.types -enum class Type(val type: String) { +enum class ItemType(val type: String) { WEAPON("WEAPON"), PICKAXE("PICKAXE"), ITEM("ITEM"), diff --git a/src/main/java/me/fivevl/itemadder/Rarity.kt b/src/main/java/me/fivevl/itemadder/types/Rarity.kt similarity index 89% rename from src/main/java/me/fivevl/itemadder/Rarity.kt rename to src/main/java/me/fivevl/itemadder/types/Rarity.kt index 5b366dd..b43f100 100644 --- a/src/main/java/me/fivevl/itemadder/Rarity.kt +++ b/src/main/java/me/fivevl/itemadder/types/Rarity.kt @@ -1,4 +1,4 @@ -package me.fivevl.itemadder +package me.fivevl.itemadder.types enum class Rarity(val formatted: String) { COMMON("COMMON"),