Konfiguration

Jeder Schlüssel der config.yml mit Standardwert und Erklärung.

Alle Einstellungen stehen in plugins/MuteEssentials/config.yml. Änderungen übernimmst du im laufenden Betrieb mit /mues reload, sofern nichts anderes angegeben ist. Neue Config-Schlüssel aus Plugin-Updates werden automatisch in deine bestehende Datei eingefügt, deine eigenen Werte werden dabei nie überschrieben.


Allgemein

Config:
  MergeDefaults: true

General:
  Language: "auto"
  Prefix: "&c&lMuteEssentials &8>&r "
  DiscordURL: "https://discord.gg/yourserver"
SchlüsselBeschreibung
Config.MergeDefaultsStandardmäßig an: Fehlende Config-Schlüssel, Ränge und Vorlagen werden beim Start aus den mitgelieferten Standardwerten wieder ergänzt. Setz den Wert auf false, wenn entfernte Ränge, Vorlagen und Schlüssel nicht zurückkommen sollen. Deine eigenen Werte werden nie überschrieben oder entfernt.
Language"auto" erkennt die Sprache des Minecraft-Clients jedes Spielers automatisch. Deutsche Clients sehen Deutsch, alle anderen Englisch. Mit "de" oder "en" legst du eine Sprache für alle fest.
PrefixDer Prefix vor allen Meldungen des Plugins im Chat. Farbcodes mit & werden unterstützt.
DiscordURLDein Discord-Einladungslink. Wird im Ban-, Kick- und Wartungsbildschirm als %DISCORD% verwendet.

Befehle

Jeder einzelne Befehl von MuteEssentials lässt sich einzeln ein- oder ausschalten. Außerdem kannst du eigene Aliase festlegen.

Commands:
  heal:
    enabled: true
    aliases: []
  gamemode:
    enabled: true
    aliases: ["gm"]
  vanish:
    enabled: true
    aliases: ["v"]
  msg:
    enabled: true
    aliases: ["tell", "w"]
SchlüsselBeschreibung
enabledMit false schaltest du einen Befehl komplett ab. Er wird dann gar nicht erst auf dem Server registriert und kommt so nicht anderen Plugins mit gleichem Befehlsnamen in die Quere.
aliasesEine Liste alternativer Namen für den Befehl. Mit aliases: ["gm"] können Spieler zum Beispiel /gm statt /gamemode eingeben.

Erfordert einen Neustart des Servers, weil Befehle beim Start des Plugins registriert werden.


Prefix-System

Legt fest, wie Spieler im Chat, in der Tabliste und über ihrem Kopf erscheinen. Alle drei nutzen denselben Prefix, damit das Aussehen überall gleich ist.

PrefixSystem:
  Enabled: true
  NickOverheadName: false
  ChatFormat: "%PREFIX%%PLAYER%%SUFFIX%&8: &f%MESSAGE%"
  Ranks:
    owner:
      permission: "muteessentials.rank.owner"
      prefix: "&c&lOWNER &8» &c"
      suffix: ""
      priority: 1000
    admin:
      permission: "muteessentials.rank.admin"
      prefix: "&6&lADMIN &8» &6"
      suffix: ""
      priority: 900
    default:
      permission: ""
      prefix: "&7&lPLAYER &8» &7"
      suffix: ""
      priority: 100

Die Farben der Standardränge entsprechen eins zu eins den Farbstofffarben von Minecraft, damit sie neben Wollblöcken gut lesbar sind. Die Admin-GUI bietet einen Farbwähler mit 16 Farben (ein Wollblock pro Farbstofffarbe), mit dem du Ränge im laufenden Betrieb anlegen und umfärben kannst.

SchlüsselBeschreibung
ChatFormatWie Chatnachrichten formatiert werden. %PREFIX% wird durch den Prefix des Rangs ersetzt, %PLAYER% durch den Spielernamen, %SUFFIX% durch den Suffix und %MESSAGE% durch die Chatnachricht.
NickOverheadNameÄndert bei einem genickten Spieler auch den Namen über dem Kopf. Standardmäßig aus, braucht ProtocolLib. Siehe Nick-System.
permissionDie Permission, die bestimmt, welchen Rang ein Spieler hat. Wer mehrere Rang-Permissions hat, bekommt den Rang mit der höchsten Priorität. Bei OP-Spielern lässt sich das mit /rank set übersteuern. Für den Standardrang leer lassen.
prefixSteht vor dem Spielernamen. Der letzte Farbcode im Prefix bestimmt die Farbe des Namens.
priorityRänge mit höherer Priorität haben Vorrang. Hat ein Spieler sowohl admin (900) als auch vip (500), erscheint er als Admin.

Scoreboard, Tabliste und Prefix-System lassen sich unabhängig voneinander ein- und ausschalten (Scoreboard.Enabled, TabList.Enabled, PrefixSystem.Enabled).


Nick-System

Anzeigenamen, die überall gelten und mit denen sich niemand als ein anderer Spieler ausgeben kann. Das vollständige Verhalten, die Schutzregeln und was das Team sieht, beschreibt das Nick-System-Modul.

