More stuff.

This commit is contained in:
2023-03-05 17:33:54 -08:00
parent c973a1a3c6
commit 3d4862adc0
25 changed files with 345 additions and 69 deletions

View File

@ -2,14 +2,14 @@ package gay.pizza.foundation.chaos
import com.charleskorn.kaml.Yaml
import gay.pizza.foundation.chaos.model.ChaosConfig
import gay.pizza.foundation.common.BaseFoundationPlugin
import gay.pizza.foundation.common.FoundationCoreLoader
import gay.pizza.foundation.shared.PluginMainClass
import gay.pizza.foundation.shared.copyDefaultConfig
import org.bukkit.plugin.java.JavaPlugin
import kotlin.io.path.inputStream
@PluginMainClass
class FoundationChaosPlugin : JavaPlugin() {
class FoundationChaosPlugin : BaseFoundationPlugin() {
lateinit var config: ChaosConfig
val controller by lazy {
@ -24,7 +24,6 @@ class FoundationChaosPlugin : JavaPlugin() {
"chaos.yaml"
)
config = Yaml.default.decodeFromStream(ChaosConfig.serializer(), configPath.inputStream())
val chaosCommand = getCommand("chaos")!!
chaosCommand.setExecutor(ChaosToggleCommand())
registerCommandExecutor("chaos", ChaosToggleCommand())
}
}

View File

@ -8,6 +8,7 @@ object ChaosModules {
TeleportAllEntitiesNearestPlayer(plugin),
KillRandomPlayer(plugin),
TntAllPlayers(plugin),
MegaTnt(plugin)
)
MegaTnt(plugin),
PlayerSwap(plugin)
).shuffled()
}

View File

@ -0,0 +1,30 @@
package gay.pizza.foundation.chaos.modules
import org.bukkit.Location
import org.bukkit.entity.Player
import org.bukkit.plugin.Plugin
class PlayerSwap(val plugin: Plugin) : ChaosModule {
override fun id(): String = "player-swap"
override fun name(): String = "Player Swap"
override fun what(): String = "Randomly swaps player positions."
override fun activate() {
for (world in plugin.server.worlds) {
if (world.playerCount <= 0) {
continue
}
val players = world.players
val map = mutableMapOf<Player, Location>()
for (player in players) {
val next = players.filter { it != player }.randomOrNull() ?: continue
map[player] = next.location.clone()
}
for ((player, next) in map) {
player.teleport(next)
}
}
}
}