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

EcoXpert

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

192
0
Все версииEcoXpert 1.2.3

EcoXpert 1.2.3

Release3 мес. назад

Список изменений

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.3.jar(1.03 MiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

1.2.3

Загрузчики

Bukkit
Folia
Paper
Purpur
Spigot

Версии игры

1.19–1.21.10

Загрузок

50

Дата публикации

3 мес. назад

Загрузил

ID версии

Главная