Nick:
  AllowRankNick: true
  BlockRankNames: true
  Blacklist:
    - Notch
    - Herobrine
    - Dinnerbone
    - Console
    - Server
    - Admin
    - Owner
SchlüsselBeschreibung
AllowRankNickHauptschalter für /nick <name> <rank>. Mit false sind Nicks mit Rang komplett abgeschaltet.
BlockRankNamesLehnt Nicks ab, die einem Rangnamen entsprechen.
BlacklistNamen, die nie als Nick verwendet werden dürfen. Abgelehnt wird ein Nick außerdem, wenn er zu einem echten Account gehört, % enthält oder schon von einem anderen Spieler getragen wird.

Den Namen über dem Kopf steuert PrefixSystem.NickOverheadName (braucht ProtocolLib).


Wirtschaft

Ein eingebautes Wirtschaftssystem. Es funktioniert für sich allein und kann sich optional als Wirtschaftsanbieter bei Vault anmelden, damit andere Plugins (Shops, Jobs und so weiter) dieselben Kontostände lesen und schreiben.

Economy:
  StartBalance: 100.0
  Symbol: "$"
  CurrencyNameSingular: "Coin"
  CurrencyNamePlural: "Coins"
  VaultHook: true
SchlüsselBeschreibung
StartBalanceDas Geld, mit dem neue Spieler starten. Setz den Wert auf 0, wenn sich Spieler alles selbst verdienen sollen.
SymbolDas Währungssymbol vor Beträgen. Erscheint in /money, /baltop, im Scoreboard und in PlaceholderAPI.
CurrencyNameSingular / CurrencyNamePluralNamen der Währung, die über Vault bereitgestellt werden.
VaultHookIst Vault installiert, meldet sich MuteEssentials als Wirtschaftsanbieter an. Setz den Wert auf false, wenn ein anderes Plugin die Vault-Wirtschaft stellen soll.

Auktionshaus

Ein Marktplatz der Spieler. Die Items liegen in einer SQLite-Datenbank im jeweiligen Modulordner.

Auction:
  Enabled: true
  MinPrice: 1.0
  MaxPrice: 1000000.0
  MaxListingsPerPlayer: 5
  DurationHours: 48
  ListFee: 10.0
SchlüsselBeschreibung
MinPrice / MaxPricePreisgrenzen für Angebote. Verhindert sowohl Spaßpreise als auch das Ausnutzen der Wirtschaft.
MaxListingsPerPlayerWie viele aktive Angebote jeder Spieler gleichzeitig haben kann.
DurationHoursWie lange ein Angebot online bleibt, bevor es abläuft und in die Auktions-Mailbox des Verkäufers wandert.
ListFeeGeld, das dem Verkäufer beim Einstellen eines Angebots abgezogen wird. Mit 0 entfällt die Gebühr ganz (keine Prüfung des Kontostands, kein Abzug). Ansonsten wird sie nicht erstattet.

Abgelaufene Angebote gehen per Post im Spiel an den Verkäufer zurück (/ah mail). Beim Kauf wird der Preis automatisch dem Kontostand des Verkäufers gutgeschrieben.

Werkzeuge für Admins: Jeder Spieler mit muteessentials.auction.admin kann mit /auction <player> die aktiven Angebote dieses Spielers öffnen. Ein Rechtsklick auf ein Angebot entfernt es, das Item geht per Auktionspost an den Verkäufer zurück. In der eigenen Ansicht /ah my bricht der Besitzer ein Angebot ebenfalls per Rechtsklick ab.


Ban-System

BanSystem:
  Enabled: true
  Permission: "muteessentials.ban"
  Templates:
    1:
      reason: "Hacking/Cheating"
      duration: -1
      display: "&c[1] &eHacking/Cheating &7(Permanent)"
SchlüsselBeschreibung
EnabledMit false schaltest du das gesamte Ban-System ab.
TemplatesVordefinierte Ban-Gründe mit Dauer. Das Team kann über die Nummer einer Vorlage bannen, statt einen Grund einzutippen. Die Dauer ist in Sekunden angegeben, -1 bedeutet permanent. Der Text unter display ist das, was das Team in der GUI und in der Vorlagenliste sieht.

Zeiteinheit: Sekunden. Der Text des Kick-Screens steht in messages-de.yml / messages-en.yml unter BanSystem.KickMessage (mit denselben Platzhaltern: %REASON%, %DURATION%, %BANNER%, %DISCORD%).

Die Admin-GUI zeigt die Vorlagen seitenweise an (28 pro Seite, Pfeile für vor und zurück in der untersten Reihe) und hat einen Knopf ✎ Eigener..., der im Chat nach reason | duration fragt (zum Beispiel Hacking | 7d, Trolling | permanent). Die Dauer versteht 1d, 12h, 30m, 15s, Kombinationen wie 1d12h, reine Sekunden sowie permanent/perm/-1. Du kannst beliebig viele Vorlagen anlegen, eine Obergrenze gibt es nicht.


Mute-System

MuteSystem:
  Enabled: true
  Permission: "muteessentials.mute"
  Templates:
    1:
      reason: "Spam"
      duration: 3600
      display: "&c[1] &eSpam &7(1 hour)"

