Çevrim dışı oyuncu verisi

Uyarı

These docs were written for SpongeAPI 7 and are likely out of date. If you feel like you can help update them, please submit a PR!

Eklentiler için, oyuncu çevrimdışı olsa bile, oyuncu verilerine erişmek gerekli olabilir. Sponge.getServer().getPlayer()``metodu bir :javadoc:`Player` döner ve bunun için kullanılabilir diye düşünüyor olabilirsiniz. Ancak ``Player nesneleri yalnızca çevrimiçi oyuncular içindir, başka bir çözüm kullanılması gerekir.

Bazı eklentiler ilgili verileri kendileri depolarlar ve GameProfileManager kullanarak kullanıcıyı ilişkilendirirler. Ancak çevrimdışı ve çevrimiçi kullanıcılar için farklı kod yazmak gerekli değildir. ServiceManager , UserStorageService olarak bilinen, offline Playerlar için :javadoc: User oluşumunu dönebilen servisi sağlar. Player` arayüzü User metodlarını genişlettiğinden dolayı, Player da çağırabilirsiniz.

Örneğin:

  • Bütün örnek oluşumlar için #hasPermission(String permission) uygundur.

Örnek kod

Burada bir User ‘ın alınması için kullanılan yardımcı metodun örneği bulunmaktadır:

import java.util.Optional;
import java.util.UUID;

import org.spongepowered.api.Sponge;
import org.spongepowered.api.entity.living.player.User;
import org.spongepowered.api.service.user.UserStorageService;

public Optional<User> getUser(UUID uuid) {
    Optional<UserStorageService> userStorage = Sponge.getServiceManager().provide(UserStorageService.class);
    return userStorage.get().get(uuid);
}

This code will get the UserStorageService from the ServiceManager and then retrieve the User from there.

Not

UserStorageService, yalnızca bundan önce bağlanmış olan User ları döner.

Not

This solution will not return Player instances. This makes it safe to store the returned User objects, but you will need to use the User.getPlayer() method to retrieve the online entity.