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

View File

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

View File

@ -1,5 +1,6 @@
package gay.pizza.foundation.core package gay.pizza.foundation.core
import gay.pizza.foundation.common.PluginMainClass
import gay.pizza.foundation.core.abstraction.FoundationPlugin import gay.pizza.foundation.core.abstraction.FoundationPlugin
import gay.pizza.foundation.core.features.backup.BackupFeature import gay.pizza.foundation.core.features.backup.BackupFeature
import gay.pizza.foundation.core.features.dev.DevFeature 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 org.koin.dsl.module
import java.nio.file.Path import java.nio.file.Path
@PluginMainClass
class FoundationCorePlugin : FoundationPlugin() { class FoundationCorePlugin : FoundationPlugin() {
private lateinit var _pluginDataPath: Path private lateinit var _pluginDataPath: Path
var pluginDataPath: Path var pluginDataPath: Path
/** /**
* Data path of the core plugin. * 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() { get() {
if (!::_pluginDataPath.isInitialized) { if (!::_pluginDataPath.isInitialized) {

View File

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