Aufgebaut wie das Ban-System. In der Vorlage wird die Dauer von Mutes in Sekunden angegeben, intern speichert das Plugin den Ablaufzeitpunkt in Millisekunden.

/mute <player> <reason words> [seconds] nimmt optional als letztes Argument eine Zahl als Dauer in Sekunden an, genau wie /customban. Vorlagen und der Knopf für eigene Gründe in der GUI (reason | duration) funktionieren wie bei Bans.


Kick-System

KickSystem:
  Permission: "muteessentials.kick"
  Templates:
    1:
      reason: "AFK"
      display: "&e[1] &6AFK"

Arbeitet mit Vorlagen, ohne Dauer. Der Ablauf in der GUI ist derselbe wie bei Bans und Mutes: eine Liste über mehrere Seiten und dazu ein Knopf ✎ Eigener... für frei formulierte Gründe (bei Kicks ohne Abfrage einer Dauer).


Verwarnungssystem

WarnSystem:
  Enabled: true
  AutoBanThreshold: 3
  Templates:
    1:
      reason: "Spam"
      display: "&d[1] &fSpam"
    2:
      reason: "Beleidigung"
      display: "&d[2] &fBeleidigung"
SchlüsselBeschreibung
EnabledHauptschalter für das Verwarnungssystem.
AutoBanThresholdNach so vielen Verwarnungen wird der Spieler automatisch gebannt. Mit einer sehr hohen Zahl schaltest du den automatischen Ban praktisch ab, während Verwarnungen weiter erfasst werden.
TemplatesVordefinierte Verwarnungsgründe. Jeder Eintrag hat einen reason (der Text der Verwarnung) und ein display (die Beschriftung in der GUI). Anders als bei Bans und Mutes gibt es keine Dauer.

Team-Claims

Teams können Gebiete claimen, um sie zu schützen. Angelehnt an das Plugin Lands.

ClanSystem:
  Enabled: true
  MaxNameLength: 4
  MinNameLength: 2
  ClanSuffix: " &8[%COLOR%%CLAN%&8]"
  MaxClaimWidth: 100
  MaxClaimDepth: 100
  MaxClaimHeight: 256
  MaxClaimVolume: 200000
  MaxClaims: 3
  ClaimCost:
    Enabled: true
    CostPerBlock: 0.1
    FreeBlocks: 0
SchlüsselBeschreibung
MaxNameLength / MinNameLengthTeamnamen müssen zwischen diesen Längen liegen. Erlaubt sind nur A-Z und 0-9.
ClanSuffixSteht in der Tabliste hinter dem Spielernamen. %CLAN% ist der Teamname, %COLOR% die mit /team color gesetzte Farbe.
MaxClaimWidth / MaxClaimDepthMaximale Größe eines einzelnen Claims in Blöcken auf der X- und Z-Achse.
MaxClaimHeightMaximale Höhe eines Claims. Mit 256 gilt die volle Welthöhe.
MaxClaimVolumeObergrenze für das Gesamtvolumen. Wirkt als zusätzliches hartes Limit.
MaxClaimsWie viele getrennte Claims jedes Team haben kann.
ClaimCost.EnabledMit false sind Claims kostenlos.
ClaimCost.CostPerBlockGeld pro Block (Grundfläche, X*Z).
ClaimCost.FreeBlocksWie viele Blöcke kostenlos sind, bevor CostPerBlock greift. Mit 0 kostet schon der erste Block.

Claims schützen vor: Abbauen und Setzen von Blöcken, Interaktionen (Türen, Truhen, Knöpfe), Flüssigkeiten, die von außen hereinfließen, Eimern sowie Kolben, die von außen schieben oder ziehen. Jeder Claim hat in der Team-GUI umschaltbare Flags (PvP, Mob-Spawning, Explosionen, Feuerausbreitung, Laubzerfall, Tierschutz, Enderperlen, Kolben).


Container-Schutz (ChestLock)

Automatische Sperren für jeden InventoryHolder-Block (Truhen, Fässer, Öfen, Trichter, Spender, Shulkerkisten, Braustände und mehr). Endertruhen und Lesepulte sind bewusst ausgenommen.

ChestLock:
  AutoLockOnPlace: true
  TeamMembersHaveAccess: true
  BlockHopperSteal: true
  ProtectFromExplosions: true
  ShowOwnerActionBar: true
SchlüsselBeschreibung
AutoLockOnPlaceSperrt jeden Container für den Spieler, der ihn gesetzt hat. Schalte das ab, wenn du ausschließlich von Hand mit /lock sperren willst.
TeamMembersHaveAccessMitglieder desselben Clans kommen automatisch an die gesperrten Container der anderen. Für gesellige SMPs auf true lassen.
BlockHopperStealFremde Trichter können keine Items aus gesperrten Containern ziehen. Trichter desselben Spielers oder desselben Teams funktionieren weiterhin.
ProtectFromExplosionsGesperrte Container überstehen TNT- und Creeper-Explosionen.
ShowOwnerActionBarSpieler sehen kurz „Container von X“ in der Actionbar, wenn sie einen Container öffnen, auf den sie Zugriff haben.

