▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
EcoXpert

EcoXpert

Take full control of your server’s economy — intelligent, stable, and impossible to break.

192
0

Bug Fixes & Stability

release8 января 2026 г.

EcoXpert - Changelog v1.3.1

Version 1.3.1 - Bug Fixes & Stability

Release Date: January 8, 2026 Compatibility: Minecraft 1.19.4 - 1.21.11 Java Version: 17+


🐛 Bug Fixes

SQLite Database Lock Fix

  • Problem: SQLITE_BUSY - database is locked error under concurrent operations
  • Solution: SQLite pool size reduced to 1 connection to serialize writes
  • Details:
    • SQLite only allows one writer at a time
    • HikariCP pool was configured with 10 connections causing conflicts
    • busy_timeout increased to 30 seconds as safety net
    • MySQL pool remains at 10 connections (handles concurrency properly)

SQL Compatibility Fix

  • Problem: INSERT OR IGNORE syntax only works in SQLite, not MySQL
  • Solution: Database-specific SQL syntax detection
  • Details:
    • SQLite: INSERT OR IGNORE INTO...
    • MySQL: INSERT IGNORE INTO...
    • Affected files: EconomyManagerImpl.java, MarketManagerImpl.java

Market GUI Click Handler Fix

  • Problem: Clicking "Sell Hand by $" button sent "hand" to chat instead of opening sub-GUI
  • Solution: Reordered event handlers to check sub-GUI title before marketInv == null
  • Details:
    • Sub-GUI was not tracked in openGUIs map
    • Handler returned early without cancelling the event
    • Same fix applied to MarketOrdersGUI.java

Missing Translation Keys Fix

  • Problem: Translation keys displayed as raw text (e.g., market.gui.sell-hand.lore1)
  • Solution: Added missing keys to correct YAML paths
  • Added keys:
    • market.gui.sell-hand.* (title, amount, lore1, lore2)
    • market.gui.bedrock.action.* (19 keys for Bedrock action GUI)
  • Files: messages_en.yml, messages_es.yml

Translation System Fallback Improvement

  • Problem: New translation keys not available if user has old language files
  • Solution: Improved fallback to always check embedded JAR resources for missing keys
  • Details:
    • Local files are checked first (preserves user customizations)
    • If key not found, automatically loads from JAR embedded resources
    • Added UTF-8 encoding for proper character support
    • Debug logging for troubleshooting translation issues

GUI Item Theft Prevention

  • Problem: Items in GUIs could be moved to player inventory when translation keys failed
  • Solution: All GUI click handlers now check both translated title AND raw key
  • Affected GUIs:
    • MarketGUI: List GUI, Sell Hand sub-GUI
    • MarketOrdersGUI: Orders list, Select quantity
    • LoansGUI: Offer preview, Schedule

📦 Update Instructions

  1. Stop server
  2. Replace EcoXpert-1.3.0.jar with EcoXpert-1.3.1.jar
  3. Start server
  4. No configuration changes required

EcoXpert Pro - Because your economy deserves intelligence

EcoXpert 1.3

release20 декабря 2025 г.

EcoXpert - Changelog v1.3.0

Version 1.3.0 - Balance Leaderboard & Discord Integration

Release Date: December 19, 2025
Compatibility: Minecraft 1.19.4 - 1.21.8+
Java Version: 17+


🎯 What's New

Balance Leaderboard System (Baltop)

Complete leaderboard system with cross-platform support for Java and Bedrock editions.

Commands:

/baltop [page]           - View leaderboard in chat
/baltop gui [page]       - Open GUI leaderboard

Aliases: /balancetop, /topbalances

Features:

  • 📊 Console view: 10 entries per page with pagination
  • 🖥️ GUI view: 45 entries per page with player skulls
  • 📱 Bedrock Forms: Native Geyser Forms for mobile/console players
  • 🏆 Self-highlighting: Your position highlighted in gold
  • 🔄 Real-time data with 30-second smart caching
  • 📍 Rank display: See your position even when not on current page

📱 Discord Integration (NEW)

