Oczywiście można powyższy problem rozwiązać w ten sposób, jednak długoterminowo takie podejście nie jest wskazane. Proszę sobie wyobrazić sytuację, w której na serwerze jest dodane kilkanaście (jeśli nie kilkadziesiąt) kluczy. Z pewnością będzie to niewygodne.
Również można rozwiązać to w ten sposób, ale autor pluginu ExcellentCrates udostępnił pewne narzędzia do obsługi (ściślej mówiąc, API) pluginu.
Ręczna obsługa NBT jest jeszcze gorsza, proszę tak nie robić. W porównaniu do tego zapisywanie kluczy w zmiennych jest już zdecydowanie lepsze.
Poniżej prezentuję przykładowe rozwiązanie Pana problemu. Do działania poniższego fragmentu kodu wymagany jest dodatek skript-reflect, który swoją drogą jest w mojej ocenie najbardziej uniwersalnym dodatkiem, gdyż otwiera przed twórcami możliwości bezpośredniej pracy z pluginami i bibliotekami Javy.
# Import klasy CratesAPI udostępniającej najważniejsze metody do obsługi graczy, skrzynek, kluczy (najlepiej umieścić na samej górze skryptu)
import:
su.nightexpress.excellentcrates.CratesAPI
# Poniższy kod wstawić w odpowiednie miejsce w skrypcie i skonfigurować wedle potrzeb
set {_keyManager} to CratesAPI.getKeyManager()
set {_yourKey} to {_keyManager}.getKeyById("ID klucza")
Kod napisany na podstawie plików:
https://github.com/nulli0n/ExcellentCrates-spigot/blob/master/src/main/java/su/nightexpress/excellentcrates/CratesAPI.java#L31
https://github.com/nulli0n/ExcellentCrates-spigot/blob/master/src/main/java/su/nightexpress/excellentcrates/key/KeyManager.java#L133
Jeśli Pan potrzebuje, dokumentację pluginu skript-reflect znajdzie Pan tutaj.
Zmienna {_yourKey} od tego miejsca zawiera klucz o danym identyfikatorze. Myślę, że Pan będzie już wiedział jak dalej postępować. W razie pytań służę pomocą.
Pozdrawiam.