Résolu Est-ce possible de relier une variable skript à un plugin bukkit ?

Bizu

Bucheron
21 Juillet 2020
22
0
13
24
Salut, j'ai fait quelques recherches concernant la liaison d'une variable skript à un plugin Java et j'ai trouvé cette discussions :https://github.com/SkriptLang/Skript/issues/781 et je n'ai pas très bien compris :'( voici ce que j'ai essayé de faire ( je précise que je suis sous spigot 1.8 ) :

String name = e.getPlayer().getName();
Object variable = Variables.getVariable("money.%" + name + "%", null, false);

mais lorsque j'essaye d'afficher ça dans un scoreboard ça écrit juste " null " :/ je n'ai pas trouvé d'autres discussions à ce sujet donc si quelqu'un sais... Merci !
 
Solution
Bonsoir,

Tu dois forcer le nom du joueur à être en minuscules ; tu dois aussi enlever les pourcentages « % » des variables internes.

Java:
// set {money::%player%} to 2.72

String playerName = e.getPlayer().getName().toLowercase(Locale.ROOT);
float money = ((Number) Variables.getVariable("money::" + playerName, null, false)).floatValue();

Par contre vu que les joueurs peuvent changer de nom, il faut que tu les identifies à partir de l'UUID de leur compte qui lui ne changera jamais.
Java:
// set {money::%UUID of player%} to 2.72

UUID playerId = e.getPlayer().getUniqueId();
float money = ((Number) Variables.getVariable("money::" + playerId, null, false)).floatValue();

Cordialement,
ShE3py

ShE3py

Enbogueuse
Support
26 Septembre 2015
4 129
162
461
247
21
Mìlhüsa
Bonsoir,

Tu dois forcer le nom du joueur à être en minuscules ; tu dois aussi enlever les pourcentages « % » des variables internes.

Java:
// set {money::%player%} to 2.72

String playerName = e.getPlayer().getName().toLowercase(Locale.ROOT);
float money = ((Number) Variables.getVariable("money::" + playerName, null, false)).floatValue();

Par contre vu que les joueurs peuvent changer de nom, il faut que tu les identifies à partir de l'UUID de leur compte qui lui ne changera jamais.
Java:
// set {money::%UUID of player%} to 2.72

UUID playerId = e.getPlayer().getUniqueId();
float money = ((Number) Variables.getVariable("money::" + playerId, null, false)).floatValue();

Cordialement,
ShE3py
 
Solution