
Christmas Season
Lightweight Christmas event plugin for Paper and Spigot 1.21 with biome snow, global snowstorms, decoration drops, gifts, elves and snowmen, controlled via the /xmas command, requires Java 21.
1.7K
3
Список изменений
[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 lifetimesGiftManager: Location scheduler for chest placement/removalSnowstormManager: Global scheduler for weather controlWichtelManager: Entity scheduler for mob managementSnowmanManager: Entity scheduler for snowman behaviorXmasCommand: Global scheduler for delayed operations
-
New Scheduler Helper
- Created
FoliaSchedulerHelperutility class - Platform-agnostic API for scheduling tasks
- Automatic platform detection (isFolia() method)
- Supports all scheduler types: Global, Region, Entity, Location, Async
- Created
-
Task Types Updated
- Replaced
BukkitTaskwithWrappedTask(FoliaLib wrapper) - Replaced
BukkitRunnablewith lambda expressions - All scheduler calls now go through FoliaSchedulerHelper
- Replaced
-
Performance Improvements
perTickBudgetincreased from 6 → 12 (2x faster biome updates)- Cache management optimized (processedChunks, knownSnapshotChunks)
- Chunk queue prevents processing duplicates
Fixed
-
CRITICAL: Multi-Platform Teleport Incompatibility
- Fixed
NoSuchMethodErroron Spigot (teleportAsync doesn't exist) - Fixed
UnsupportedOperationExceptionon Folia (must use teleportAsync) - Platform-dependent teleport:
teleportAsync()on Folia,teleport()on Spigot/Paper/Purpur - Wichtel can now teleport correctly on all platforms
- Fixed
-
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-apitopaper-api(1.21.3-R0.1-SNAPSHOT) - Added
FoliaLib0.4.3 (com.tcoded:FoliaLib) - Added tcoded-releases repository (https://repo.tcoded.com/releases)
- FoliaLib is shaded and relocated to avoid conflicts
- Updated from
-
Build Configuration
- Updated Maven Shade plugin to include FoliaLib
- Relocation:
com.tcoded.folialib→de.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: trueflag 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-2.0.0.jar(13.00 MiB)
ОсновнойМетаданные
Канал релиза
Release
Номер версии
2.0.0
Загрузчики
FoliaPaperPurpurSpigot
Версии игры
1.21–1.21.10
Загрузок
257
Дата публикации
2 мес. назад
