From 95c58157c201c41064ecaf1240c0215b53816b0e Mon Sep 17 00:00:00 2001 From: rattatwinko Date: Thu, 1 May 2025 15:56:19 +0200 Subject: [PATCH] sahur upgraddee :3 --- src/main/kotlin/org/Sahur/sahur/Sahur.kt | 47 +++++++++++++++++++++++- src/main/resources/plugin.yml | 10 +++++ 2 files changed, 55 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/org/Sahur/sahur/Sahur.kt b/src/main/kotlin/org/Sahur/sahur/Sahur.kt index b01a765..bac10e8 100644 --- a/src/main/kotlin/org/Sahur/sahur/Sahur.kt +++ b/src/main/kotlin/org/Sahur/sahur/Sahur.kt @@ -19,6 +19,7 @@ class Sahur : JavaPlugin(), Listener { logger.info("Sahur is enabled!") server.pluginManager.registerEvents(this, this) getCommand("sahur")?.setExecutor(SahurCommand()) + getCommand("destroysahur")?.setExecutor(DestroySahurCommand()) } override fun onDisable() { @@ -26,7 +27,12 @@ class Sahur : JavaPlugin(), Listener { } inner class SahurCommand : CommandExecutor { - override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array): Boolean { + override fun onCommand( + sender: CommandSender, + command: Command, + label: String, + args: Array + ): Boolean { if (sender !is Player) { sender.sendMessage("${ChatColor.RED}Player-only command!") return true @@ -62,6 +68,7 @@ class Sahur : JavaPlugin(), Listener { stick.addUnsafeEnchantment(Enchantment.KNOCKBACK, 255) stick.addUnsafeEnchantment(Enchantment.FIRE_ASPECT, 10) + stick.addUnsafeEnchantment(Enchantment.SHARPNESS, 10) stick.addUnsafeEnchantment(Enchantment.SWEEPING_EDGE, 10) return stick @@ -87,7 +94,7 @@ class Sahur : JavaPlugin(), Listener { if (player.hasMetadata("no_fall_sahur")) { player.removeMetadata("no_fall_sahur", this) } - }, 60L) // 60 ticks = 3 seconds + }, 90L) // 60 ticks = 3 seconds } } } @@ -101,4 +108,40 @@ class Sahur : JavaPlugin(), Listener { } } } + + inner class DestroySahurCommand : CommandExecutor { + override fun onCommand( + sender: CommandSender, + command: Command, + label: String, + args: Array + ): Boolean { + if (sender !is Player) { + sender.sendMessage("${ChatColor.RED}Player-only command!") + return true + } + + val player = sender + if (!player.isOp) { + player.sendMessage("${ChatColor.RED}You don't have permission to use this command!") + return true + } + + val inv = player.inventory + val removed = inv.contents.filterNotNull().filter { + it.type == Material.STICK && + it.itemMeta?.displayName?.contains("SAHUR", ignoreCase = true) == true + } + + if (removed.isEmpty()) { + player.sendMessage("${ChatColor.YELLOW}No Sahur Stick found in your inventory.") + } else { + removed.forEach { inv.remove(it) } + player.sendMessage("${ChatColor.RED}All Sahur Sticks have been destroyed!") + player.playSound(player.location, Sound.ENTITY_ITEM_BREAK, 1f, 1f) + } + + return true + } + } } \ No newline at end of file diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index d9b4d1a..83a7047 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -8,3 +8,13 @@ commands: usage: /sahur permission: sahur.use permission-message: You don't have permission to use this command. + destroysahur: + description: Removes Sahur sticks from your inventory + usage: /destroysahur + permission: sahur.destroy + permission-message: You don't have permission to use this command. +permissions: + sahur.use: + default: op + sahur.destroy: + default: op