Referensi API RankForge – IRankForgeAPI, Tier & PlayerData
Mengakses API
Section titled “Mengakses API”import xyz.noxlydev.rankforge.api.IRankForgeAPI;import xyz.noxlydev.rankforge.api.RankForgeAPI;
IRankForgeAPI api = RankForgeAPI.get();| Method | Keterangan |
|---|---|
RankForgeAPI.isAvailable() |
true jika RankForge sudah enable dan API terinisialisasi |
RankForgeAPI.get() |
Mengembalikan instance API, atau melempar IllegalStateException jika belum siap |
IRankForgeAPI
Section titled “IRankForgeAPI”| Method | Return | Keterangan |
|---|---|---|
getPoints(UUID) / getPoints(OfflinePlayer) |
int |
Poin saat ini. 0 jika pemain belum punya data. |
setPoints(UUID, int) / (OfflinePlayer, int) |
void |
Set poin. Memicu PlayerPointsChangeEvent, lalu PlayerTierUpEvent / PlayerTierDownEvent jika tier berubah. |
addPoints(UUID, int) / (OfflinePlayer, int) |
void |
Tambah poin (getPoints + amount, lewat setPoints). |
removePoints(UUID, int) / (OfflinePlayer, int) |
void |
Kurangi poin (getPoints - amount, lewat setPoints). |
| Method | Return | Keterangan |
|---|---|---|
getTier(UUID) / getTier(OfflinePlayer) |
Tier atau null |
Tier pemain; null jika Unranked |
getTierByPoints(int) |
Tier atau null |
Tier yang sesuai jumlah poin |
getNextTier(UUID) / getNextTier(OfflinePlayer) |
Tier atau null |
Tier berikutnya; null jika sudah tertinggi |
getRegisteredTiers() |
List<Tier> |
Semua tier, urut dari ambang tertinggi ke terendah. Tidak bisa dimodifikasi. |
Statistik
Section titled “Statistik”| Method | Return | Keterangan |
|---|---|---|
getKills(UUID) |
int |
Total kill (0 jika tidak ada data) |
getDeaths(UUID) |
int |
Total death (0 jika tidak ada data) |
getKD(UUID) |
double |
Rasio K/D. Jika death = 0, nilainya = jumlah kill. 0.0 jika tidak ada data. |
getDailyKills(UUID) |
int |
Kill yang tercatat hari ini |
Data & leaderboard
Section titled “Data & leaderboard”| Method | Return | Keterangan |
|---|---|---|
getPlayerData(UUID) |
PlayerData atau null |
Referensi langsung ke data pemain (bukan salinan) |
getTopPlayers(int limit) |
List<PlayerData> |
Pemain teratas berdasarkan poin (menurun) |
Utilitas
Section titled “Utilitas”| Method | Return | Keterangan |
|---|---|---|
saveAsync() |
CompletableFuture<Void> |
Simpan seluruh data ke database secara async |
getPlugin() |
RankForge |
Instance plugin (mis. untuk versi: getPlugin().getDescription().getVersion()) |
Perilaku penting
Section titled “Perilaku penting”- Batas poin negatif. Jika
settings.allow-negative-points: false, hasil akhir yang negatif dipaksa menjadi0. - Event dipanggil sinkron. Event dipicu di thread pemanggil. Jangan panggil method tulis dari thread async.
- Event tier hanya untuk pemain online.
PlayerTierUpEventdanPlayerTierDownEventtidak dipicu bagi pemain offline. - API tidak memberi reward tier. Perubahan poin lewat API tidak menjalankan
rewards:tier, title, atau broadcast. Itu hanya terjadi pada alur kill. Gunakan event untuk membuat reward sendiri (resep). - Batas data.
getTopPlayersmengurutkan semua pemain setiap dipanggil; hindari memanggilnya sangat sering (mis. tiap tick).
Model Tier
Section titled “Model Tier”Semua field public final.
| Field | Tipe | Isi |
|---|---|---|
id |
String |
ID di config.yml (mis. ht_1) |
min |
int |
Ambang poin minimal |
display |
String |
Display name yang sudah diwarnai (kode warna sudah diterjemahkan) |
sound |
String |
Nama sound (bisa kosong) |
titleMain, titleSub |
String |
Title & subtitle yang sudah diwarnai |
rewards |
List<String> |
Command reward konsol (tidak null) |
Model PlayerData
Section titled “Model PlayerData”| Method | Return | Keterangan |
|---|---|---|
getUuid() |
UUID |
|
getName() |
String |
|
getPoints() |
int |
|
getKills() / getDeaths() |
int |
|
getDailyKills() |
int |
|
getKD() |
double |
|
getLastSeenDate() |
String |
Tanggal ISO (yyyy-MM-dd) |
getClaimedRewards() |
Set<String> |
ID tier yang sudah di-claim |
hasClaimed(String tierId) |
boolean |