Doppeltruhen werden abgeglichen: Sperren, Vertrauen und Abbauen gelten jeweils für beide Hälften. Die Sperren liegen in modules/ChestLock/chestlock.db.


Zufälliger Teleport (RTP)

RTP:
  Permission: "muteessentials.rtp"
  World: "world"
  MinRadius: 500
  MaxRadius: 5000
  CenterX: 0
  CenterZ: 0
  Cooldown: 60
  MaxTries: 20
  TeleportCountdown: 3
SchlüsselBeschreibung
WorldName der Zielwelt. Leer lassen, um die Welt zu nehmen, in der der Spieler gerade ist.
MinRadius / MaxRadiusAbstand von CenterX/CenterZ, in dem der Teleport landen darf. MinRadius verhindert, dass man direkt neben dem Spawn landet.
CenterX / CenterZMittelpunkt des Teleport-Rings. Meist der Weltspawn.
CooldownSekunden zwischen zwei /rtp-Aufrufen. Mit muteessentials.rtp.ignoreCooldown umgehbar.
MaxTriesWie viele zufällige Orte geprüft werden, bevor aufgegeben und der Spieler gebeten wird, es noch einmal zu versuchen.
TeleportCountdownWartezeit in Sekunden vor dem Teleport. Bricht bei Bewegung und (falls eingeschaltet) bei Schaden ab. Mit 0 wird sofort teleportiert.

Die gemeinsame Einstellung zum Abbruch im Kampf findest du unter Teleport.

Chunks werden asynchron geladen, sodass /rtp den Hauptthread nicht aufhält. Unsichere Stellen (Lava, Wasser, Kakteen, Stürze ins Void, geclaimtes Land) werden automatisch übersprungen.


Teleport

Gemeinsames Verhalten der Wartezeit für /home, /spawn, /warp, /tpa und /rtp.

Teleport:
  CancelOnDamage: true
SchlüsselBeschreibung
CancelOnDamageBricht eine laufende Teleport-Wartezeit ab, sobald der Spieler Schaden nimmt. Hilft gegen Combat-Logging. Mit false abschalten.

Die Dauer der Wartezeit legt jeder Teleport über seinen eigenen Countdown-Schlüssel fest (Home, Warp und Spawn nutzen Warp.TeleportCountdown, /tpa nutzt TPA.TeleportCountdown, /rtp nutzt RTP.TeleportCountdown). Die Wartezeit bricht außerdem ab, wenn sich der Spieler bewegt.


Home-System

Home:
  Permission: "muteessentials.home"
  TeleportCountdown: 3
  TeleportCooldown: 3
  MaxHomes: 5
SchlüsselBeschreibung
TeleportCountdownSekunden, die der Spieler vor dem Teleport stillstehen muss. Mit 0 wird sofort teleportiert.
TeleportCooldownSekunden zwischen zwei Teleports. Verhindert Spam.
MaxHomesMaximale Anzahl Homes pro Spieler. Lässt sich mit muteessentials.home.ignoreMaxHomes umgehen.

Bei Home-Namen spielt Groß- und Kleinschreibung keine Rolle, erlaubt sind a-z0-9_ mit höchstens 16 Zeichen.


Warp-System

Warp:
  Permission: "muteessentials.warp"
  SetPermission: "muteessentials.warp.set"
  TeleportCountdown: 3

Der Countdown verhält sich wie bei Homes. Für Warp-Namen gelten dieselben Regeln.


Scoreboard

Ein Scoreboard an der Seite, das alle Spieler sehen. Aktualisiert sich alle 2 Sekunden.

Scoreboard:
  Enabled: true
  Title: "&c&lMyServer"
  ServerName: "play.example.com"
  Lines:
    - "&8"
    - "&7\u2604 &f%DATE%"
    - "&8 "
    - "&f%PLAYER%:"
    - "&c\u2605 &7Rank: %RANK%"
    - "&a\u2714 &7Online: &a%ONLINE%"
    - "&e\u2666 &7Money: &e%BALANCE%"
    - "&c\u2601 &7Ping: &c%PING%&7ms"
    - "&8\u00a7r"
    - "&7\u27a1 &8%SERVER%"
SchlüsselBeschreibung
EnabledMit false schaltest du das Scoreboard komplett ab.
TitleDer Titel oben im Scoreboard.
ServerNameErsetzt %SERVER% in den Zeilen. Meist die Domain deines Servers.
LinesJeder Eintrag ist eine Zeile im Scoreboard. Du kannst Zeilen frei hinzufügen, entfernen oder umsortieren.

Verfügbare Platzhalter

PlatzhalterWert
%PLAYER%Spielername
%RANK%Formatierter Prefix des Rangs
%ONLINE%Spieler online
%MAXPLAYERS%Maximale Spielerplätze
%PING%Ping in ms
%BALANCE%Kontostand mit Währungssymbol
%KILLS%PvP-Kills
%DEATHS%Tode
%PLAYTIME%Gesamte Spielzeit
%DATE%Aktuelles Datum (dd.MM.yyyy)
%TIME%Aktuelle Uhrzeit (HH:mm)
%TEAM%Teamname oder Ersatzwert
%SERVER%Servername aus der Config
%X% %Y% %Z%Koordinaten des Spielers
%WORLD%Name der Welt

