diff --git a/src/main/java/me/fivevl/troll/Main.kt b/src/main/java/me/fivevl/troll/Main.kt
index d5a2536..2303593 100644
--- a/src/main/java/me/fivevl/troll/Main.kt
+++ b/src/main/java/me/fivevl/troll/Main.kt
@@ -1,12 +1,26 @@
package me.fivevl.troll
import me.fivevl.troll.commands.TrollCommand
+import me.fivevl.troll.listeners.InvClickListener
+import me.fivevl.troll.listeners.InvCloseListener
+import org.bukkit.Bukkit
import org.bukkit.plugin.java.JavaPlugin
class Main : JavaPlugin() {
override fun onEnable() {
Utils.instance = this
- getCommand("troll")!!.setExecutor(TrollCommand())
+ registerCommands()
+ registerListeners()
logger.info("Troll plugin enabled successfully!")
}
+
+ private fun registerCommands() {
+ getCommand("troll")!!.setExecutor(TrollCommand())
+ }
+
+ private fun registerListeners() {
+ val plm = Bukkit.getPluginManager()
+ plm.registerEvents(InvClickListener(), this)
+ plm.registerEvents(InvCloseListener(), this)
+ }
}
\ 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
index 32cb359..4e6a0f8 100644
--- a/src/main/java/me/fivevl/troll/commands/TrollCommand.kt
+++ b/src/main/java/me/fivevl/troll/commands/TrollCommand.kt
@@ -24,7 +24,7 @@ class TrollCommand : CommandExecutor {
p.sendMessage(Utils.color("Player not found!"))
return true
}
- p.openInventory(TrollGui.getGui(target))
+ p.openInventory(TrollGui.getGui(target, p))
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
index 78a6d65..9df55ca 100644
--- a/src/main/java/me/fivevl/troll/gui/TrollGui.kt
+++ b/src/main/java/me/fivevl/troll/gui/TrollGui.kt
@@ -8,9 +8,11 @@ import org.bukkit.inventory.Inventory
import org.bukkit.inventory.ItemStack
object TrollGui {
- fun getGui(target: Player): Inventory {
+ val inTrollGui = HashMap()
+ fun getGui(target: Player, from: Player): Inventory {
val gui = Bukkit.createInventory(null, 54, Utils.color("Troll Menu - ${target.name}"))
gui.setItem(0, getYeetItem())
+ inTrollGui[from] = target
return gui
}
diff --git a/src/main/java/me/fivevl/troll/listeners/InvClickListener.kt b/src/main/java/me/fivevl/troll/listeners/InvClickListener.kt
new file mode 100644
index 0000000..ba95460
--- /dev/null
+++ b/src/main/java/me/fivevl/troll/listeners/InvClickListener.kt
@@ -0,0 +1,23 @@
+package me.fivevl.troll.listeners
+
+import me.fivevl.troll.gui.TrollGui
+import org.bukkit.entity.Player
+import org.bukkit.event.EventHandler
+import org.bukkit.event.Listener
+import org.bukkit.event.inventory.InventoryClickEvent
+
+class InvClickListener : Listener {
+ @EventHandler
+ fun onInvClick(e: InventoryClickEvent) {
+ val p = e.whoClicked as Player
+ if (TrollGui.inTrollGui.containsKey(p)) {
+ e.isCancelled = true
+ val ps = TrollGui.inTrollGui[p]!!
+ if (e.rawSlot == 0) {
+ ps.velocity = ps.location.toVector().multiply(6)
+ TrollGui.inTrollGui.remove(p)
+ p.closeInventory()
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/me/fivevl/troll/listeners/InvCloseListener.kt b/src/main/java/me/fivevl/troll/listeners/InvCloseListener.kt
new file mode 100644
index 0000000..b086f4c
--- /dev/null
+++ b/src/main/java/me/fivevl/troll/listeners/InvCloseListener.kt
@@ -0,0 +1,13 @@
+package me.fivevl.troll.listeners
+
+import me.fivevl.troll.gui.TrollGui
+import org.bukkit.event.EventHandler
+import org.bukkit.event.Listener
+import org.bukkit.event.inventory.InventoryCloseEvent
+
+class InvCloseListener : Listener {
+ @EventHandler
+ fun onInvClose(e: InventoryCloseEvent) {
+ TrollGui.inTrollGui.remove(e.player)
+ }
+}
\ No newline at end of file