Nie istnieje w Skript takie wyrażenie jak 'parent of %player%'. Jeśli Pan skorzystał z jakiegoś dodatku, warto byłoby o tym wspomnieć, bo Pan nie pomógł, a jedynie niepotrzebnie wprowadził zamieszanie.
Tak, ma Pan rację, że pierwsza instrukcja jest błędna. Napisał Pan również dobrze komendę z LuckPerms, chociaż trzeba mieć na uwadze fakt, iż argument 'set' sprawi usunięcie graczowi pozostałych grup permisji i ustawienie jej jako grupę podstawową, więc bezpieczniejszym wyborem będzie użycie w jego miejsce 'add'.
Rzecz jasna, najlepiej, aby Pan, który zlecił napisanie owego skryptu, sam sobie odpowiedział na pytanie który wariant go interesuje.
Należy jednak powiedzieć o jednym - w Skript należy unikać wykorzystywania efektu 'command' jeśli to tylko możliwe. Zdecydowanie lepszą praktyką jest korzystanie z wbudowanych wyrażeń w Skript.
W tym przypadku oferuje on nam dwa wyrażenia, które pozwolą napisać taki skrypt - mowa o 'group[s] of %offline player%' i 'all groups'.
Wydaje mi się, że mój skrypt zadowoli Pana. Proszę bardzo.
Dodałem przy linijkach 10, 11 i 13 komentarze, które za chwilę wytłumaczę co oznaczają.
Po przeczytaniu mojego posta może Pan usunąć resztę komentarzy, nie mają one żadnego znaczenia dla działania poniższego kodu.
Jeśli Pan życzy sobie, aby skrypt ustawiał jedynie nową grupę permisji graczowi oraz usuwał pozostałe, proszę usunąć wszystkie linijki z numerem 1. Druga opcja - jeśli Pan życzy sobie, aby skrypt nie usuwał poprzedniej grupy permisji (tej podstawowej) graczowi, a jedynie zmieniał jego grupę podstawową, proszę usunąć linijkę z numerem 2.
Oczywiście istnieje jeszcze kilka innych możliwych wariantów, ale myślę, że po moich wyjaśnieniach Pan sam będzie już w stanie dojść do rozwiązania. W razie ewentualnych problemów proszę się nie krępować, pomogę.
command /ranga <offline player> <text>:
usage: &c/ranga <gracz> <nowa grupa>
permission: serwer.komenda.ranga
permission message: &cNie posiadasz wystarczających uprawnień do wykonania tej komendy.
trigger:
set {_allGroups::*} to all groups
if {_allGroups::*} don't contain arg-2:
send "Grupa o tej nazwie nie istnieje." to sender
stop
set {_playerGroups::*} to arg-1's groups # 1
remove arg-1's group from {_playerGroups::*} # 1 2
set arg-1's group to arg-2
add {_playerGroups::*} to arg-1's groups # 1
send "&aRanga została pomyślnie zmieniona." to sender