Respawn après mort envoie le joueur dans le mauvais monde #4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Sur
mc-plot, le serveur alevel-name=plotsdansserver.properties. EkaiiPlots est configuré avecplot.world: world(monde secondaire créé par le plugin).Le
bukkit.ymlcontient actuellement :Résultat : les deux mondes (
plots= monde principal Bukkit, etworld= monde EkaiiPlots) ont été générés avec le générateur de parcelles. Le mondeplotsne devrait pas avoir ce générateur.Symptôme
Quand un joueur meurt (sans lit/ancre de respawn), Bukkit le renvoie au spawn du monde principal (
plots). Ce monde ayant lui aussi le terrain EkaiiPlots, le joueur arrive dans un "second monde plot" identique visuellement àworld, mais ce n'est pas le bon. Il faut se déconnecter/reconnecter pour queteleport-on-joinle ramène dansworld.Cause racine
PlotEntryListenergèrePlayerJoinEvent(téléportation versworldau login) mais pasPlayerRespawnEvent. Il n'y a aucun redirect vers le plot world après une mort.La présence de
worlds.plots.generator: EkaiiPlotsdansbukkit.ymlest un problème de config serveur (hors scope EkaiiPlots), mais aggrave le symptôme : même sans fix code, siplotsétait vanilla le joueur arriverait au moins dans un monde normal.Fix à apporter dans EkaiiPlots
Ajouter un handler
PlayerRespawnEventdansPlotEntryListener(le listener existe déjà, il gère join/move/quit) :Notes d'implémentation :
resolveWorldSpawn(World)existe déjà dansPlotEntryListener, rien à dupliquer.teleportOnJoinest déjà un champ de la classe — le réutiliser garde le comportement cohérent avec le login.PlayerRespawnEventse comporte comme en Paper standard —event.setRespawnLocation()est la bonne API, pas de scheduling spécial nécessaire.plotWorld: un respawn sans lit dansworldenverrait aussi au spawn global, autant toujours passer parresolveWorldSpawn.Fix côté serveur (hors EkaiiPlots, à faire manuellement)
Retirer l'entrée parasite de
bukkit.yml:Puis supprimer les region files du monde
plots(généré à tort avec EkaiiPlots) pour qu'il reparte en vanilla :Ce fix serveur supprime la confusion visuelle même avant que le fix code soit déployé.