Troubleshooting
🔍 Quick Diagnosis
Is the plugin loaded?
/pluginsCan you access the GUI?
/announcegui/plugins/announceguiCheck server version: /version
Required: Paper 1.21+ or Folia# Check Java version
java -version
# Required: Java 17 or higher# Backup first!
mv plugins/AnnouncementGUI/config.yml plugins/AnnouncementGUI/config.yml.backup
# Restart server - generates new configls -la plugins/AnnouncementGUI/
# Plugin folder must be writablechmod -R 755 plugins/AnnouncementGUI/df -hlsof plugins/AnnouncementGUI/announcements.dbcp announcements.db.backup announcements.dbmysql -h <host> -P <port> -u <username> -p
# Enter password when prompted# On MySQL server
systemctl status mysql
# or
systemctl status mysqld# On MySQL server
sudo ufw status
# Allow from Minecraft server IP
sudo ufw allow from <mc-server-ip> to any port 3306# Should show 0.0.0.0:3306 or :::3306
netstat -tlnp | grep 3306# Change from:
bind-address = 127.0.0.1
# To:
bind-address = 0.0.0.0sudo systemctl restart mysqlSELECT User, Host FROM mysql.user WHERE User='announcegui';DROP USER 'announcegui'@'%';
CREATE USER 'announcegui'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON minecraft_announcements.* TO 'announcegui'@'%';
FLUSH PRIVILEGES;CREATE DATABASE minecraft_announcements;GRANT ALL PRIVILEGES ON minecraft_announcements.* TO 'announcegui'@'%';
FLUSH PRIVILEGES;/lp user <username> permission check announcegui.admin/lp user <username> permission set announcegui.admin true# Check config.yml on each server
localServerId: "lobby" # Must be unique per serverSELECT id, name, targetServerId FROM announcements;# Check config.yml
changePollingIntervalSeconds: 10 # Wait at least this long# From each server
mysql -h <host> -u <username> -p <database>/papi version/papi ecloud download Player
/papi ecloud download Server
/papi reload/papi parse me %player_name%/papi listchangePollingIntervalSeconds: 30 # Increase from 10OPTIMIZE TABLE announcements;
OPTIMIZE TABLE announcement_changelog;-- Usually already exists, but verify:
SHOW INDEX FROM announcements;ls -la plugins/AnnouncementGUI/
chmod 755 plugins/AnnouncementGUI/df -hls -la plugins/AnnouncementGUI/file.jsonchmod 644 plugins/AnnouncementGUI/file.json# Stop server
# Backup plugins/AnnouncementGUI/ folder
# Replace JAR file
# Start server# Remove old version
rm plugins/AnnouncementGUI-*.jar
# Add new version
# Restart# Backup config
cp plugins/AnnouncementGUI/config.yml ~/config.yml.backup# If config reset, restore backup
cp ~/config.yml.backup plugins/AnnouncementGUI/config.yml# In-game
/plugins
# Console logs
grep "AnnouncementGUI" logs/latest.log# SQLite
ls -la plugins/AnnouncementGUI/announcements.db
# MySQL
mysql -h <host> -u <user> -p<password> -e "USE <database>; SHOW TABLES;"-- Connect to MySQL
mysql -h <host> -u <user> -p
-- List announcements
USE minecraft_announcements;
SELECT * FROM announcements;
-- Check specific announcement
SELECT * FROM announcements WHERE name='Welcome Message';-- View recent changes
SELECT * FROM announcement_changelog ORDER BY change_time DESC LIMIT 10;/plugins/version# Recent errors
grep -i "error\|exception" logs/latest.log | grep -i "announcement"debug: true# Check database integrity
sqlite3 plugins/AnnouncementGUI/announcements.db "PRAGMA integrity_check;"-- Check table status
SHOW TABLE STATUS FROM minecraft_announcements;
-- Check for corrupted tables
CHECK TABLE announcements;
CHECK TABLE announcement_changelog;
-- Repair if needed
REPAIR TABLE announcements;# Get process ID
ps aux | grep java
# Generate thread dump
kill -3 <PID>
# Check in logs
grep "Thread dump" logs/latest.log -A 100