BanMenu - TicketSystem - Discord Sync-Groups - Verification-MC icon

BanMenu - TicketSystem - Discord Sync-Groups - Verification-MC -----

Leistungsstarkes Moderations-Plugin mit GUI, Ticket-System, Discord-Integration, IP-Tracking etc.



Code (YAML):
# BanMenu Konfiguration
# Entwickler: EndCrystalTV

# Datenbank-Einstellungen
database
:
  # Typ: mysql oder sqlite
  type
: sqlite
  # MySQL-Einstellungen (nur wenn type: mysql)
  mysql
:
    host
: localhost
    port
: 3306
    database
: banmenutem
    username
: root
    password
: ""
    ssl
: false
  # SQLite-Einstellungen (nur wenn type: sqlite)
  sqlite
:
    file
: banmenu.db

# Sprache
language
: de_DE

# Modul-Einstellungen
modules
:
  ban
: true
  mute
: true
  kick
: true
  ip-tracking
: true
  ip-ban
: false
  history
: true
  vpn-detection
: false
  ticket
: true
  discord
: false
  discord-verify
: false
  discord-unverify
: false

# Ticket-System Einstellungen
ticket
:
  # Methode für Permission-Prüfung bei Offline-Spielern
  # Mögliche Werte: uuid (verwendet UUID für Permission-Prüfung), name (verwendet Spielername)
  # Standard: uuid (funktioniert mit LuckPerms und GroupManager, wenn UUID verfügbar)
  permission-check-method
: uuid

# IP-System
ip-system
:
  enabled
: true
  auto-ban
: false
  notify-team
: true
  notify-permission
: banmenu.notify

# VPN-Erkennung
vpn
:
  enabled
: false
  api-key
: ""
  api-url
: "https://api.vpnapi.io/v2/judge/"

# Multi-Level-System
multi-level
:
  enabled
: true
  # Automatische Strafeskalation bei Wiederholungstätern
  auto-escalate
: true

# Geyser/Bedrock Support
geyser
:
  enabled
: true
  # Separate Behandlung von Java- und Bedrock-Spielern
  separate-identities
: true

# Bungeecord/Waterfall/Velocity
proxy
:
  # Für Bungeecord/Waterfall: signedChatBypass
  signed-chat-bypass
: true
  # SpigotChatAdapter auf Backend-Servern erforderlich
  require-adapter
: true

# GUI-Einstellungen
gui
:
  title
: "&8BanMenu - Moderation"
  size
: 54
  # Keine Verzögerungen in GUI-Übergängen
  instant-transitions
: true
  # Haupt-Menu Items (werden angezeigt, wenn /gui ohne Spieler-Auswahl geöffnet wird)
  # Online-Spieler werden direkt in Slots 0-44 angezeigt (nicht als Item konfigurierbar)
  main-menu
:
    items
:
      punished-players
:
        enabled
: true
        slot
: 49
        material
: RED_WOOL
        name
: "&cGebannte/Gemutete Spieler"
        lore
:
         - "&7Klicke hier, um"
          - "&7gebannte/gemutete Spieler"
          - "&7anzuzeigen"
        permission
: banmenu.gui
        action
: "gui"
        gui-type
: "player-selection-punished"
        hide-if-no-permission
: false
      offline-players
:
        enabled
: true
        slot
: 50
        material
: GRAY_WOOL
        name
: "&7Offline-Spieler"
        lore
:
         - "&7Klicke hier, um"
          - "&7Offline-Spieler anzuzeigen"
        permission
: banmenu.gui
        action
: "gui"
        gui-type
: "player-selection-offline"
        hide-if-no-permission
: false
      tickets
:
        enabled
: true
        slot
: 51
        material
: PAPER
        name
: "&bTickets"
        lore
:
         - "&7Klicke hier, um"
          - "&7Tickets anzuzeigen"
        permission
: banmenu.ticket.team
        action
: "gui"
        gui-type
: "tickets"
        hide-if-no-permission
: true
  # Spieler-Untermenu Items (werden angezeigt, wenn ein Spieler ausgewählt wurde)
  items
:
    ban
:
      enabled
: true
      slot
: 10
      material
: REDSTONE_BLOCK
      name
: "&cSpieler bannen"
      lore
:
       - "&7Klicke hier, um einen"
        - "&7Spieler zu bannen."
      permission
: banmenu.gui.ban
      action
: "gui"
      gui-type
: "ban-ids"
      hide-if-no-permission
: false
    mute
:
      enabled
: true
      slot
: 12
      material
: GOLD_BLOCK
      name
: "&eSpieler muten"
      lore
:
       - "&7Klicke hier, um einen"
        - "&7Spieler zu muten."
      permission
: banmenu.gui.mute
      action
: "gui"
      gui-type
: "mute-ids"
      hide-if-no-permission
: false
    kick
:
      enabled
: true
      slot
: 14
      material
: ORANGE_WOOL
      name
: "&6Spieler kicken"
      lore
:
       - "&7Klicke hier, um einen"
        - "&7Spieler zu kicken."
      permission
: banmenu.gui.kick
      action
: "gui"
      gui-type
: "kick-ids"
      hide-if-no-permission
: false
    history
:
      enabled
: true
      slot
: 16
      material
: BOOK
      name
: "&bSpieler-Historie"
      lore
:
       - "&7Klicke hier, um die"
        - "&7Historie eines Spielers"
        - "&7anzuzeigen."
      permission
: banmenu.history.show
      action
: "gui"
      gui-type
: "history"
      hide-if-no-permission
: false
    check
:
      enabled
: true
      slot
: 28
      material
: COMPASS
      name
: "&aSpieler prüfen"
      lore
:
       - "&7Klicke hier, um einen"
        - "&7Spieler zu prüfen."
      permission
: banmenu.check
      action
: "command"
      command
: "/check {player}"
      hide-if-no-permission
: false
    unban
:
      enabled
: true
      slot
: 30
      material
: EMERALD_BLOCK
      name
: "&aSpieler entbannen"
      lore
:
       - "&7Klicke hier, um einen"
        - "&7Spieler zu entbannen."
      permission
: banmenu.gui.unban
      action
: "gui"
      gui-type
: "unban-ids"
      hide-if-no-permission
: false
    unmute
:
      enabled
: true
      slot
: 32
      material
: LIME_WOOL
      name
: "&aSpieler entmuten"
      lore
:
       - "&7Klicke hier, um einen"
        - "&7Spieler zu entmuten."
      permission
: banmenu.gui.unmute
      action
: "gui"
      gui-type
: "unmute-ids"
      hide-if-no-permission
: false
    custom-command
:
      enabled
: false
      slot
: 34
      material
: COMMAND_BLOCK
      name
: "&bBenutzerdefinierter Befehl"
      lore
:
       - "&7Führt einen benutzerdefinierten"
        - "&7Befehl für den Spieler aus."
      permission
: banmenu.customcommand
      action
: "command"
      command
: "/gamemode creative {player}"
      hide-if-no-permission
: true
    player-info
:
      enabled
: true
      slot
: 53
      material
: CLOCK
      name
: "&bSpieler-Informationen"
      lore
:
        - "&7First Join
: &e{first-join}"
        - "&7Last Seen
: &e{last-seen}"
      permission
: ""
      action
: "player-info"
      hide-if-no-permission
: false

# Update-Check
update-check
:
  enabled
: true
  notify-on-join
: true
  permission
: banmenu.checkupdate

# Debug-Modus
debug
: false
 
Code (YAML):
# Discord-Integration Konfiguration
# Entwickler: EndCrystalTV

# Bot-Token (erhältlich auf https://discord.com/developers/applications)
# Erstelle eine neue Anwendung und einen Bot, um einen Token zu erhalten
bot-token
: ""

