Yasaklılar
Javadoc: BanService, SpongeAPI’de yerleşik ve eklentinizdeki kullanıcıların yasaklanması veya affedilmesi için işlevsellik kazandıran bir hizmettir. `` BanService`` kullanıcıları yasaklama, kullanıcıları bağışlama veya hatta a: javadoc: Ban ve` Ban` hakkında bilgi alma gibi çeşitli yöntemler sunar.
Tüyo
Temel hizmet anlayışı için,ilk önce :doc:`services`u okuduğunuzdan emin olun.
BanService başla
Sunucuya gerçekten yasaklar eklemek için ``BanService``ı yüklemeniz gerekecek. Neyse ki, bu Sponge API’deki diğer servislere benzer bir şekilde yapılabilir:
import org.spongepowered.api.Sponge;
import org.spongepowered.api.service.ban.BanService;
BanService service = Sponge.getServiceManager().provide(BanService.class).get();
Artık “BanService” ile ek işlemler yapabiliriz. Örneğin, eğer sağlanan :javadoc:`kullanıcı`nı zaten yasaklanmış olup olmadığını kontrol etmek istiyorsak, :javadoc:`BanService#isBanned(GameProfile)` metodunu kullanabiliriz. Veya bir “Kullanıcı” dan banlanma hakkında bilgi almak istediysek, BanService#getBanFor(GameProfile) metodunu kullanabiliriz. Aşağıda buna bir örnek gösterilmiştir:
import java.util.Optional;
import org.spongepowered.api.entity.living.player.User;
import org.spongepowered.api.text.Text;
import org.spongepowered.api.util.ban.Ban;
if (service.isBanned(user.getProfile())) {
Optional<Ban.Profile> optionalBan = service.getBanFor(player.getProfile());
if (optionalBan.isPresent()) {
Ban.Profile profileBan = optionalBan.get();
Optional<Text> optionalReason = profileBan.getReason();
if (optionalReason.isPresent()) {
Text banReason = optionalReason.get();
}
}
}
Yasak oluşturma
Bu yüzden şimdi “BanService” ve bir “Ban” hakkında bilgi edinebiliriz, ama ya kendi banlarımızı oluşturmak istiyorsak? Kendi “Ban”ı yaratmak için bir Ban.Builder kullanabilirsiniz. ``Ban.Builder``ı almak için Ban#builder() metodunu çağırmanız yeterlidir. Üreticimizi kullanarak, yasağın türü, yasağın nedeni, veya yasaklamak istediğimiz “Kullanıcı” gibi şeyleri belirtebiliriz. Bunların hepsine bir örnek aşağıda gösterilmiştir:
import org.spongepowered.api.util.ban.BanTypes;
Ban ban = Ban.builder().type(BanTypes.PROFILE).profile(user.getProfile())
.reason(Text.of("The Sponge Council has Spoken!")).build();
Alternatif olarak, bir çevrimiçi oynatıcıda bir ip yasağı belirtebilirsiniz:
Ban ban = Ban.builder().type(BanTypes.IP)
.address(player.getConnection().getAddress().getAddress())
.reason(Text.of("The Sponge Council has Spoken!")).build();
Not bir kullanıcı
üzerinde basit, süresiz bir yasak oluşturmak isterseniz şunları kullanabilirsiniz Ban#of(GameProfile) metodunu veya Ban#of(GameProfile, Text) metodu kullanarak yasağı hızlı bir şekilde yapılandırın.
Dosya Ekle
Yasağımızı oluşturduğumuza göre şimdi Sponge’de kullanılacak şekilde kaydedebiliriz. `` BanService`` ‘i daha önce kullandığımız için BanService#addBan(Ban) metodunu kullanarak bunu başarabiliriz. Not yasağı ekleme işlemi, daha önce var olan herhangi bir yasağı kaldıracağını unutmayın.
hata - kusurlar
Şimdi bir kullanıcının yasağını kaldırmak istediğimizi varsayalım. BanService#pardon(GameProfile) metodunu kullanabiliriz. Bu yöntem bir boolean döndürür, kullanıcının önceden bir yasaklamaya sahip olup olmadığını belirtir.
Dosyaları Birleştir
Ban#builder()
metodunu kullanarak, elde edilen bir Ban.Builder
kullanılarak bir Ban.Builder
oluşturabiliriz. Türünü, yasaklanacağı kullanıcı
ya da yasağın sebebi gibi şeyleri belirtebiliriz. Daha sonra sadece BanService
ı kapattık ve onu``Ban`` ı eklemek için kullandık. İşte bunu yapman içinki tam kod:
BanService service = Sponge.getServiceManager().provide(BanService.class).get();
Ban ban = Ban.builder().type(BanTypes.PROFILE).profile(user.getProfile())
.reason(Text.of("The Sponge Council has Spoken!")).build();
service.addBan(ban);