Fixes and De-Spagetti Code

This commit is contained in:
2024-12-12 16:09:25 +01:00
parent b12846d011
commit e1d3e47845
4 changed files with 9 additions and 9 deletions
@@ -38,8 +38,6 @@ class TNTLeague : JavaPlugin() {
} }
override fun onEnable() { override fun onEnable() {
saveResource("config.yml", false)
message = Message("de.steamwar.tntleague.TNTLeague", classLoader) message = Message("de.steamwar.tntleague.TNTLeague", classLoader)
server.pluginManager.registerEvents(LobbyListener, this) server.pluginManager.registerEvents(LobbyListener, this)
@@ -41,7 +41,7 @@ object LobbyListener: Listener {
@EventHandler(priority = EventPriority.LOWEST) @EventHandler(priority = EventPriority.LOWEST)
fun onPlayerQuit(e: PlayerQuitEvent) { fun onPlayerQuit(e: PlayerQuitEvent) {
TNTLeagueGame.getTeam(e.player)?.leave(e.player) TNTLeagueGame.playerLeave(e.player)
} }
@EventHandler @EventHandler
@@ -175,10 +175,7 @@ object TNTLeagueGame {
blueTeam.invites.remove(player) blueTeam.invites.remove(player)
redTeam.invites.remove(player) redTeam.invites.remove(player)
getTeam(player)?.apply { getTeam(player)?.apply {
members.remove(player) remove(player)
if (leader == player && members.isNotEmpty() && state == GameState.RUNNING) {
win(this.opposite, WinReason.LEAVE)
}
} }
} }
@@ -22,6 +22,8 @@ package de.steamwar.tntleague.game
import de.steamwar.tntleague.colorByTeam import de.steamwar.tntleague.colorByTeam
import de.steamwar.tntleague.config.TNTLeagueWorldConfig import de.steamwar.tntleague.config.TNTLeagueWorldConfig
import de.steamwar.tntleague.config.targetedBlocks import de.steamwar.tntleague.config.targetedBlocks
import de.steamwar.tntleague.game.TNTLeagueGame.WinReason
import de.steamwar.tntleague.game.TNTLeagueGame.win
import de.steamwar.tntleague.message import de.steamwar.tntleague.message
import de.steamwar.tntleague.plugin import de.steamwar.tntleague.plugin
import net.kyori.adventure.text.Component import net.kyori.adventure.text.Component
@@ -127,9 +129,8 @@ data class TNTLeagueTeam(val config: TNTLeagueWorldConfig.TeamConfig, private va
} }
fun leave(player: Player) { fun leave(player: Player) {
if (TNTLeagueGame.state != TNTLeagueGame.GameState.RUNNING) {
members.remove(player) members.remove(player)
if (TNTLeagueGame.state != TNTLeagueGame.GameState.RUNNING) {
if (members.isEmpty()) { if (members.isEmpty()) {
plugin.server.onlinePlayers.firstOrNull { it != player && TNTLeagueGame.getTeam(it) == null }?.run { plugin.server.onlinePlayers.firstOrNull { it != player && TNTLeagueGame.getTeam(it) == null }?.run {
members.add(this) members.add(this)
@@ -142,6 +143,10 @@ data class TNTLeagueTeam(val config: TNTLeagueWorldConfig.TeamConfig, private va
isReady = false isReady = false
} }
} }
} else if (TNTLeagueGame.state == TNTLeagueGame.GameState.RUNNING) {
if (members.isEmpty()) {
win(this.opposite, WinReason.LEAVE)
}
} }
} }