# Channel-IDs
# Die Channel-IDs können durch Rechtsklick auf einen Channel → "ID kopieren" erhalten werden
# (Entwicklermodus in Discord muss aktiviert sein)
channels
:
  # Channel für Ticket-Ereignisse (Erstellung, Änderungen, Löschungen)
  ticket-channel-id
: ""

  # Channel für Bestrafungs-Benachrichtigungen (Mutes, Kicks, Bans, Unmutes, Entbannungen, History-Löschungen)
  punishment-channel-id
: ""

  # Channel für Discord-Verifizierung (Spieler können hier "/verify" eingeben)
  verify-channel-id
: ""

# Ticket-Events (jedes Event kann einzeln ein- und ausgeschaltet werden)
ticket-events
:
  created
: true
  closed
: true
  reopened
: true
  deleted
: true

# Bestrafungs-Events (jedes Event kann einzeln ein- und ausgeschaltet werden)
punishment-events
:
  ban
: true
  mute
: true
  kick
: true
  unban
: true
  unmute
: true
  history-deleted
: true

# Discord-Verifizierung
verify
:
  # Cross-Ban: Wenn ein Spieler permanent gebannt wird (Minecraft oder Discord), wird er auch auf dem anderen Server gebannt
  cross-ban
: false
  # Cross-Unban: Wenn ein Spieler auf dem Minecraft-Server entbannt wird und cross-ban aktiv ist, wird der Ban auch auf dem Discord-Server aufgehoben
  cross-unban
: false
  # Haltbarkeit der Verify-Codes (in Sekunden)
  # Nach Ablauf dieser Zeit sind die Codes nicht mehr gültig und werden automatisch gelöscht
  # Standard: 300 Sekunden (5 Minuten)
  verify-code-expiry
: 300
  # Standard-Haltbarkeit für rückwärtskompatible Methoden (in Sekunden)
  # Wird verwendet, wenn kein maxAgeMillis Parameter angegeben wird
  # Standard: 600 Sekunden (10 Minuten)
  default-code-expiry
: 600
  # Haltbarkeit der Unverify-Bestätigungscodes (in Sekunden)
  # Nach Ablauf dieser Zeit sind die Codes nicht mehr gültig
  # Standard: 300 Sekunden (5 Minuten)
  unverify-code-expiry
: 300
  # Discord-Rollen die den /verify Befehl nutzen können (leer = alle können es nutzen)
  # Jede Rolle in einer eigenen Zeile (Rollen-ID)
  allowed-roles
: [ ]
  # Info-Nachricht im Verify-Channel (wird beim Bot-Start/Reload gesendet)
  # Unterstützt Discord-Markdown (**, *, `, etc.) und Emotes
  # Leer lassen oder false um die Info-Nachricht zu deaktivieren
  # Die Nachricht wird automatisch angepasst, wenn das unverify-Modul aktiviert ist
  # Die Nachricht wird beim Reload nur bearbeitet, nicht neu gesendet
  info-message
:
    enabled
: false
    # Nachrichten-ID (wird automatisch gespeichert, nicht manuell ändern!)
    message-id
: ""
    # Standard-Nachricht (wenn unverify deaktiviert ist)
    message
: |
     **Discord-Verifizierung**
 
      Willkommen! Verknüpfe deinen Discord-Account mit deinem Minecraft-Account
:

      **Schritt 1:** Schreibe `/verify` in diesem Channel
      **Schritt 2:** Du erhältst einen 20-stelligen Verifizierungscode
      ⚡ **Schritt 3:** Verwende den Code ingame mit `/dc-verify <code>`
 
      ✅ Nach erfolgreicher Verifizierung bist du mit dem Server verknüpft!
    # Nachricht wenn unverify aktiviert ist (wird automatisch verwendet wenn unverify aktiviert ist)
    message-with-unverify
: |
     **Discord-Verifizierung**
 
      Willkommen! Verknüpfe deinen Discord-Account mit deinem Minecraft-Account
:

      **Schritt 1:** Schreibe `/verify` in diesem Channel
      **Schritt 2:** Du erhältst einen 20-stelligen Verifizierungscode
      ⚡ **Schritt 3:** Verwende den Code ingame mit `/dc-verify <code>`
 
      ✅ Nach erfolgreicher Verifizierung bist du mit dem Server verknüpft!
 
      ---
 
      **Verifizierung aufheben**
 
      Möchtest du deine Verknüpfung löschen?
 
      ⚠️ **Schritt 1:** Verwende ingame `/dc-unverify`
      **Schritt 2:** Du erhältst einen 6-stelligen Bestätigungscode
      ✅ **Schritt 3:** Bestätige mit `/dc-unverify confirm <code>`
 
      ⚠️ Nach der Entverifizierung ist dein Account nicht mehr verknüpft!
  # Befehle die nach erfolgreicher Verifizierung ausgeführt werden
  verify-commands
:
    # Aktiviert/deaktiviert die Ausführung von Befehlen nach Verifizierung
    enabled
: false
    # Liste von Befehlen (jeder Befehl in einer eigenen Zeile)
    # Verfügbare Platzhalter: {player}, {uuid}
    # Beispiel:
    # - "lp user {player} parent set verified"
    # - "pex user {player} add group.verified"
    # - "give {player} diamond 1"
    list
: [ ]
  # Befehle die nach erfolgreicher Entverifizierung ausgeführt werden
  unverify-commands
:
    # Aktiviert/deaktiviert die Ausführung von Befehlen nach Entverifizierung
    enabled
: false
    # Liste von Befehlen (jeder Befehl in einer eigenen Zeile)
    # Verfügbare Platzhalter: {player}, {uuid}
    # Beispiel:
    # - "lp user {player} parent remove verified"
    # - "pex user {player} remove group.verified"
    list
: [ ]
  # Button-Konfiguration für /dc-unverify Befehl
  unverify-button
:
    # Button-Text (wird im Minecraft-Chat angezeigt)
    text
: "⚡ Befehl ausführen"
    # Button-Farbe (verfügbare Farben: GRAY, YELLOW, GREEN, AQUA, RED, etc.)
    # Siehe: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/ChatColor.html
    color
: "GREEN"
    # Button-Text fett drucken
    bold
: false
  # Nachricht-Konfiguration für Discord-Verify-Code
  verify-message
:
    # Überschrift/Titel der Nachricht (wird vor dem Code angezeigt)
    # Verfügbare Platzhalter: {code}, {command}
    header
: " **Dein Verifizierungscode:**"
    # Anweisungstext nach dem Code (wird nach dem Code-Block angezeigt)
    # Verfügbare Platzhalter: {code}, {command}
    instruction
: *Klicke auf den Button rechts am Ende vom Code zum Kopieren oder markiere den Befehl oben*
    # Erfolgs-Nachricht (wird am Ende angezeigt)
    # Verfügbare Platzhalter: {code}, {command}
    success
: "✅ Nach erfolgreicher Verifizierung bist du mit dem Server verknüpft!"
  # Nachrichten für dc-verify und dc-unverify Slash Commands
  dc-verify-message
: "❌ `/dc-verify` ist ein Minecraft-Befehl, kein Discord-Befehl!\nVerwende `/dc-verify` ingame in Minecraft, nicht hier in Discord."
  dc-unverify-message
: "❌ `/dc-unverify` ist ein Minecraft-Befehl, kein Discord-Befehl!\nVerwende `/dc-unverify` ingame in Minecraft, nicht hier in Discord."

# Discord-Nachrichten-Konfiguration
# Verfügbare Platzhalter für Ticket-Events: {id}, {melder}, {reported}, {grund}, {world}, {x}, {y}, {z}
# Verfügbare Platzhalter für Bestrafungs-Events: {player}, {reason}, {admin}, {duration}
messages
:
  # Ticket-Nachrichten
  ticket-created
:
    title
: "Neues Ticket erstellt"
    color
: "#00FF00"
    fields
:
      - name
: "Ticket-ID"
        value
: "#{id}"
        inline
: true
      - name
: "Melder"
        value
