Installazione
Server singolo
- Metti
PunishSystem-Paper.jarnella cartellapluginse avvia il server. - In
plugins/PunishSystem/config.ymlincolla la tualicense-key(area clienti). - Riavvia. Il database SQLite si crea da solo.
Network con Velocity
- Metti
PunishSystem-Velocity.jarsul proxy e lalicense-keynel suoconfig.yml. - Metti
PunishSystem-Paper.jarsu ogni server dietro al proxy, conmode: backend(qui la licenza non serve). - In tutti i
config.ymlimposta lo stesso database MySQL/MariaDB:
database:
type: mysql
host: 127.0.0.1
port: 3306
name: punishsystem
user: punish
password: "la-tua-password"
Il proxy controlla i ban all'ingresso e gestisce comandi e ricorsi. I server Paper applicano i mute (Velocity non può bloccare la chat dei client moderni) e aprono il menu dello storico.
Comandi
| Comando | Cosa fa |
|---|---|
/ban <giocatore> [durata] [motivo] [-s] |
Ban (senza durata = permanente) |
/tempban <giocatore> <durata> [motivo] |
Ban a tempo |
/ipban <giocatore\|ip> [durata] [motivo] |
Ban dell'indirizzo IP |
/unban <giocatore\|ip> [motivo] |
Toglie il ban (anche quello IP) |
/mute · /tempmute · /unmute |
Mute |
/warn <giocatore> [motivo] · /unwarn <giocatore> |
Avvertimenti |
/kick <giocatore> [motivo] |
Espulsione |
/punish <giocatore> <modello> |
Sanzione con pena progressiva |
/history <giocatore> |
Storico (menu) |
/alts <giocatore> |
Account che hanno usato gli stessi IP |
/punishsystem reload · info |
Ricarica il config · stato |
Durate: 30m, 12h, 7d, 2w, 1mo, 1y, anche combinate (1d12h). perm = per sempre.
-s: l'annuncio lo vede solo lo staff.
Permessi
| Permesso | Cosa permette |
|---|---|
punishsystem.ban · tempban · ipban · unban |
Ban |
punishsystem.mute · tempmute · unmute |
Mute |
punishsystem.warn · unwarn · kick |
Avvertimenti e kick |
punishsystem.punish + punishsystem.punish.<modello> |
Modelli (o punishsystem.punish.*) |
punishsystem.history · alts |
Storico e alt |
punishsystem.seeip |
Vedere gli IP completi |
punishsystem.silent |
Usare -s |
punishsystem.notify |
Vedere gli annunci silenziosi e le decisioni sui ricorsi |
punishsystem.alerts |
Avvisi sugli alt bannati |
punishsystem.exempt |
Non può essere sanzionato |
punishsystem.punishsystem |
reload e info |
punishsystem.staff |
Pacchetto base per helper (solo Paper) |
Modelli e avvertimenti
Nel config.yml ogni modello ha un motivo e una serie di passi. A ogni recidiva si passa al successivo:
templates:
hack:
reason: "Uso di client modificati"
steps: ["ban 7d", "ban 30d", "ban perm"]
Gli avvertimenti fanno scattare azioni automatiche:
warnings:
expire-days: 30
actions:
3: "mute 1h"
5: "ban 1d"
Ricorsi su Discord
Servono il bot SonoNiko Tickets con il Premium attivo sul tuo Discord.
- Dashboard del bot → Integrazioni: crea la chiave API.
- Dashboard → Ricorsi: scegli la categoria e attiva i ricorsi.
- Nel
config.yml(sul proxy, se hai una network):
appeals:
enabled: true
api-key: "tb_..."
discord: "discord.gg/tuoserver"
Il giocatore bannato o mutato vede un codice e su Discord scrive /ricorso codice:XXXXXXXX. Lo staff riceve un ticket con la sanzione e lo storico, e preme Accetta o Respingi. Se accetta, la sanzione viene tolta in game entro circa 20 secondi.
Nella dashboard puoi anche fare in modo che il ricorso lo possa fare solo chi ha collegato a Discord l'account sanzionato (serve DiscordLink).
Account collegati
Il plugin salva gli IP usati da ogni giocatore. /alts mostra gli altri account: in rosso quelli bannati. Con alts.block-banned-alts: true chi entra dallo stesso IP di un account bannato viene bloccato. Attenzione a famiglie e reti condivise.
Problemi comuni
"in modalità backend serve MySQL": i server dietro a Velocity devono usare lo stesso database del proxy.
I mute non funzionano in network: controlla che PunishSystem sia su ogni server Paper con mode: backend.
I ricorsi non arrivano su Discord: con /punishsystem info vedi quante sanzioni aspettano di essere inviate. In console trovi il motivo (chiave API, Premium non attivo, ricorsi spenti nella dashboard).