Konfigurasi Database RankForge – JSON, SQLite, MySQL, MariaDB, PostgreSQL, MongoDB
RankForge mendukung 6 backend penyimpanan. Pilih lewat database.type di config.yml.
| Tipe | Jenis | Cocok untuk |
|---|---|---|
JSON |
File lokal (players.json) |
Server tunggal, tanpa setup (default) |
SQLITE |
File relasional (rankforge.db) |
Server tunggal yang ingin satu file DB |
MYSQL |
SQL remote | Jaringan server, ranking bersama |
MARIADB |
SQL remote | Jaringan server berbasis MariaDB |
POSTGRESQL |
SQL remote | Infrastruktur besar / cluster |
MONGODB |
NoSQL dokumen | Infrastruktur cloud / dokumen |
Contoh konfigurasi
Section titled “Contoh konfigurasi”Tanpa konfigurasi tambahan. Data tersimpan di plugins/RankForge/players.json dengan penulisan atomic untuk mencegah file korup.
database: type: "JSON"Data di plugins/RankForge/rankforge.db.
database: type: "SQLITE"Memakai driver SQLite yang sudah disertakan server Paper.
database: type: "MYSQL" host: "127.0.0.1" port: 3306 name: "rankforge" username: "rankforge" password: "ganti_password_kuat" ssl: false pool-size: 10Database rankforge harus sudah dibuat. Tabel dibuat otomatis. Memakai driver MySQL yang sudah disertakan server Paper.
database: type: "MARIADB" host: "127.0.0.1" port: 3306 name: "rankforge" username: "rankforge" password: "ganti_password_kuat" ssl: false pool-size: 10Driver MariaDB sudah ikut di dalam JAR RankForge.
database: type: "POSTGRESQL" host: "127.0.0.1" port: 5432 name: "rankforge" username: "postgres" password: "ganti_password_kuat" ssl: false pool-size: 10Driver PostgreSQL sudah ikut di dalam JAR RankForge.
Opsi A, memakai URI (disarankan):
database: type: "MONGODB" name: "rankforge" mongo-uri: "mongodb://admin:secret@localhost:27017/rankforge?authSource=admin"Opsi B, host & port:
database: type: "MONGODB" host: "localhost" port: 27017 name: "rankforge" username: "admin" password: "secret"Data disimpan di collection players. Pada Opsi B, database.name juga dipakai sebagai authSource. Jika password mengandung karakter khusus (@, :, /), gunakan Opsi A dan URL-encode password di URI.
Skema data
Section titled “Skema data”SQL (tabel rankforge_players, dibuat otomatis):
| Kolom | Tipe | Isi |
|---|---|---|
uuid |
VARCHAR(36) PK |
UUID pemain |
name |
VARCHAR(32) |
Nama terakhir |
points, kills, deaths, daily_kills |
INT |
Statistik |
last_seen, last_kill_date, last_bonus_date |
VARCHAR |
Tanggal terakhir |
received_bonus |
BOOLEAN |
Status bonus first kill |
claimed_rewards |
TEXT |
Tier yang sudah di-claim |
MongoDB: satu dokumen per pemain di collection players, dengan _id berisi UUID.
Keamanan & keandalan
Section titled “Keamanan & keandalan”- Auto-fallback. Jika koneksi database gagal saat startup, RankForge mencatat error dan memakai JSON lokal supaya server tidak crash.
- Simpan async. Penulisan ke database berjalan di thread terpisah, tidak mengganggu TPS.
- Cache RAM. Seluruh data dimuat ke memori saat startup; query in-game tidak menyentuh jaringan.
- Timeout koneksi 5 detik untuk SQL, jadi database yang mati tidak membuat startup menggantung lama.
Migrasi antar database
Section titled “Migrasi antar database”RankForge tidak punya perintah migrasi bawaan. Cara aman: matikan server, backup data lama, ubah database.type, lalu pindahkan data dengan skrip sendiri (misalnya dari players.json ke tabel rankforge_players) sebelum server dinyalakan lagi.