: "{melder}"
        inline
: true
      - name
: "Gemeldeter"
        value
: "{reported}"
        inline
: true
      - name
: "Grund"
        value
: "{grund}"
        inline
: false
      - name
: "Position"
        value
: "{world} ({x}, {y}, {z})"
        inline
: false

  ticket-closed
:
    title
: "Ticket geschlossen"
    color
: "#FF0000"
    fields
:
      - name
: "Ticket-ID"
        value
: "#{id}"
        inline
: true
      - name
: "Geschlossen von"
        value
: "{admin}"
        inline
: true

  ticket-reopened
:
    title
: "Ticket wiedereröffnet"
    color
: "#FFFF00"
    fields
:
      - name
: "Ticket-ID"
        value
: "#{id}"
        inline
: true
      - name
: "Wiedereröffnet von"
        value
: "{admin}"
        inline
: true

  ticket-deleted
:
    title
: "Ticket gelöscht"
    color
: "#000000"
    fields
:
      - name
: "Ticket-ID"
        value
: "#{id}"
        inline
: true
      - name
: "Gelöscht von"
        value
: "{admin}"
        inline
: true

  # Bestrafungs-Nachrichten
  ban
:
    title
: "Spieler gebannt"
    color
: "#FF0000"
    fields
:
      - name
: "Spieler"
        value
: "{player}"
        inline
: true
      - name
: "Admin"
        value
: "{admin}"
        inline
: true
      - name
: "Grund"
        value
: "{reason}"
        inline
: false
      - name
: "Dauer"
        value
: "{duration}"
        inline
: true

  mute
:
    title
: "Spieler gemutet"
    color
: "#FFA500"
    fields
:
      - name
: "Spieler"
        value
: "{player}"
        inline
: true
      - name
: "Admin"
        value
: "{admin}"
        inline
: true
      - name
: "Grund"
        value
: "{reason}"
        inline
: false
      - name
: "Dauer"
        value
: "{duration}"
        inline
: true

  kick
:
    title
: "Spieler gekickt"
    color
: "#FFFF00"
    fields
:
      - name
: "Spieler"
        value
: "{player}"
        inline
: true
      - name
: "Admin"
        value
: "{admin}"
        inline
: true
      - name
: "Grund"
        value
: "{reason}"
        inline
: false

  unban
:
    title
: "Spieler entbannt"
    color
: "#00FF00"
    fields
:
      - name
: "Spieler"
        value
: "{player}"
        inline
: true
      - name
: "Admin"
        value
: "{admin}"
        inline
: true
      - name
: "Grund"
        value
: "{reason}"
        inline
: false

  unmute
:
    title
: "Spieler entmutet"
    color
: "#00FF00"
    fields
:
      - name
: "Spieler"
        value
: "{player}"
        inline
: true
      - name
: "Admin"
        value
: "{admin}"
        inline
: true
      - name
: "Grund"
        value
: "{reason}"
        inline
: false

  history-deleted
:
    title
: "Historie gelöscht"
    color
: "#800080"
    fields
:
      - name
: "Spieler"
        value
: "{player}"
        inline
: true
      - name
: "Admin"
        value
: "{admin}"
        inline
: true
      - name
: "Grund"
        value
: "{reason}"
        inline
: false
 
Code (YAML):
# Ticket-System Konfiguration

# Cooldown zwischen Ticket-Erstellungen (in Sekunden)
# Wenn ein Spieler ein Ticket erstellt hat, muss er diesen Cooldown abwarten, bevor er ein neues erstellen kann
# Spieler mit der Permission "banmenu.ticket.delaybypass" können den Cooldown umgehen
# 0 = Kein Cooldown
cooldown
: 1800 # 30 Minuten

# GUI für Spieler-Auswahl (ähnlich wie /gui, aber nur Online/Offline Spieler)
player-selection
:
  title
: "&8Spieler melden"
  size
: 54
  online-players-title
: "&8Online Spieler melden &7(Seite {page})"
  offline-players-title
: "&8Offline Spieler melden &7(Seite {page})"
  players-per-page
: 45

# GUI für Spieler melden (mit vorgefertigten Gründen)
report-gui
:
  title
: "&8Spieler melden | {player}"
  size
: 54

  # Vorgefertigte Gründe (mit ID, Label, Material, Slot)
  reasons
:
    - id
: "hacking"
      label
: "&cHacking / Cheating"
      material
: DIAMOND_SWORD
      slot
: 10
      lore
:
       - "&7Melde diesen Spieler"
        - "&7wegen Hacking/Cheating"
    - id
: "teaming"
      label
: "&eTeaming"
      material
: GOLDEN_APPLE
      slot
: 12
      lore
:
       - "&7Melde diesen Spieler"
        - "&7wegen Teaming"
    - id
: "spawn-kill"
      label
: "&6Spawn-Killing"
      material
: IRON_SWORD
      slot
: 14
      lore
:
       - "&7Melde diesen Spieler"
        - "&7wegen Spawn-Killing"
    - id
: "trolling"
      label
: "&dTrolling / Griefing"
      material
: TNT
      slot
: 16
      lore
:
       - "&7Melde diesen Spieler"
        - "&7wegen Trolling/Griefing"
    - id
: "chat-abuse"
      label
: "&cChat-Missbrauch"
      material
: BOOK
      slot
: 28
      lore
:
       - "&7Melde diesen Spieler"
        - "&7wegen Chat-Missbrauch"
    - id
: "inappropriate-behavior"
      label
: "&4Unangemessenes Verhalten"
      material
: BARRIER
      slot
: 30
      lore
:
       - "&7Melde diesen Spieler"
        - "&7wegen unangemessenem Verhalten"
    - id
: "other"
      label
: "&7Sonstiges"
      material
: PAPER
      slot
: 32
      lore
:
       - "&7Melde diesen Spieler"
        - "&7mit einem anderen Grund"

# GUI für Team-Mitglieder (aktive/geschlossene Tickets)
team-gui
:
  active-tickets-title
: "&8Aktive Tickets &7(Seite {page})"
  closed-tickets-title
: "&8Geschlossene Tickets &7(Seite {page})"
  size
: 54
  tickets-per-page
: 45

  # Ticket-Item (für die Anzeige in der Liste)
  ticket-item
:
    open-status-material
: GREEN_WOOL
    closed-status-material
: RED_WOOL
    lore-open
:
      - "&7Gemeldet von
: &e{melder}"
      - "&7Gemeldeter Spieler
: &c{gemeldeter}"
      - "&7Grund
: &c{grund}"
      - "&7Erstellt
: &e{created}"
      - ""
      - "&a&lStatus
: &aOffen"
      - "&7Klicke für Details"
    lore-closed
:
      - "&7Gemeldet von
: &e{melder}"
      - "&7Gemeldeter Spieler
: &c{gemeldeter}"
      - "&7Grund
: &7{grund}"
      - "&7Erstellt
: &7{created}"
      - "&7Geschlossen von
: &e{closed-by}"
      - "&7Geschlossen
: &c{closed-at}"
      - ""
      - "&c&lStatus
: &cGeschlossen"
      - "&7Klicke für Details"

# Ticket-Details-GUI (wenn ein Team-Mitglied auf ein Ticket klickt)
ticket-details
:
  title
: "&8Ticket #{id}"
  size
: 54

  info-item
:
    slot
: 4
    material
: PAPER
    name
: "&bTicket-Informationen"
    lore
:
      - "&7Ticket-ID
: &e{id}"
      - "&7Gemeldet von
: &e{melder}"
      - "&7Gemeldeter Spieler
: &c{gemeldeter}"
      - "&7Grund
: &7{grund}"
      - "&7Erstellt
: &7{created}"
      - "&7Status
: {status } "
      - "
"
      - "
{closed-info } "
      - "
{reopened-info } "

  actions:
    teleport:
      slot: 19
      material: ENDER_PEARL
      name: "