Ist PlaceholderAPI installiert, kannst du auch jeden externen Platzhalter wie %vault_eco_balance% direkt in den Zeilen des Scoreboards verwenden.


Tabliste

Eigene Kopf- und Fußzeilen in der Spielerliste (Tab-Taste). Nutzt dieselben Platzhalter wie das Scoreboard.

TabList:
  Enabled: true
  Header:
    - ""
    - "&c&lMyServer"
    - "&8&m                              "
    - ""
  Footer:
    - ""
    - "&8&m                              "
    - "&7Online: &c%ONLINE%&8/&c%MAXPLAYERS% &8| &7Ping: &c%PING%ms"
    - "&8%SERVER%"
    - ""

Jeder Eintrag in der Liste ist eine Zeile. Leere Strings ("") erzeugen Leerzeilen als Abstand.


MOTD in der Serverliste

Ersetzt die Standardbeschreibung des Servers in der Minecraft-Serverliste. Das ist das, was Spieler sehen, bevor sie überhaupt joinen.

ServerListMOTD:
  Enabled: false
  Line1: "&c&l\u2726 &f&lMyServer &c&l\u2726"
  Line2: "&7Your server description here"

Setz Enabled auf true, um die MOTD zu aktivieren. Unterstützt werden zwei Zeilen mit Farbcodes. Sobald ein Client die Serverliste das nächste Mal abfragt, erscheint die neue MOTD, /mues reload übernimmt sie sofort auf dem laufenden Server.

Umbenannt in 1.0.10: Der Abschnitt hieß früher ServerMOTD. Der Migrator kopiert deine Anpassungen beim ersten Start nach ServerListMOTD und lässt die alten Schlüssel stehen. Wird die Migration übersprungen, greift das Plugin zur Laufzeit auf den alten Abschnitt zurück, bestehende Setups funktionieren also ohne dein Zutun weiter.


Starter-Kit

Items, die Spieler automatisch bekommen, wenn sie den Server zum ersten Mal betreten.

StarterKit:
  Enabled: true
  Items:
    - material: WOODEN_SWORD
      amount: 1
      name: "&cStarter Sword"
    - material: WOODEN_PICKAXE
      amount: 1
    - material: BREAD
      amount: 16
    - material: LEATHER_HELMET
      amount: 1
SchlüsselBeschreibung
materialDer Materialname aus Minecraft. Siehe die Materialliste.
amountStapelgröße.
nameOptionaler eigener Anzeigename mit Farbcodes. Fehlt er, wird der normale Itemname verwendet.

Kits

Mehrere benannte Kits, die sich mit /kit abholen lassen. Jedes Kit hat seine eigene Permission, seinen eigenen Cooldown und seine eigene Itemliste.

Kits:
  starter:
    Permission: "muteessentials.kit.starter"
    Cooldown: 0
    Items:
      - material: STONE_SWORD
        amount: 1
      - material: STONE_PICKAXE
        amount: 1
      - material: COOKED_BEEF
        amount: 16
  vip:
    Permission: "muteessentials.kit.vip"
    Cooldown: 86400
    Items:
      - material: DIAMOND_SWORD
        amount: 1
        name: "&bVIP Sword"
        enchantments:
          - "sharpness:3"
      - material: GOLDEN_APPLE
        amount: 8
SchlüsselBeschreibung
<name>Der Name des Kits, abgeholt mit /kit <name>.
PermissionPermission, die zum Abholen des Kits nötig ist. Standard ist muteessentials.kit.<name>.
CooldownSekunden zwischen zwei Abholungen. 0 = kein Cooldown, -1 = nur einmal.
ItemsListe der Items. Jeder Eintrag nimmt material und optional amount, name, lore (Liste) und enchantments (Liste aus name:level).

Ist das Inventar voll, fallen die übrigen Items dem Spieler vor die Füße.


Willkommensnachricht

Eine Begrüßung im Chat, wenn ein Spieler zum ersten Mal joint. Bei späteren Logins erscheint sie nicht.

JoinMessage:
  Enabled: true
  Lines:
    - "&8&m                                        "
    - "&c&lWelcome to the server!"
    - "&8&m                                        "
    - ""
    - "&7Hello &c%PLAYER%&7!"
    - "&7Have fun playing."
    - ""
    - "&8&m                                        "

%PLAYER% wird durch den Namen des Spielers ersetzt. Jeder Eintrag ist eine Zeile im Chat.

Umbenannt in 1.0.10: früher MOTD. Die Migration läuft automatisch, der alte Abschnitt MOTD bleibt als Rückfall erhalten (siehe Migration).


Eigene Kick-Meldungen

Standardmäßig zeigt Minecraft allgemeine englische Meldungen, wenn ein Spieler wegen einer unpassenden Version, eines vollen Servers oder zu schneller Verbindungsversuche getrennt wird. Diese Funktion ersetzt sie durch deine eigenen, gestalteten und übersetzten Meldungen.

CustomKickMessages:
  Enabled: true

