
Список изменений
Emage 1.2 - Changelog
Better Color Accuracy
Colors now look significantly closer to the original image. The old system used a basic color distance formula that often picked slightly "off" colors. The new one uses a proper perceptual color model (CIEDE2000) that matches how human eyes actually see color differences. The cache used for fast lookups has also been made more precise, and initialization is faster thanks to parallel processing.
Improved Dithering
- Balanced mode now produces cleaner images with less visible banding and fewer stripe-like artifacts.
- High quality mode uses a more advanced algorithm that spreads color blending over a larger area, giving smoother gradients.
- Fast mode has been upgraded for slightly better pattern quality while staying fast.
- GIF animations now look more stable — areas of the image that don't change between frames are preserved as-is instead of being reprocessed, which cuts down on visual flickering.
Faster GIF Processing
GIF frames are now processed across multiple CPU cores at once instead of one at a time. You'll also see a progress bar in your action bar while a GIF is being processed so you know it's working.
Large images are now downscaled in steps instead of all at once, which makes them look noticeably sharper.
Smoother Animations
- Animations update every tick instead of every other tick, so playback feels smoother.
- Frame timing is more accurate internally.
- Map updates are only sent to players who are actually close enough to see the animation and in the same world, which saves a lot of bandwidth.
- You can now configure how many map packets are sent per tick to keep things smooth without overloading the connection.
Security
- The plugin now blocks URLs that point to internal/local networks to prevent server-side request abuse.
- Downloads are limited to 50MB by default and will cut off if exceeded.
- Redirects are followed safely with a max hop limit, and each redirect is checked for safety.
- Only HTTP and HTTPS URLs are allowed.
Rate Limiting
- Players now have a cooldown (default 5 seconds) between image commands to prevent spam.
- There's a global limit on how many images can be processed at the same time (default 3). If the server is busy, players are told to wait.
- If the plugin is still starting up, commands will let you know instead of failing silently.
More Config Options
A bunch of things that were previously hardcoded are now configurable:
- Max packets per tick for animations
- Separate grid size limits for GIFs and static images
- Download limits (file size, timeouts, redirect count, internal URL blocking)
- GIF cache settings (max entries, memory limit, expiry time)
- Rate limits (cooldown, max concurrent tasks)
If you're upgrading from v1.x, any new config options will be added to your existing config automatically. nothing will break.
Map Management
- Maps that were already loaded won't get duplicate renderers applied anymore.
- When a world loads, only maps belonging to that world are restored instead of everything.
- Pending saves are flushed immediately on world save to prevent data loss.
- Map and animation counts are tracked correctly and no longer double-count on re-registration.
Other Changes
- Base command now requires
emage.usepermission. - Frame detection (the BFS that finds connected item frames) is now capped at 225 to prevent lag on huge frame walls.
- Cleaned up memory handling: buffers and resources are released properly, removed leftover debug output.
- Removed several unused internal methods and features that weren't doing anything.
