1
0
Fork 0

feat: update to 1.21

This commit is contained in:
ineanto 2024-07-09 12:07:30 +02:00
parent 6e796febe4
commit bd41cacdb9
Signed by: ineanto
GPG key ID: E511F9CAA2F9CE84
9 changed files with 64 additions and 29 deletions

View file

@ -20,7 +20,9 @@ dependencies {
paperweight.paperDevBundle("1.21-R0.1-SNAPSHOT") paperweight.paperDevBundle("1.21-R0.1-SNAPSHOT")
// Game Libraries // Game Libraries
implementation("xyz.xenondevs.invui:invui:1.33") compileOnly("xyz.xenondevs.invui:invui:1.33")
compileOnly("xyz.xenondevs.invui:invui-kotlin:1.33")
implementation("ru.brikster:glyphs-api:1.1.0") implementation("ru.brikster:glyphs-api:1.1.0")
implementation("ru.brikster:glyphs-resources:1.1.0") implementation("ru.brikster:glyphs-resources:1.1.0")
implementation("team.unnamed:creative-api:1.7.2") implementation("team.unnamed:creative-api:1.7.2")
@ -38,10 +40,6 @@ kotlin {
} }
tasks { tasks {
assemble {
dependsOn(reobfJar)
}
runServer { runServer {
minecraftVersion("1.21") minecraftVersion("1.21")
} }

View file

@ -2,6 +2,7 @@ package xyz.ineanto.dragon
import com.google.common.cache.Cache import com.google.common.cache.Cache
import com.google.common.cache.CacheBuilder import com.google.common.cache.CacheBuilder
import io.papermc.paper.plugin.lifecycle.event.types.LifecycleEvents
import net.kyori.adventure.text.Component import net.kyori.adventure.text.Component
import net.kyori.adventure.text.format.NamedTextColor import net.kyori.adventure.text.format.NamedTextColor
import net.kyori.adventure.text.format.TextDecoration import net.kyori.adventure.text.format.TextDecoration
@ -17,13 +18,13 @@ import xyz.ineanto.dragon.event.end.BlockPlaceListener
import xyz.ineanto.dragon.event.end.EnderDragonListener import xyz.ineanto.dragon.event.end.EnderDragonListener
import xyz.ineanto.dragon.event.waiting.WaitingListener import xyz.ineanto.dragon.event.waiting.WaitingListener
import xyz.ineanto.dragon.player.PlayerManager import xyz.ineanto.dragon.player.PlayerManager
import xyz.ineanto.dragon.schematic.SchematicLoader
import xyz.ineanto.dragon.scoreboard.ScoreboardTeams import xyz.ineanto.dragon.scoreboard.ScoreboardTeams
import xyz.ineanto.dragon.tasks.GracePeriodTask import xyz.ineanto.dragon.tasks.GracePeriodTask
import xyz.ineanto.dragon.tasks.TimerTask import xyz.ineanto.dragon.tasks.TimerTask
import xyz.ineanto.dragon.teams.Team import xyz.ineanto.dragon.teams.Team
import xyz.ineanto.dragon.teams.TeamManager import xyz.ineanto.dragon.teams.TeamManager
import xyz.ineanto.dragon.world.WorldManager import xyz.ineanto.dragon.world.WorldManager
import xyz.xenondevs.invui.InvUI
import java.time.Duration import java.time.Duration
import java.time.Instant import java.time.Instant
import java.util.* import java.util.*
@ -58,8 +59,6 @@ class RunnerDragon : JavaPlugin() {
var TIMER_TASK: BukkitTask? = null var TIMER_TASK: BukkitTask? = null
var GRACE_PERIOD_TASK: BukkitTask? = null var GRACE_PERIOD_TASK: BukkitTask? = null
lateinit var LOBBY_SCHEMATIC: SchematicLoader
} }
lateinit var teamManager: TeamManager lateinit var teamManager: TeamManager
@ -68,8 +67,10 @@ class RunnerDragon : JavaPlugin() {
private lateinit var scoreboardTeams: ScoreboardTeams private lateinit var scoreboardTeams: ScoreboardTeams
@Suppress("UnstableApiUsage")
override fun onEnable() { override fun onEnable() {
instance = this instance = this
InvUI.getInstance().setPlugin(this)
playerManager = PlayerManager() playerManager = PlayerManager()
teamManager = TeamManager(this) teamManager = TeamManager(this)
@ -84,7 +85,11 @@ class RunnerDragon : JavaPlugin() {
server.pluginManager.registerEvents(BlockPlaceListener(), this) server.pluginManager.registerEvents(BlockPlaceListener(), this)
server.pluginManager.registerEvents(EntityDeathListener(), this) server.pluginManager.registerEvents(EntityDeathListener(), this)
server.pluginManager.registerEvents(EntityDamageListener(), this) server.pluginManager.registerEvents(EntityDamageListener(), this)
getCommand("rd")!!.setExecutor(MainCommand())
lifecycleManager.registerEventHandler(LifecycleEvents.COMMANDS) { event ->
val commands = event.registrar()
commands.register("rd", MainCommand())
}
worldManager = WorldManager(this) worldManager = WorldManager(this)
worldManager.init() worldManager.init()

View file

@ -0,0 +1,23 @@
package xyz.ineanto.dragon
import io.papermc.paper.plugin.loader.PluginClasspathBuilder
import io.papermc.paper.plugin.loader.PluginLoader
import io.papermc.paper.plugin.loader.library.impl.MavenLibraryResolver
import org.eclipse.aether.artifact.DefaultArtifact
import org.eclipse.aether.graph.Dependency
import org.eclipse.aether.repository.RemoteRepository
class RunnerDragonLoader : PluginLoader {
override fun classloader(classpathBuilder: PluginClasspathBuilder) {
val resolver = MavenLibraryResolver()
resolver.addRepository(
RemoteRepository.Builder("xenondevs", "default", "https://repo.xenondevs.xyz/releases/").build()
)
resolver.addDependency(Dependency(DefaultArtifact("xyz.xenondevs.invui:invui:pom:1.33"), null))
resolver.addDependency(Dependency(DefaultArtifact("xyz.xenondevs.invui:invui-kotlin:pom:1.33"), null))
classpathBuilder.addLibrary(resolver)
}
}

View file

@ -1,29 +1,32 @@
package xyz.ineanto.dragon.commands package xyz.ineanto.dragon.commands
import io.papermc.paper.command.brigadier.BasicCommand
import io.papermc.paper.command.brigadier.CommandSourceStack
import net.kyori.adventure.text.Component import net.kyori.adventure.text.Component
import net.kyori.adventure.text.format.NamedTextColor import net.kyori.adventure.text.format.NamedTextColor
import net.kyori.adventure.text.format.TextDecoration import net.kyori.adventure.text.format.TextDecoration
import org.bukkit.Bukkit import org.bukkit.Bukkit
import org.bukkit.command.Command
import org.bukkit.command.CommandExecutor
import org.bukkit.command.CommandSender
import org.bukkit.entity.Player import org.bukkit.entity.Player
import xyz.ineanto.dragon.RunnerDragon import xyz.ineanto.dragon.RunnerDragon
class MainCommand : CommandExecutor { @Suppress("UnstableApiUsage")
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<String>): Boolean { class MainCommand : BasicCommand {
if (sender is Player) { override fun execute(
val player: Player = sender stack: CommandSourceStack,
args: Array<out String>
) {
if (stack.sender is Player) {
val player: Player = stack.sender as Player
val dragonPlayer = RunnerDragon.instance.playerManager.getPlayer(player.uniqueId) val dragonPlayer = RunnerDragon.instance.playerManager.getPlayer(player.uniqueId)
if (player.isOp.not()) { if (player.isOp.not()) {
dragonPlayer.sendMessage(Component.text("Erreur: Status d'opérateur requis.")) dragonPlayer.sendMessage(Component.text("Erreur: Statut d'opérateur requis."))
return true return
} }
if (args.isEmpty()) { if (args.isEmpty()) {
dragonPlayer.sendMessage(Component.text("Argument manquant: /rd (teams/game/say)")) dragonPlayer.sendMessage(Component.text("Argument manquant: /rd (teams/game/say)"))
return true return
} }
when (args[0]) { when (args[0]) {
@ -38,7 +41,6 @@ class MainCommand : CommandExecutor {
.append(Component.text("Veuillez préciser un message.", NamedTextColor.RED)) .append(Component.text("Veuillez préciser un message.", NamedTextColor.RED))
.build() .build()
) )
return true
} }
val announcementComponent = Component.text() val announcementComponent = Component.text()
@ -51,6 +53,5 @@ class MainCommand : CommandExecutor {
} }
} }
} }
return true
} }
} }