Den eigentlichen Text passt du in messages-de.yml / messages-en.yml unter KickMessages.OutdatedClient, KickMessages.ServerFull, KickMessages.Whitelist und KickMessages.Throttled an.

Erfordert ProtocolLib auf dem Server. Kicks wegen unpassender Version passieren auf Ebene des Netzwerkprotokolls, noch bevor irgendein Bukkit-Event ausgelöst wird. Ohne ProtocolLib lassen sich nur die Meldungen für vollen Server und Whitelist anpassen.


Wartungsmodus

Maintenance:
  Enabled: false
  KickMessage: |
    &c&lMAINTENANCE
    &7The server is currently under maintenance.
    &7Please try again later.
    &b%DISCORD%

Ist der Wartungsmodus an, werden alle Spieler ohne die Ausnahme-Permission gekickt und können nicht wieder joinen. Die Kick-Meldung unterstützt %DISCORD%, um deinen Discord-Link anzuzeigen. Umschalten kannst du mit /maintenance on und /maintenance off.


Client-Erkennung

Erkennt den Client des Spielers (Lunar / Vanilla / Fabric / NeoForge / Forge / LabyMod / Badlion / Feather / Quilt) über den Channel minecraft:brand und alle registrierten Plugin-Channels. Das Ergebnis erscheint in /check und wird dem Team gemeldet.

ClientDetection:
  Enabled: true
  NotifyPermission: "muteessentials.clientdetection"
  HackDetection:
    Enabled: true
    Action: "kick"
    AlertPermission: "muteessentials.clientdetection.hack"
    KickMessage: "&cUnauthorized client detected."
    BrandPatterns: []
    ChannelPatterns: []
    BypassUuids: []
    BypassNames: []
SchlüsselBeschreibung
EnabledHauptschalter für Erkennung und Benachrichtigungen. Aus bedeutet: gar keine Client-Erkennung.
NotifyPermissionSpieler mit dieser Permission bekommen im Chat einen Hinweis mit dem erkannten Client, wenn ein Spieler joint.
HackDetection.EnabledSchaltet die Prüfung auf Hack-Clients unabhängig von der Erkennung ein oder aus.
HackDetection.Actionkick (Standard) trennt bei einem Treffer die Verbindung, alert benachrichtigt nur das Team.
HackDetection.AlertPermissionPermission, die für den Hinweis im Spiel nötig ist.
HackDetection.KickMessageErscheint im Trennungsbildschirm, wenn Action auf kick steht.
HackDetection.BrandPatternsTextmuster, die (ohne Rücksicht auf Groß- und Kleinschreibung) mit der vom Spieler gemeldeten Brand abgeglichen werden. Leere Liste = eingebaute Standardmuster.
HackDetection.ChannelPatternsTextmuster, die mit jedem Plugin-Channel abgeglichen werden, den der Client registriert. Leere Liste = eingebaute Standardmuster.
HackDetection.BypassUuids / BypassNamesFeste Freigabeliste. Auch die Permission muteessentials.bypass.clientdetection.hack nimmt von der Prüfung aus.

Zu den eingebauten Standardmustern gehören: wurst, meteor, liquidbounce, sigma, impact, aristois, future, vape, rusherhack, inertia, kami, wolfram, salhack, seedcracker, seedcrackerx, xray und eine Reihe weiterer. Überschreib die Listen in der Config, um sie zu erweitern oder zu ersetzen.

Reine Client-Mods, die keinen Plugin-Channel registrieren und ihre minecraft:brand nicht verändern (zum Beispiel ein unverändertes SeedcrackerX), lassen sich vom Server aus nicht zuverlässig erkennen. Für eine strengere Durchsetzung setzt du zusätzlich ein Fabric-Werkzeug ein, das die Modliste gegen eine Whitelist prüft.


Auto-Updater

Update:
  Permission: "muteessentials.update"
  UpdateUrl: "https://repo.mutebefehl.de/update.json"
  CheckIntervalHours: 24
SchlüsselBeschreibung
UpdateUrlJSON-Beschreibung mit version, downloadUrl und optional sha256. Standardmäßig der offizielle Release-Feed von MuteEssentials.
CheckIntervalHoursWie oft das Plugin nach dem Start erneut nach einer neuen Version sucht. Mit 0 entfällt die wiederkehrende Prüfung, es läuft nur die Prüfung beim Start.

Beim Start sucht das Plugin asynchron nach Updates. Zusätzlich läuft alle CheckIntervalHours eine wiederkehrende Prüfung. Spieler mit muteessentials.update sehen beim Login einen zweizeiligen Hinweis, wenn eine neuere Version bereitsteht: die Versionsnummer und wie man sie installiert. /mues update stößt die Prüfung von Hand erneut an. /mues update download lädt die JAR herunter, prüft die SHA-256-Summe und tauscht die Datei aus. Aktiv wird die neue Version erst nach einem Neustart des Servers.


Module

Zuschaltbare Teilsysteme, die der Modulmanager lädt. Jedes Modul legt seine Daten in plugins/MuteEssentials/modules/<Name>/ ab.

