Configuração
- Versão mais recente
- 1.7.4
- Minecraft
- 26.x
- Plataformas
- Spigot, Paper, Folia, Purpur, Velocity, BungeeCord
- Versão mínima do Java
- 25+
Este artigo foi escrito para 1.7.0. A versão estável mais recente é 1.7.4; consulta os requisitos atuais acima.
Configuração
Ao usar um exemplo, substitui as chaves ou seções correspondentes e preserva os outros padrões. Reinicia após mudanças manuais do backend.
Ficheiros gerados
Os caminhos do backend são relativos a
Definições de armazenamento
Sincronização e perfis
Acesso da equipe
Ponte do backend
Definições do proxy
Prioridade PER_GROUP:
As opções antigas
Exemplo: mundos Survival e Creative separado
Os nomes devem corresponder aos seus mundos. Substitui as seções correspondentes e deixe group-by-server ausente ou vazio para usar os mapeamentos de mundos.
Exemplo: dois servidores Survival e Lobby separado
Usa o mesmo banco e o mapa completo de grupos nos três backends. Altera apenas storage.server-id para survival-1, survival-2 ou lobby. Substitui credenciais e segredo compartilhado. Preserva os outros padrões. O bloco de proxy abaixo só é necessário ao ativar a ponte opcional.
Personalizar mensagens
Padrões completos incluídos na versão 1.7.0
Estes são os ficheiros completos da versão 1.7.0, com comentários e mensagens originais. As traduções da Wiki não traduzem automaticamente as mensagens do plugin no jogo.
Ao usar um exemplo, substitui as chaves ou seções correspondentes e preserva os outros padrões. Reinicia após mudanças manuais do backend.
/isync reload valida a configuração e recarrega mensagens; não reconecta o armazenamento nem aplica mudanças de sincronização, ponte ou administração. Os controlos administrativos do GUI são salvos e aplicados imediatamente; mantém a política igual na rede MySQL.Ficheiros gerados
Os caminhos do backend são relativos a
plugins/InventorySyncPRO/. As definições do proxy normalmente ficam em plugins/InventorySyncPRO/ no BungeeCord ou plugins/inventorysyncpro/ no Velocity.Código · Texto simples
config.yml — Armazenamento, perfis, ponte e política administrativa do backend
messages.yml — Chat do backend, prefixo, cores e variáveis
inventories-spigot.db — Banco local padrão; não edite seus bytes manualmente
backups/ — Capturas consistentes de SQLite criadas por /isync backup
proxy.properties — Configuração exclusiva do proxy; formato properties, não YAML
Definições de armazenamento
Código · Texto simples
storage.type (padrão: SQLITE) — SQLITE para um backend; MYSQL para rede compartilhada
storage.server-id (padrão: survival) — ID exclusivo; 1–32 letras/números/._-; nome exato do proxy ao usar a ponte
storage.sqlite.file (padrão: inventories-spigot.db) — Caminho relativo do banco dentro da pasta do plugin
storage.mysql.host (padrão: 127.0.0.1) — Host ou IP MySQL, sem URL JDBC
storage.mysql.port (padrão: 3306) — Porta MySQL; 1–65535
storage.mysql.database (padrão: inventorysync) — Nome do banco
storage.mysql.username (padrão: inventorysync) — Usuário do banco
storage.mysql.password (padrão: "") — Senha do banco
storage.mysql.pool-size (padrão: 10) — Tamanho do pool de conexões; 1–50
storage.mysql.lock-ttl-ms (padrão: 10000) — Validade do bloqueio de sessão/gravação; 2000–300000 ms
storage.mysql.connection-timeout-ms (padrão: 10000) — Espera por conexão do pool; 1000–120000 ms
storage.mysql.validation-timeout-ms (padrão: 5000) — Validação da conexão; de 1000 ms até connection-timeout-ms
storage.mysql.socket-timeout-ms (padrão: 30000) — Espera por resposta MySQL; 1000–300000 ms
storage.mysql.max-lifetime-ms (padrão: 1800000) — Vida útil da conexão; 30000–3600000 ms
storage.mysql.keepalive-time-ms (padrão: 30000) — 0 desativa; caso contrário, mínimo de 30000 ms e menos que max-lifetime-ms
storage.mysql.use-ssl (padrão: false) — Ative TLS se o serviço MySQL estiver configurado para isso
Sincronização e perfis
Código · Texto simples
sync.debounce-ms (padrão: 750) — Atraso que agrupa mudanças rápidas; 0–60000 ms
sync.mode (padrão: GLOBAL) — GLOBAL / PER_WORLD / PER_GROUP
sync.ender-chest (padrão: true) — Ativa sincronização EnderChest e /endersee
sync.xp (padrão: true) — Ativa sincronização XP e /xpsee
sync.restore-on-join (padrão: true) — Restaura dados na entrada; deve ser true no MySQL
sync.session-acquire-timeout-ms (padrão: 15000) — Espera pela liberação da sessão anterior; 1000–120000 ms
sync.operation-timeout-ms (padrão: 20000) — Limite da operação protegida; 1000–120000 ms, não inferior a session-acquire-timeout-ms
sync.kick-on-failure (padrão: true) — Desconecta em falha protegida de sincronização; deve ser true no MySQL
sync.group-default (padrão: global) — Perfil alternativo para PER_GROUP
sync.group-by-server (padrão: {}) — Mapa opcional server-id → grupo; prioridade sobre mundos
sync.group-by-world (padrão: {}) — Mapa opcional mundo → grupo; usado sem servidor correspondente
Acesso da equipe
Código · Texto simples
admin.allow-offline-view (padrão: true) — Permite consultar dados offline salvos
admin.allow-offline-edit (padrão: true) — Permite mudanças offline com a permissão edit correspondente
admin.allow-remote-edit (padrão: true) — Permite mudanças remotas com edit e remote-edit
Ponte do backend
Código · Texto simples
bridge.enabled (padrão: false) — Ponte opcional; exige MYSQL
bridge.secret (padrão: RANDOM_SECRET) — Mesmo segredo aleatório no proxy e backends; 16–256 caracteres, de preferência 32+; substitua RANDOM_SECRET
bridge.timeout-ms (padrão: 4000) — Espera de solicitações da ponte; 250–15000 ms
Definições do proxy
Código · Texto simples
enabled (padrão: false) — Ativa o roteamento no proxy e nos backends
secret (padrão: RANDOM_SECRET) — Exatamente o mesmo valor de bridge.secret do backend
packets-per-second (padrão: 200) — Limite por backend, incluindo entregas por transmissão; 10–2000
allowed-servers (padrão: "") — Nomes registrados separados por vírgula; vazio permite todos os nomes registrados válidos
Prioridade PER_GROUP:
group-by-server → group-by-world → group-default. O mapeamento de um servidor abrange todos os seus mundos. Omite esse backend do mapa de servidores para separar mundos. Usa nomes simples em minúsculas, como survival; caracteres não aceitos são normalizados. Os comandos recebem o perfil base, sem sufixos internos de baú do Ender/XP.As opções antigas
invsee.allow-offline-view, invsee.allow-offline-edit e invsee.allow-remote-edit só são usadas quando falta a chave admin.* correspondente. Usa as chaves admin atuais em novas instalações.Exemplo: mundos Survival e Creative separado
Os nomes devem corresponder aos seus mundos. Substitui as seções correspondentes e deixe group-by-server ausente ou vazio para usar os mapeamentos de mundos.
Código · Texto simples
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
Exemplo: dois servidores Survival e Lobby separado
Usa o mesmo banco e o mapa completo de grupos nos três backends. Altera apenas storage.server-id para survival-1, survival-2 ou lobby. Substitui credenciais e segredo compartilhado. Preserva os outros padrões. O bloco de proxy abaixo só é necessário ao ativar a ponte opcional.
Código · Texto simples
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 simples
enabled=true
secret=REPLACE_WITH_ONE_RANDOM_SECRET_FOR_THE_WHOLE_NETWORK
packets-per-second=200
allowed-servers=survival-1,survival-2,lobby
Personalizar mensagens
messages.yml aceita textos ou listas, cores &, HEX &#RRGGBB e variáveis específicas como %prefix%, %player% e %profile%. Usa "" para silenciar uma entrada ou enabled: false para desativar este sistema. YAML inválido ao recarregar mantém as mensagens anteriores. Rótulos de GUI e respostas do proxy não são configurados aqui. Chaves antigas invsee permanecem por compatibilidade; comandos atuais usam data.Padrões completos incluídos na versão 1.7.0
Estes são os ficheiros completos da versão 1.7.0, com comentários e mensagens originais. As traduções da Wiki não traduzem automaticamente as mensagens do plugin no jogo.
config.yml
Código · Texto simples
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 simples
# 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 simples
# 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=
