Make "PluginInstance" available internally

This commit is contained in:
Jakob K
2021-08-24 01:47:38 +02:00
parent 4d3e25af32
commit fa71b0cc0e
11 changed files with 48 additions and 43 deletions

View File

@@ -6,7 +6,7 @@ import net.axay.kspigot.event.listen
import net.axay.kspigot.extensions.bukkit.content import net.axay.kspigot.extensions.bukkit.content
import net.axay.kspigot.items.itemStack import net.axay.kspigot.items.itemStack
import net.axay.kspigot.items.meta import net.axay.kspigot.items.meta
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import org.bukkit.Material import org.bukkit.Material
import org.bukkit.NamespacedKey import org.bukkit.NamespacedKey
import org.bukkit.entity.Player import org.bukkit.entity.Player
@@ -67,7 +67,7 @@ internal abstract class PlayerInputBook<T>(
} }
companion object { companion object {
val idKey = NamespacedKey(KSpigotMainInstance, "kspigot_bookinput_id") val idKey = NamespacedKey(PluginInstance, "kspigot_bookinput_id")
internal val usedIDs = ArrayList<Int>() internal val usedIDs = ArrayList<Int>()

View File

@@ -1,9 +1,9 @@
package net.axay.kspigot.config package net.axay.kspigot.config
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import java.io.File import java.io.File
class PluginFile(path: String, child: String? = null) : File( class PluginFile(path: String, child: String? = null) : File(
"${KSpigotMainInstance.dataFolder}", "${PluginInstance.dataFolder}",
if (child == null) path else File(path, child).path if (child == null) path else File(path, child).path
) )

View File

@@ -1,7 +1,7 @@
package net.axay.kspigot.event package net.axay.kspigot.event
import net.axay.kspigot.extensions.pluginManager import net.axay.kspigot.extensions.pluginManager
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import org.bukkit.event.Event import org.bukkit.event.Event
import org.bukkit.event.EventPriority import org.bukkit.event.EventPriority
import org.bukkit.event.HandlerList import org.bukkit.event.HandlerList
@@ -25,7 +25,7 @@ inline fun <reified T : Event> Listener.register(
ignoreCancelled: Boolean = false, ignoreCancelled: Boolean = false,
noinline executor: (Listener, Event) -> Unit, noinline executor: (Listener, Event) -> Unit,
) { ) {
pluginManager.registerEvent(T::class.java, this, priority, executor, KSpigotMainInstance, ignoreCancelled) pluginManager.registerEvent(T::class.java, this, priority, executor, PluginInstance, ignoreCancelled)
} }
/** /**
@@ -52,7 +52,7 @@ inline fun <reified T : Event> SingleListener<T>.register() {
this, this,
priority, priority,
{ _, event -> (event as? T)?.let { this.onEvent(it) } }, { _, event -> (event as? T)?.let { this.onEvent(it) } },
KSpigotMainInstance, PluginInstance,
ignoreCancelled ignoreCancelled
) )
} }

View File

@@ -1,6 +1,6 @@
package net.axay.kspigot.extensions package net.axay.kspigot.extensions
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import org.bukkit.Bukkit import org.bukkit.Bukkit
import org.bukkit.NamespacedKey import org.bukkit.NamespacedKey
import org.bukkit.command.CommandSender import org.bukkit.command.CommandSender
@@ -46,4 +46,4 @@ val console get() = Bukkit.getConsoleSender()
/** /**
* Shortcut for creating a new [NamespacedKey] * Shortcut for creating a new [NamespacedKey]
*/ */
fun pluginKey(key: String) = NamespacedKey(KSpigotMainInstance, key) fun pluginKey(key: String) = NamespacedKey(PluginInstance, key)

View File

@@ -1,6 +1,6 @@
package net.axay.kspigot.extensions.bukkit package net.axay.kspigot.extensions.bukkit
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import org.bukkit.command.CommandExecutor import org.bukkit.command.CommandExecutor
import org.bukkit.command.TabCompleter import org.bukkit.command.TabCompleter
@@ -10,7 +10,7 @@ import org.bukkit.command.TabCompleter
* @return If the command was registered successfully. * @return If the command was registered successfully.
*/ */
fun CommandExecutor.register(commandName: String): Boolean { fun CommandExecutor.register(commandName: String): Boolean {
KSpigotMainInstance.getCommand(commandName)?.let { PluginInstance.getCommand(commandName)?.let {
it.setExecutor(this) it.setExecutor(this)
if (this is TabCompleter) if (this is TabCompleter)
it.tabCompleter = this it.tabCompleter = this

View File

@@ -1,28 +1,28 @@
package net.axay.kspigot.extensions.bukkit package net.axay.kspigot.extensions.bukkit
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import net.md_5.bungee.api.ChatColor import net.md_5.bungee.api.ChatColor
import org.bukkit.command.CommandSender import org.bukkit.command.CommandSender
import org.bukkit.plugin.Plugin import org.bukkit.plugin.Plugin
/** @see printColoredPrefix */ /** @see printColoredPrefix */
fun CommandSender.print(text: String, plugin: Plugin? = KSpigotMainInstance) = fun CommandSender.print(text: String, plugin: Plugin? = PluginInstance) =
printColoredPrefix(text, ChatColor.RESET, plugin?.name ?: "INFO", ChatColor.GRAY) printColoredPrefix(text, ChatColor.RESET, plugin?.name ?: "INFO", ChatColor.GRAY)
/** @see printColoredPrefix */ /** @see printColoredPrefix */
fun CommandSender.info(text: String, plugin: Plugin? = KSpigotMainInstance) = fun CommandSender.info(text: String, plugin: Plugin? = PluginInstance) =
printColoredPrefix(text, ChatColor.WHITE, plugin?.name ?: "INFO", ChatColor.DARK_AQUA) printColoredPrefix(text, ChatColor.WHITE, plugin?.name ?: "INFO", ChatColor.DARK_AQUA)
/** @see printColoredPrefix */ /** @see printColoredPrefix */
fun CommandSender.success(text: String, plugin: Plugin? = KSpigotMainInstance) = fun CommandSender.success(text: String, plugin: Plugin? = PluginInstance) =
printColoredPrefix(text, ChatColor.GREEN, plugin?.name ?: "SUCCESS", ChatColor.DARK_AQUA) printColoredPrefix(text, ChatColor.GREEN, plugin?.name ?: "SUCCESS", ChatColor.DARK_AQUA)
/** @see printColoredPrefix */ /** @see printColoredPrefix */
fun CommandSender.warn(text: String, plugin: Plugin? = KSpigotMainInstance) = fun CommandSender.warn(text: String, plugin: Plugin? = PluginInstance) =
printColoredPrefix(text, ChatColor.WHITE, plugin?.name?.plus(" - WARN") ?: "WARN", ChatColor.YELLOW) printColoredPrefix(text, ChatColor.WHITE, plugin?.name?.plus(" - WARN") ?: "WARN", ChatColor.YELLOW)
/** @see printColoredPrefix */ /** @see printColoredPrefix */
fun CommandSender.error(text: String, plugin: Plugin? = KSpigotMainInstance) = fun CommandSender.error(text: String, plugin: Plugin? = PluginInstance) =
printColoredPrefix(text, ChatColor.RED, plugin?.name?.plus(" - ERROR") ?: "ERROR", ChatColor.DARK_RED) printColoredPrefix(text, ChatColor.RED, plugin?.name?.plus(" - ERROR") ?: "ERROR", ChatColor.DARK_RED)
/** /**

View File

@@ -3,7 +3,7 @@ package net.axay.kspigot.extensions.bukkit
import net.axay.kspigot.annotations.NMS_General import net.axay.kspigot.annotations.NMS_General
import net.axay.kspigot.chat.literalText import net.axay.kspigot.chat.literalText
import net.axay.kspigot.extensions.onlinePlayers import net.axay.kspigot.extensions.onlinePlayers
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import net.axay.kspigot.pluginmessages.PluginMessageConnect import net.axay.kspigot.pluginmessages.PluginMessageConnect
import net.md_5.bungee.api.ChatMessageType import net.md_5.bungee.api.ChatMessageType
import org.bukkit.Location import org.bukkit.Location
@@ -73,28 +73,28 @@ fun Player.feedSaturate() {
* Hides the player for all [onlinePlayers]. * Hides the player for all [onlinePlayers].
*/ */
fun Player.disappear() { fun Player.disappear() {
onlinePlayers.filter { it != this }.forEach { it.hidePlayer(KSpigotMainInstance, this) } onlinePlayers.filter { it != this }.forEach { it.hidePlayer(PluginInstance, this) }
} }
/** /**
* Shows the player for all [onlinePlayers]. * Shows the player for all [onlinePlayers].
*/ */
fun Player.appear() { fun Player.appear() {
onlinePlayers.filter { it != this }.forEach { it.showPlayer(KSpigotMainInstance, this) } onlinePlayers.filter { it != this }.forEach { it.showPlayer(PluginInstance, this) }
} }
/** /**
* Hides all online players from this player. * Hides all online players from this player.
*/ */
fun Player.hideOnlinePlayers() { fun Player.hideOnlinePlayers() {
onlinePlayers.filter { it != this }.forEach { this.hidePlayer(KSpigotMainInstance, it) } onlinePlayers.filter { it != this }.forEach { this.hidePlayer(PluginInstance, it) }
} }
/** /**
* Shows all online players to this player. * Shows all online players to this player.
*/ */
fun Player.showOnlinePlayers() { fun Player.showOnlinePlayers() {
onlinePlayers.filter { it != this }.forEach { this.showPlayer(KSpigotMainInstance, it) } onlinePlayers.filter { it != this }.forEach { this.showPlayer(PluginInstance, it) }
} }
/** /**

View File

@@ -4,7 +4,7 @@ package net.axay.kspigot.gui
import net.axay.kspigot.event.listen import net.axay.kspigot.event.listen
import net.axay.kspigot.extensions.bukkit.closeForViewers import net.axay.kspigot.extensions.bukkit.closeForViewers
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import org.bukkit.entity.Player import org.bukkit.entity.Player
import org.bukkit.event.inventory.InventoryCloseEvent import org.bukkit.event.inventory.InventoryCloseEvent
import org.bukkit.event.player.PlayerQuitEvent import org.bukkit.event.player.PlayerQuitEvent
@@ -194,7 +194,7 @@ class GUIInstance<T : ForInventory>(
* (KSpigot will listen for actions in the inventory.) * (KSpigot will listen for actions in the inventory.)
*/ */
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
fun register() = KSpigotMainInstance.guiHolder.register(this as GUIInstance<ForInventory>) fun register() = PluginInstance.guiHolder.register(this as GUIInstance<ForInventory>)
/** /**
* Stops KSpigot from listening to actions in this * Stops KSpigot from listening to actions in this
@@ -202,7 +202,7 @@ class GUIInstance<T : ForInventory>(
*/ */
fun unregister() { fun unregister() {
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
KSpigotMainInstance.guiHolder.unregister(this as GUIInstance<ForInventory>) PluginInstance.guiHolder.unregister(this as GUIInstance<ForInventory>)
// unregister this inv from all elements // unregister this inv from all elements
currentElements.forEach { it.stopUsing(this) } currentElements.forEach { it.stopUsing(this) }
currentElements.clear() currentElements.clear()

View File

@@ -9,9 +9,14 @@ import net.axay.kspigot.runnables.KRunnableHolder
import org.bukkit.plugin.java.JavaPlugin import org.bukkit.plugin.java.JavaPlugin
/** /**
* The main plugin instance. * The main plugin instance. Available with public visibility.
*/ */
lateinit var KSpigotMainInstance: KSpigot val KSpigotMainInstance: KSpigot get() = PluginInstance
/**
* The main plugin instance. Less complicated name for internal usage.
*/
internal lateinit var PluginInstance: KSpigot
private set private set
/** /**
@@ -50,10 +55,10 @@ abstract class KSpigot : JavaPlugin() {
open fun shutdown() {} open fun shutdown() {}
final override fun onLoad() { final override fun onLoad() {
if (::KSpigotMainInstance.isInitialized) { if (::PluginInstance.isInitialized) {
console.warn("The main instance of KSpigot has been modified, even though it has already been set by another plugin!") console.warn("The main instance of KSpigot has been modified, even though it has already been set by another plugin!")
} }
KSpigotMainInstance = this PluginInstance = this
load() load()
} }

View File

@@ -1,7 +1,7 @@
package net.axay.kspigot.pluginmessages package net.axay.kspigot.pluginmessages
import net.axay.kspigot.extensions.onlinePlayers import net.axay.kspigot.extensions.onlinePlayers
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import org.bukkit.entity.Player import org.bukkit.entity.Player
import java.io.ByteArrayOutputStream import java.io.ByteArrayOutputStream
import java.io.DataInputStream import java.io.DataInputStream
@@ -61,5 +61,5 @@ fun sendPluginMessageToBungeeCord(
if (onResponse != null) if (onResponse != null)
BungeePluginMessageResponseCallback(subChannel, responseTimeout, onResponse) BungeePluginMessageResponseCallback(subChannel, responseTimeout, onResponse)
player.sendPluginMessage(KSpigotMainInstance, "BungeeCord", msgbytes.toByteArray()) player.sendPluginMessage(PluginInstance, "BungeeCord", msgbytes.toByteArray())
} }

View File

@@ -2,7 +2,7 @@
package net.axay.kspigot.runnables package net.axay.kspigot.runnables
import net.axay.kspigot.main.KSpigotMainInstance import net.axay.kspigot.main.PluginInstance
import org.bukkit.Bukkit import org.bukkit.Bukkit
import org.bukkit.scheduler.BukkitRunnable import org.bukkit.scheduler.BukkitRunnable
@@ -77,21 +77,21 @@ fun task(
if (isCancelled) { if (isCancelled) {
if (safe || ranOut) if (safe || ranOut)
KSpigotMainInstance.kRunnableHolder.activate(this) PluginInstance.kRunnableHolder.activate(this)
else else
KSpigotMainInstance.kRunnableHolder.remove(this) PluginInstance.kRunnableHolder.remove(this)
} }
} }
} }
if (endCallback != null) KSpigotMainInstance.kRunnableHolder.add(bukkitRunnable, endCallback, safe) if (endCallback != null) PluginInstance.kRunnableHolder.add(bukkitRunnable, endCallback, safe)
if (period != null) if (period != null)
if (sync) bukkitRunnable.runTaskTimer(KSpigotMainInstance, delay, period) if (sync) bukkitRunnable.runTaskTimer(PluginInstance, delay, period)
else bukkitRunnable.runTaskTimerAsynchronously(KSpigotMainInstance, delay, period) else bukkitRunnable.runTaskTimerAsynchronously(PluginInstance, delay, period)
else else
if (sync) bukkitRunnable.runTaskLater(KSpigotMainInstance, delay) if (sync) bukkitRunnable.runTaskLater(PluginInstance, delay)
else bukkitRunnable.runTaskLaterAsynchronously(KSpigotMainInstance, delay) else bukkitRunnable.runTaskLaterAsynchronously(PluginInstance, delay)
return bukkitRunnable return bukkitRunnable
} }
@@ -102,9 +102,9 @@ fun task(
*/ */
fun taskRunLater(delay: Long, sync: Boolean = true, runnable: () -> Unit) { fun taskRunLater(delay: Long, sync: Boolean = true, runnable: () -> Unit) {
if (sync) if (sync)
Bukkit.getScheduler().runTaskLater(KSpigotMainInstance, runnable, delay) Bukkit.getScheduler().runTaskLater(PluginInstance, runnable, delay)
else else
Bukkit.getScheduler().runTaskLaterAsynchronously(KSpigotMainInstance, runnable, delay) Bukkit.getScheduler().runTaskLaterAsynchronously(PluginInstance, runnable, delay)
} }
/** /**
@@ -122,9 +122,9 @@ fun taskRun(sync: Boolean = true, runnable: () -> Unit) {
/** /**
* Starts a synchronous task. * Starts a synchronous task.
*/ */
fun sync(runnable: () -> Unit) = Bukkit.getScheduler().runTask(KSpigotMainInstance, runnable) fun sync(runnable: () -> Unit) = Bukkit.getScheduler().runTask(PluginInstance, runnable)
/** /**
* Starts an asynchronous task. * Starts an asynchronous task.
*/ */
fun async(runnable: () -> Unit) = Bukkit.getScheduler().runTaskAsynchronously(KSpigotMainInstance, runnable) fun async(runnable: () -> Unit) = Bukkit.getScheduler().runTaskAsynchronously(PluginInstance, runnable)