Modules:
  BlockLog:
    Enabled: true
  ChestLock:
    Enabled: true
  Auction:
    Enabled: true
  AntiVPN:
    Enabled: false
    ApiUrl: "https://netsight.mutebefehl.de/api/fraud-check"
    Token: ""
    RiskScoreThreshold: 50
    BlockProxy: true
    BlockHosting: false
    KickMessage: "&cVPN/Proxy detected. Connection refused."
    BypassUuids: []
    BypassNames: []
    CacheTtlMinutes: 60
    LogChecks: true

BlockLog

Protokolliert abgebaute und gesetzte Blöcke, Interaktionen, Eimeraktionen, Feuerausbreitung, Explosionen und Tode von Spielern. Unterstützt Rollback und Wiederherstellen in Chunks mit vollständigem Blockzustand (Inhalte von Containern, Schildtexte, Ausrichtung, Betten, Türen, Feldfrüchte). Natürliche Ausbreitung, Entstehen und Verblassen von Blöcken sowie Laubzerfall werden bewusst nicht protokolliert. Daten: modules/BlockLog/blocklog.db (SQLite).

BlockLog:
  LoggingActive: true
  NearDefaultRadius: 10
  NearMaxRadius: 100
  NearSinceMs: 604800000
SchlüsselBeschreibung
LoggingActiveSchalter für die Protokollierung im laufenden Betrieb. Bei false bricht logAction() ab, bevor etwas geschrieben wird. Lässt sich auch über AdminGUI > Einstellungen umschalten.
NearDefaultRadius / NearMaxRadiusRadius für /bl near ohne Argument und Obergrenze für einen selbst angegebenen Radius.
NearSinceMsZeitfenster für /bl near in Millisekunden (Standard 7 Tage).

ChestLock

Automatische Containersperren mit Vertrauen, Teamzugriff, öffentlichem Modus und Trichterschutz. Die Einstellungen stehen unter Container-Schutz. Daten: modules/ChestLock/chestlock.db (SQLite).

Auction

Marktplatz der Spieler mit Angeboten, Mailbox und GUI zum Stöbern. Die Einstellungen stehen unter Auktionshaus. Daten: modules/Auction/auction.db (SQLite).

AntiVPN

Prüfung vor dem Login, die Spieler von bekannten VPN-, Proxy- oder Hosting-IPs abweist. Nutzt den Endpunkt /api/fraud-check von NetSight. Betreiber setzen ihre eigene NetSight-Instanz auf und hinterlegen auf der Worker-Seite ein gemeinsames Geheimnis X-MC-Token, dasselbe Token kommt in Modules.AntiVPN.Token.

SchlüsselBeschreibung
ApiUrlEndpunkt, der JSON mit { riskScore, isProxy, isHosting } zurückgibt.
TokenGemeinsames Geheimnis, das als Header X-MC-Token mitgeschickt wird. Ein leeres Token schaltet das Modul ab.
RiskScoreThresholdMindestwert für eine Abweisung. 0 weist alles ab, was überhaupt markiert ist, 100 nur die extremsten Fälle.
BlockProxyWeist Verbindungen ab, bei denen isProxy wahr ist (unabhängig vom Wert).
BlockHostingWeist Verbindungen ab, bei denen isHosting (Rechenzentrum oder VPS) wahr ist. Standardmäßig aus, weil viele ehrliche Spieler über Hosting-Anbieter kommen.
KickMessageErscheint bei einer Abweisung im Trennungsbildschirm.
BypassUuids / BypassNamesFreigabeliste. Eine Ausnahme per Permission ist vor dem Login nicht möglich, weil das Player-Objekt da noch nicht existiert.
CacheTtlMinutesWie lange die Antworten der Prüfung pro IP zwischengespeichert werden. Spart API-Aufrufe, wenn viele Spieler kurz hintereinander neu verbinden.
LogChecksBei true wird jede Prüfung mit score, proxy, hosting und der daraus folgenden Entscheidung ins Serverlog geschrieben.

Das Modul läuft beim AsyncPlayerPreLoginEvent, noch bevor die Welt geladen ist, ein abgewiesener Spieler betritt den Server also nie. Lokale IPs (127.x, 10.x, 192.168.x, 172.16-31.x) werden automatisch übersprungen.


Migration

ConfigMigrator läuft beim Aktivieren des Plugins, noch vor dem Merger. Er überträgt deine Anpassungen von alten auf neue Schlüsselnamen, ohne die ursprünglichen Schlüssel anzurühren.

Alter SchlüsselNeuer Schlüssel (seit 1.0.10)
ServerMOTD.*ServerListMOTD.*
MOTD.*JoinMessage.*
Modules.AntiHack.*ClientDetection.HackDetection.*

Verhalten:

  • Ist ein alter Schlüssel gesetzt und der neue nicht, wird der Wert übernommen.
  • Alte Schlüssel werden nie gelöscht. Deine Anpassungen bleiben zur Nachverfolgung in der Datei, sodass du Alt und Neu vergleichen kannst.
  • Fehlt der neue Abschnitt, greift das Plugin zur Laufzeit bei jeder Prüfung auf den alten Abschnitt zurück, sodass bestehende Setups auch dann weiter funktionieren, wenn die Migration übersprungen wird (zum Beispiel bei schreibgeschützten Configs oder eigenen Mounts).

