An economy plugin that supports data synchronization between multiple servers
GNU General Public License v3.0
101
stars
36
forks
source link
XConomy occasionally causes players to experience rare disconnections from the server. However, it frequently results in disconnections for AFK players. #118
Describe the issues
After extensive testing, I've identified a bug in the XConomy plugin that causes our players to be kicked from the game. This issue only arises when XConomy is used on multiple servers with Redis or Bungeecord.
Version of XConomy
XConomy V2.25.7
Server version
Paper 1.8.8 #445
Storage-type
MySQL and Bungeecord/Redis Sync
Describe the issues
After extensive testing, I've identified a bug in the XConomy plugin that causes our players to be kicked from the game. This issue only arises when XConomy is used on multiple servers with Redis or Bungeecord.
XConomy's config.yml `#Default Online Offline SemiOnline
Default mode will automatically detect the player's UUID(support GeyserMC)
Online mode is better for servers that enable online-mode(support Yggdrasil)
Offline mode does not support ignoring username case
If you use floodgate(GeyserMC) and the option 'username-prefix' is set to empty, Please use SemiOnline mode
UUID-mode: SemiOnline
In convertion mode, can use command '/xconomy' import data from other plugins based on Vault
Conflicting data will be skipped, The imported data will be saved in XConomy/importdata/data.yml
In this mode, XConomy will not start normally
After the conversion, please check data and turn off this mode
Sponge version does not have this function
Importdata-mode: false
Settings
Settings:
Chinese ChineseTW English French Spanish Russian Turkish Japanese German
Indonesia Portuguese Italian
language: English
Whether to check for new version
check-update: false
TOP10 and the Server Total refresh time interval (Seconds)
refresh-time: 300
If set to true, XConomy will register the following commands:
Please keep in mind that if Essentials is installed on your server
XConomy will take over these commands.
eco-command: false
XConomy will disable the economic function of Essentials.
Just the economic function.
disable-essentials: false
Initial balance
initial-bal: 300000
Tax to be paid for pay command (0.5 means 50%, 1 means 100%)
payment-tax: 0
Ranking size (Max value 100)
ranking-size: 10
Rows per page of list (Ranking and help menu)
lines-per-page: 10
If you need to modify the data in the database directly, it is recommended to enable it
Asynchronous saving of data is not supported after caching is disabled
Disabling caching will increase the pressure on the database
disable-cache: false
Dose save transaction record
Only MySQL is supported
transaction-record: false
Record transaction information of pay command while player offline.
The player will receive tips when they reconnect.
Transaction-record function must be enabled.
offline-pay-transfer-tips: false
Ignore the case of player names
username-ignore-case: false
It can solve the problem that some plugins need to create non-player accounts, such as Factions
==========================================================================================
Plugins supported by default (no requirement to enable non-player-account)
Towny
==========================================================================================
Non-player account data is not synced with BC
non-player-account:
Whether to enable non-player accounts.
enable: true
If the account name contains fields in the whitelist, it will be recognized as non-player accounts.
Otherwise, it is recognized as a player account
If the player's name contains fields in the whitelist, it will be denied access to the server.
This function can reduce the times that reading data from the database.
whitelist:
Whether to enable whitelist.
The display of the currency
Currency: singular-name: TL plural-name: TL
Is the balance an integer
integer-bal: false thousands-separator: ','
%format_balance% indicate the balance after the format
display-format: '%balance%'
Maximum amount (default is maximum)
max-number: '10000000000000000' format-balance: 10000000000000000: m
SyncData settings
SyncData:
Whether to enable data synchronization between multiple servers
enable: true
BungeeCord Redis
================================================== BungeeCord Channel ==================================================
After BungeeCord sync is turned on, the console and other plugins will not be able to modify the balance in the server without player
Please Set bungeecord to true in the spigot.yml
================================================== Redis Channel ==================================================
Require 'slf4j' dependencies
channel-type: Redis
Server ID, keep the ID and the MySQL settings is the same between the servers requiring synchronization
sign: Faction`
XConomy's database.yml `Settings:
SQLite MySQL
storage-type: MySQL
Use connection pool or not
Require 'slf4j' dependencies
At least java version 11 is required
usepool: true
Set the maximum number of threads (SQLite no such setting)
max-threads: 5
SQLite settings
SQLite:
Address is the folder path
path: Default
MySQL settings
MySQL: host: localhost port: 3306 user: xxxx_eko pass: xxxxxxx database: xxxx_eko
auto add "_", can use %sign% to indicate Server ID (BungeeCord settings)
table-suffix: '' property: usessl: false encoding: utf8 timezone: '' allowPublicKeyRetrieval: false
Connection pool settings
Pool-Settings: maximum-pool-size: 10 minimum-idle: 10 maximum-lifetime: 180000 idle-timeout: 60000
Redis settings
Redis: host: localhost port: 6379 db-index: 1 pool-settings: max-total: 10 max-idle: 10 min-idle: 0 auth: user: '' pass: 'xxxxxxxx'`