Larang
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
.
Tip
Untuk pemahaman dasar mengenai layanan, pastikan anda telah membaca Layanan.
Mendapatkan BanService
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.getServiceManager().provide(BanService.class).get();
Sekarang dengan BanService
, kita dapat melaksanakan operasi-operasi tambahan. Contoh, jika kita ingin memeriksa User yang disediakan telah dilarang, kita dapat menggunakan metode BanService#isBanned(GameProfile). Atau mungkin jika kita ingin mendapatkan informasi larangan dari User
, kita dapat menggunakan metode BanService#getBanFor(GameProfile). Contoh ditunjukkan di bawah ini:
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();
}
}
}
Membuat larangan
Jadi sekarang kita dapat memperoleh BanService
dan informasi pada Ban
, tetapi bagaimana jika kita ingin membuat larangan milik kita sendiri? Kita dapat menggunakan Ban.Builder untuk membuat Ban
milik kita sendiri. Untuk mendapatkan Ban.Builder
, hanya dengan memanggil metode Ban#builder(). Dengan menggunakan pembangun kita, kita dapat menetapkan hal-hal seperti jenis larangan, alasan larangan, atau User
yang ingin kita larang. Contoh ini semua ditunjukkan di bawah ini:
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();
Jika tidak, anda dapat menentukan ip yang dilarang pada pengguna:
Ban ban = Ban.builder().type(BanTypes.IP)
.address(player.getConnection().getAddress().getAddress())
.reason(Text.of("The Sponge Council has Spoken!")).build();
Catatan bahwa jika ingin membuat yang sederhana, larangan tak terbatas pada User
, anda dapat menggunakan metode Ban#of(GameProfile) atau metode Ban#of(GameProfile, Text) untuk mengkonstruksi larangan dengan cepat.
Penambahan larangan
Sekarang kita telah membuat larangan kita, kita dapat mendaftarkannya untuk digunakan dalam Sponge. Dengan menggunakan BanService
kita sebelumnya, kita dapat menggunakan metode BanService#addBan(Ban) untuk menyelesaikannya. Catatan bahwa menambahkan larangan akan menghapus larangan yang ada sebelumnya.
Pengampunan
Sekarang katakanlah kita ingin menghapus larangan dari satu pengguna. Kita dapat menggunakan metode BanService#pardon(GameProfile). Metode ini mengembalikan nilai boolean, yang menetapkan jika pengguna telah memiliki larangan di tempat sebelumnya.
Meletakkan Semuanya Bersamaan
Kita dapat membuat sebuah Larangan
menggunakan Ban.Pembangun
yang diperoleh dengan menggunakan Ban#builder()
metode. Kita dapat menentukan hal-hal seperti jenis, User
yang akan dilarang, atau alasan untuk melarang. Kemudian kita cukup ambil kami BanService
dan menggunakannya untuk menambahkan Larangan
. Berikut ini adalah kode lengkap untuk melakukan hal ini:
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);