Die Migration meldet sich beim Start im Log, etwa mit Migrated 5 legacy key(s) in config.yml (originals kept). Dieselbe Logik gilt für messages-en.yml und messages-de.yml.


Datenspeicherung

Alle Spielerdaten, Serverdaten und die Konfiguration bleiben auf deinem Server unter plugins/MuteEssentials/. Keine Spielerdaten, keine Chatnachrichten, keine IPs, keine Kontostände und keine UUIDs verlassen jemals den Server.

DateiInhalt
config.ymlAlle auf dieser Seite beschriebenen Einstellungen.
data.ymlHomes, Warps, Spawn, Kontostände, Clans und Claims, Bans, Mutes, Verwarnungen, Reports, Statistiken, individuell gesetzte Ränge von Spielern.
messages-de.yml / messages-en.ymlAlle Texte, die Spieler zu sehen bekommen. Hier änderst du die Formulierungen.
modules/BlockLog/blocklog.dbVerlauf der Blockänderungen (SQLite).
modules/ChestLock/chestlock.dbContainersperren und Vertrauenslisten (SQLite).
modules/Auction/auction.dbAngebote im Auktionshaus und Mailbox (SQLite).

MySQL (optional)

Standardmäßig liegt alles lokal (YAML und SQLite), eine Datenbank ist nicht nötig. Optional kannst du die globalen Daten nach MySQL/MariaDB verlagern.

Storage:
  MySQL:
    Enabled: false
    Host: "localhost"
    Port: 3306
    Database: "muteessentials"
    User: "root"
    Password: ""
    Properties: "?useSSL=false&allowPublicKeyRetrieval=true"
    Pool:
      MaxConnections: 10
SchlüsselBeschreibung
EnabledSchaltet das MySQL-Backend ein. Standard ist false (lokales YAML).
Host / Port / Database / User / PasswordVerbindungsdaten.
PropertiesJDBC-URL-Parameter, die an die Verbindungszeichenfolge angehängt werden.
Pool.MaxConnectionsMaximale Größe des Verbindungspools.

Ist MySQL eingeschaltet, nutzen Kontostände, Offline-Nachrichten und Kit-Cooldowns eigene Tabellen, und auch die übrigen globalen Daten (Bans, Mutes, Homes, Warps, Clans, Ränge, Verwarnungen, Reports, Statistiken) werden zentral gespeichert. Beim ersten Start werden die vorhandenen YAML-Daten automatisch nach MySQL übernommen. Schlägt die Verbindung fehl, weicht das Plugin auf lokales YAML aus, damit der Server weiterläuft. Die Moduldatenbanken pro Server (BlockLog, ChestLock, Auction) bleiben lokal als SQLite.

Backups

Alles liegt in einfachen Dateien oder in SQLite. Eine normale Dateisicherung des Ordners plugins/MuteEssentials/ (bei gestopptem Server oder über .backup von SQLite) reicht aus. Eine externe Datenbank ist nicht nötig.

Export

  • YAML-Dateien lassen sich unverändert bearbeiten und kopieren.
  • SQLite-Dateien kannst du für Auswertungen oder einen Umzug mit sqlite3 blocklog.db .dump > export.sql auslesen.
  • Für den Umzug auf einen neuen Server kopierst du einfach den ganzen Ordner plugins/MuteEssentials/ hinüber, eine Neueinrichtung ist nicht nötig.

Telemetrie

Das Plugin schickt einmal pro Stunde ein anonymes Lebenszeichen. Es enthält ausschließlich:

  • Serversoftware und Version (zum Beispiel Paper 1.21.4)
  • Plugin-Version (zum Beispiel 1.0.12)
  • Spielerzahl
  • Laufzeit in Sekunden

Spielerdaten, UUIDs, IPs, Chatnachrichten, Kontostände oder Inventarinhalte werden nie übertragen.

Abschalten

Setz Telemetry.Enabled: false in der config.yml und führe /mues reload aus (oder starte den Server neu):

Telemetry:
  Enabled: false

Der Hinweis darauf erscheint außerdem einmal beim ersten Start in der Serverkonsole.


Automatische Fehlerberichte

Optionaler Melder für Abstürze und Fehler. Standardmäßig aus. Ist er eingeschaltet, werden Stacktraces von Fehlern in MuteEssentials an den Entwickler geschickt, damit sich Bugs untersuchen lassen, ohne dass du Logs von Hand weiterleiten musst. UUIDs, IPs, Namen von Spielern, die online sind, und Hostnamen werden vor dem Senden anonymisiert. Pro Fehlerart wird höchstens einmal pro Stunde gesendet.

Einschalten

Setz ErrorReporting.Enabled: true in der config.yml:

ErrorReporting:
  Enabled: true

Der Melder bleibt aus, bis du ihn ausdrücklich einschaltest. Zum Abschalten setzt du den Wert wieder auf false.

Entfernen

Lösch plugins/MuteEssentials/, um das Plugin vollständig zurückzusetzen. Löschst du nur data.yml, werden Homes, Wirtschaft und Clans zurückgesetzt, Config und Meldungen bleiben erhalten.

Auf dieser Seite