Un proxy fait paraître plusieurs serveurs comme un seul. Il ne leur fait rien partager. Chaque backend a son monde, ses fichiers de joueur et sa propre idée de qui vous êtes — sans les relier, passer d'un serveur à l'autre revient donc à s'éloigner de son inventaire.
Ce qui est séparé par défaut
| Donnée | Où elle vit | Partagée ? |
|---|---|---|
| Inventaire et position | playerdata sur chaque backend | Non |
| Permissions | Le stockage de l'extension de permissions | Seulement si elle utilise une base partagée |
| Solde d'économie | Le stockage de l'extension d'économie | Pareil : base de données ou rien |
| Maisons et warps | Par backend | Non |
| Bannissements | banned-players.json de chaque backend | Non — et celui-là compte |
Bannir quelqu'un sur le serveur survie le laisse libre de rejoindre le lobby, et de là n'importe où. Les bannissements réseau doivent être émis au proxy, ou par une extension de sanctions à stockage partagé. C'est la faille dont on apprend l'existence par la personne qu'on a bannie.
Les relier correctement
- Donnez aux extensions partagées une base de données partagée
Les extensions de permissions et d'économie supportent MySQL précisément pour cela. Une base, tous les backends pointant dessus, et un grade accordé n'importe où s'applique partout.
- Décidez des inventaires délibérément
Partager l'inventaire entre un lobby et un monde survie est généralement une erreur ; le partager entre deux mondes survie est généralement juste. Il existe une extension pour chaque comportement, et le défaut n'est ni l'un ni l'autre.
- Placez les sanctions sur le proxy
Une extension de sanctions qui tourne sur le proxy avec une base partagée est le seul dispositif où un bannissement signifie ce que les gens croient.
- Testez avec un second compte
Connectez-vous, obtenez un grade, changez de serveur, vérifiez que le grade est toujours là. Puis faites-vous bannir et essayez le lobby. Les deux prennent deux minutes et échouent plus souvent qu'on ne pense.
Le dispositif habituel : permissions et économie partagées, inventaires séparés, bannissements sur tout le réseau. Cette combinaison donne aux joueurs une identité et un portefeuille tout en laissant à chaque serveur son propre gameplay.
Un grade accordé sur un backend apparaît sur un autre, un bannissement émis n'importe où bloque tout le réseau, et les inventaires se comportent comme configurés et non comme supposés.