summaryrefslogtreecommitdiff
path: root/src/main/kotlin/dev
diff options
context:
space:
mode:
authordevmikka <64923699+DevMikka@users.noreply.github.com>2025-11-08 10:23:57 +0100
committerdevmikka <64923699+DevMikka@users.noreply.github.com>2025-11-08 10:23:57 +0100
commitfdd8fd0f059bba93f70b6a317c27f2549b380fb6 (patch)
treedaff88a790f3aba1f0f9bda56c2caa0f7c7b6594 /src/main/kotlin/dev
parent3b9a84b529a2b9535129249481f71510889c7758 (diff)
Diffstat (limited to 'src/main/kotlin/dev')
-rw-r--r--src/main/kotlin/dev/mikka/cortex/help/TestPlugin.kt58
-rw-r--r--src/main/kotlin/dev/mikka/cortex/help/event/ClickEvents.kt46
-rw-r--r--src/main/kotlin/dev/mikka/cortex/help/luckperms/ActualLuckPermsManager.kt11
-rw-r--r--src/main/kotlin/dev/mikka/cortex/help/luckperms/LuckPermsManager.kt7
-rw-r--r--src/main/kotlin/dev/mikka/cortex/help/luckperms/NoOpLuckPermsManager.kt7
5 files changed, 129 insertions, 0 deletions
diff --git a/src/main/kotlin/dev/mikka/cortex/help/TestPlugin.kt b/src/main/kotlin/dev/mikka/cortex/help/TestPlugin.kt
new file mode 100644
index 0000000..e3e4269
--- /dev/null
+++ b/src/main/kotlin/dev/mikka/cortex/help/TestPlugin.kt
@@ -0,0 +1,58 @@
+package dev.mikka.cortex.help
+
+import com.comphenix.protocol.ProtocolLibrary
+import com.comphenix.protocol.ProtocolManager
+import com.github.retrooper.packetevents.PacketEvents
+import com.github.retrooper.packetevents.PacketEventsAPI
+import dev.mikka.cortex.help.event.ClickEvents
+import dev.mikka.cortex.help.luckperms.ActualLuckPermsManager
+import dev.mikka.cortex.help.luckperms.LuckPermsManager
+import dev.mikka.cortex.help.luckperms.NoOpLuckPermsManager
+import io.github.retrooper.packetevents.factory.spigot.SpigotPacketEventsBuilder
+import net.luckperms.api.LuckPerms
+import org.bukkit.plugin.Plugin
+import org.bukkit.plugin.java.JavaPlugin
+
+class TestPlugin : JavaPlugin() {
+ companion object {
+ val packetEvents: PacketEventsAPI<*> by lazy { PacketEvents.getAPI() }
+ val protocolManager: ProtocolManager by lazy { ProtocolLibrary.getProtocolManager() }
+ lateinit var instance: TestPlugin
+ lateinit var luckPerms: LuckPermsManager
+ lateinit var essentials: Plugin
+ }
+
+ override fun onLoad() {
+ instance = this
+ PacketEvents.setAPI(SpigotPacketEventsBuilder.build(this))
+ packetEvents.load()
+ }
+
+ override fun onEnable() {
+ if (checkLuckPerms()) {
+ // This will throw when called unchecked!
+ luckPerms = ActualLuckPermsManager(server.servicesManager.getRegistration(LuckPerms::class.java)!!.provider)
+ slF4JLogger.info("LuckPerms is enabled! Using $luckPerms")
+ } else {
+ luckPerms = NoOpLuckPermsManager
+ slF4JLogger.info("LuckPerms is not enabled! Using $luckPerms")
+ }
+
+ println(server.pluginManager.plugins.joinToString(", ") { plugin -> "${plugin.name} (${plugin.isEnabled})" })
+
+ println(checkEssentials())
+
+ if (checkEssentials()) {
+ essentials = server.pluginManager.getPlugin("Essentials")!!
+ slF4JLogger.info("EssentialsX is enabled! Plugin: $essentials (${essentials::class.java.name})")
+ }
+
+ slF4JLogger.info("ProtocolLib: $protocolManager")
+
+ server.pluginManager.registerEvents(ClickEvents, this)
+ }
+
+ private fun checkLuckPerms(): Boolean = server.pluginManager.isPluginEnabled("LuckPerms")
+
+ private fun checkEssentials(): Boolean = server.pluginManager.plugins.find { it.name == "Essentials" } != null
+}
diff --git a/src/main/kotlin/dev/mikka/cortex/help/event/ClickEvents.kt b/src/main/kotlin/dev/mikka/cortex/help/event/ClickEvents.kt
new file mode 100644
index 0000000..3e750aa
--- /dev/null
+++ b/src/main/kotlin/dev/mikka/cortex/help/event/ClickEvents.kt
@@ -0,0 +1,46 @@
+package dev.mikka.cortex.help.event
+
+import com.comphenix.protocol.PacketType
+import com.comphenix.protocol.events.PacketContainer
+import com.github.retrooper.packetevents.wrapper.play.server.WrapperPlayServerChangeGameState
+import dev.mikka.cortex.help.TestPlugin
+import org.bukkit.Material
+import org.bukkit.event.EventHandler
+import org.bukkit.event.Listener
+import org.bukkit.event.block.Action
+import org.bukkit.event.player.PlayerInteractEvent
+
+object ClickEvents : Listener {
+ @EventHandler
+ fun onPlayerInteract(event: PlayerInteractEvent) {
+ if (event.action != Action.LEFT_CLICK_AIR && event.action != Action.RIGHT_CLICK_AIR) {
+ return
+ }
+
+ if (event.item?.type != Material.CLOCK) {
+ return
+ }
+
+ // We have direct access to [PacketEventsAPI]
+ TestPlugin.packetEvents.playerManager.sendPacket(
+ event.player,
+ WrapperPlayServerChangeGameState(WrapperPlayServerChangeGameState.Reason.DEMO_EVENT, 0f),
+ )
+
+ TestPlugin.protocolManager.sendServerPacket(
+ event.player,
+ PacketContainer(PacketType.Play.Server.GAME_STATE_CHANGE).apply {
+ // God is ProtocolLib bullshit
+ structures.modify(0) { structure ->
+ structure.integers.write(0, 5)
+ structure
+ }
+ float.write(0, 101f)
+ },
+ )
+
+ TestPlugin.luckPerms.printInstance()
+
+ TestPlugin.essentials.slF4JLogger.info("Hello from ${TestPlugin.instance}")
+ }
+}
diff --git a/src/main/kotlin/dev/mikka/cortex/help/luckperms/ActualLuckPermsManager.kt b/src/main/kotlin/dev/mikka/cortex/help/luckperms/ActualLuckPermsManager.kt
new file mode 100644
index 0000000..c9cebe2
--- /dev/null
+++ b/src/main/kotlin/dev/mikka/cortex/help/luckperms/ActualLuckPermsManager.kt
@@ -0,0 +1,11 @@
+package dev.mikka.cortex.help.luckperms
+
+import net.luckperms.api.LuckPerms
+
+class ActualLuckPermsManager(private val luckPerms: LuckPerms) : LuckPermsManager {
+ override fun isEnabled(): Boolean = true
+
+ override fun printInstance() {
+ println("LuckPerms Instance: $luckPerms")
+ }
+}
diff --git a/src/main/kotlin/dev/mikka/cortex/help/luckperms/LuckPermsManager.kt b/src/main/kotlin/dev/mikka/cortex/help/luckperms/LuckPermsManager.kt
new file mode 100644
index 0000000..d5984a8
--- /dev/null
+++ b/src/main/kotlin/dev/mikka/cortex/help/luckperms/LuckPermsManager.kt
@@ -0,0 +1,7 @@
+package dev.mikka.cortex.help.luckperms
+
+interface LuckPermsManager {
+ fun isEnabled(): Boolean
+
+ fun printInstance()
+}
diff --git a/src/main/kotlin/dev/mikka/cortex/help/luckperms/NoOpLuckPermsManager.kt b/src/main/kotlin/dev/mikka/cortex/help/luckperms/NoOpLuckPermsManager.kt
new file mode 100644
index 0000000..1faa09e
--- /dev/null
+++ b/src/main/kotlin/dev/mikka/cortex/help/luckperms/NoOpLuckPermsManager.kt
@@ -0,0 +1,7 @@
+package dev.mikka.cortex.help.luckperms
+
+object NoOpLuckPermsManager : LuckPermsManager {
+ override fun isEnabled(): Boolean = false
+
+ override fun printInstance() {}
+}