Unofficial site, not affiliated with modrinth.com.What is this?
Плагины/Christmas Season
  • Christmas Season 2.2.0

    release25 апреля 2026 г.

    [2.2.0] - 2026-04-25

    Major Update: Region protection, backup system, update checker, bug fixes, data safety, tab completion, and bStats.

    Upgrade Priority: HIGH - Critical thread-safety and data integrity fixes

    Added

    • WorldGuard & GriefPrevention - No spawns in protected regions/claims (soft dependency, configurable)
    • Automatic Backup System - SAFE/Timestamp/Emergency backups in world/christmas_backups/
    • Update Checker - Modrinth + GitHub fallback, OP notifications on join
    • Biome Compare & Fix - /xmas biome compare and /xmas biome fix-diff for recovery
    • Full Tab Completion - Context-aware suggestions for all commands
    • bStats Metrics (Plugin ID: 30930)
    • Startup Safety Checks - DB integrity check, crash detection, missing-DB warnings
    • Data Loss Protection - clearsnap blocked when active, backup failure warnings, smart rotation
    • Entity spawn fixes: No more spawns on roofs, in trees, or in water

    Fixed (17 Bugs)

    • CRITICAL: Backup system non-functional (wrong DB filename)
    • CRITICAL: Folia crash on start/join (Bukkit.getScheduler()FoliaSchedulerHelper)
    • HIGH: 6 thread-safety issues (restore counters, restore guard, HashSets, SQLite, LanguageManager)
    • HIGH: Restore permanently blocked after empty snapshot or null DB
    • MEDIUM: Cave biomes overwritten during seed-restore (Y=64 only → per Y-level)
    • MEDIUM: NPE in stopFeatures() on failed startup
    • MEDIUM: SnowstormManager orphaned tasks after stop()
    • LOW: DB header EOF check, version parse fix, SnowmanDamageListener cleanup

    Changed

    • softdepend: [WorldGuard, GriefPrevention] in plugin.yml
    • New regionIntegration config section
    • Intelligent backup rotation (largest backup never deleted)
  • Christmas Season 2.1.0

    release26 декабря 2025 г.

    [2.1.0] - 2025-12-25

    Minor Update: Critical Folia compatibility fixes and complete internationalization overhaul.

    This release fixes multiple critical thread-safety violations on Folia servers and completes the internationalization system. The biome restore mechanism has been completely rewritten to work correctly with Folia's regionalized threading model.

    Upgrade Priority: HIGH - Recommended for all Folia servers experiencing crashes during /xmas off

    Fixed

    • CRITICAL: Folia performance issue - TPS drops to 16 during biome changes

      • Fixed ensureAroundPlayerFolia() scheduling all chunks around player simultaneously
      • Root cause: With radius=2, all 25 chunks were scheduled in parallel every tick (no budget limit)
      • Result: Massive TPS spike when processing 25 chunks × 9,728 biomes each = 240k+ biome changes
      • Solution: Added perTickBudget respect - only schedules max 12 chunks per player tick
      • Chunks now distributed across multiple ticks (e.g., 25 chunks over 3 ticks instead of instant)
      • Performance now matches Paper/Spigot budget-based system
    • Client-side biome caching after /xmas off

      • Fixed default value for biome.playerBubble.refreshClient from false to true
      • Clients now correctly see restored biomes without needing to move away and return
      • Chunk refresh packets now sent by default (can be disabled in config for performance)
    • CRITICAL: Biome snapshot bug in /xmas biome set command

      • Fixed chunks not being restored correctly after manual biome changes
      • Root cause: setBiomeAroundPlayer() added chunks to knownSnapshotChunks cache BEFORE calling snapshotIfAbsent()
      • Result: No snapshot was created for manually changed chunks → wrong biome restored on /xmas off
      • Solution: Removed premature cache addition, let snapshotIfAbsent() manage the cache correctly
      • Fixes issue where chunks changed with /xmas biome set were not restored to original biomes
    • CRITICAL: Chunks not loaded during /xmas on were never processed

      • Implemented automatic retry mechanism for chunks that fail to load
      • Chunks are now retried up to 3 times before being skipped
      • Prevents "missing chunks" issue where distant/unloaded chunks stay unchanged
      • Added chunkRetryCount tracking map with automatic cleanup to prevent memory leaks
      • Debug logging for chunks that are skipped after max retries
    • CRITICAL: Complete internationalization of all console logs

      • Fixed English language module not being loaded correctly from JAR
      • Replaced ALL 68 hardcoded German strings with LanguageManager calls:
        • BiomeSnapshotDatabase.java: 34 strings replaced
        • BiomeSnowManager.java: 33 strings replaced
        • SnowmanManager.java: 1 string replaced
      • All console log messages now properly respect the language setting in config.yml
      • Verified: Zero hardcoded German strings remaining in user-facing logs
    • CRITICAL: Folia thread safety violations in biome restore

      • Fixed IllegalStateException crash during /xmas off biome restoration on Folia servers
      • Root cause: Batch processing accessed chunks from different regions in single Location Scheduler task
      • Error: "Thread failed main thread check: Async chunk retrieval"
      • Solution: Each chunk now processed on its own Location Scheduler task (prevents cross-region access)
      • Removed batch optimization that violated Folia's region threading model
      • Improved chunk loading: Now uses blocking load (generate=true) for higher success rate
      • Added double-check verification to ensure chunks are actually loaded before restore
      • Fixed error counting to accurately track failed chunk restores
    • CRITICAL: Folia thread safety violations in cleanup methods

      • Fixed IllegalStateException crash when running /xmas off on Folia servers
      • Root cause: Using world.getEntitiesByClass() and direct entity.remove() calls access entities from other regions, violating Folia's thread ownership model
      • DecorationManager.java: Replaced unsafe entity iteration with UUID tracking
        • Added trackedDecorations ConcurrentHashMap for thread-safe entity tracking
        • Track decorations when spawned, untrack when lifetime expires
        • cleanup() now uses Bukkit.getEntity(uuid) + scheduler.runForEntity() pattern
      • SnowmanManager.java: Replaced unsafe entity iteration and counting
        • Added trackedSnowmen ConcurrentHashMap for thread-safe entity tracking
        • Replaced getEntitiesByClass() loop with trackedSnowmen.size() for counting
        • cleanup() now schedules removal on each entity's owning region thread
        • Properly cancels attack tasks before entity removal
      • WichtelManager.java: Fixed direct entity.remove() calls in cleanup()
        • cleanup() now schedules Wichtel/Elfen removal on each entity's owning region thread
        • Properly cancels steal tasks before entity removal
        • Uses same UUID tracking + entity scheduler pattern
      • All entity removals now scheduled on correct region threads (Folia-safe)
      • GiftManager: Already Folia-safe (uses Location Scheduler for block operations)

    Changed

    • Enhanced Language Files

      • Added 70+ new translation keys to messages_de.yml:
        • log.biome.* - 35+ keys for biome restore operations, errors, and status
        • log.database.* - 35+ keys for database operations, compression, errors
        • log.cleanup.snowman-world-not-found - Snowman cleanup error
      • Added matching English translations to messages_en.yml
      • All formatting codes (§6, §7, §a, §c, §f, etc.) preserved in translations
    • Improved Translation Coverage

      • Database operations (open, close, clear, compression, decompression)
      • Biome restore operations (start, progress, completion, errors)
      • Error messages and warnings with detailed context
      • Statistics and progress information
      • Chunk loading/restoration errors with coordinates
    • Improved Language Loading Diagnostics

      • LanguageManager now logs:
        • Current language being loaded
        • Absolute file path of language file
        • File existence status and size in bytes
        • Source of language data (disk vs JAR)
        • Number of keys loaded successfully
      • Better error messages when resources are missing from JAR
      • Added resource enumeration in severe error cases for debugging
    • Build Configuration

      • Added explicit Maven resources configuration in pom.xml
      • Ensures all .yml and .yaml files are properly packaged in JAR
      • Language files (messages_de.yml, messages_en.yml) now correctly included

    Technical

    • All log messages now use plugin.getLanguageManager().getMessage() or .get()
    • Proper placeholder support with {0}, {1}, {2} format for dynamic values
    • Technical/internal logs (resource loading, language manager) intentionally kept in English
    • Updated pom.xml with explicit <resources> section
    • Added better exception handling in ChristmasSeason.saveResourceIfAbsent()
    • Enhanced logging shows resource extraction status with file sizes
    • Maintains backward compatibility with existing configurations
  • Christmas Season 2.0.0

    release19 декабря 2025 г.

    [2.0.0] - 2025-12-19

    Added

    • 🎄 Multi-Platform Support - Plugin now runs on Spigot, Paper, Purpur AND Folia!

      • Automatic platform detection at runtime
      • Single JAR works on all server types (no separate builds needed)
      • Zero configuration required - works out of the box
      • Smart Scheduler Strategy:
        • Paper/Spigot/Purpur: Global timer (preserves v1.4.1 architecture & performance)
        • Folia: Player-based Entity Scheduler (regionalized threading)
    • FoliaLib Integration

      • Added FoliaLib 0.4.3 dependency (shaded & relocated)
      • Seamless multi-platform scheduler abstraction
      • Automatic fallback to Bukkit scheduler on non-Folia servers
    • Folia-Specific Optimizations

      • Region-based scheduling for biome processing (uses Global/Region Scheduler)
      • Entity-based scheduling for mobs (Wichtel, Elfen, Schneemänner)
      • Location-based scheduling for blocks (Gifts, Decorations)
      • Full support for Folia's regionalized multithreading
    • Chunk Queue System (NEW!)

      • Budget-based chunk processing prevents TPS spikes
      • Config option: perTickBudget (default: 12 chunks/tick)
      • Prevents lag when players move quickly into new areas
      • Queue distributes chunk updates across multiple ticks
    • Manual Biome Correction Command

      • /xmas biome set <biome> [radius] - Manually fix biome issues
      • Only works when ChristmasSeason is active (prevents permanent changes)
      • Includes automatic snapshot creation
      • Protection against global timer conflicts

    Changed

    • Complete Scheduler Migration

      • All managers migrated from Bukkit scheduler to FoliaLib
      • BiomeSnowManager: Multi-platform scheduler strategy (Global on Paper, Entity on Folia)
      • DecorationManager: Entity scheduler for item lifetimes
      • GiftManager: Location scheduler for chest placement/removal
      • SnowstormManager: Global scheduler for weather control
      • WichtelManager: Entity scheduler for mob management
      • SnowmanManager: Entity scheduler for snowman behavior
      • XmasCommand: Global scheduler for delayed operations
    • New Scheduler Helper

      • Created FoliaSchedulerHelper utility class
      • Platform-agnostic API for scheduling tasks
      • Automatic platform detection (isFolia() method)
      • Supports all scheduler types: Global, Region, Entity, Location, Async
    • Task Types Updated

      • Replaced BukkitTask with WrappedTask (FoliaLib wrapper)
      • Replaced BukkitRunnable with lambda expressions
      • All scheduler calls now go through FoliaSchedulerHelper
    • Performance Improvements

      • perTickBudget increased from 6 → 12 (2x faster biome updates)
      • Cache management optimized (processedChunks, knownSnapshotChunks)
      • Chunk queue prevents processing duplicates

    Fixed

    • CRITICAL: Multi-Platform Teleport Incompatibility

      • Fixed NoSuchMethodError on Spigot (teleportAsync doesn't exist)
      • Fixed UnsupportedOperationException on Folia (must use teleportAsync)
      • Platform-dependent teleport: teleportAsync() on Folia, teleport() on Spigot/Paper/Purpur
      • Wichtel can now teleport correctly on all platforms
    • CRITICAL: Race Condition in /xmas biome set

      • Fixed global timer overwriting manual biome changes
      • Chunks are now marked as processed BEFORE async tasks start
      • Manual changes are now persistent until /xmas off
    • CRITICAL: Chunk Stripes Not Restored

      • Fixed chunks being deleted from database even when restore failed
      • Chunks now only deleted after successful restoration
      • Failed chunks remain in DB for retry on next /xmas off
      • Added logging for failed chunk loads
    • Database Management

      • Improved cache clearing before/after restore operations
      • Better error handling for chunk loading failures
      • Success-only database cleanup prevents data loss

    Technical

    • Dependencies

      • Updated from spigot-api to paper-api (1.21.3-R0.1-SNAPSHOT)
      • Added FoliaLib 0.4.3 (com.tcoded:FoliaLib)
      • Added tcoded-releases repository (https://repo.tcoded.com/releases)
      • FoliaLib is shaded and relocated to avoid conflicts
    • Build Configuration

      • Updated Maven Shade plugin to include FoliaLib
      • Relocation: com.tcoded.folialibde.boondocksulfur.christmas.libs.folialib
      • SQLite JDBC driver still bundled (3.45.0.0)
    • Version Bump

      • Major version bump to 2.0.0 (breaking changes in internal APIs)
      • Updated version in pom.xml, plugin.yml, and READMEs
      • Platform description updated to "Spigot/Paper/Purpur/Folia"
      • Added folia-supported: true flag to plugin.yml (required for Folia)

    Migration Notes

    • No action required for server admins - plugin auto-detects platform
    • For developers: Internal scheduler API changed (use FoliaSchedulerHelper)
    • Compatible with existing configs - no configuration changes needed
    • Works on Folia 1.20+ and all Paper/Spigot versions supporting 1.21+
  • Christmas Season 1.4.1

    release12 декабря 2025 г.

    [1.4.1] - 2025-12-12

    Fixed

    • CRITICAL: Fixed database corruption during biome snapshot save/load

      • Fixed stream misalignment causing garbled biome names (e.g., "MEADOWMEADOWMEADOW", "SNOWY_SLOPESFROZEN_PEAKS")
      • Fixed MEADOW biomes being incorrectly restored as PLAINS
      • Root cause: InputStream.read() can return fewer bytes than requested (partial reads)
      • Solution: Read in loop until all bytes are received to maintain stream alignment
      • Added validation for biome name length (max 50 bytes) to detect corruption early
    • Fixed "Unerwartetes Ende in 3D Biome-Daten!" errors

      • Stream now properly handles partial reads without losing alignment
      • One corrupted biome no longer corrupts all following biomes (no more domino effect)

    Changed

    • Improved error messages for database corruption
      • Clear instructions: /xmas biome clearsnap to delete corrupted database
      • Detection of stream misalignment with detailed logging
  • Christmas Season 1.4.0

    release12 декабря 2025 г.

    [1.4.0] - 2025-12-12

    Fixed

    • CRITICAL: Fixed biome restoration corruption - Biomes are now correctly restored after /xmas off

      • Changed biome serialization from ordinal-based (unstable) to name-based (stable)
      • Fixes issue where biomes were completely scrambled (e.g., JUNGLE became BIRCH_FOREST, OCEAN became FROZEN_PEAKS)
      • Old snapshots using ordinal format are still supported for backwards compatibility
      • Database format updated: New snapshots use magic byte 0x3E (name-based), old format 0x3D (ordinal-based) still readable
    • Fixed Y-level misalignment in biome restoration

      • Restore now uses the correct yStep value from the snapshot instead of config
      • Prevents biomes from being restored at wrong vertical positions

    Added

    • Extensive debug logging for biome snapshot/restore operations
      • Shows which biomes are stored in snapshots
      • Shows which biomes are restored from snapshots
      • Helps diagnose biome-related issues

    Technical Details

    • Biome storage format changed from ordinal() (2 bytes) to name() (length-prefixed UTF-8 string)
    • Rationale: Biome.values() order is not guaranteed to be stable across server restarts/reloads
    • New format ensures biome names like "JUNGLE", "OCEAN" are stored exactly as they are
    • Database automatically migrates old snapshots when loading
  • Christmas Season 1.3.0

    release2 декабря 2025 г.

    Version 1.3.0 (2025-12-02)

    🚀 Massive Performance Update! - Fixed critical performance issues + SQLite database system for unlimited chunks!

    ⚡ Performance Optimizations

    Chunk Processing Optimized (99% less re-processing)

    • Chunk Processing Cache: Chunks are now processed only once, not repeatedly every tick
    • Smart Sample Check: 4-point sampling skips already correct chunks (~95% faster)
    • Removed Double Processing: tick() method no longer processes player bubbles twice
    • 📊 Effect: From 24,576 API calls per chunk → 4-100 calls (-99%)

    Event Listeners Throttled (-90% Events)

    • PlayerMove Cooldown: 3-second cooldown per player instead of every chunk change
    • ChunkLoad Caching: Already processed chunks are skipped
    • 📊 Effect: ~90% fewer event triggers for moving players

    Entity Optimizations

    • SnowmanManager: Uses getEntitiesByClass() instead of w.getEntities() (~10x faster)
    • DecorationManager Cleanup: Iterates only over items instead of all entities
    • GiftManager Tracking: New location tracking instead of chunk iteration (~100x faster)
    • Wichtel/Elf Lifetime: Automatic removal after 240 seconds (configurable)
    • 📊 Effect: Cleanup reduced from seconds to milliseconds

    Scheduler Optimizations

    • SnowstormManager Auto-Mode: Changed from runTaskTimer (every tick) to runTaskLater
    • 📊 Effect: From 20 TPS overhead to 0 TPS (only runs every 45-150 seconds)

    Chunk Reload Removed

    • refreshChunkSafe(): Removed expensive chunk unload/reload
    • 📊 Effect: ~50% less CPU load during biome changes

    🗄️ SQLite Database System (BREAKING: replaces YAML)

    Completely New Snapshot System

    • SQLite instead of YAML: Biome snapshots stored in biome-snapshot.db
    • GZIP Compression: Biome data is compressed
    • Unlimited Chunks: No more 2,000-chunk limit!
    • Minimal Storage: 10,000 chunks = ~5-10 MB (instead of 156 MB with YAML)
    • Millisecond Performance: Load/save in <10ms per chunk
    • No Memory Overhead: Data not held in RAM
    • WAL Mode: Write-Ahead Logging for better concurrent performance
    • 📊 Effect: -94% storage space, unlimited scaling

    YAML to SQLite Migration

    • Automatic Migration: /xmas biome migrate migrates old YAML snapshots
    • Backup Creation: Old YAML saved as .backup-<timestamp>
    • Backwards Compatible: Old configs continue to work
    • 📊 Effect: Seamless upgrade from v1.2.x to v1.3.0

    Biome Restore Completely Reworked

    • 🔴 Critical Bug Fixed: Database was closed BEFORE restore, restore found no data
    • New Timing Logic: DB stays open during /xmas off until restore finishes
    • Detailed Logging: Progress every 50 chunks, error tracking
    • Intelligent Block Removal: Only removes snow/ice in non-winter biomes
    • Chunk Loading: Chunks loaded on-demand for restore
    • Auto-Cleanup: DB cleared and closed after successful restore
    • 📊 Effect: Restore now works reliably!

    Debug Mode Added

    • /xmas debug Command: Enables verbose debug logs
    • Snapshot Tracking: See which chunks are being snapshotted
    • Restore Details: Shows biome data and block removal statistics
    • DB Status: Shows database open/close and chunk counts
    • Performance Info: Time measurements and chunk processing
    • 📊 Effect: Easier debugging and troubleshooting

    📊 Compatibility

    Server Software

    • Spigot 1.21+: Fully compatible
    • Paper 1.21+: Fully compatible (recommended for best performance)
    • Purpur 1.21+: Fully compatible
    • ⚠️ Folia: Partially compatible (possible threading issues)

    Dependencies

    • SQLite JDBC 3.45.0.0: Automatically included in JAR (Maven Shade)
    • No Other Dependencies: Plug & Play

    🎯 New Commands

    • /xmas debug - Enable/disable debug mode
    • /xmas biome migrate - Migrate YAML snapshots to SQLite
    • /xmas biome status - Now shows DB statistics (chunks, size)

    📊 Performance Improvements (Measurements)

    MetricBefore (v1.2.5)After (v1.3.0)Improvement
    CPU Load at 1000 Chunks~80%~10-15%-85%
    RAM Usage (Snapshot)156 MB (YAML)5-10 MB (SQLite)-94%
    Non-Heap Usage432/456 MB (95%)~200/456 MB (44%)-54%
    Chunk Limit2,000 (YAML)Unlimited (SQLite)
    Chunk Processing Calls24,576/chunk4-100/chunk-99%
    PlayerMove EventsEvery chunk changeEvery 3 seconds-90%
    Entity Cleanup Time5-10 seconds<100ms-98%
    TPS During Long Runtime10-15 TPS19-20 TPSStable!
    Startup Time (with Snapshot)30-60 seconds (YAML)<1 second (SQLite)-98%
    Snapshot Load/SaveSecondsMilliseconds1000x faster

    🐛 Fixed Bugs

    • 🔴 Critical: Biome Restore Didn't Work: DB was closed BEFORE restore started
    • 🔴 Critical: YAML System Didn't Scale: 10,000+ chunks = 156+ MB, server crashes
    • 🔴 Critical: Chunk Limit Too Low: 2,000 chunks reached quickly on large servers
    • 🔴 Chunk Re-Processing Loop: Chunks were processed repeatedly instead of once
    • 🔴 Double Player-Bubble Processing: tick() and playerBubbleTask did the same work
    • 🔴 PlayerMove Event Spam: Hundreds of events per second when moving fast
    • 🔴 SnowstormManager Auto-Mode: Ran every tick (20x/second) instead of only on toggle
    • 🔴 Inefficient Entity Iteration: w.getEntities() instead of getEntitiesByClass()
    • 🔴 Wichtel/Elves Never Despawn: setRemoveWhenFarAway(false) without lifetime enforcement
    • 🔴 YAML Startup Time: Loading large snapshot files took 30-60 seconds

    ⚙️ Technical Details

    Chunk Processing Cache:

    • New processedChunks Set with max 5,000 entries
    • Chunks are only processed if not in cache
    • Cache size is automatically limited (oldest 20% removed)

    SQLite Database Schema:

    CREATE TABLE chunks (
        world TEXT NOT NULL,
        x INTEGER NOT NULL,
        z INTEGER NOT NULL,
        biomes BLOB NOT NULL,      -- GZIP-compressed biome data (256 bytes → ~50-100 bytes)
        timestamp INTEGER NOT NULL,
        PRIMARY KEY (world, x, z)
    );
    CREATE INDEX idx_timestamp ON chunks(timestamp);
    

    GZIP Compression:

    • Original: 256 biomes as enum ordinals (1 byte per biome)
    • Compressed: ~50-100 bytes (compression rate 50-60%)
    • Effect: 10,000 chunks = ~5-10 MB instead of 156 MB (YAML)

    SQLite Optimizations:

    • WAL mode (Write-Ahead Logging): Better concurrent performance
    • PRAGMA synchronous = NORMAL: Faster writes
    • PRAGMA cache_size = 10000: 10 MB cache
    • PRAGMA temp_store = MEMORY: Temp data in RAM

    PlayerMove Event Throttling:

    • HashMap with LastUpdate timestamps per player
    • 3-second cooldown between updates
    • Prevents spam during fast chunk changes

    Biome Restore Timing Fix:

    • stopFeatures(false): DB stays open for restore
    • restoreALLAsync(): Iterates through DB, restores chunks
    • At the end: DB is cleared and closed
    • Progress logging every 50 chunks

    🎓 Migration Guide (v1.2.x → v1.3.0)

    Upgrade Steps:

    1. Stop Server

      stop
      
    2. Replace Plugin JAR

      • Delete old ChristmasSeason-1.2.x.jar
      • Copy new ChristmasSeason-1.3.0.jar to plugins/
    3. Start Server

      # Plugin automatically creates biome-snapshot.db
      
    4. Optional: Migrate Old YAML Snapshots

      /xmas biome migrate
      
      • Migrates biome-snapshot.ymlbiome-snapshot.db
      • Creates backup: biome-snapshot.yml.backup-<timestamp>
      • Deletes old YAML file after successful migration
    5. Done!

      • SQLite system runs automatically
      • Unlimited chunks possible
      • Better performance

    Config Changes (optional):

    biome:
      # Old config options can be removed:
      # restoreOnEvict: true      ← DEPRECATED, no longer needed!
    
      # enableSnapshot remains the same:
      enableSnapshot: true        # true = SQLite DB, false = no restore
    

    ⚠️ Breaking Changes

    Minimal Breaking Changes:

    • YAML Format: Old biome-snapshot.yml is no longer automatically loaded
      • Solution: Use /xmas biome migrate
    • Config Option: restoreOnEvict is ignored (no longer needed)
      • No adjustment needed - simply ignored
    • All Other Configs: 100% compatible!

  • Christmas Season 1.2.5

    release29 ноября 2025 г.

    Version 1.2.5 (2025-11-29)

    Critical bugfix for ice reset when deactivating the event.

    🐛 Fixed Bugs

    Ice reset did not work correctly

    • 🔴 Problem: Frozen lakes remained frozen after /xmas off, even though they should turn to water
    • 🔍 Cause: Missing continue statement in the loop after converting ice to water
    • Solution: Loop now explicitly searches from top to bottom through the entire block column
    • 🌊 Effect: All ice layers in a lake are now correctly converted to water (not just the top layer)

    Technical Details:

    • The loop now converts all ice blocks in a column (multiple layers)
    • Stops only at the first solid block (Stone, Dirt, Sand, etc.)
    • Natural ice biomes (FROZEN_OCEAN, SNOWY_PLAINS, etc.) remain protected ✅
  • Christmas Season 1.2.4

    release28 ноября 2025 г.

    Version 1.2.4 (2025-11-28)

    Language system update with full multi-language support and important stability improvements.

    🌍 New Features

    Complete Multi-Language System

    • 🎯 LanguageManager: New system for managing translations
    • 🇩🇪 German (de): Full German localization (default)
    • 🇬🇧 English (en): Full English translation
    • 📝 All texts translated: Commands, messages, entity names, broadcasts, error messages, console logs
    • 🎭 Translated entity names: Wichtel, Elves, Snowmen, Gifts, Decorations - all names are now multilingual
    • 🔧 Config option: language: en (or de) in config.yml
    • 🔄 Live reload: Language switching with /xmas reload without server restart
    • 📦 Language files: messages_de.yml and messages_en.yml in plugin folder
    • 💾 Performance cache: Loaded translations are cached
    • 🎨 Placeholder support: Dynamic values in messages (e.g., chunk count, biome names, coordinates)

    Documentation

    • 📖 README_EN.md: Complete English documentation added
    • 🔗 Language links: Both READMEs link to each other
    • Enhanced changelog structure: Detailed descriptions of all changes

    🔧 Technical Improvements

    Language System

    • Modular design: LanguageManager as standalone utility class
    • Fallback system: Missing translations are logged and displayed
    • YAML-based: Easy customization and extension through YAML format
    • Color code support: Automatic conversion from & to §
    • Config cleanup: Removed decoration.name from config.yml (now handled by language system)

    Stability & Performance

    • 🛑 /xmas biome restore disabled: Command has been disabled as it synchronously loads reference world chunks, causing server freezes (30+ seconds)
    • Alternative usage: Use /xmas off for safe, asynchronous biome reset
    • 🔒 YAML Boolean fix: Keys like on, off are now quoted ("on":, "off":) to prevent YAML boolean interpretation

    🐛 Fixed Bugs

    • 🔴 Translation keys not found: YAML was interpreting on/off as booleans (true/false) - fixed by quoting
    • 🔴 Server freeze on biome restore: /xmas biome restore blocked main thread - command disabled with warning
    • Hardcoded entity names: All managers now use LanguageManager instead of hardcoded strings
  • Christmas Season 1.2.3

    release28 ноября 2025 г.

    Version 1.2.3 (2025-11-28)
    A comprehensive update for a complete, intelligent event reset without damaging natural terrain.

    🎁 New Features
    Full Entity & Loot Cleanup

    When resetting the event (/xmas off), all spawned event entities and items are now removed automatically:

    • 🎨 Decoration items (items with custom display name)
    • 🎁 Gift chests (chests named "Weihnachts-Geschenk")
    • 👤 Elves & helpers (tracked via the internal tracker system)
    • ⛄ Snowmen (tracked via ScoreboardTags)

    Details:

    • Cleanup now runs before stopFeatures(), so all trackers are still populated
    • Console log shows exactly how many entities/items were removed

    ⚡ Improvements
    Smarter Biome-Specific Reset

    Snow removal:

    • Snow is only removed in biomes that naturally do not have snow (e.g. PLAINS, FOREST, DESERT)
    • In natural snow biomes (SNOWY_PLAINS, SNOWY_TAIGA, GROVE, etc.) snow is preserved ✅
    • Improved logic: snow above water is now detected and removed as well (fixed break condition on fluids)

    Ice handling:

    • Ice is only turned back into water in biomes that naturally don’t have ice (e.g. PLAINS, FOREST)
    • In icy/cold biomes, ice is preserved ✅
    • Supported examples: FROZEN_OCEAN, FROZEN_RIVER, ICE_SPIKES, SNOWY_PLAINS, SNOWY_TAIGA, GROVE, JAGGED_PEAKS, etc.

    Technical improvements:

    • 🔧 Chunks are automatically loaded if they aren’t loaded during reset
    • 📊 Detailed debug output for easier troubleshooting
    • 🎯 Optimized order: Cleanup → StopFeatures → BiomeReset

    🐛 Bug Fixes
    Critical fixes:

    • 🔴 Elves & helpers were not removed reliably → fixed by running cleanup before stopFeatures()
    • 🔴 Ice in SNOWY_PLAINS was removed → isNaturallyIcyBiome() extended to include all relevant snowy biomes
    • 🔴 Snow above water stayed behind → loop logic corrected, break now only on solid blocks

    Additional fixes:

    • Ice is no longer left behind in non-icy biomes (e.g. PLAINS, FOREST)
    • Natural snow in snow biomes is now correctly preserved
    • Event entities and items are removed completely during reset
    • Biome reset now works correctly even with previously unloaded chunks

    Known issues

    • ⚠️ Currently, even manually placed regular ice (not packed or blue ice) in non-icy biomes will also be turned back into water during the reset. I’ll try to improve this behavior in a future update, but the logic to reliably distinguish natural from player-placed ice is quite complex.
  • Christmas Season 1.2.2

    release23 ноября 2025 г.

    Нет описания изменений

Совместимость

Minecraft: Java Edition

Платформы

Сведения

Лицензия:
Опубликован:6 месяцев назад
Обновлён:1 месяц назад
ID проекта:
Главная