Aller au contenu
PheonBest

Gestion des variables sur des serveurs Bungeecord

Messages recommandés

Bonjour à tous !

Je me demandais quelle serait la meilleure solution de gestion des variables sur un serveur Bungeecord, sachant que l'on peut utiliser les serveurs mysql, les variables bungeecord (variables stockées sur le serveur bungeecord) et les variables locales (pas temporaires comme {_temporaire}).

 

Petit point sur les variables bungeecord: Avec l'addon Skungee:

ExprNetworkVariable: - '[the] [skungee] (global|network|bungee[[ ]cord]) variable [(from|of)] %object%'

 

Plus précisément, quand les utiliser afin d'adapter leur emploi à la situation ?

A la connexion par exemple on chercherait les variables concernant le joueur grâce aux variables bungeecord. On définit des variables locales grâce aux variables bungeecord:

set {connect_times.%uuid of player%} to bungee variable of {connect_times.%uuid of player%}

 

On utilise ces variables pour faire fonctionner le serveur.

 

A la déconnexion, on définit les variables bungeecord et mysql grâce aux les variables locales:

if {connect_times.%uuid of player%} != bungee variable of {connect_times.%uuid of player%}:

set bungee variable of {connect_times.%uuid of player%} to {connect_times.%uuid of player%}

mysql update "UPDATE `StatsPlayer` set `connect_times` = '%{connect_times.%uuid of player%}%' WHERE `uuid` = '%uuid of player%'"

 

Merci à vous et à bientôt,

Pheon'.

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(e) (modifié)

La meilleure solution, je ne pense absolument pas, mais je te propose celle que j'utilise avec skUtilities : j'ai activé cette option

useRootAsDefaultPath: true

puis je stocke les valeurs dans un fichier yml dans un dossier que tous les serveurs peuvent atteindre

set yaml value "player.ip" from file "/home/serveurs/data/players/%player%.yml" to "%ip of player%"

puis pour récupérer la valeur tu fais

set {_playerip} to yaml value "player.ip" from file "/home/serveurs/data/players/%player%.yml" to "%player%"

L'avantage c'est que j'ai pas à télécharger d'addon bungee justement

 

Edit: et c'est péter parce que si tu utilises plusieurs machines la technique ne marche plus x)

Modifié par Invité

Partager ce message


Lien à poster
Partager sur d’autres sites
La meilleure solution, je ne pense absolument pas, mais je te propose celle que j'utilise avec skUtilities : j'ai activé cette option

useRootAsDefaultPath: true

puis je stocke les valeurs dans un fichier yml dans un dossier que tous les serveurs peuvent atteindre

set yaml value "player.ip" from file "/home/serveurs/data/players/%player%.yml" to "%ip of player%"

puis pour récupérer la valeur tu fais

set {_playerip} to yaml value "player.ip" from file "/home/serveurs/data/players/%player%.yml" to "%player%"

L'avantage c'est que j'ai pas à télécharger d'addon bungee justement

 

Edit: et c'est péter parce que si tu utilises plusieurs machines la technique ne marche plus x)

 

Il n'y a pas un problème à propos des fichiers YAML comme quoi on doit les recharger à chaque fois qu'on cherche une donnée dedans ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Hum non je pense pas, quand je set une valeur avec "set yaml value ..." ça se fait directement et si je change une valeur directement dans le fichier il me suffit d'enregistrer le fichier .yml pour ça prenne en compte le changement

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(e) (modifié)

Ça c'est parce que tu utilises skutilities, qui est extrêmement lent quand il prends des variables yml. Mais pheonbest a raison: si tu utilises skript yaml, qui charge les fichiers yml correctement, (comme les plugins en java) tu dois charger le fichier yml dans la mémoire puis le sauvegarder à chaque modification. Skutilities charge le fichier complet et le sauvegarde à chaque modification ou à chaque fois que tu va chercher une variable. C'est lent. Très lent.

Modifié par Black_Eyes
  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Je te conseille d'utiliser une BDD, ce que je fais ^^

Un petit point en plus: tu peux accéder a tes variables depuis un site internet/api/etc...

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.