Documentazione PunishSystem

Installazione, comandi, permessi e configurazione.

Installazione

Server singolo

  1. Metti PunishSystem-Paper.jar nella cartella plugins e avvia il server.
  2. In plugins/PunishSystem/config.yml incolla la tua license-key (area clienti).
  3. Riavvia. Il database SQLite si crea da solo.

Network con Velocity

  1. Metti PunishSystem-Velocity.jar sul proxy e la license-key nel suo config.yml.
  2. Metti PunishSystem-Paper.jar su ogni server dietro al proxy, con mode: backend (qui la licenza non serve).
  3. In tutti i config.yml imposta 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.

  1. Dashboard del bot → Integrazioni: crea la chiave API.
  2. Dashboard → Ricorsi: scegli la categoria e attiva i ricorsi.
  3. 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).