Full DiscordSRV integration for economy notifications and commands.

Discord Commands:

!balance <player>        - Check player balance
!market <item>           - Check item prices
!top [count]             - View top players
!inflation               - Current inflation rate
!stats                   - Economy statistics

Notifications:

  • 💰 Large transactions (configurable threshold)
  • 📈 Market price changes (>20% by default)
  • ⚠️ Inflation alerts (>5% by default)
  • 📊 Daily economy reports

🔧 Technical Improvements

Performance & Compatibility

  • Smart caching system reduces database queries
  • Async operations prevent server lag
  • 100% Bedrock Edition compatibility maintained
  • Automatic Geyser Forms detection and fallback

Cross-Platform Support

  • Java Edition: Full chest GUI support
  • Bedrock Edition: Native Geyser Forms when available
  • Automatic Fallback: Chest GUI when Geyser unavailable

🎮 Commands & Permissions

New Commands

CommandPermissionDescription
/baltop [page]ecoxpert.baltopView balance leaderboard
/baltop gui [page]ecoxpert.baltop.guiOpen GUI leaderboard

New Permissions

  • ecoxpert.baltop - View balance leaderboard (default: true)
  • ecoxpert.baltop.gui - Open GUI leaderboard (default: true)

📊 PlaceholderAPI Integration

New Placeholders

%ecox_baltop_balance_<rank>%              - Balance at specific rank
%ecox_baltop_balance_formatted_<rank>%    - Formatted balance with currency
%ecox_baltop_player_<rank>%               - Player name at rank
%ecox_baltop_rank%                        - Your current rank

Example: %ecox_baltop_player_1% returns the richest player's name


🔧 Configuration

Discord Setup

  1. Install DiscordSRV plugin
  2. Configure channels in modules/discord.yml:
    discord:
      enabled: true
      channels:
        economy: "CHANNEL_ID"
        alerts: "CHANNEL_ID"
    
  3. Reload: /ecoxpert reload

Baltop Settings

  • Console: 10 entries per page
  • GUI: 45 entries per page
  • Cache: 30 seconds TTL
  • No configuration required - works out of the box

📦 Installation & Update

New Installation

  1. Download EcoXpert-1.3.0.jar
  2. Place in plugins/ folder
  3. Install Vault (required) and DiscordSRV (optional)
  4. Restart server

Update from v1.2.x

  1. Stop server
  2. Replace JAR file
  3. Start server
  4. No database changes - fully backward compatible

🐛 Bug Fixes

  • Fixed potential memory leak in leaderboard queries
  • Improved error handling for empty result sets
  • Enhanced GUI pagination edge cases
  • Better Discord integration error handling

🔗 Integration Status

Fully Supported

  • Vault - Complete economy integration
  • PlaceholderAPI - 50+ placeholders available
  • DiscordSRV - Full notification and command support
  • GeyserMC - Native Bedrock Forms support
  • WorldGuard/Lands - Territory-based bonuses
  • Jobs/Towny/Slimefun - Economic adjustments

📞 Support


EcoXpert Pro - Because your economy deserves intelligence

EcoXpert 1.2.3

release25 ноября 2025 г.

Changelog - Version 1.2.3

Release Date: 2025-11-24 Type: Bug Fix & Bedrock Compatibility Update


🐛 Bug Fixes

#1: SQLite Database Lock Errors

Issue:

  • Multiple [SQLITE_BUSY] The database file is locked errors during market transactions
  • Occurred when many players traded simultaneously
  • Caused transaction failures and poor user experience

Root Cause:

  • SQLite busy_timeout was set to 5 seconds
  • High concurrency in market transactions exceeded timeout
  • Default configuration not optimized for multi-player servers

Solution:

  • Increased SQLite busy_timeout from 5s → 15s (3x improvement)
  • Applied in both JDBC URL and PRAGMA connection init
  • Maintains WAL mode for better concurrent access

Testing:

  • Load tested with 10+ concurrent market transactions
  • Lock errors reduced by ~90%
  • Recommended migration to MySQL for servers with 50+ players

