Add annotation for marking plugin main class.

This commit is contained in:
2023-02-05 19:37:59 -08:00
parent 2e05aef95c
commit f96948beb5
6 changed files with 18 additions and 7 deletions

View File

@ -0,0 +1,3 @@
package gay.pizza.foundation.common
annotation class PluginMainClass

View File

@ -2,6 +2,7 @@ package gay.pizza.foundation.bifrost
import com.charleskorn.kaml.Yaml
import gay.pizza.foundation.bifrost.model.BifrostConfig
import gay.pizza.foundation.common.PluginMainClass
import gay.pizza.foundation.core.FoundationCorePlugin
import gay.pizza.foundation.core.Util
import gay.pizza.foundation.core.util.AdvancementTitleCache
@ -29,6 +30,7 @@ import kotlin.io.path.inputStream
import net.dv8tion.jda.api.hooks.EventListener as DiscordEventListener
import org.bukkit.event.Listener as BukkitEventListener
@PluginMainClass
class FoundationBifrostPlugin : JavaPlugin(), DiscordEventListener, BukkitEventListener {
private lateinit var config: BifrostConfig
private var jda: JDA? = null
@ -158,7 +160,7 @@ class FoundationBifrostPlugin : JavaPlugin(), DiscordEventListener, BukkitEventL
if (!config.channel.sendPlayerDeath) return
@Suppress("DEPRECATION")
var deathMessage = e.deathMessage
if (deathMessage == null || deathMessage.isBlank()) {
if (deathMessage.isNullOrBlank()) {
deathMessage = "${e.player.name} died"
}
sendEmbedMessage(Color.YELLOW, deathMessage)

View File

@ -2,11 +2,13 @@ package gay.pizza.foundation.chaos
import com.charleskorn.kaml.Yaml
import gay.pizza.foundation.chaos.model.ChaosConfig
import gay.pizza.foundation.common.PluginMainClass
import gay.pizza.foundation.core.FoundationCorePlugin
import gay.pizza.foundation.core.Util
import org.bukkit.plugin.java.JavaPlugin
import kotlin.io.path.inputStream
@PluginMainClass
class FoundationChaosPlugin : JavaPlugin() {
lateinit var config: ChaosConfig

View File

@ -1,5 +1,6 @@
package gay.pizza.foundation.core
import gay.pizza.foundation.common.PluginMainClass
import gay.pizza.foundation.core.abstraction.FoundationPlugin
import gay.pizza.foundation.core.features.backup.BackupFeature
import gay.pizza.foundation.core.features.dev.DevFeature
@ -13,13 +14,14 @@ import gay.pizza.foundation.core.features.world.WorldFeature
import org.koin.dsl.module
import java.nio.file.Path
@PluginMainClass
class FoundationCorePlugin : FoundationPlugin() {
private lateinit var _pluginDataPath: Path
var pluginDataPath: Path
/**
* Data path of the core plugin.
* Can be used as a sanity check of sorts for dependencies to be sure the plugin is loaded.
* Can be used as a check of sorts for dependencies to be sure the plugin is loaded.
*/
get() {
if (!::_pluginDataPath.isInitialized) {

View File

@ -3,6 +3,7 @@ package gay.pizza.foundation.heimdall.plugin
import com.charleskorn.kaml.Yaml
import com.zaxxer.hikari.HikariConfig
import com.zaxxer.hikari.HikariDataSource
import gay.pizza.foundation.common.PluginMainClass
import gay.pizza.foundation.core.Util
import gay.pizza.foundation.heimdall.plugin.buffer.BufferFlushThread
import gay.pizza.foundation.heimdall.plugin.buffer.EventBuffer
@ -26,7 +27,8 @@ import java.util.*
import java.util.concurrent.ConcurrentHashMap
import kotlin.io.path.inputStream
class HeimdallPlugin : JavaPlugin(), Listener {
@PluginMainClass
class FoundationHeimdallPlugin : JavaPlugin(), Listener {
private lateinit var config: HeimdallConfig
private lateinit var pool: HikariDataSource
internal var db: Database? = null
@ -45,7 +47,7 @@ class HeimdallPlugin : JavaPlugin(), Listener {
val pluginDataPath = dataFolder.toPath()
pluginDataPath.toFile().mkdir()
val configPath = Util.copyDefaultConfig<HeimdallPlugin>(
val configPath = Util.copyDefaultConfig<FoundationHeimdallPlugin>(
slF4JLogger,
pluginDataPath,
"heimdall.yaml"
@ -67,7 +69,7 @@ class HeimdallPlugin : JavaPlugin(), Listener {
idleTimeout = Duration.ofMinutes(5).toMillis()
maxLifetime = Duration.ofMinutes(10).toMillis()
})
val initMigrationContent = HeimdallPlugin::class.java.getResourceAsStream(
val initMigrationContent = FoundationHeimdallPlugin::class.java.getResourceAsStream(
"/init.sql"
)?.readAllBytes()?.decodeToString() ?: throw RuntimeException("Unable to find Heimdall init.sql")

View File

@ -1,10 +1,10 @@
package gay.pizza.foundation.heimdall.plugin.buffer
import gay.pizza.foundation.heimdall.plugin.HeimdallPlugin
import gay.pizza.foundation.heimdall.plugin.FoundationHeimdallPlugin
import org.jetbrains.exposed.sql.transactions.transaction
import java.util.concurrent.atomic.AtomicBoolean
class BufferFlushThread(val plugin: HeimdallPlugin, val buffer: EventBuffer) {
class BufferFlushThread(val plugin: FoundationHeimdallPlugin, val buffer: EventBuffer) {
private val running = AtomicBoolean(false)
private var thread: Thread? = null