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);