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