RankForge menyediakan custom event Bukkit di package xyz.noxlydev.rankforge.api.event. Dengarkan seperti event Bukkit lain dengan @EventHandler.
Penting: event hanya dari jalur API
Event dipicu oleh method setPoints / addPoints / removePoints pada IRankForgeAPI. Perubahan poin dari kill/death in-game dan dari command /rankforge setpoints / /rankforge reset diproses langsung oleh plugin dan tidak memicu event ini.
Kalau kamu ingin plugin lain ikut bereaksi pada kill PvP, dengarkan event Bukkit standar (PlayerDeathEvent) dan baca hasilnya lewat API.
Event
Cancellable
Dipicu saat
Syarat
PlayerPointsChangeEvent
Ya
Sebelum poin diubah lewat API
Selalu
PlayerTierUpEvent
Tidak
Setelah poin naik melewati ambang tier yang lebih tinggi
Pemain online
PlayerTierDownEvent
Tidak
Setelah poin turun ke tier lebih rendah (atau Unranked)
Pemain online
PlayerClaimTierRewardEvent
Ya
Dideklarasikan, belum dipanggil oleh core plugin versi ini
–
Method
Return
Keterangan
getPlayer()
OfflinePlayer
getPlayerData()
PlayerData
getOldPoints()
int
getNewPoints()
int
setNewPoints(int)
void
Ubah nilai akhir poin
getDifference()
int
new - old
setCancelled(boolean)
void
Batalkan perubahan
public void onPointsChange ( PlayerPointsChangeEvent event ) {
// Contoh 1: VIP mendapat bonus 10% saat poin bertambah
if ( event . getDifference () > 0 ) {
Player online = event . getPlayer () . getPlayer () ;
if (online != null && online . hasPermission ( " myplugin.vip " ) ) {
int bonus = ( int ) Math . ceil ( event . getDifference () * 0.10 ) ;
event . setNewPoints ( event . getNewPoints () + bonus ) ;
// Contoh 2: tolak pengurangan poin di arena latihan
if ( event . getDifference () < 0 && isInPracticeArena ( event .getPlayer ()) ) {
event . setCancelled ( true ) ;
Method
Return
Keterangan
getPlayer()
Player
Pemain online
getPlayerData()
PlayerData
getOldTier()
Tier (nullable)
null jika sebelumnya Unranked
getNewTier()
Tier
public void onTierUp ( PlayerTierUpEvent event ) {
Player player = event . getPlayer () ;
Tier newTier = event . getNewTier () ;
player . sendMessage ( " Selamat! Kamu naik ke " + newTier . display ) ;
Method
Return
Keterangan
getPlayer()
Player
Pemain online
getPlayerData()
PlayerData
getOldTier()
Tier
getNewTier()
Tier (nullable)
null jika turun menjadi Unranked
public void onTierDown ( PlayerTierDownEvent event ) {
Tier now = event . getNewTier () ;
String name = now != null ? now . display : " Unranked " ;
event . getPlayer () . sendMessage ( " Tier kamu turun menjadi " + name ) ;
Event ini sudah ada di API (getPlayer(), getTier(), getCommands(), cancellable), tetapi core plugin versi ini belum memanggilnya saat reward tier diberikan. Listener yang kamu daftarkan tidak akan menerima event ini sampai plugin mulai memicunya. Untuk reward custom sekarang, gunakan PlayerTierUpEvent.
getServer () . getPluginManager () . registerEvents ( new RankListener () , this ) ;
Pastikan registrasi hanya dilakukan setelah RankForge aktif (lihat Setup Dependency ).