&aZur Position teleportieren "
      lore:
        - "
&7Teleportiere dich zur Position "
        - "
&7des Melders "
        - "
"
        - "
&eKlicke zum Teleportieren "
 
    close-ticket:
      slot: 22
      material: REDSTONE_BLOCK
      name: "
&cTicket schließen "
      lore:
        - "
&7Schließe dieses Ticket "
        - "
"
        - "
&eKlicke zum Schließen "
 
    reopen-ticket:
      slot: 22
      material: EMERALD_BLOCK
      name: "
&aTicket wieder öffnen "
      lore:
        - "
&7Öffne dieses Ticket erneut "
        - "
"
        - "
&eKlicke zum Öffnen "
 
    punish-melder:
      slot: 25
      material: GOLDEN_AXE
      name: "
&6Melder bestrafen "
      lore:
        - "
&7Öffne das Bestrafungs-GUI "
        - "
&7für den Melder "
        - "
"
        - "
&eKlicke zum Öffnen "
 
    punish-reported:
      slot: 31
      material: DIAMOND_AXE
      name: "
&cGemeldeten bestrafen "
      lore:
        - "
&7Öffne das Bestrafungs-GUI "
        - "
&7für den gemeldeten Spieler "
        - "
"
        - "
&eKlicke zum Öffnen "
 
    delete-ticket:
      slot: 40
      material: BARRIER
      name: "
&4Ticket löschen "
      lore:
        - "
&cAchtung : Diese Aktion kann "
        - "
&cnicht rückgängig gemacht werden! "
        - "
"
        - "
&eKlicke zum Löschen "
 
    back:
      slot: 49
      material: ARROW
      name: "
&7Zurück "
      lore:
        - "
&7Zurück zur Ticket-Übersicht "

# History-Einträge für Tickets
history:
  # Eintrag für gemeldeten Spieler (derjenige, der gemeldet wurde)
  reported-player:
    title: "
&eTicket wurde Gemeldet "
    material: BOOK

  # Eintrag für Melder (derjenige, der gemeldet hat)
  reporter:
    title: "
&eTicket hat Gemeldet "
    material: WRITABLE_BOOK
Code (YAML):
# Ban-ID Konfiguration
# Entwickler: EndCrystalTV
#
# Format: ID -> NurAdmins (ID-Ebene), Grund, Levels mit direkter Dauer-Einstellung
# Levels: Bei jedem Level wird die Dauer direkt in Sekunden angegeben
#
# admin-only:
#   - Auf ID-Ebene: Wenn true, darf nur mit Permission "banmenu.ban.admin" oder "banmenu.ban.*" gebannt werden
#     (überschreibt alle Level-Einstellungen - alle Levels benötigen dann Admin-Permission)
#   - Auf Level-Ebene: Wenn true, darf nur mit Permission dieses spezifische Level verwendet werden
#     WICHTIG: Wenn ein Level admin-only: true ist, benötigen ALLE FOLGENDEN LEVELS ebenfalls Admin-Permission!
#     (wird ignoriert, wenn ID-Ebene admin-only: true ist)
#
# Beispiel:
# 1:
#   admin-only: false  # ID-Ebene: Alle können diese ID verwenden
#   reason: "Spam"
#   levels:
#     1:
#       duration: 1800  # Level 1 = 30 Minuten
#       admin-only: false  # Jeder kann Level 1 verwenden
#     2:
#       duration: 3600  # Level 2 = 1 Stunde
#       admin-only: true  # Ab Level 2 benötigt man Admin-Permission
#     3:
#       duration: 86400  # Level 3 = 1 Tag
#       # Kein admin-only angegeben, aber da Level 2 admin-only: true war,
#       # benötigt auch Level 3 automatisch Admin-Permission!
# 2:
#   admin-only: true  # ID-Ebene: Nur Admins können diese ID verwenden (alle Levels)
#   reason: "Schwerwiegend"
#   levels:
#     1:
#       duration: 86400  # Benötigt Admin-Permission, da ID-Ebene admin-only: true ist
#       admin-only: false  # Wird ignoriert, da ID-Ebene admin-only: true ist

# Standard-IDs (können vom Benutzer bearbeitet werden)
ids
:
  # Ban IDs
  1
:
    admin-only
: false
    reason
: "Spam im Chat"
    levels
:
      1
:
        duration
: 1800   # 30 Minuten
        admin-only
: false   # Jeder kann dieses Level
      2
:
        duration
: 3600   # 1 Stunde
        admin-only
: false   # Jeder kann dieses Level
      3
:
        duration
: 86400   # 1 Tag
        admin-only
: true   # Ab Level 3 benötigt man Admin-Permission
      4
:
        duration
: 259200   # 3 Tage
        # Kein admin-only angegeben, aber benötigt trotzdem Admin-Permission,
        # da Level 3 admin-only: true ist (kumulative Logik)
  2
:
    admin-only
: false
    reason
: "Beleidigung"
    levels
:
      1
:
        duration
: 3600   # 1 Stunde
        admin-only
: false   # Jeder kann dieses Level
      2
:
        duration
: 86400   # 1 Tag
        admin-only
: true   # Ab Level 2 benötigt man Admin-Permission
      3
:
        duration
: 259200   # 3 Tage
        # Kein admin-only angegeben, aber benötigt trotzdem Admin-Permission,
        # da Level 2 admin-only: true ist (kumulative Logik)
  3
:
    admin-only
: false
    reason
: "Wiederholtes Fehlverhalten"
    levels
:
      1
:
        duration
: 86400   # 1 Tag
        admin-only
: false
      2
:
        duration
: 259200   # 3 Tage
        admin-only
: true
      3
:
        duration
: 604800   # 7 Tage
        admin-only
: true
  4
:
    admin-only
: false
    reason
: "Grieving"
    levels
:
      1
:
        duration
: 259200   # 3 Tage
        admin-only
: true
      2
:
        duration
: 604800   # 7 Tage
        admin-only
: true
      3
:
        duration
: 2592000   # 30 Tage
        admin-only
: true
  5
:
    admin-only
: false
    reason
: "Cheating/Hacking"
    levels
:
      1
:
        duration
: 604800   # 7 Tage
        admin-only
: true
      2
:
        duration
: 2592000   # 30 Tage
        admin-only
: true
      3
:
        duration
: -1   # Permanent
        admin-only
: true
  6
:
    admin-only
: true
    reason
: "Schwerwiegendes Fehlverhalten"
    levels
:
      1
:
        duration
: -1   # Permanent
  7
:
    admin-only
: true
    reason
: "Account-Sharing"
    levels
:
      1
:
        duration
: -1   # Permanent
  8
:
    admin-only
: true
    reason
: "Exploit-Nutzung"
    levels
:
      1
:
        duration
: 2592000   # 30 Tage
      2
:
        duration
