From ea485a0526fdfebc76d22c6bdbe37c066e5fb44b Mon Sep 17 00:00:00 2001 From: 5vl Date: Mon, 30 May 2022 00:58:47 +0200 Subject: [PATCH] Made gui and added first item. --- src/main/java/me/fivevl/troll/Main.kt | 5 +++- src/main/java/me/fivevl/troll/Utils.kt | 18 +++++++++++ .../me/fivevl/troll/commands/TrollCommand.kt | 30 +++++++++++++++++++ src/main/java/me/fivevl/troll/gui/TrollGui.kt | 25 ++++++++++++++++ src/main/resources/plugin.yml | 3 ++ 5 files changed, 80 insertions(+), 1 deletion(-) create mode 100644 src/main/java/me/fivevl/troll/Utils.kt create mode 100644 src/main/java/me/fivevl/troll/commands/TrollCommand.kt create mode 100644 src/main/java/me/fivevl/troll/gui/TrollGui.kt diff --git a/src/main/java/me/fivevl/troll/Main.kt b/src/main/java/me/fivevl/troll/Main.kt index bcb524f..d5a2536 100644 --- a/src/main/java/me/fivevl/troll/Main.kt +++ b/src/main/java/me/fivevl/troll/Main.kt @@ -1,9 +1,12 @@ package me.fivevl.troll +import me.fivevl.troll.commands.TrollCommand import org.bukkit.plugin.java.JavaPlugin class Main : JavaPlugin() { override fun onEnable() { - + Utils.instance = this + getCommand("troll")!!.setExecutor(TrollCommand()) + logger.info("Troll plugin enabled successfully!") } } \ No newline at end of file diff --git a/src/main/java/me/fivevl/troll/Utils.kt b/src/main/java/me/fivevl/troll/Utils.kt new file mode 100644 index 0000000..f812f51 --- /dev/null +++ b/src/main/java/me/fivevl/troll/Utils.kt @@ -0,0 +1,18 @@ +package me.fivevl.troll + +import net.kyori.adventure.text.Component +import net.kyori.adventure.text.minimessage.MiniMessage + +object Utils { + lateinit var instance: Main + fun color(s: String): Component { + return MiniMessage.miniMessage().deserialize(s) + } + fun loreBuilder(vararg arr: String): ArrayList { + val lore = ArrayList() + for (s in arr) { + lore.add(color("$s")) + } + return lore + } +} \ No newline at end of file diff --git a/src/main/java/me/fivevl/troll/commands/TrollCommand.kt b/src/main/java/me/fivevl/troll/commands/TrollCommand.kt new file mode 100644 index 0000000..32cb359 --- /dev/null +++ b/src/main/java/me/fivevl/troll/commands/TrollCommand.kt @@ -0,0 +1,30 @@ +package me.fivevl.troll.commands + +import me.fivevl.troll.Utils +import me.fivevl.troll.gui.TrollGui +import org.bukkit.Bukkit +import org.bukkit.command.Command +import org.bukkit.command.CommandExecutor +import org.bukkit.command.CommandSender +import org.bukkit.entity.Player + +class TrollCommand : CommandExecutor { + override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array?): Boolean { + if (sender !is Player) { + sender.sendMessage(Utils.color("You must be a player to use this command!")) + return true + } + val p = sender.player!! + if (args == null || args.size != 1) { + p.sendMessage(Utils.color("Usage: /troll ")) + return true + } + val target = Bukkit.getPlayer(args[0]) + if (target == null) { + p.sendMessage(Utils.color("Player not found!")) + return true + } + p.openInventory(TrollGui.getGui(target)) + return true + } +} \ No newline at end of file diff --git a/src/main/java/me/fivevl/troll/gui/TrollGui.kt b/src/main/java/me/fivevl/troll/gui/TrollGui.kt new file mode 100644 index 0000000..78a6d65 --- /dev/null +++ b/src/main/java/me/fivevl/troll/gui/TrollGui.kt @@ -0,0 +1,25 @@ +package me.fivevl.troll.gui + +import me.fivevl.troll.Utils +import org.bukkit.Bukkit +import org.bukkit.Material +import org.bukkit.entity.Player +import org.bukkit.inventory.Inventory +import org.bukkit.inventory.ItemStack + +object TrollGui { + fun getGui(target: Player): Inventory { + val gui = Bukkit.createInventory(null, 54, Utils.color("Troll Menu - ${target.name}")) + gui.setItem(0, getYeetItem()) + return gui + } + + private fun getYeetItem(): ItemStack { + val item = ItemStack(Material.ELYTRA) + val meta = item.itemMeta + meta.displayName(Utils.color("Yeet")) + meta.lore(Utils.loreBuilder("This will yeet the player", "in a random direction.")) + item.itemMeta = meta + return item + } +} \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index f1dfbcd..0e75619 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -4,3 +4,6 @@ main: me.fivevl.troll.Main api-version: 1.18 authors: [ 5vl ] description: This is a cool troll plugin! +commands: + troll: + description: Troll a player! \ No newline at end of file