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.

File Details

christmas-season-1.2.3.jar

  • R
  • Nov 28, 2025
  • 48.99 KB
  • 9
  • 1.21.10+10

File Name

christmas-season-1.2.3.jar

Supported Versions

  • 1.21.10
  • 1.21.9
  • 1.21.8
  • 1.21.7
  • 1.21.6
  • 1.21.5
  • 1.21.4
  • 1.21.3
  • 1.21.2
  • 1.21.1
  • 1.21

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.