#2: Bedrock Edition GUI Incompatibility

Issue:

  • Bedrock players reported "blocks staying in inventory" when using Market GUI
  • Items from chest-based GUIs appeared as real items in inventory
  • Bedrock Edition doesn't support interactive chest GUIs like Java Edition

Root Cause:

  • All GUIs used Bukkit.createInventory() (chest-based GUIs)
  • Minecraft Bedrock Edition interprets chest GUI items as real items
  • No Bedrock-native interface (Geyser Forms) implemented

Solution - (Market GUI):

1. Geyser Forms API Integration:

  • Added BedrockFormsManager with full reflection support
  • Uses Geyser's native SimpleForm and ModalForm APIs
  • Zero compile-time dependency - loads dynamically at runtime

2. Intelligent Platform Detection:

  • Detects Bedrock players via Floodgate API (reflection)
  • Checks if Geyser Forms API is available
  • Auto-switches between Forms (Bedrock) and Chest GUIs (Java)

3. Fallback System:

Bedrock Player + Geyser Installed → Native Forms (✅ Fixed)
Bedrock Player + No Geyser       → Chest GUI (⚠️ Known issue)
Java Edition Player              → Chest GUI (✅ Works)

4. ALL GUIs Now Support Bedrock Forms:

MarketGUI:

  • Buy items (1x, 16x, stack)
  • Sell items (1x, stack, all)
  • Create market listings
  • Touch-friendly item selection

BankGUI:

  • Deposit money ($100, $500, $1K, $5K, $10K)
  • Withdraw money (same amounts)
  • Check balance in real-time
  • Automatic menu refresh after transactions

LoansGUI:

  • Request loans ($1K, $2.5K, $5K, $10K, $25K)
  • Confirmation dialog with offer details
  • Make payments ($500, $1K, $2.5K, $5K, full amount)
  • View loan status
  • Smart credit score integration

ProfessionsGUI:

  • Select from 7 professions
  • View buy/sell factors
  • Real-time XP and level display

All Forms Include:

  • Full translation support (EN/ES)
  • Touch-friendly Bedrock UX
  • Graceful fallback to chest GUIs if Geyser unavailable
  • Automatic platform detection

Installation Requirements:

  • Geyser-Spigot plugin (optional but recommended)
  • Floodgate plugin (optional but recommended)
  • Auto-detects at runtime - no configuration needed

Current Status:

  • ✅ MarketGUI - Full Geyser Forms support
  • ✅ BankGUI - Full Geyser Forms support (NEW)
  • ✅ LoansGUI - Full Geyser Forms support (NEW)
  • ✅ ProfessionsGUI - Full Geyser Forms support (NEW)

🔧 Technical Improvements

Dependency Management

  • Geyser/Floodgate APIs loaded via reflection (no compile dependency)
  • Dependencies marked as provided and optional in pom.xml
  • Dependencies commented out in pom.xml for easier compilation
  • Zero JAR size increase - maintains 2.5MB optimized build
  • Graceful degradation when APIs not available

Bedrock Forms Architecture

  • SimpleForm - Menu with buttons (main menus, selections)
  • ModalForm - Yes/No confirmations (loan approval, critical actions)
  • CustomForm - Input fields (text, dropdowns, sliders, toggles)
  • Dual implementation pattern (Forms for Bedrock, Chest GUI for Java)
  • Automatic platform detection via PlatformManager
  • Translation-first design (all text uses TranslationManager)

Database Optimization

  • SQLite busy_timeout: 5000ms → 15000ms
  • Connection pool configuration optimized
  • Better error handling for concurrent writes

Platform Detection

  • Enhanced Bedrock player detection via Floodgate reflection
  • Runtime capability detection (Forms API availability)
  • Automatic UX adaptation based on client type

📝 Documentation Updates

README.md

  • Added "Bedrock Edition (GeyserMC) Issues" troubleshooting section
  • Documented SQLite lock error solutions
  • Added current Bedrock Forms support status
  • Included Geyser installation requirements

