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")
// 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-resources:1.1.0")
implementation("team.unnamed:creative-api:1.7.2")
@ -38,10 +40,6 @@ kotlin {
}
tasks {
assemble {
dependsOn(reobfJar)
}
runServer {
minecraftVersion("1.21")
}

View file

@ -2,6 +2,7 @@ package xyz.ineanto.dragon
import com.google.common.cache.Cache
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.format.NamedTextColor
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.waiting.WaitingListener
import xyz.ineanto.dragon.player.PlayerManager
import xyz.ineanto.dragon.schematic.SchematicLoader
import xyz.ineanto.dragon.scoreboard.ScoreboardTeams
import xyz.ineanto.dragon.tasks.GracePeriodTask
import xyz.ineanto.dragon.tasks.TimerTask
import xyz.ineanto.dragon.teams.Team
import xyz.ineanto.dragon.teams.TeamManager
import xyz.ineanto.dragon.world.WorldManager
import xyz.xenondevs.invui.InvUI
import java.time.Duration
import java.time.Instant
import java.util.*
@ -58,8 +59,6 @@ class RunnerDragon : JavaPlugin() {
var TIMER_TASK: BukkitTask? = null
var GRACE_PERIOD_TASK: BukkitTask? = null
lateinit var LOBBY_SCHEMATIC: SchematicLoader
}
lateinit var teamManager: TeamManager
@ -68,8 +67,10 @@ class RunnerDragon : JavaPlugin() {
private lateinit var scoreboardTeams: ScoreboardTeams
@Suppress("UnstableApiUsage")
override fun onEnable() {
instance = this
InvUI.getInstance().setPlugin(this)
playerManager = PlayerManager()
teamManager = TeamManager(this)
@ -84,7 +85,11 @@ class RunnerDragon : JavaPlugin() {
server.pluginManager.registerEvents(BlockPlaceListener(), this)
server.pluginManager.registerEvents(EntityDeathListener(), 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.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
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.format.NamedTextColor
import net.kyori.adventure.text.format.TextDecoration
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 xyz.ineanto.dragon.RunnerDragon
class MainCommand : CommandExecutor {
override fun onCommand(sender: CommandSender, command: Command, label: String, args: Array<String>): Boolean {
if (sender is Player) {
val player: Player = sender
@Suppress("UnstableApiUsage")
class MainCommand : BasicCommand {
override fun execute(
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)
if (player.isOp.not()) {
dragonPlayer.sendMessage(Component.text("Erreur: Status d'opérateur requis."))
return true
dragonPlayer.sendMessage(Component.text("Erreur: Statut d'opérateur requis."))
return
}
if (args.isEmpty()) {
dragonPlayer.sendMessage(Component.text("Argument manquant: /rd (teams/game/say)"))
return true
return
}
when (args[0]) {
@ -38,7 +41,6 @@ class MainCommand : CommandExecutor {
.append(Component.text("Veuillez préciser un message.", NamedTextColor.RED))
.build()
)
return true
}
val announcementComponent = Component.text()
@ -51,6 +53,5 @@ class MainCommand : CommandExecutor {
}
}
}
return true
}
}

View file

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

View file

@ -3,11 +3,17 @@ package xyz.ineanto.dragon.event
import org.bukkit.event.EventHandler
import org.bukkit.event.Listener
import org.bukkit.event.player.PlayerRespawnEvent
import xyz.ineanto.dragon.GameState
import xyz.ineanto.dragon.RunnerDragon
import xyz.ineanto.dragon.world.WorldManager
class PlayerRespawnListener : Listener {
@EventHandler
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 {
val limboFolder = File(GAME_WORLD_NAME)
val limboFolder = File(LIMBO_WORLD_NAME)
if (!limboFolder.exists()) {
// Limbo is the world where players are
// held (hostage) before the game starts.
instance.logger.severe("Limbo world doesn't exist! Generating an emergency spawn...")
LIMBO_WORLD = createWorld(LIMBO_WORLD_NAME, World.Environment.NETHER, false)
}
else {
LIMBO_WORLD = Bukkit.getWorld(LIMBO_WORLD_NAME)!!
} else {
// Load the Limbo world
LIMBO_WORLD = Bukkit.createWorld(WorldCreator(LIMBO_WORLD_NAME))!!
}
LIMBO_SPAWN = LIMBO_WORLD.spawnLocation

View file

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