Requisiti
- Server Paper 1.21+, oppure proxy Velocity / BungeeCord
- Java 21+
- Connessione in uscita verso i provider di controllo IP (ip-api.com / proxycheck.io)
Installazione
- Scarica il jar della tua piattaforma:
SonoNikoAntiVPN-Paper.jar→ singolo server PaperSonoNikoAntiVPN-Velocity.jar→ proxy VelocitySonoNikoAntiVPN-Bungee.jar→ proxy BungeeCord
- Mettilo in
plugins/. Su una network installalo sul proxy: protegge tutti i backend con un solo jar. - Avvia una volta per generare
config.yml, poi inserisci la chiave di licenza. - Riavvia. In console devono comparire
SonoNikoAntiVPN attivoeLicenza verificata.
Una sola licenza copre tutte le piattaforme.
Licenza
Trovi la chiave in Area clienti → Licenze su sononiko.it:
license-key: "SN-XXXXX-XXXXX-XXXXX-XXXXX"
Senza una chiave valida il plugin si disattiva all'avvio. La licenza è legata al server: se cambi hosting usa "Cambia IP / server" nell'area clienti (fino a 3 volte).
Come funziona
- Ogni connessione viene controllata al join: se l'IP è una VPN/proxy, o arriva da un paese, continente o rete (ASN) bloccato, il giocatore viene gestito secondo l'azione configurata.
- Azione configurabile: kick con messaggio personalizzato, oppure solo avviso allo staff.
- Cache dei risultati per non consumare le quote dei provider.
- Fail-open o fail-closed se i provider non rispondono (scegli tu).
- Avvisi in gioco allo staff e su Discord (webhook).
- Messaggi in italiano/inglese.
Comandi
Comando /antivpn (alias /avpn, /antiproxy), permesso antivpn.admin:
| Comando | Cosa fa |
|---|---|
/antivpn check <ip\|giocatore> |
Controlla un IP o un giocatore online |
/antivpn allow <ip/cidr> |
Whitelist un IP o intervallo |
/antivpn deny <ip/cidr> |
Blacklist un IP o intervallo |
/antivpn remove <ip/cidr> |
Toglie una regola IP |
/antivpn country deny\|remove <ISO2> |
Blocca/sblocca uno stato (es. KP) |
/antivpn continent deny\|remove <COD> |
Blocca/sblocca un continente (es. AF) |
/antivpn asn deny\|remove <numero> |
Blocca/sblocca un ASN (es. 16509) |
/antivpn whitelist add\|remove <giocatore> |
Esenta un giocatore |
/antivpn stats |
Statistiche dei controlli |
/antivpn reload |
Ricarica la configurazione |
Permessi
| Permesso | Cosa fa | Default |
|---|---|---|
antivpn.admin |
Usare i comandi /antivpn |
op |
antivpn.bypass |
Salta il controllo VPN/proxy | nessuno |
antivpn.alerts |
Riceve gli avvisi dei blocchi | op |
PlaceholderAPI (solo Paper)
%antivpn_checked%, %antivpn_blocked%, %antivpn_cache%, %antivpn_rules%
Provider
- ip-api.com — gratis, senza chiave, 45 richieste/minuto. Copre proxy, hosting, stato, continente e ASN. Attivo di serie.
- proxycheck.io — gratis fino a 1000/giorno senza chiave, molte di più con una chiave gratuita. Distingue VPN, TOR, proxy e hosting, con punteggio di rischio.
Metti le chiavi in config.yml sotto providers. Puoi cambiarne l'ordine o disattivarne uno.
Configurazione
Voci principali in config.yml:
license-key: la tua chiave.action:kick(con messaggio) oppurealert(solo avviso allo staff).fail-mode:open(in caso di provider offline lascia passare) oclosed(blocca).cache: durata della cache dei risultati.providers: elenco provider, ordine e chiavi API.discord.webhook-url: notifiche dei blocchi su Discord.- Regole: liste per IP/CIDR, paesi, continenti, ASN e whitelist giocatori.
I testi si cambiano nel file lingua. Dopo una modifica: /antivpn reload.
Risoluzione problemi
- "Licenza non valida" all'avvio → chiave errata o IP cambiato: verifica la chiave e usa "Cambia IP / server" nell'area clienti.
- Non blocca nessuno → controlla
actione che i provider siano raggiungibili; prova/antivpn check <ip>. - Falsi positivi → aggiungi il giocatore alla whitelist (
/antivpn whitelist add) o daiantivpn.bypassallo staff. - Nessuna notifica su Discord →
discord.webhook-urlmancante o errato.