Change VolcanoAPI to McScrimsAPI

This commit is contained in:
TDSTOS
2026-04-15 21:51:35 +02:00
parent 50a8a4efe7
commit 176bd7e533
4 changed files with 24 additions and 49 deletions

View File

@@ -35,7 +35,7 @@ dependencies {
compileOnly("com.lunarclient:apollo-api:1.2.4")
compileOnly("com.lunarclient:apollo-extra-adventure4:1.2.4")
compileOnly(files( "${rootProject.projectDir}/libs/VolcanoAPI.jar" ))
compileOnly(files( "${rootProject.projectDir}/libs/McScrims-CoreSystem-1.0.0.jar" ))
compileOnly("io.papermc.paper:paper-api:1.21.1-R0.1-SNAPSHOT")
compileOnly("com.sk89q.worldedit:worldedit-core:7.2.17-SNAPSHOT")

View File

@@ -46,9 +46,9 @@ import club.mcscrims.speedhg.perk.impl.ScavengerPerk
import club.mcscrims.speedhg.perk.impl.VampirePerk
import club.mcscrims.speedhg.perk.listener.PerkEventDispatcher
import club.mcscrims.speedhg.ranking.RankingManager
import club.mcscrims.speedhg.scoreboard.McScrimsRankProvider
import club.mcscrims.speedhg.scoreboard.ScoreboardManager
import club.mcscrims.speedhg.scoreboard.TablistManager
import club.mcscrims.speedhg.scoreboard.VolcanoServerRankProvider
import club.mcscrims.speedhg.team.gui.PresetTeamManager
import club.mcscrims.speedhg.team.gui.TeamSelectionListener
import club.mcscrims.speedhg.webhook.DiscordWebhookManager
@@ -189,7 +189,7 @@ class SpeedHG : JavaPlugin() {
discordWebhookManager = DiscordWebhookManager( this )
lunarClientManager = LunarClientManager( this )
lobbyItemManager = LobbyItemManager( this )
tablistManager = TablistManager( this, VolcanoServerRankProvider() )
tablistManager = TablistManager( this, McScrimsRankProvider() )
presetTeamManager = PresetTeamManager( this )
perkManager = PerkManager( this )
@@ -310,7 +310,7 @@ class SpeedHG : JavaPlugin() {
pm.registerEvents( MenuListener(), this )
pm.registerEvents(PerkEventDispatcher( this, perkManager ), this )
pm.registerEvents( lobbyItemManager, this )
pm.registerEvents(ChatListener( this, VolcanoServerRankProvider() ), this )
pm.registerEvents(ChatListener( this, McScrimsRankProvider() ), this )
pm.registerEvents(KnockbackListener( this ), this )
pm.registerEvents(TeamSelectionListener( this ), this )
pm.registerEvents( HungerListener(), this )

View File

@@ -1,7 +1,7 @@
package club.mcscrims.speedhg.scoreboard
import me.zowpy.core.api.CoreAPI
import me.zowpy.core.api.rank.Rank
import club.mcscrims.core.api.McScrimsAPI
import club.mcscrims.core.rank.model.Rank
import net.kyori.adventure.text.Component
import net.kyori.adventure.text.minimessage.MiniMessage
import org.bukkit.entity.Player
@@ -16,7 +16,7 @@ interface ServerRankProvider {
* in [TablistManager.WEIGHT_MAP] zeigt.
* Muss einer der Keys sein: `"admin"`, `"mod"`, `"helper"`, `"player"`.
*/
fun getRankWeight( player: Player ): String
fun getRankWeight( player: Player): String
/**
* Gibt die formatierte Prefix-Komponente zurück, die VOR dem
@@ -34,50 +34,19 @@ interface ServerRankProvider {
*/
fun getRankColor( player: Player ): String
}
/**
* Einfache Implementierung auf Basis von Bukkit-Permissions.
*/
class DefaultServerRankProvider : ServerRankProvider {
private val mm = MiniMessage.miniMessage()
override fun getRankWeight(
player: Player
): String = when {
player.hasPermission( "group.admin" ) -> "admin"
player.hasPermission( "group.mod" ) -> "mod"
player.hasPermission( "group.helper" ) -> "helper"
else -> "player"
}
override fun getRankPrefix(
player: Player
): Component = when {
player.hasPermission( "group.admin" ) -> mm.deserialize( "<red><bold>[Admin]</bold></red>" )
player.hasPermission( "group.mod" ) -> mm.deserialize( "<green><bold>[Mod]</bold></green>" )
player.hasPermission( "group.helper" ) -> mm.deserialize( "<aqua><bold>[Helper]</bold></aqua>" )
else -> Component.empty()
}
override fun getRankColor(
player: Player
): String = when {
player.hasPermission( "group.admin" ) -> "<red>"
player.hasPermission( "group.mod" ) -> "<green>"
player.hasPermission( "group.helper" ) -> "<aqua>"
else -> "<gray>"
}
/**
* Gibt den Namen vom Rang zurück
*/
fun getRankName( player: Player ): String
}
/**
* Volcano Implementierung
* McScrimsAPI Implementierung
*/
class VolcanoServerRankProvider : ServerRankProvider {
class McScrimsRankProvider : ServerRankProvider {
private val coreAPI get() = CoreAPI.getInstance()
private val mcScrimsAPI get() = McScrimsAPI.get()
private val mm = MiniMessage.miniMessage()
override fun getRankWeight(
@@ -100,16 +69,22 @@ class VolcanoServerRankProvider : ServerRankProvider {
player: Player
): String
{
val rawColor = getRank( player ).displayColor
val rawColor = getRank( player ).prefix
return convertLegacyToMiniMessage( rawColor )
}
override fun getRankName(
player: Player
): String
{
return getRank( player ).id
}
private fun getRank(
player: Player
): Rank
{
val rank = coreAPI.profileManager.getByUUID( player.uniqueId ).realRank
return coreAPI.rankManager.getByUUID( rank.uuid )
return mcScrimsAPI.getRank( player.uniqueId )
}
/**

View File

@@ -58,7 +58,7 @@ import java.util.concurrent.ConcurrentHashMap
*/
class TablistManager(
private val plugin: SpeedHG,
val rankProvider: ServerRankProvider = DefaultServerRankProvider()
val rankProvider: ServerRankProvider = McScrimsRankProvider()
) : Listener {
// =========================================================================