: -1   # Permanent
Code (YAML):
# Mute-ID Konfiguration
# Entwickler: EndCrystalTV
#
# Format: ID -> NurAdmins (ID-Ebene), Grund, Levels mit direkter Dauer-Einstellung
# Levels: Bei jedem Level wird die Dauer direkt in Sekunden angegeben
# Ban bei Level: Wenn ein Mute-Level erreicht wird, kann stattdessen ein Ban ausgeführt werden
#
# admin-only:
#   - Auf ID-Ebene: Wenn true, darf nur mit Permission "banmenu.mute.admin" oder "banmenu.mute.*" gemutet werden
#     (überschreibt alle Level-Einstellungen - alle Levels benötigen dann Admin-Permission)
#   - Auf Level-Ebene: Wenn true, darf nur mit Permission dieses spezifische Level verwendet werden
#     WICHTIG: Wenn ein Level admin-only: true ist, benötigen ALLE FOLGENDEN LEVELS ebenfalls Admin-Permission!
#     (wird ignoriert, wenn ID-Ebene admin-only: true ist)
#
# Beispiel:
# 1:
#   admin-only: false  # ID-Ebene: Alle können diese ID verwenden
#   reason: "Spam"
#   levels:
#     1:
#       duration: 300  # Level 1 = 5 Minuten
#       admin-only: false  # Jeder kann Level 1 verwenden
#     2:
#       duration: 600  # Level 2 = 10 Minuten
#       admin-only: true  # Ab Level 2 benötigt man Admin-Permission
#     3:
#       duration: 900  # Level 3 = 15 Minuten
#       # Kein admin-only angegeben, aber da Level 2 admin-only: true war,
#       # benötigt auch Level 3 automatisch Admin-Permission!
#     4:
#       ban-at-level: true  # Bei Level 4 wird ein Ban ausgeführt
#       ban-id: 1  # Ban-ID die verwendet wird
#       ban-level: 1  # Ban-Level das gesetzt wird
#       # Level 4 benötigt ebenfalls Admin-Permission, da Level 2 admin-only: true war
# 2:
#   admin-only: true  # ID-Ebene: Nur Admins können diese ID verwenden (alle Levels)
#   reason: "Schwerwiegend"
#   levels:
#     1:
#       duration: 3600  # Benötigt Admin-Permission, da ID-Ebene admin-only: true ist
#       admin-only: false  # Wird ignoriert, da ID-Ebene admin-only: true ist

# Standard-IDs (können vom Benutzer bearbeitet werden)
ids
:
  1
:
    admin-only
: false
    reason
: "Spam im Chat"
    levels
:
      1
:
        duration
: 300   # 5 Minuten
        admin-only
: false   # Jeder kann dieses Level
      2
:
        duration
: 600   # 10 Minuten
        admin-only
: false   # Jeder kann dieses Level
      3
:
        duration
: 900   # 15 Minuten
        admin-only
: true   # Ab Level 3 benötigt man Admin-Permission
      4
:
        duration
: 1800   # 30 Minuten
        # Kein admin-only angegeben, aber benötigt trotzdem Admin-Permission,
        # da Level 3 admin-only: true ist (kumulative Logik)
  2
:
    admin-only
: false
    reason
: "Beleidigung"
    levels
:
      1
:
        duration
: 900   # 15 Minuten
        admin-only
: false   # Jeder kann dieses Level
      2
:
        duration
: 1800   # 30 Minuten
        admin-only
: false   # Jeder kann dieses Level
      3
:
        duration
: 3600   # 1 Stunde
        admin-only
: true   # Ab Level 3 benötigt man Admin-Permission
      4
:
        ban-at-level
: true
        ban-id
: 1
        ban-level
: 1
        # Kein admin-only angegeben, aber benötigt trotzdem Admin-Permission,
        # da Level 3 admin-only: true ist (kumulative Logik)
        # Führt zu Ban, wenn Level erreicht wird
  3
:
    admin-only
: false
    reason
: "Wiederholte Beleidigungen"
    levels
:
      1
:
        duration
: 3600   # 1 Stunde
        admin-only
: false
      2
:
        duration
: 7200   # 2 Stunden
        admin-only
: true
      3
:
        duration
: 86400   # 1 Tag
        admin-only
: true
  4
:
    admin-only
: false
    reason
: "Schwere Beleidigung"
    levels
:
      1
:
        duration
: 86400   # 1 Tag
        admin-only
: true
      2
:
        duration
: 259200   # 3 Tage
        admin-only
: true
  5
:
    admin-only
: false
    reason
: "Wiederholtes Fehlverhalten"
    levels
:
      1
:
        duration
: 604800   # 7 Tage
        admin-only
: true
      2
:
        duration
: 2592000   # 30 Tage
        admin-only
: true
  6
:
    admin-only
: true   # ID-Ebene: Nur Admins können diese ID verwenden (alle Levels)
    reason
: "Schwerwiegende Beleidigung"
    levels
:
      1
:
        duration
: -1   # Permanent
        admin-only
: false   # Wird ignoriert, da ID-Ebene admin-only: true ist
Code (YAML):
# Kick-Konfiguration
# Entwickler: EndCrystalTV
#
# Format: ID -> admin-only, Grund
#
# admin-only:
#   - Auf ID-Ebene: Wenn true, darf nur mit Permission "banmenu.kick.admin" oder "banmenu.kick.*" gekickt werden
#
# Standard-IDs (können vom Benutzer bearbeitet werden)
ids
:
  1
:
    admin-only
: false
    reason
: "Spam im Chat"
  2
:
    admin-only
: false
    reason
: "Beleidigung"
  3
:
    admin-only
: false
    reason
: "Unangemessenes Verhalten"
  4
:
    admin-only
: false
    reason
: "Wiederholtes Fehlverhalten"
  5
:
    admin-only
: true
    reason
: "Schwerwiegendes Fehlverhalten"
  6
:
    admin-only
: true
    reason
: "Exploit-Nutzung"

# Standard-Kick-Grund (wird verwendet, wenn keine ID angegeben wird)
default-reason
: "Du wurdest vom Server gekickt!"

# Kick-Logging
log-kicks
: true

# Kick-Cooldown (in Sekunden, 0 = deaktiviert)
cooldown
: 0
Code (YAML):
# Unban-Konfiguration
# Entwickler: EndCrystalTV
#
# Format: ID -> Grund (wird beim Entbannen als Grund gespeichert)
#
# admin-only:
#   - Auf ID-Ebene: Wenn true, darf nur mit Permission "banmenu.unban.admin" oder "banmenu.unban.*" entbannt werden
#
# Automatisches Unban bei Ablauf
auto-unban
: true

# Unban-Benachrichtigungen
notify-on-unban
: true
notify-message
: "{prefix}&aDu wurdest automatisch entbannt!"

# Unban-Logging
log-unbans
: true

# Standard-IDs (können vom Benutzer bearbeitet werden)
ids
:
  1
:
    admin-only
: false
    reason
: "Fehlban korrigiert"
  2
:
    admin-only
: false
    reason
: "Appeal akzeptiert"
  3
:
    admin-only
: true
    reason
: "Strafzeit abgelaufen (automatisch)"
  4
:
    admin-only
: false
    reason
: "Fehler bei der Bestrafung"
  5
:
    admin-only
: false
    reason
: "Gutes Verhalten in der Appell"
  6
:
    admin-only
: true
    reason
: "Administrative Entscheidung"
  7
:
    admin-only
: false
    reason
: "Beweis entlastet Spieler"
  8
:
    admin-only
: true
    reason
: "Bereuung und Entschuldigung"
Code (YAML):
# Unmute-Konfiguration
# Entwickler: EndCrystalTV
#
# Format: ID -> Grund (wird beim Entmuten als Grund gespeichert)
#
# admin-only:
#   - Auf ID-Ebene: Wenn true, darf nur mit Permission "banmenu.unmute.admin" oder "banmenu.unmute.*" entmutet werden
#
# Automatisches Unmute bei Ablauf
auto-unmute
: true

# Unmute-Benachrichtigungen
notify-on-unmute
: true
notify-message
: "{prefix}&aDu wurdest automatisch entmutet!"

# Unmute-Logging
log-unmutes
: true

# Standard-IDs (können vom Benutzer bearbeitet werden)
ids
:
  1
:
    admin-only
: false
    reason
: "Fehlmute korrigiert"
  2
:
    admin-only
: true
    reason
: "Strafzeit abgelaufen (automatisch)"
  3
:
    admin-only
: false
    reason
: "Fehler bei der Bestrafung"
  4
:
    admin-only
: false
    reason
: "Gutes Verhalten"
  5
:
    admin-only
: true
    reason
: "Administrative Entscheidung"
  6
:
    admin-only
: false
    reason
: "Bereuung und Entschuldigung"
  7
:
    admin-only
: false
    reason
: "Beweis entlastet Spieler"
  8
:
    admin-only
: false
    reason
