Configuración
- Última versión
- 1.7.4
- Minecraft
- 26.x
- Plataformas
- Spigot, Paper, Folia, Purpur, Velocity, BungeeCord
- Versión mínima de Java
- 25+
Este artículo se escribió para 1.7.0. La última versión estable es 1.7.4; consulta los requisitos actuales de arriba.
Configuración
Al usar un ejemplo, sustituye las claves o secciones correspondientes y conserva los demás valores predeterminados. Reinicia tras cambios manuales del backend.
Archivos generados
Las rutas de backend son relativas a
Ajustes de almacenamiento
Sincronización y perfiles
Acceso del equipo
Puente del backend
Ajustes del proxy
Prioridad PER_GROUP:
Las opciones antiguas
Ejemplo: mundos Survival y Creative separado
Los nombres deben coincidir con tus mundos. Sustituye las secciones correspondientes y deja group-by-server ausente o vacío para usar asignaciones por mundo.
Ejemplo: dos servidores Survival y Lobby separado
Aplica la misma base y el mapa completo de grupos a los tres backends. Cambia solo storage.server-id a survival-1, survival-2 o lobby. Sustituye credenciales y secreto compartido. Conserva los demás valores. El bloque del proxy siguiente solo se usa al activar el puente opcional.
Personalizar mensajes
Valores completos incluidos en 1.7.0
Estos son los archivos completos incluidos en 1.7.0, con comentarios y mensajes originales. Traducir la Wiki no traduce automáticamente los mensajes del plugin dentro del juego.
Al usar un ejemplo, sustituye las claves o secciones correspondientes y conserva los demás valores predeterminados. Reinicia tras cambios manuales del backend.
/isync reload valida la configuración y recarga mensajes; no reconecta almacenamiento ni aplica cambios de sincronización, puente o administración. Los interruptores del GUI se guardan y aplican al instante; mantén la política igual en la red MySQL.Archivos generados
Las rutas de backend son relativas a
plugins/InventorySyncPRO/. Los ajustes del proxy suelen estar en plugins/InventorySyncPRO/ para BungeeCord o plugins/inventorysyncpro/ para Velocity.Código · Texto sin formato
config.yml — Almacenamiento, perfiles, puente y política de administración del backend
messages.yml — Chat del backend, prefijo, colores y variables
inventories-spigot.db — Base local predeterminada; no edites manualmente sus bytes
backups/ — Instantáneas coherentes de SQLite creadas por /isync backup
proxy.properties — Ajustes exclusivos del proxy; formato properties, no YAML
Ajustes de almacenamiento
Código · Texto sin formato
storage.type (predeterminado: SQLITE) — SQLITE para un backend; MYSQL para una red compartida
storage.server-id (predeterminado: survival) — ID único; 1–32 letras/números/._-; nombre exacto del proxy al usar el puente
storage.sqlite.file (predeterminado: inventories-spigot.db) — Ruta relativa de base dentro de la carpeta del plugin
storage.mysql.host (predeterminado: 127.0.0.1) — Host o IP MySQL, sin URL JDBC
storage.mysql.port (predeterminado: 3306) — Puerto MySQL; 1–65535
storage.mysql.database (predeterminado: inventorysync) — Nombre de la base
storage.mysql.username (predeterminado: inventorysync) — Usuario de la base
storage.mysql.password (predeterminado: "") — Contraseña de la base
storage.mysql.pool-size (predeterminado: 10) — Tamaño del grupo de conexiones; 1–50
storage.mysql.lock-ttl-ms (predeterminado: 10000) — Duración del bloqueo de sesión/escritura; 2000–300000 ms
storage.mysql.connection-timeout-ms (predeterminado: 10000) — Espera de conexión del grupo; 1000–120000 ms
storage.mysql.validation-timeout-ms (predeterminado: 5000) — Validación de conexión; de 1000 ms a connection-timeout-ms
storage.mysql.socket-timeout-ms (predeterminado: 30000) — Espera de respuesta MySQL; 1000–300000 ms
storage.mysql.max-lifetime-ms (predeterminado: 1800000) — Vida de una conexión; 30000–3600000 ms
storage.mysql.keepalive-time-ms (predeterminado: 30000) — 0 lo desactiva; en otro caso, mínimo 30000 ms y menos de max-lifetime-ms
storage.mysql.use-ssl (predeterminado: false) — Activa TLS si el servicio MySQL está preparado
Sincronización y perfiles
Código · Texto sin formato
sync.debounce-ms (predeterminado: 750) — Retraso que agrupa cambios rápidos; 0–60000 ms
sync.mode (predeterminado: GLOBAL) — GLOBAL / PER_WORLD / PER_GROUP
sync.ender-chest (predeterminado: true) — Activa sincronización de EnderChest y /endersee
sync.xp (predeterminado: true) — Activa sincronización de XP y /xpsee
sync.restore-on-join (predeterminado: true) — Restaura datos al entrar; debe ser true en MySQL
sync.session-acquire-timeout-ms (predeterminado: 15000) — Espera para adquirir la sesión anterior; 1000–120000 ms
sync.operation-timeout-ms (predeterminado: 20000) — Límite de operación protegida; 1000–120000 ms, no menor que session-acquire-timeout-ms
sync.kick-on-failure (predeterminado: true) — Desconecta ante fallo protegido de sincronización; debe ser true en MySQL
sync.group-default (predeterminado: global) — Perfil alternativo de PER_GROUP
sync.group-by-server (predeterminado: {}) — Mapa opcional server-id → grupo; tiene prioridad sobre mundos
sync.group-by-world (predeterminado: {}) — Mapa opcional mundo → grupo; se usa si no coincide un servidor
Acceso del equipo
Código · Texto sin formato
admin.allow-offline-view (predeterminado: true) — Permite consultar datos guardados sin conexión
admin.allow-offline-edit (predeterminado: true) — Permite cambios sin conexión con el permiso edit correspondiente
admin.allow-remote-edit (predeterminado: true) — Permite cambios remotos con edit y remote-edit
Puente del backend
Código · Texto sin formato
bridge.enabled (predeterminado: false) — Puente opcional; requiere MYSQL
bridge.secret (predeterminado: RANDOM_SECRET) — Mismo secreto aleatorio en proxy y backends; 16–256 caracteres, preferiblemente 32+; sustituye RANDOM_SECRET
bridge.timeout-ms (predeterminado: 4000) — Espera de solicitudes del puente; 250–15000 ms
Ajustes del proxy
Código · Texto sin formato
enabled (predeterminado: false) — Activa el enrutamiento tanto en proxy como en backends
secret (predeterminado: RANDOM_SECRET) — Exactamente el mismo valor que bridge.secret del backend
packets-per-second (predeterminado: 200) — Presupuesto por backend, incluidas entregas por difusión; 10–2000
allowed-servers (predeterminado: "") — Nombres registrados separados por comas; vacío permite todos los nombres registrados válidos
Prioridad PER_GROUP:
group-by-server → group-by-world → group-default. Una asignación de servidor abarca todos sus mundos. Omite ese backend del mapa de servidores para separar sus mundos. Usa nombres sencillos en minúsculas como survival; los caracteres no admitidos se normalizan. Los comandos esperan el perfil base, sin sufijos internos de EnderChest/XP.Las opciones antiguas
invsee.allow-offline-view, invsee.allow-offline-edit e invsee.allow-remote-edit solo se usan si falta la clave admin.* correspondiente. Usa las claves admin actuales en instalaciones nuevas.Ejemplo: mundos Survival y Creative separado
Los nombres deben coincidir con tus mundos. Sustituye las secciones correspondientes y deja group-by-server ausente o vacío para usar asignaciones por mundo.
Código · Texto sin formato
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
Ejemplo: dos servidores Survival y Lobby separado
Aplica la misma base y el mapa completo de grupos a los tres backends. Cambia solo storage.server-id a survival-1, survival-2 o lobby. Sustituye credenciales y secreto compartido. Conserva los demás valores. El bloque del proxy siguiente solo se usa al activar el puente opcional.
Código · Texto sin formato
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
Código · Texto sin formato
enabled=true
secret=REPLACE_WITH_ONE_RANDOM_SECRET_FOR_THE_WHOLE_NETWORK
packets-per-second=200
allowed-servers=survival-1,survival-2,lobby
Personalizar mensajes
messages.yml admite textos o listas, colores &, HEX &#RRGGBB y variables específicas como %prefix%, %player% y %profile%. Usa "" para silenciar una entrada o enabled: false para desactivar este sistema. YAML inválido al recargar conserva los mensajes anteriores. Las etiquetas del GUI y respuestas del proxy no se configuran aquí. Las claves antiguas invsee permanecen por compatibilidad; los comandos actuales usan data.Valores completos incluidos en 1.7.0
Estos son los archivos completos incluidos en 1.7.0, con comentarios y mensajes originales. Traducir la Wiki no traduce automáticamente los mensajes del plugin dentro del juego.
config.yml
Código · Texto sin formato
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
Código · Texto sin formato
# 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
Código · Texto sin formato
# 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=
