Konfiguration
- Neueste Version
- 1.7.4
- Minecraft
- 26.x
- Plattformen
- Spigot, Paper, Folia, Purpur, Velocity, BungeeCord
- Erforderliche Java-Mindestversion
- 25+
Dieser Artikel wurde für 1.7.0 geschrieben. Die neueste stabile Version ist 1.7.4; beachte die aktuellen Anforderungen oben.
Konfiguration
Ersetze bei Beispielen die entsprechenden Schlüssel oder Abschnitte und behalte die übrigen Standardwerte. Starte nach manuellen Backendänderungen neu.
Erzeugte Dateien
Backendpfade beziehen sich auf
Speichereinstellungen
Synchronisierung und Profile
Zugriffseinstellungen für das Team
Bridge-Einstellungen am Backend
Proxyeinstellungen
PER_GROUP-Priorität:
Alte Einstellungen
Beispiel: Survival-Welten und getrenntes Creative
Die Namen müssen deinen Welten entsprechen. Ersetze die entsprechenden Abschnitte der Standarddatei. Lasse group-by-server weg oder leer, damit Weltzuordnungen gelten.
Beispiel: zwei Survival-Server und getrennte Lobby
Verwende auf allen drei Backends dieselbe Datenbank und vollständige Gruppenzuordnung. Ändere nur storage.server-id auf survival-1, survival-2 oder lobby. Ersetze Zugangsdaten und gemeinsames Bridge-Geheimnis. Behalte übrige Standardwerte. Der folgende Proxyblock ist nur für die optionale Bridge nötig.
Nachrichten anpassen
Vollständige Standarddateien aus 1.7.0
Dies sind die vollständigen Standarddateien aus 1.7.0 samt ursprünglichen Kommentaren und Nachrichten. Wikiübersetzungen übersetzen nicht automatisch die Nachrichten im Spiel.
Ersetze bei Beispielen die entsprechenden Schlüssel oder Abschnitte und behalte die übrigen Standardwerte. Starte nach manuellen Backendänderungen neu.
/isync reload prüft die Konfiguration und lädt Nachrichten neu; Speicherung, Synchronisierung, Bridge und Verwaltungseinstellungen werden nicht neu angewendet. Im GUI geänderte Verwaltungsschalter werden gespeichert und wirken sofort; halte die Richtlinie im MySQL-Netzwerk einheitlich.Erzeugte Dateien
Backendpfade beziehen sich auf
plugins/InventorySyncPRO/. Proxyeinstellungen liegen normalerweise unter plugins/InventorySyncPRO/ bei BungeeCord beziehungsweise plugins/inventorysyncpro/ bei Velocity.Code · Nur Text
config.yml — Backend-Speicherung, Profile, Bridge und Verwaltungsrichtlinie
messages.yml — Backend-Chatnachrichten, Präfix, Farben und Platzhalter
inventories-spigot.db — Lokale Standarddatenbank; Binärinhalt nicht manuell bearbeiten
backups/ — Konsistente SQLite-Sicherungen durch /isync backup
proxy.properties — Bridge-Einstellungen nur für den Proxy; Properties statt YAML
Speichereinstellungen
Code · Nur Text
storage.type (Standard: SQLITE) — SQLITE für ein Backend; MYSQL für ein gemeinsames Netzwerk
storage.server-id (Standard: survival) — Eindeutige Backend-ID; 1–32 Buchstaben/Ziffern/._-; mit Bridge genau der Proxyname
storage.sqlite.file (Standard: inventories-spigot.db) — Relativer Datenbankpfad innerhalb des Pluginordners
storage.mysql.host (Standard: 127.0.0.1) — MySQL-Hostname oder IP, keine JDBC-URL
storage.mysql.port (Standard: 3306) — MySQL-Port; 1–65535
storage.mysql.database (Standard: inventorysync) — Datenbankname
storage.mysql.username (Standard: inventorysync) — Datenbankbenutzer
storage.mysql.password (Standard: "") — Datenbankpasswort
storage.mysql.pool-size (Standard: 10) — Größe des Verbindungspools; 1–50
storage.mysql.lock-ttl-ms (Standard: 10000) — Gültigkeit der Sitzungs-/Schreibsperre; 2000–300000 ms
storage.mysql.connection-timeout-ms (Standard: 10000) — Wartezeit auf eine Poolverbindung; 1000–120000 ms
storage.mysql.validation-timeout-ms (Standard: 5000) — Zeitlimit der Verbindungsprüfung; 1000 ms bis connection-timeout-ms
storage.mysql.socket-timeout-ms (Standard: 30000) — Zeitlimit für MySQL-Antworten; 1000–300000 ms
storage.mysql.max-lifetime-ms (Standard: 1800000) — Lebensdauer einer Verbindung; 30000–3600000 ms
storage.mysql.keepalive-time-ms (Standard: 30000) — 0 deaktiviert; sonst mindestens 30000 ms und kleiner als max-lifetime-ms
storage.mysql.use-ssl (Standard: false) — TLS aktivieren, wenn der MySQL-Dienst dafür eingerichtet ist
Synchronisierung und Profile
Code · Nur Text
sync.debounce-ms (Standard: 750) — Speicherverzögerung zum Zusammenfassen schneller Änderungen; 0–60000 ms
sync.mode (Standard: GLOBAL) — GLOBAL / PER_WORLD / PER_GROUP
sync.ender-chest (Standard: true) — Endertruhen-Synchronisierung und /endersee aktivieren
sync.xp (Standard: true) — XP-Synchronisierung und /xpsee aktivieren
sync.restore-on-join (Standard: true) — Gespeicherte Daten beim Beitritt laden; in MySQL zwingend true
sync.session-acquire-timeout-ms (Standard: 15000) — Warten auf Freigabe der vorherigen Sitzung; 1000–120000 ms
sync.operation-timeout-ms (Standard: 20000) — Zeitlimit geschützter Vorgänge; 1000–120000 ms, nicht unter session-acquire-timeout-ms
sync.kick-on-failure (Standard: true) — Bei geschütztem Synchronisierungsfehler trennen; in MySQL zwingend true
sync.group-default (Standard: global) — Ersatzprofil für PER_GROUP
sync.group-by-server (Standard: {}) — Optionale Zuordnung server-id → Gruppe; hat Vorrang vor Welten
sync.group-by-world (Standard: {}) — Optionale Zuordnung Welt → Gruppe; gilt ohne passende Serverzuordnung
Zugriffseinstellungen für das Team
Code · Nur Text
admin.allow-offline-view (Standard: true) — Ansicht gespeicherter Offline-Daten erlauben
admin.allow-offline-edit (Standard: true) — Offline-Änderungen mit passender edit-Berechtigung erlauben
admin.allow-remote-edit (Standard: true) — Entfernte Änderungen mit edit und remote-edit erlauben
Bridge-Einstellungen am Backend
Code · Nur Text
bridge.enabled (Standard: false) — Optionale Bridge; benötigt MYSQL
bridge.secret (Standard: RANDOM_SECRET) — Gleiches zufälliges Geheimnis auf Proxy und Backends; 16–256 Zeichen, möglichst 32+; RANDOM_SECRET ersetzen
bridge.timeout-ms (Standard: 4000) — Zeitlimit für Bridge-Anfragen; 250–15000 ms
Proxyeinstellungen
Code · Nur Text
enabled (Standard: false) — Routing auf dem Proxy und den Backends aktivieren
secret (Standard: RANDOM_SECRET) — Genau derselbe Wert wie bridge.secret der Backends
packets-per-second (Standard: 200) — Routingbudget je Backend einschließlich Broadcast-Zustellung; 10–2000
allowed-servers (Standard: "") — Kommagetrennte registrierte Backendnamen; leer erlaubt alle gültigen registrierten Namen
PER_GROUP-Priorität:
group-by-server → group-by-world → group-default. Eine Serverzuordnung umfasst alle Welten dieses Backends. Lasse das Backend in der Serverzuordnung weg, um seine Welten zu trennen. Verwende einfache kleingeschriebene Profilnamen wie survival; ungültige Zeichen werden normalisiert. Verwaltungsbefehle erwarten den Basisprofilnamen ohne interne Endertruhen-/XP-Suffixe.Alte Einstellungen
invsee.allow-offline-view, invsee.allow-offline-edit und invsee.allow-remote-edit gelten nur, wenn der entsprechende admin.*-Schlüssel fehlt. Verwende bei neuen Einrichtungen die aktuellen admin-Schlüssel.Beispiel: Survival-Welten und getrenntes Creative
Die Namen müssen deinen Welten entsprechen. Ersetze die entsprechenden Abschnitte der Standarddatei. Lasse group-by-server weg oder leer, damit Weltzuordnungen gelten.
Code · Nur Text
storage:
type: SQLITE
server-id: "survival"
sqlite:
file: "inventories-spigot.db"
sync:
mode: PER_GROUP
ender-chest: true
xp: true
restore-on-join: true
kick-on-failure: true
group-default: "survival"
group-by-server: {}
group-by-world:
world: "survival"
world_nether: "survival"
world_the_end: "survival"
creative: "creative"
bridge:
enabled: false
Beispiel: zwei Survival-Server und getrennte Lobby
Verwende auf allen drei Backends dieselbe Datenbank und vollständige Gruppenzuordnung. Ändere nur storage.server-id auf survival-1, survival-2 oder lobby. Ersetze Zugangsdaten und gemeinsames Bridge-Geheimnis. Behalte übrige Standardwerte. Der folgende Proxyblock ist nur für die optionale Bridge nötig.
Code · Nur Text
storage:
type: MYSQL
server-id: "survival-1"
mysql:
host: "mysql.internal"
port: 3306
database: "inventorysync"
username: "inventorysync"
password: "REPLACE_WITH_YOUR_DATABASE_PASSWORD"
sync:
mode: PER_GROUP
ender-chest: true
xp: true
restore-on-join: true
kick-on-failure: true
group-default: "lobby"
group-by-server:
survival-1: "survival"
survival-2: "survival"
lobby: "lobby"
group-by-world: {}
bridge:
enabled: true
secret: "REPLACE_WITH_ONE_RANDOM_SECRET_FOR_THE_WHOLE_NETWORK"
timeout-ms: 4000
Code · Nur Text
enabled=true
secret=REPLACE_WITH_ONE_RANDOM_SECRET_FOR_THE_WHOLE_NETWORK
packets-per-second=200
allowed-servers=survival-1,survival-2,lobby
Nachrichten anpassen
messages.yml akzeptiert Texte oder Textlisten, &-Farben, HEX-Farben im Format &#RRGGBB und nachrichtenspezifische Platzhalter wie %prefix%, %player% und %profile%. "" deaktiviert einen Eintrag; enabled: false deaktiviert dieses Nachrichtensystem. Ungültiges YAML beim Neuladen erhält die bisherigen Nachrichten. GUI-Beschriftungen und Proxyantworten werden hier nicht eingestellt. Alte invsee-Schlüssel bleiben zur Kompatibilität erhalten; aktuelle Verwaltungsbefehle verwenden data.Vollständige Standarddateien aus 1.7.0
Dies sind die vollständigen Standarddateien aus 1.7.0 samt ursprünglichen Kommentaren und Nachrichten. Wikiübersetzungen übersetzen nicht automatisch die Nachrichten im Spiel.
config.yml
Code · Nur Text
storage:
type: SQLITE # SQLITE = single server | MYSQL = network
server-id: "survival" # Unique backend ID (must match the backend name in BungeeCord/Velocity)
mysql:
host: "127.0.0.1" # MySQL host
port: 3306 # MySQL port
database: "inventorysync" # Database name
username: "inventorysync" # MySQL user
password: "" # MySQL password
pool-size: 10 # Connection pool size
lock-ttl-ms: 10000 # Distributed write/session lock lifetime
connection-timeout-ms: 10000 # Maximum wait for a pooled connection
validation-timeout-ms: 5000 # Connection validation timeout
socket-timeout-ms: 30000 # Maximum wait for a MySQL response
max-lifetime-ms: 1800000 # Maximum pooled connection lifetime
keepalive-time-ms: 30000 # Keep idle network connections healthy (0 = disabled)
use-ssl: false # Enable TLS when MySQL is configured for it
sqlite:
file: "inventories-spigot.db" # SQLite file (local server)
sync:
debounce-ms: 750 # Save delay after last change (ms)
mode: GLOBAL # GLOBAL / PER_WORLD / PER_GROUP
ender-chest: true # Sync EnderChest
xp: true # Sync XP (level + bar)
restore-on-join: true # Restore inventory/ender/xp on join
session-acquire-timeout-ms: 15000 # Wait for the previous backend to finish saving
operation-timeout-ms: 20000 # Maximum protected join/world-switch operation time
kick-on-failure: true # Disconnect instead of risking stale/duplicated data
group-default: "global" # Default group (PER_GROUP)
# group-by-server: # Map server-id -> group
# spigot-1: "survival"
# spigot-2: "survival"
# group-by-world: # Map world -> group
# world: "survival"
# world_nether: "survival"
bridge:
enabled: false # Enable the signed InventorySyncPRO BungeeCord/Velocity bridge
secret: "RANDOM_SECRET" # Same secret on proxy + every backend (16..256 characters; 32+ recommended)
timeout-ms: 4000 # Remote request timeout (ms)
admin:
# Shared switches for /invsee, /endersee and /xpsee. Each has separate permissions.
# Legacy invsee.* keys are used only when the corresponding admin.* key is absent.
allow-offline-view: true # Allow viewing saved player data
allow-offline-edit: true # Allow editing saved player data
allow-remote-edit: true # Also requires the command's .edit and .remote-edit permissions
# /invsee, /endersee and /xpsee use the shared database directly; bridge.enabled is not required.
# Install the same JAR on BungeeCord/Velocity and every backend. Configure proxy.properties.
# Use the same MySQL database, unique
# server-id values matching proxy backend names, matching sync settings, and one bridge secret.
# SQLite supports local and offline players on this server only.
# With no profile argument, offline operations select the latest saved profile for that data type.
# Names enter the shared directory when players join; older data can also be opened by UUID.
messages.yml
Code · Nur Text
# Every user-facing chat message can be changed here.
# Set a message to "" to disable only that message. Supports & colors and &#RRGGBB HEX colors.
enabled: true
prefix: "&8[&BDF8InventorySyncPRO&8] &r"
sync:
join-start: "%prefix%&7Synchronizing your inventory..."
join-success: "%prefix%&aYour inventory has been synchronized."
join-empty: "%prefix%&7No synchronized data exists yet. Your current inventory will be used."
world-start: "%prefix%&7Saving &f%old_profile%&7 and loading &f%new_profile%&7..."
world-success: "%prefix%&aInventory profile changed to &f%profile%&a."
interaction-blocked: "%prefix%&ePlease wait until inventory synchronization finishes."
session-busy: "%prefix%&eWaiting for the previous server to finish saving your inventory..."
load-failed: "%prefix%&cYour inventory could not be loaded safely. Please reconnect."
save-failed: "%prefix%&cYour inventory could not be saved safely. Please reconnect."
session-lost: "%prefix%&cThe inventory session lock was lost. Please reconnect."
kick-load-failed: "&cInventory synchronization failed.\n&7Please reconnect in a moment."
kick-save-failed: "&cInventory could not be saved safely.\n&7Please reconnect in a moment."
kick-session-lost: "&cYour inventory session expired.\n&7Please reconnect to protect your items."
kick-plugin-disable: "&cInventory synchronization is restarting.\n&7Please reconnect in a moment."
general:
no-permission: "%prefix%&cYou do not have permission to use this command."
players-only: "%prefix%&cOnly players can use this command."
data:
invsee-usage: "&eUsage: /{label} <player|uuid> [profile]"
denied: "&cYou no longer have permission to edit this data."
endersee-usage: "%prefix%&7Usage: &f/%label% <player|uuid> [profile]"
xpsee-usage:
- "%prefix%&7View: &f/%label% <player|uuid> [profile]"
- "%prefix%&7Edit: &f/%label% <player|uuid> <set|add|remove> <amount> [levels|points] [profile]"
loading: "%prefix%&7Loading current player data..."
saving: "%prefix%&7Applying and saving changes..."
saved: "%prefix%&aChanges for &f%player% &awere applied and saved."
xp: "%prefix%&f%player% &7| Level: &f%level% &7| Bar: &f%progress%%% &7| Points: &f%points% &7| Profile: &f%profile% &7| &f%location%"
not_found: "%prefix%&cPlayer not found. For older offline data, try the player's UUID."
no_data: "%prefix%&eNo saved data exists for this player/profile."
disabled: "%prefix%&cThis data type is disabled. Enable sync.ender-chest or sync.xp and restart."
offline_disabled: "%prefix%&cOffline viewing or editing is disabled."
remote_disabled: "%prefix%&cYou cannot edit this data on another backend."
busy: "%prefix%&eA request is already running. Please wait."
conflict: "%prefix%&eThe data changed while you were editing. Refresh and try again; your draft was not applied."
moved: "%prefix%&eThe player changed server or is synchronizing. Try again in a moment."
profile_changed: "%prefix%&eThe player's active profile changed. Reopen the data before editing."
invalid_amount: "%prefix%&cUse a non-negative whole number. The resulting XP must fit within 2,147,483,647 points."
timeout: "%prefix%&eThe request timed out. Refresh to check the current data before retrying an edit."
save_uncertain: "%prefix%&eThe live edit was applied, but its database save could not be confirmed. Refresh before retrying."
error: "%prefix%&cThe operation failed. Check the console and refresh the data before retrying."
invsee:
usage: "%prefix%&7Usage: &f/%label% <player>"
self-denied: "%prefix%&cUse your normal inventory instead of /invsee on yourself."
target-syncing: "%prefix%&eThat player's inventory is still synchronizing. Try again in a moment."
player-not-found: "%prefix%&cPlayer not found: &f%player%"
locating: "%prefix%&7Checking the network location of &f%player%&7..."
location-unknown-readonly: "%prefix%&eThe player's network location could not be verified. Opening a safe read-only snapshot."
remote-flush: "%prefix%&7Player is online on &f%server%&7. Requesting a fresh inventory..."
remote-flush-failed: "%prefix%&eThe remote refresh failed. Showing the latest safe saved inventory."
remote-flush-success: "%prefix%&aFresh inventory received."
remote-flush-timeout: "%prefix%&eThe remote refresh timed out. Showing the latest safe saved inventory."
remote-flush-error: "%prefix%&cRemote refresh failed. Showing the latest safe saved inventory."
offline-disabled: "%prefix%&cOffline inventory viewing is disabled."
no-saved-data: "%prefix%&eNo saved inventory exists for &f%player%&e."
unsupported-data: "%prefix%&cThe saved inventory uses an unsupported or damaged data format."
load-failed: "%prefix%&cCould not load the inventory of &f%player%&c."
edit-locked: "%prefix%&eAnother administrator is already editing this inventory."
save-success: "%prefix%&aInventory changes were saved."
save-failed: "%prefix%&cInventory changes could not be saved."
admin:
usage: "%prefix%&7Usage: &f/%label% <status|backup|reload>"
status:
- "%prefix%&BDF8InventorySyncPRO status"
- "&7Storage: &f%storage%"
- "&7Active sessions: &f%sessions%"
- "&7Protected/retiring sessions: &f%protected_sessions%"
- "&7Live queue entries: &f%live_queue%"
- "&7Offline queue entries: &f%offline_queue%"
- "&7Active database writes: &f%active_writes%"
reload-success: "%prefix%&aMessages reloaded. Configuration is valid; restart to apply storage or sync changes."
reload-invalid: "%prefix%&cConfiguration was not applied because it is invalid: &f%reason%"
reload-messages-invalid: "%prefix%&cMessages were not reloaded because messages.yml contains invalid YAML. The previous messages remain active."
backup-unavailable: "%prefix%&eBuilt-in backup is unavailable in MySQL mode. Use your database backup tool."
backup-start: "%prefix%&7Creating a consistent SQLite backup..."
backup-already-running: "%prefix%&eA SQLite backup is already running."
backup-success: "%prefix%&aBackup created: &f%file%"
backup-failed: "%prefix%&cBackup failed. Check the server console."
proxy.properties
Code · Nur Text
# InventorySyncPRO BungeeCord / Velocity bridge
# Set enabled=true and the same bridge.secret as on EVERY backend.
enabled=false
secret=RANDOM_SECRET
# Per-backend budget, including broadcast fan-out. Bursts of twice this size are allowed.
packets-per-second=200
# Optional comma-separated backend names. Empty = all registered backends.
allowed-servers=