: "Appeal akzeptiert"
Code (YAML):
# BanMenu Messages
# Developer: EndCrystalTV

prefix
: "&8[&cBanMenu&8] &7"
# Discord-specific prefix (can differ from {prefix})
dc-prefix
: "&8[&9Discord&8] &7"   # May differ from prefix

# General Messages
no-permission
: "{prefix}&cYou don't have permission for this command!"
player-not-found
: "{prefix}&cPlayer &e{player} &cwas not found!"
player-offline
: "{prefix}&cPlayer &e{player} &cis offline!"
invalid-usage
: "{prefix}&cInvalid usage! Use: &e{usage}"
reload-success
: "{prefix}&aPlugin successfully reloaded!"
reload-error
: "{prefix}&cError reloading the plugin!"
no-player-selected
: "{prefix}&cNo player selected!"
bypass-protected
: "{prefix}&cPlayer &e{player} &cis protected by the bypass permission!"
ticket-bypass-protected
: "{prefix}&cPlayer &e{player} &cCannot be reported as they are a team member!"

# Ban Messages
ban-success
: "{prefix}&cPlayer &e{player} &cwas successfully banned!"
ban-already-banned
: "{prefix}&cPlayer &e{player} &cis already banned!"
ban-message
: "&c&lYou have been banned!\n\n&7Reason: &e{reason}\n&7Banned by: &e{admin}\n&7Duration: &e{duration}\n&7Remaining: &e{remaining}"
ban-permanent
: "&c&lYou have been permanently banned!\n\n&7Reason: &e{reason}\n&7Banned by: &e{admin}"
unban-success
: "{prefix}&aPlayer &e{player} &awas successfully unbanned!"
unban-not-banned
: "{prefix}&cPlayer &e{player} &cis not banned!"

# Mute Messages
mute-success
: "{prefix}&cPlayer &e{player} &cwas successfully muted!"
mute-already-muted
: "{prefix}&cPlayer &e{player} &cis already muted!"
mute-message
: "&c&lYou have been muted!\n\n&7Reason: &e{reason}\n&7Muted by: &e{admin}\n&7Duration: &e{duration}\n&7Remaining: &e{remaining}"
mute-permanent
: "&c&lYou have been permanently muted!\n\n&7Reason: &e{reason}\n&7Muted by: &e{admin}"
unmute-success
: "{prefix}&aPlayer &e{player} &awas successfully unmuted!"
unmute-not-muted
: "{prefix}&cPlayer &e{player} &cis not muted!"

# Kick Messages
kick-success
: "{prefix}&cPlayer &e{player} &cwas successfully kicked!"
kick-message
: "&c&lYou have been kicked!\n\n&7Reason: &e{reason}\n&7Kicked by: &e{admin}"
kick-default-reason
: "No reason specified"

# Check Messages
check-header
: "{prefix}&7=== &e{player} &7==="
check-banned
: "&cStatus: &eBanned"
check-muted
: "&cStatus: &eMuted"
check-not-banned
: "&aStatus: &eNot banned"
check-not-muted
: "&aStatus: &eNot muted"
check-ip
: "&7IP: &e{ip}"
check-history-count
: "&7History entries: &e{count}"
check-stats-bans
: "&7Bans: &e{bans}"
check-stats-mutes
: "&7Mutes: &e{mutes}"
check-stats-kicks
: "&7Kicks: &e{kicks}"
check-stats-tickets-created
: "&7Tickets created: &e{tickets_created}"
check-stats-tickets-reported
: "&7Tickets received: &e{tickets_reported}"
check-footer
: "&7========================"

# History Messages
history-header
: "{prefix}&7=== &eHistory of {player} &7==="
history-empty
: "{prefix}&cNo history found for &e{player}&c!"
history-entry
: "&7{date} &8| &e{type} &8| &7Reason: &e{reason} &8| &7By: &e{admin}"
history-deleted
: "{prefix}&aHistory of &e{player} &awas deleted!"

# ID System
id-not-found
: "{prefix}&cID &e{id} &cwas not found!"

# IP System
ip-warning
: "{prefix}&c⚠ &e{player} &7has the same IP as &e{banned_player} &7({ip})"
ip-banned
: "{prefix}&cPlayer &e{player} &cwas automatically banned (same IP as &e{banned_player}&c)!"

# Chat System
chat-filtered
: "{prefix}&cYour message was filtered!"
chat-delay
: "{prefix}&cPlease wait &e{seconds} &cseconds between messages!"
chat-advertising-blocked
: "{prefix}&cYou are not allowed to send links or advertisements!"

# VPN Detection
vpn-detected
: "{prefix}&c⚠ &e{player} &7may be using a VPN ({ip})"

# GUI Messages
gui-open
: "{prefix}&aGUI menu opened!"
gui-ban-player
: "&cBan player"
gui-mute-player
: "&eMute player"
gui-kick-player
: "&6Kick player"
gui-history
: "&7Show history"
gui-check
: "&aCheck player"

# Logs
logs-header
: "{prefix}&7=== &eLogs (Page {page}) &7==="
logs-empty
: "{prefix}&cNo logs found!"
logs-cleared
: "{prefix}&aAll logs were deleted!"
logs-entry
: "&7{date} &8| &e{type} &8| &e{player} &8| &7Reason: &e{reason} &8| &7By: &e{admin}"

# Update Check
update-available
: "{prefix}&aAn update is available! Version: &e{version}"
update-latest
: "{prefix}&aYou are using the latest version!"

# Errors
error-database
: "{prefix}&cDatabase error! Please contact an administrator!"
error-config
: "{prefix}&cConfiguration error! Please check the config.yml!"
error-unknown
: "{prefix}&cAn unknown error occurred!"

# Ticket Notifications
# Message when a new ticket is created
# Available placeholders: {id}, {melder}, {reported}, {grund}
# Multi-line possible - each line will be sent as a separate message
ticket-cooldown-active
: "{prefix}&cYou can create a new ticket in &e{time}&c!"
ticket-notifications
:
  ticket-created
:
   - "&e============&8[&bTicket&8]&e============"
    - "&7New ticket
: &a#&c{id}"
    - "&7Reporter
: &e{melder}"
    - "&7Reported
: &c{reported}"
    - "&7Reason
: &c{grund}"
    - "&e=============================="

  # Message to the reporter when ticket was successfully created
  # Available placeholders: {id}, {melder}, {reported}, {grund}
  # Multi-line possible - each line will be sent as a separate message
  ticket-created-success
:
   - "&e============&8[&bTicket&8]&e============"
    - "&aTicket successfully created!"
    - "&7Ticket-ID
: &a#&c{id}"
    - "&7Reporter
: &e{melder}"
    - "&7Reported
: &c{reported}"
    - "&7Reason
: &c{grund}"
    - "&e=============================="

# Stats Messages
stats-top-mutes
: "&e============&8[&bTop Mutes&8]&e============"
stats-top-mutes-entry
: "&7#{rank} &e{player} &8- &c{value} Mutes"
stats-top-mutes-footer
: "&e=============================="
stats-top-kicks
: "&e============&8[&bTop Kicks&8]&e============"
stats-top-kicks-entry
: "&7#{rank} &e{player} &8- &c{value} Kicks"
stats-top-kicks-footer
: "&e=============================="
stats-top-bans
: "&e============&8[&bTop Bans&8]&e============"
stats-top-bans-entry
: "&7#{rank} &e{player} &8- &c{value} Bans"
stats-top-bans-footer
: "&e=============================="
stats-top-ticket-created
: "&e============&8[&bTop Tickets Created&8]&e============"
stats-top-ticket-created-entry
: "&7#{rank} &e{player} &8- &c{value} Tickets created"
stats-top-ticket-created-footer
: "&e=============================="
stats-top-ticket-reported
: "&e============&8[&bTop Tickets Received&8]&e============"
stats-top-ticket-reported-entry
: "&7#{rank} &e{player} &8- &c{value} Tickets received"
stats-top-ticket-reported-footer
: "&e=============================="

