
269
2
Список изменений
🎨 Emage 1.1.1
🎉 Major Release - Custom Color Engine, GIF Caching & Stability Overhaul
This release introduces a completely custom color matching system, GIF processing cache, improved stability, and a complete code reorganization for better maintainability.
⚠️ Breaking Changes
- Maximum GIF grid size reduced from unlimited to 4x4
- Maximum static image grid size set to 10x10
- Minimum frame delay increased to 50ms (20 FPS max)
✨ New Features
Custom Color System
- Replaced Bukkit's MapPalette with custom
EmageColorsclass - Perceptually-weighted color matching (green-biased for human vision)
- Pre-computed 262,144 entry color cache for instant lookups
- Full Minecraft 1.17+ palette with all 248 map colors
- Fixed dark colors appearing as yellow/banana or transparent
GIF Caching System
- Processed GIFs are cached to avoid reprocessing
- Cache key based on URL + grid size + quality
- Maximum 20 entries or 100MB memory
- Auto-expires after 30 minutes of no use
- LRU (Least Recently Used) eviction when full
- Second use of same GIF is instant
New Commands
| Command | Description |
|---|---|
/emage cache | View GIF cache statistics (hit rate, memory, count) |
/emage clearcache | Clear all cached GIF data |
New Flags
| Flag | Aliases | Description |
|---|---|---|
--nocache | --nc, --fresh | Force reprocess GIF, ignore cache |
Grid Size Limits
| Content Type | Maximum | Recommended |
|---|---|---|
| Static Images | 10x10 (100 maps) | Any size |
| Animated GIFs | 4x4 (16 maps) | 2x2 or smaller |
User Warnings
- Warning displayed for GIF grids of 3x3 or larger
- Error displayed when exceeding maximum grid sizes
- Help text updated with limits and recommendations
🚀 Performance Improvements
Lag Fixes
- Fixed player timeout issues with large GIF grids
- Fixed 40%+ CPU usage spikes during GIF playback
- Removed aggressive parallel processing that flooded network
- Single-threaded processing prevents system overload
Animation System
- Animation tick runs every 2 ticks (100ms) instead of every tick
- Only sends map updates when frames actually change
- All maps in sync group update together efficiently
needsRenderflag prevents redundant canvas updates- Animation starts only after all maps are applied
Memory Management
- Sequential frame processing reduces memory usage
- Reusable pixel buffers across frames
- Frame references cleared immediately after processing
- Efficient buffer reuse throughout processing pipeline
Processing
- Proper frame disposal handling (restoreToPrevious, restoreToBackgroundColor)
- Correct metadata extraction for delays and positions
- Better handling of 0-delay frames (defaults to 100ms)
🐛 Bug Fixes
Color Issues
- Fixed dark colors appearing as banana/yellow color
- Fixed very dark areas appearing as transparent
- Fixed COLOR_BLACK palette entries being skipped incorrectly
GIF Playback
- Fixed GIFs running at 5 FPS instead of correct speed
- Fixed frame skipping in first few seconds of playback
- Fixed maps showing different frames (desync issues)
- Fixed animation starting before all maps were ready
Stability
- Fixed player timeout issues with large GIF grids
- Fixed CPU spikes during GIF playback
- Fixed memory leaks from unreleased frame data
- Fixed network flooding from excessive map updates
Файлы
Emage-1.1.1.jar(82.83 KiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
1.1.1
Загрузчики
BukkitPaperPurpurSpigot
Версии игры
1.18–1.21.10
Загрузок
75
Дата публикации
4 мес. назад