Translation Files

  • Added 50+ new translation keys for Bedrock Forms:
    • Market Forms: market.gui.bedrock.* (13 keys)
    • Bank Forms: bank.gui.bedrock.* (15 keys)
    • Loans Forms: loans.gui.bedrock.* (18 keys)
    • Professions Forms: professions.gui.bedrock.* (4 keys)
  • Both English and Spanish translations
  • All Forms use translated text - zero hardcoded strings

🔄 Migration Notes

From v1.2.2 → v1.2.3

Automatic (No Action Required):

  • SQLite timeout increase applies automatically
  • Bedrock Forms activate if Geyser detected
  • All existing functionality preserved

Optional (Recommended for Bedrock Servers):

  1. Install Geyser-Spigot plugin
  2. Install Floodgate plugin
  3. Restart server
  4. Verify log: "Geyser Forms API detected"

For High-Traffic Servers (50+ players):

  • Consider migrating from SQLite to MySQL
  • MySQL drivers download automatically
  • Update config.yml:
    database:
      type: "mysql"
    

🚀 Performance Impact

  • JAR Size: No change (optimized)
  • Memory: +0.5MB when Geyser Forms active
  • CPU: Negligible (<1% overhead for platform detection)
  • Database: ~90% reduction in SQLite lock errors

⚠️ Known Issues

Bedrock Edition (Without Geyser)

  • All main GUIs now work with Geyser installed!
  • If Geyser NOT installed: chest GUIs used (items may appear in inventory)
  • Solution: Install Geyser-Spigot + Floodgate for best experience
  • Alternative: Use text commands (/bank deposit, /loans request, etc.)

SQLite Under Extreme Load

  • Lock errors may still occur with 100+ concurrent transactions
  • Solution: Migrate to MySQL for production servers

🎯 Upgrade Recommendations

Priority: HIGH for servers with:

  • Bedrock Edition players (via GeyserMC)
  • High market trading activity
  • Frequent SQLite lock errors in logs

Priority: MEDIUM for servers with:

  • Java Edition only
  • Low-medium player count (<50)
  • Occasional database warnings

Installation:

  1. Stop server
  2. Replace EcoXpert-1.2.2.jar with EcoXpert-1.2.3.jar
  3. (Optional) Install Geyser + Floodgate
  4. Start server
  5. Verify logs for successful initialization

Issues: https://github.com/koyere/ecoxpert/issues Discord: https://discord.gg/xKUjn3EJzR

EcoXpert 1.2.2

release17 ноября 2025 г.

EcoXpert 1.2.2 — Market Safety & Integrity

  • Fixed: hard blockers on market buys/sells/orders when unit price or totals are zero/negative; cache and price calculator now auto-heal corrupt prices back to safe base values so items can’t be bought for free.
  • Improved: economy operations now require strictly positive amounts, tightening validation across transfers/debits.
  • Compatibility: Java 17+, Spigot/Paper/Purpur/Folia 1.19.4–1.21.9+ (no API changes).
  • Update: build or download EcoXpert-1.2.2.jar, replace the old JAR in plugins/, and restart your server. No config changes required.

EcoXpert 1.2.1

release17 октября 2025 г.

EcoXpert 1.2.1 — MySQL Schema Finalization

  • Fixed: schema creation now generates valid MySQL DDL (AUTO_INCREMENT, booleans, compatible defaults) and uses dialect-specific upsert logic to avoid syntax errors during startup.
  • Improved: database initialization chooses the correct SQL dialect (SQLite/MySQL/H2), verifies index existence via metadata, and handles meta-version updates without driver-specific queries.
  • Fixed: MySQL charset compatibility — added automatic fallback from utf8mb4 to utf8 if server doesn't support utf8mb4. Database is now auto-created if it doesn't exist.
  • Improved: config.yml now includes MySQL troubleshooting guide with solutions for charset, timeout, and access errors.

Совместимость

Minecraft: Java Edition

1.21.x1.20.x1.19.x

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:MIT
Опубликован:4 месяца назад
Обновлён:1 месяц назад
Главная