# Discord Messages
# Ticket messages for Discord
discord-ticket-created
: "New ticket created"
discord-ticket-closed
: "Ticket closed"
discord-ticket-reopened
: "Ticket reopened"
discord-ticket-deleted
: "Ticket deleted"

# Punishment messages for Discord
discord-punishment-ban
: "Player banned"
discord-punishment-mute
: "Player muted"
discord-punishment-kick
: "Player kicked"
discord-punishment-unban
: "Player unbanned"
discord-punishment-unmute
: "Player unmuted"
discord-punishment-history-deleted
: "History deleted"

# Discord Verification
discord-disabled
: "{dc-prefix}&cThe Discord module is disabled! Enable it in config.yml under 'modules.discord'."
discord-verify-disabled
: "{dc-prefix}&cDiscord verification is disabled!"
discord-unverify-disabled
: "{dc-prefix}&cDiscord unverification is disabled!"
discord-verify-invalid-code
: "{dc-prefix}&cThe verification code is invalid! The code must be exactly 20 characters long."
discord-verify-code-not-found
: "{dc-prefix}&cThe verification code was not found!"
discord-verify-code-expired
: "{dc-prefix}&cThe verification code has expired! Please create a new code with &e/verify &cin the Discord verify channel."
discord-verify-already-linked
: "{dc-prefix}&cThis Discord account is already linked to another Minecraft account!"
discord-verify-minecraft-already-linked
: "{dc-prefix}&cYour Minecraft account is already linked to another Discord account!"
discord-verify-success
: "{dc-prefix}&aYour Discord account has been successfully linked to your Minecraft account!"
discord-verify-error
: "{dc-prefix}&cAn error occurred during verification! Please contact an administrator."
discord-verify-delete-not-linked
: "{dc-prefix}&cPlayer &e{player} &chas no Discord verification!"
discord-verify-delete-success
: "{dc-prefix}&aDiscord verification of &e{player} &ahas been successfully deleted!"
discord-verify-delete-error
: "{dc-prefix}&cError deleting Discord verification!"
unverify-confirm-required
: "{dc-prefix}&7To delete your verification, use: &e/dc-unverify confirm {code}"
unverify-invalid-code
: "{dc-prefix}&cInvalid confirmation code! Please use /dc-unverify again."
discord-unverify-code-expired
: "{dc-prefix}&cThe confirmation code has expired! Please use &e/dc-unverify &cagain to get a new code."
unverify-not-linked
: "{dc-prefix}&cYou have no Discord verification!"
unverify-success
: "{dc-prefix}&aYour Discord verification has been successfully deleted!"
unverify-error
: "{dc-prefix}&cAn error occurred during unverification! Please contact an administrator."
only-players
: "{prefix}&cThis command can only be used by players!"
Code (YAML):
# BanMenu Nachrichten
# Entwickler: EndCrystalTV

prefix
: "&8[&cBanMenu&8] &7"
# Discord-spezifisches Prefix (kann von {prefix} abweichen)
dc-prefix
: "&8[&9Discord&8] &7"   # Kann anders sein als prefix

# Allgemeine Nachrichten
no-permission
: "{prefix}&cDu hast keine Berechtigung für diesen Befehl!"
player-not-found
: "{prefix}&cSpieler &e{player} &cwurde nicht gefunden!"
player-offline
: "{prefix}&cSpieler &e{player} &cist offline!"
invalid-usage
: "{prefix}&cUngültige Verwendung! Nutze: &e{usage}"
reload-success
: "{prefix}&aPlugin erfolgreich neu geladen!"
reload-error
: "{prefix}&cFehler beim Neuladen des Plugins!"
no-player-selected
: "{prefix}&cKein Spieler ausgewählt!"
bypass-protected
: "{prefix}&cSpieler &e{player} &cist durch die Bypass-Permission geschützt!"
ticket-bypass-protected
: "{prefix}&cSpieler &e{player} &ckann nicht gemeldet werden, da dieser ein Teammitglied ist!"

# Ban-Nachrichten
ban-success
: "{prefix}&cSpieler &e{player} &cwurde erfolgreich gebannt!"
ban-already-banned
: "{prefix}&cSpieler &e{player} &cist bereits gebannt!"
ban-message
: "&c&lDu wurdest gebannt!\n\n&7Grund: &e{reason}\n&7Gebannt von: &e{admin}\n&7Dauer: &e{duration}\n&7Verbleibend: &e{remaining}"
ban-permanent
: "&c&lDu wurdest permanent gebannt!\n\n&7Grund: &e{reason}\n&7Gebannt von: &e{admin}"
unban-success
: "{prefix}&aSpieler &e{player} &awurde erfolgreich entbannt!"
unban-not-banned
: "{prefix}&cSpieler &e{player} &cist nicht gebannt!"

# Mute-Nachrichten
mute-success
: "{prefix}&cSpieler &e{player} &cwurde erfolgreich gemutet!"
mute-already-muted
: "{prefix}&cSpieler &e{player} &cist bereits gemutet!"
mute-message
: "&c&lDu wurdest gemutet!\n\n&7Grund: &e{reason}\n&7Gemutet von: &e{admin}\n&7Dauer: &e{duration}\n&7Verbleibend: &e{remaining}"
mute-permanent
: "&c&lDu wurdest permanent gemutet!\n\n&7Grund: &e{reason}\n&7Gemutet von: &e{admin}"
unmute-success
: "{prefix}&aSpieler &e{player} &awurde erfolgreich entmutet!"
unmute-not-muted
: "{prefix}&cSpieler &e{player} &cist nicht gemutet!"

# Kick-Nachrichten
kick-success
: "{prefix}&cSpieler &e{player} &cwurde erfolgreich gekickt!"
kick-message
: "&c&lDu wurdest gekickt!\n\n&7Grund: &e{reason}\n&7Gekickt von: &e{admin}"
kick-default-reason
: "Kein Grund angegeben"

# Check-Nachrichten
check-header
: "&7====== &e{player} &7======"
check-banned
: "&cStatus: &eGebannt"
check-muted
: "&cStatus: &eGemutet"
check-not-banned
: "&aStatus: &eNicht gebannt"
check-not-muted
: "&aStatus: &eNicht gemutet"
check-ip
: "&7IP: &e{ip}"
check-history-count
: "&7Historie-Einträge: &e{count}"
check-stats-bans
: "&7Bans: &e{bans}"
check-stats-mutes
: "&7Mutes: &e{mutes}"
check-stats-kicks
: "&7Kicks: &e{kicks}"
check-stats-tickets-created
: "&7Tickets erstellt: &e{tickets_created}"
check-stats-tickets-reported
: "&7Tickets erhalten: &e{tickets_reported}"
check-footer
: "&7========================"

# History-Nachrichten
history-header
: "{prefix}&7=== &eHistorie von {player} &7==="
history-empty
: "{prefix}&cKeine Historie für &e{player} &cgefunden!"
history-entry
: "&7{date} &8| &e{type} &8| &7Grund: &e{reason} &8| &7Von: &e{admin}"
history-deleted
: "{prefix}&aHistorie von &e{player} &awurde gelöscht!"

# ID-System
id-not-found
: "{prefix}&cID &e{id} &cwurde nicht gefunden!"

# IP-System
ip-warning
: "{prefix}&c⚠ &e{player} &7hat die gleiche IP wie &e{banned_player} &7({ip})"
ip-banned
: "{prefix}&cSpieler &e{player} &cwurde automatisch gebannt (gleiche IP wie &e{banned_player}&c)!"

# Chat-System
chat-filtered
: "{prefix}&cDeine Nachricht wurde gefiltert!"
chat-delay
: "{prefix}&cBitte warte &e{seconds} &cSekunden zwischen den Nachrichten!"
chat-advertising-blocked
: "{prefix}&cDu darfst keine Links oder Werbung senden!"

