Bonjour, je poste la solution ici:
Premièrement vous allez avoir besoin de skript-mirror
Merci à @AlexLew pour son tutoriel.
Ce script contient de nouvelles expressions.
loop all registered uuid
loop all registered players
player with registered uuid %string%
Ces expressions vont chercher des informations dans un fichier stockant "UUID et PSEUDO" de tous les joueurs se connectant sur votre serveur dans le but de pouvoir chercher les joueurs s'étant déjà connecté mais ne l'étant pas.
Vous pouvez configurer la taille de la première page, des pages suivantes et du "mini" classement affiché sur les pages autre que la première.
options:
firstpagesize: 10
sizepage: 7
topsize: 4
Ce script s'applique dans le cas ou votre variable est enregistrée sur l'uuid comme '{navaria_money.%player's uuid%}'.
Pour appliquer le script à votre variable il faut dans le cas ci-dessus faire ceci
options:
variable: navaria_money.
En mettant tout ce qui précède %player's uuid%.
Voilà le code.[spoiler=Plutôt court]
options:
firstpagesize: 10
sizepage: 7
topsize: 4
variable: navaria_money.
# Permet d'avoir les UUID de tous les joueurs
get plural expression all [registered] uuid:
set {_uuid::*} to configuration section "registered" get of "Server/registered.yml"
return {_uuid::*}
# Permet d'avoir les PSEUDOS de tous les joueurs
get plural expression all (offline players|registered players):
loop all registered uuid:
set {_p} to single value "registered.%loop-value%" get of "Server/registered.yml"
add {_p} to {_players::*}
return {_players::*}
# Permet de retrouver un joueur avec son UUID
get expression player with [registered] uuid %string%:
set {_p} to single value "registered.%expression-1%" get of "Server/registered.yml"
return "%{_p}%"
join:
loop all registered uuid:
if loop-value is uuid of player:
if single value "registered.%uuid of player%" get of "Server/registered.yml" is "%player%":
stop
set "registered.%uuid of player%" to "%player%" in yaml file "Server/registered.yml"
command /balancetop [<integer = 1>]:
aliases: /baltop
trigger:
loop all registered uuid:
set {_copy::%loop-value%} to "%{{@variable}%loop-value%}%"
# Stockage des données (montant, uuid) ensuite pour récupérer le joueur 'player with registered uuid loop-value' et non loop-index
# Tri des données par ordre croissant
while size of {_copy::*} is not 0:
loop {_copy::*}:
if {_maxv} is not set:
set {_maxv} to loop-value parsed as number
set {_maxi} to loop-index
else if loop-value parsed as number is bigger or equal to {_maxv}:
set {_maxv} to loop-value parsed as number
set {_maxi} to loop-index
add {_maxv} to {_value::*}
add {_maxi} to {_index::*}
do [clear {_copy::%{_maxi}%}]->[clear {_maxv}]->[clear {_maxi}]
# Condition pour savoir si le rangement a bugué
if size of {_value::*} is equal to (size of {_value::*} + size of {_index::*}) / 2:
if argument is 1:
set {_min} to 1
set {_max} to {@firstpagesize}
else:
set {_min} to 1 + {@firstpagesize} + {@sizepage}*arg - 2*{@sizepage}
set {_max} to 1 + {@firstpagesize} + {@sizepage}*arg - {@sizepage}
loop all numbers between {_min} and {_max}:
if {_ok} is not set:
if "%{_value::%loop-number%}%" is not "<none>":
set {_ok} to true
send "§f§m-----------------§f Page %arg% §f§m-----------------" to sender
send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender
else:
send "§cLa page demandée n'a pas pu être affichée." to sender
stop
else if {_ok} is true:
if "%{_value::%loop-number%}%" is not "<none>":
send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender
if argument is not 1:
send "" to sender
loop all numbers between 1 and {@topsize}:
send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender
execute console command "/tellraw %sender% {text:""Clique ici pour afficher la page suivante"",clickEvent:{action:run_command,value:""/baltop %arg + 1%""},hoverEvent:{action:show_text,value:""Clic""}}"
else:
send "§cLa page demandée n'a pas pu être affichée." to sender
Cas d'utilisation:
16 joueurs enregistrés
Bonne utilisation. (pti like)