
Emage
High-performance image and GIF renderer for item frames.
Оцените первым
812
6
Список изменений
This update revamps the rendering engine for better stability and performance, achieving the maximum possible visual quality within Minecraft's limits. It also adds a live reload command and forces images to fill grids completely.
Performance & Storage
- Massive Processing Speedups: Applying static images is now 3x faster, and applying GIFs is 2x faster. The processing pipeline has been optimized to bypass server bottlenecks and maximize CPU utilization.
- Async Visibility Checks: Server tick rate will no longer drop when multiple animated images are displayed nearby. Visibility calculations now run in the background.
- Bandwidth Throttling: Outgoing map data is now rate-limited per player to prevent network overflows that previously disconnected users.
- Faster Grid Allocation: Assigning map IDs to large grids is significantly faster, reducing the initial delay when applying images.
- Reduced CPU Usage: Lowered the image compression level to drastically reduce CPU strain during real-time processing without noticeably increasing file sizes.
- Database Frame Storage: Animated frames are now stored directly in the database instead of as individual files on the disk. This prevents file system fragmentation and makes deleting images instantaneous.
- Accurate Memory Limits: The rendering cache now accurately tracks the size of image data, ensuring the configured memory limit is respected correctly.
- Faster Startup Cleanup: The plugin now cleans up broken database entries and orphaned data directly in the database on startup, replacing slow file system scans.
- Isolated Processing Threads: Heavy image processing tasks no longer compete with other plugins for CPU time. Emage now uses dedicated thread pools, preventing server-wide lag spikes during large image renders.
- Optimized Render Loop: The main rendering loop has been streamlined to bypass unnecessary API calls. This reduces overhead per tick and ensures smoother playback for animated images.
- Faster Visibility Checks: The system now uses cheaper distance and direction checks before performing expensive line-of-sight calculations. This significantly lowers the CPU cost of tracking which players can see active renders.
- Optimized Grid Detection: Detecting a grid of item frames is now significantly faster, especially for large walls. The plugin now gathers nearby frames once upfront instead of repeatedly searching the surrounding area.
- Database Retry Logic: Temporary database locks will no longer cause image processing to fail. The plugin now automatically retries database writes with incremental backoff to ensure data is saved successfully.
- Frequent Database Maintenance: Automatic database cleanup now runs hourly instead of daily. This prevents performance degradation on servers that run for long periods without restarting.
Quality of Life
- Maximum Visual Quality: Emage now utilizes advanced color matching and dithering, reaching the mathematical ceiling of visual accuracy possible on a vanilla Minecraft client without requiring resource packs or mods.
- Live Config Reload: Added a
/emage reloadcommand so admins can apply configuration and message changes without restarting the server. - Stretch to Fill: Images are now forced to stretch and cover the entire item frame grid. The original aspect ratio is no longer preserved, allowing images to perfectly fill the space.
Bug Fixes & Security
- GIF Crash Prevention: Malicious GIFs with massive dimensions in their headers can no longer crash the server by triggering out of memory errors.
- Strict URL Schemes: The plugin now rejects URLs that do not use standard HTTP or HTTPS protocols, blocking attempts to access local server files.
- Isolated DNS Security: Internal network protection now applies strictly to Emage's image downloads. Other plugins and server processes are no longer affected by Emage's internal URL blocking rules.
- Fixed Render State Leaks: Active render counts can no longer get stuck in a permanent processing state if an unexpected error occurs during image download or scaling.
- Prevented Memory Leaks on Shutdown: Pending image data left in memory during a server shutdown is now properly released. This prevents direct memory leaks when reloading or stopping the server.
- Resilient Corrupted Frames: If an animation frame becomes corrupted in the database, the plugin will now temporarily skip it and retry later. Previously, this would spam the database continuously and cause severe lag.
- Robust Grid Detection: The grid detection algorithm is now safeguarded against infinite loops. Rare edge cases involving duplicate entity IDs will no longer cause the server to hang.
Файлы
Emage-1.5.2.jar(9.59 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.5.2
Загрузчики
BukkitPaperPurpurSpigot
Версии игры
1.21–26.2
Загрузок
43
Дата публикации
30.06.2026
