Larang
BanService adalah layanan yang dibangun ke dalam SpongeAPI yang menambahkan fungsionalitas untuk melarang atau mengampuni pengguna dalam plugin anda. BanService
menyediakan beberapa metode untuk melakukan hal seperti pelarangan pengguna, pengampunan pengguna, atau bahkan mendapatkan Ban dan informasi pada Ban
.
Tip
Untuk pemahaman dasar mengenai layanan, pastikan anda telah membaca Layanan.
Mendapatkan BanService
Anda akan perlu untuk mendapatkan BanService
untuk benar-benar menambahkan larangan untuk server. Untungnya, hal ini dapat dilakukan demikian pula untuk layanan lain di Spons API:
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);