# VPN-Erkennung
vpn-detected
: "{prefix}&c⚠ &e{player} &7verwendet möglicherweise ein VPN ({ip})"

# GUI-Nachrichten
gui-open
: "{prefix}&aGUI-Menü geöffnet!"
gui-ban-player
: "&cSpieler bannen"
gui-mute-player
: "&eSpieler muten"
gui-kick-player
: "&6Spieler kicken"
gui-history
: "&7Historie anzeigen"
gui-check
: "&aSpieler prüfen"

# Logs
logs-header
: "{prefix}&7=== &eLogs (Seite {page}) &7==="
logs-empty
: "{prefix}&cKeine Logs gefunden!"
logs-cleared
: "{prefix}&aAlle Logs wurden gelöscht!"
logs-entry
: "&7{date} &8| &e{type} &8| &e{player} &8| &7Grund: &e{reason} &8| &7Von: &e{admin}"

# Update-Check
update-available
: "{prefix}&aEin Update ist verfügbar! Version: &e{version}"
update-latest
: "{prefix}&aDu verwendest die neueste Version!"

# Fehler
error-database
: "{prefix}&cDatenbankfehler! Bitte kontaktiere einen Administrator!"
error-config
: "{prefix}&cKonfigurationsfehler! Bitte überprüfe die config.yml!"
error-unknown
: "{prefix}&cEin unbekannter Fehler ist aufgetreten!"

# Ticket-Benachrichtigungen
# Nachricht, wenn ein neues Ticket erstellt wurde
# Verfügbare Platzhalter: {id}, {melder}, {reported}, {grund}
# Mehrzeilig möglich - jede Zeile wird als separate Nachricht gesendet
ticket-cooldown-active
: "{prefix}&cDu kannst erst wieder ein Ticket erstellen in &e{time}&c!"
ticket-notifications
:
  ticket-created
:
   - "&e============&8[&bTicket&8]&e============"
    - "&7Neues Ticket
: &a#&c{id}"
    - "&7Melder
: &e{melder}"
    - "&7Gemeldeter
: &c{reported}"
    - "&7Grund
: &c{grund}"
    - "&e=============================="

  # Nachricht an den Melder, wenn Ticket erfolgreich erstellt wurde
  # Verfügbare Platzhalter: {id}, {melder}, {reported}, {grund}
  # Mehrzeilig möglich - jede Zeile wird als separate Nachricht gesendet
  ticket-created-success
:
   - "&e============&8[&bTicket&8]&e============"
    - "&aTicket erfolgreich erstellt!"
    - "&7Ticket-ID
: &a#&c{id}"
    - "&7Melder
: &e{melder}"
    - "&7Gemeldeter
: &c{reported}"
    - "&7Grund
: &c{grund}"
    - "&e=============================="

# Stats-Nachrichten
stats-top-mutes
: "&e==========&8[&bTop Mutes&8]&e=========="
stats-top-mutes-entry
: "&7#{rank} &e{player} &8- &c{value} Mutes"
stats-top-mutes-footer
: "&e=============================="
stats-top-kicks
: "&e==========&8[&bTop Kicks&8]&e=========="
stats-top-kicks-entry
: "&7#{rank} &e{player} &8- &c{value} Kicks"
stats-top-kicks-footer
: "&e=============================="
stats-top-bans
: "&e=========&8[&bTop Gebannt&8]&e========="
stats-top-bans-entry
: "&7#{rank} &e{player} &8- &c{value} Bans"
stats-top-bans-footer
: "&e=============================="
stats-top-ticket-created
: "&e=======&8[&bTop Ticket erstellt&8]&e======="
stats-top-ticket-created-entry
: "&7#{rank} &e{player} &8- &c{value} Tickets erstellt"
stats-top-ticket-created-footer
: "&e=============================="
stats-top-ticket-reported
: "&e======&8[&bTop Tickets erhalten&8]&e======"
stats-top-ticket-reported-entry
: "&7#{rank} &e{player} &8- &c{value} Tickets erhalten"
stats-top-ticket-reported-footer
: "&e=============================="

# Discord-Nachrichten
# Ticket-Nachrichten für Discord
discord-ticket-created
: "Neues Ticket erstellt"
discord-ticket-closed
: "Ticket geschlossen"
discord-ticket-reopened
: "Ticket wiedereröffnet"
discord-ticket-deleted
: "Ticket gelöscht"

# Bestrafungs-Nachrichten für Discord
discord-punishment-ban
: "Spieler gebannt"
discord-punishment-mute
: "Spieler gemutet"
discord-punishment-kick
: "Spieler gekickt"
discord-punishment-unban
: "Spieler entbannt"
discord-punishment-unmute
: "Spieler entmutet"
discord-punishment-history-deleted
: "Historie gelöscht"

# Discord-Verifizierung
discord-disabled
: "{dc-prefix}&cDas Discord-Modul ist deaktiviert! Aktiviere es in der config.yml unter 'modules.discord'."
discord-verify-disabled
: "{dc-prefix}&cDie Discord-Verifizierung ist deaktiviert!"
discord-unverify-disabled
: "{dc-prefix}&cDie Discord-Entverifizierung ist deaktiviert!"
discord-verify-invalid-code
: "{dc-prefix}&cDer Verifizierungscode ist ungültig! Der Code muss genau 20 Zeichen lang sein."
discord-verify-code-not-found
: "{dc-prefix}&cDer Verifizierungscode wurde nicht gefunden!"
discord-verify-code-expired
: "{dc-prefix}&cDer Verifizierungscode ist abgelaufen! Bitte erstelle einen neuen Code mit &e/verify &cim Discord-Verify-Channel."
discord-verify-already-linked
: "{dc-prefix}&cDieser Discord-Account ist bereits mit einem anderen Minecraft-Account verknüpft!"
discord-verify-minecraft-already-linked
: "{dc-prefix}&cDein Minecraft-Account ist bereits mit einem anderen Discord-Account verknüpft!"
discord-verify-success
: "{dc-prefix}&aDein Discord-Account wurde erfolgreich mit deinem Minecraft-Account verknüpft!"
discord-verify-error
: "{dc-prefix}&cEin Fehler ist bei der Verifizierung aufgetreten! Bitte kontaktiere einen Administrator."
discord-verify-delete-not-linked
: "{dc-prefix}&cSpieler &e{player} &chat keine Discord-Verifizierung!"
discord-verify-delete-success
: "{dc-prefix}&aDiscord-Verifizierung von &e{player} &awurde erfolgreich gelöscht!"
discord-verify-delete-error
: "{dc-prefix}&cFehler beim Löschen der Discord-Verifizierung!"
unverify-confirm-required
: "{dc-prefix}&7Um deine Verifizierung zu löschen, verwende: &e/dc-unverify confirm {code}"
unverify-invalid-code
: "{dc-prefix}&cUngültiger Bestätigungscode! Bitte verwende /dc-unverify erneut."
discord-unverify-code-expired
: "{dc-prefix}&cDer Bestätigungscode ist abgelaufen! Bitte verwende &e/dc-unverify &cerneut, um einen neuen Code zu erhalten."
unverify-not-linked
: "{dc-prefix}&cDu hast keine Discord-Verifizierung!"
unverify-success
: "{dc-prefix}&aDeine Discord-Verifizierung wurde erfolgreich gelöscht!"
unverify-error
: "{dc-prefix}&cEin Fehler ist bei der Entverifizierung aufgetreten! Bitte kontaktiere einen Administrator."
only-players
: "{prefix}&cDieser Befehl kann nur von Spielern verwendet werden!"
Resource Information
Author:
----------
Total Downloads: 54
First Release: Dec 24, 2025
Last Update: Dec 29, 2025
Category: ---------------
All-Time Rating:
0 ratings
Find more info at www.endcrystal.eu...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings