Yasaklılar

The BanService is a service built into SpongeAPI that adds the functionality for you to ban or pardon users in your plugin. The BanService provides several methods to do things such as banning users, pardoning users, or even getting a Ban and the information on the Ban.

Tüyo

Temel hizmet anlayışı için,ilk önce :doc:`services`u okuduğunuzdan emin olun.

BanService başla

You will need to get the BanService to actually add bans to the server. Fortunately, this can be done similarly to other services in SpongeAPI:

import org.spongepowered.api.Sponge;
import org.spongepowered.api.service.ban.BanService;

BanService service = Sponge.serviceManager().provide(BanService.class).get();

Artık “BanService” ile ek işlemler yapabiliriz. Örneğin, eğer sağlanan 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 net.kyori.adventure.text.Component;
import org.spongepowered.api.entity.living.player.User;
import org.spongepowered.api.util.ban.Ban;

if (service.isBanned(user.getProfile())) {
    CompletableFuture<Optional<Ban.Profile>> optionalBanFuture = service.find(player.getProfile());
    optionalBanFuture.thenAccept(optionalBan -> {
        if (optionalBan.isPresent()) {
            Ban.Profile profileBan = optionalBan.get();
            Optional<Component> optionalReason = profileBan.getReason();
            if (optionalReason.isPresent()) {
                Component 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(Component.text("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(Component.text("The Sponge Council has Spoken!")).build();

Note that if you wish to create a simple, indefinite ban on a User, you can use the Ban#of(GameProfile) method or the Ban#of(GameProfile, Component) method to quickly construct a ban.

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(Component.text("The Sponge Council has Spoken!")).build();
service.addBan(ban);