La technique de @GauvainWizard marche bien, mais n'est pas au point. Car imaginons; si dans ta liste tu as :
- Blanc
- Vert
- Bleu
- Rouge
- Bleu foncé
Et que tu testes si la couleur bleu est présente dans la liste avec la technique de @GauvainWizard :
if "%{ta.liste::*}%" contain "Bleu"
Cela va bien marcher, mais ça va aussi détecter la couleur "Bleu foncé".
Avant, cela, je fais un petit rappel sur la déclaration d'un liste.
Une liste, c'est comme une variable, elle peut contenir du texte comme des joueurs, des nombres, des items. Une liste aura son type lors de sa déclaration :
add 12 sticks to {ta.liste::*}
Après cette déclaration, ta liste aura comme type des items.
Contrairement à une variable, une liste ne peut être parsée, elle gardera son type pour toujours jusqu'à sa suppression. Le seul moyen de parser une liste, et d'en refaire une :
# Au début, ma liste contient des textes.
set {_liste::*} to {ta.liste::*} # On fait une copie de la liste.
delete {ta.liste::*} # On supprime notre ancienne liste.
loop (size of {_liste::*}) times: # On va répéter une action plusieurs fois.
set {_liste::%loop-number%} to "%{_liste::%loop-number%}%" parsed as an item # On va parser chaque objet de la copie de notre ancienne liste.
add {_liste::%loop-number%} to {ta.liste::*} # Puis on les ajouter à une nouvelle liste.
# Maintenant, ma liste contient des items.
Pour savoir si une liste contient quelque chose, on fait ceci :
command /verify <player>:
trigger:
if {ta.liste::*} contain arg 1 # Ici, ma liste contient des joueurs.
Mais ne pas faire ceci ! :
if "%{ta.liste::*}%" contain "%player%"
Parce que là, vous récupérer tout le contenu de votre liste sous forme de texte, et vous tester si celle-ci contient un texte elle même ! Donc la bonne chose à faire est (cas de @Oromis):
if {red::*} contain "rouge" # Ici, ma liste contient des textes.
MAIS ! Oui, il y a un "mais" !
Depuis la version 2.2 Fixes de Skript, il n'est plus possible de vérifier si une liste (qui contient seulement des textes) contient un texte.
Donc le dernier code donné ne fonctionnera pas. Il existe donc une petite solution, qui est de vérifier si une liste ne contient PAS un texte, puis de mettre un "<else>" par la suite :
if {red::*} does not contain "red": # Le "does not contain" quant à lui, fonctionne toujours !
stop trigger
else:
broadcast "La liste {_red::*} contient le texte ""rouge"" !"
Donc au final, si tu voudrais tester le contenu d'un texte dans une liste, tu devras faire ceci^^ !