Restriction Options

Pembatasan ini dapat diterapkan pada lisensi Anda. Anda mengaturnya saat membuat lisensi dan dapat memperbaruinya kapan saja melalui dashboard.

License Scope

Scope memungkinkan Anda membatasi lisensi untuk penggunaan tertentu. Misalnya, Anda bisa membuat lisensi yang hanya valid untuk "minecraft-server" tetapi tidak untuk "minecraft-proxy".

Contoh Use Case

  • • minecraft-server - Untuk plugin di server Spigot/Paper
  • • minecraft-proxy - Untuk plugin di BungeeCord/Velocity
  • • standalone - Untuk aplikasi standalone
  • • development - Untuk testing/development
Scope Example
1// Verifikasi dengan scope
2NxGateClient client = new NxGateClient(config);
3
4// Set scope sebelum verifikasi
5VerificationResult result = client.verify("minecraft-server");
6
7// Atau gunakan config
8NxGateConfig config = new NxGateConfig()
9 .setScope("minecraft-server");

IP Limit

Batasi berapa banyak IP address berbeda yang dapat menggunakan satu lisensi. Berguna untuk mencegah sharing lisensi yang tidak sah.

1
Single Server
3
Small Network
Unlimited
Enterprise
IP Limit Handling
1// Di dashboard NxGate, set IP Limit = 3
2// Artinya lisensi ini hanya bisa digunakan dari 3 IP berbeda
3
4// Di plugin Anda, verifikasi seperti biasa
5VerificationResult result = client.verify();
6
7if (result.getResult() == VerificationResult.Result.IP_LIMIT_EXCEEDED) {
8 getLogger().severe("License sudah digunakan di " +
9 result.getIpCount() + " server berbeda!");
10}

Rate Limit

Batasi berapa kali lisensi dapat diverifikasi dalam periode waktu tertentu. Berguna untuk API key management atau mencegah abuse.

TierPer HourPer DayPer Month
Basic1001,00010,000
Pro1,00010,000100,000
EnterpriseUnlimitedUnlimitedUnlimited
Rate Limit Handling
1// Di dashboard NxGate, set Rate Limit:
2// - 100 requests per hour
3// - 1000 requests per day
4
5// Handle rate limit di plugin
6VerificationResult result = client.verify();
7
8if (result.getResult() == VerificationResult.Result.RATE_LIMITED) {
9 getLogger().warning("Rate limit tercapai. Reset dalam: " +
10 result.getRetryAfter() + " detik");
11 // Gunakan cached result jika ada
12}

Expiration

Set tanggal kedaluwarsa untuk lisensi. Setelah tanggal tersebut, lisensi tidak akan valid lagi. Cocok untuk subscription-based licensing atau trial periods.

Trial License

Berikan akses 7-30 hari untuk calon pembeli mencoba plugin sebelum membeli.

Subscription

Perpanjang otomatis setiap bulan/tahun berdasarkan pembayaran.

Expiration Handling
1// Di dashboard NxGate, set Expiration Date
2// Contoh: 2024-12-31 23:59:59
3
4// Handle expiration di plugin
5VerificationResult result = client.verify();
6
7if (result.getResult() == VerificationResult.Result.EXPIRED) {
8 getLogger().severe("License expired pada: " + result.getExpirationDate());
9 getLogger().severe("Silakan perpanjang lisensi Anda.");
10}

Menggabungkan Restrictions

Anda dapat menggabungkan beberapa restriction sekaligus untuk kontrol yang lebih granular.

Contoh: Premium License

  • • Scope: minecraft-server
  • • IP Limit: 5
  • • Rate Limit: 1000/day
  • • Expiration: 1 tahun dari pembelian