View file

@ -19,7 +19,7 @@ class TeamsSubCommand {
.text() .text()
.append(Component.text("-", NamedTextColor.DARK_GRAY)) .append(Component.text("-", NamedTextColor.DARK_GRAY))
.appendSpace() .appendSpace()
.append(Component.text("Status:", NamedTextColor.GOLD)) .append(Component.text("État:", NamedTextColor.GOLD))
.appendSpace() .appendSpace()
if (RunnerDragon.TEAM_LOCK) { if (RunnerDragon.TEAM_LOCK) {

View file

@ -3,11 +3,17 @@ package xyz.ineanto.dragon.event
import org.bukkit.event.EventHandler import org.bukkit.event.EventHandler
import org.bukkit.event.Listener import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerRespawnEvent import org.bukkit.event.player.PlayerRespawnEvent
import xyz.ineanto.dragon.GameState
import xyz.ineanto.dragon.RunnerDragon
import xyz.ineanto.dragon.world.WorldManager import xyz.ineanto.dragon.world.WorldManager
class PlayerRespawnListener : Listener { class PlayerRespawnListener : Listener {
@EventHandler @EventHandler
fun onRespawn(event: PlayerRespawnEvent) { fun onRespawn(event: PlayerRespawnEvent) {
event.respawnLocation = WorldManager.GAME_WORLD.spawnLocation if (RunnerDragon.STATE == GameState.WAITING) {
event.respawnLocation = WorldManager.LIMBO_WORLD.spawnLocation
} else {
event.respawnLocation = WorldManager.GAME_WORLD.spawnLocation
}
} }
} }

View file

@ -25,16 +25,16 @@ class WorldManager(private val instance: RunnerDragon) {
} }
fun init(): Boolean { fun init(): Boolean {
val limboFolder = File(GAME_WORLD_NAME) val limboFolder = File(LIMBO_WORLD_NAME)
if (!limboFolder.exists()) { if (!limboFolder.exists()) {
// Limbo is the world where players are // Limbo is the world where players are
// held (hostage) before the game starts. // held (hostage) before the game starts.
instance.logger.severe("Limbo world doesn't exist! Generating an emergency spawn...") instance.logger.severe("Limbo world doesn't exist! Generating an emergency spawn...")
LIMBO_WORLD = createWorld(LIMBO_WORLD_NAME, World.Environment.NETHER, false) LIMBO_WORLD = createWorld(LIMBO_WORLD_NAME, World.Environment.NETHER, false)
} } else {
else { // Load the Limbo world
LIMBO_WORLD = Bukkit.getWorld(LIMBO_WORLD_NAME)!! LIMBO_WORLD = Bukkit.createWorld(WorldCreator(LIMBO_WORLD_NAME))!!
} }
LIMBO_SPAWN = LIMBO_WORLD.spawnLocation LIMBO_SPAWN = LIMBO_WORLD.spawnLocation

View file

@ -1,7 +1,9 @@
name: RunnerDragon name: RunnerDragon
version: '1.1'
api-version: '1.21'
main: xyz.ineanto.dragon.RunnerDragon main: xyz.ineanto.dragon.RunnerDragon
version: 1.1 loader: xyz.ineanto.dragon.RunnerDragonLoader
api-version: "1.21"
commands: commands:
rd: rd:
permission: "runnerdragon.admin" permission: "runnerdragon.admin"