Перейти к содержимому
Mineforgian

Easter Holidays

Transform your server into an Easter event with egg hunts, rare bunnies, stats, bosses, quests, and more.

Загрузки
418
Подписчики
4
Обновлён
17 июня 2026 г.
Лицензия
MIT

Опубликован 6 января 2026 г.

EasterHolidays

Transform your Minecraft server into an Easter wonderland with egg hunts, special mobs, epic boss battles, and tons of festive features!

🎨 Official EasterHolidays Resource Pack Available!

Enhanced Visuals with EggLauncher Resource Pack

  • Download: Modrinth - EggLauncher Pack
  • Custom models for all Easter Eggs (6 unique designs)
  • Animated Easter Egg Launcher (Osterblaster 3000)
  • Fully compatible with v1.2.4+
  • Use /easter pack in-game for more info

🎮 Core Features

Easter Egg Hunt

  • 3 egg rarities (Normal, Golden, Diamond) with custom loot tables
  • Eggs spawn dynamically around players on grass blocks
  • Configurable spawn rates and lifetimes
  • Resource Pack Ready: Pre-configured for custom egg models!

Special Easter Content

  • Rare glowing Easter Bunnies that give rewards when caught
  • Easter Boss with 4 unique attack patterns
  • Themed mobs: Easter Chicks and Rainbow Sheep
  • Carrot Gardens that spawn randomly
  • NEW: Easter Egg Launcher with magazine system & infinite ammo mode

Player Progression

  • SQLite database for persistent statistics
  • Leaderboards for competitive players
  • 15+ achievements to unlock
  • Daily quests with rewards
  • Collectible titles system
  • Personal Easter baskets

Fun Activities

  • Bunny Hop Challenge (timed jumping game)
  • Rainbow Trail effects for players
  • Easter Egg Launcher (shoots eggs with custom effects)
  • Bunny Hop Pads for super jumps
  • Special events: Egg Wave, Bunny Parade, Rainbow Trail

🌍 Multi-World Support (NEW in v1.2.4!)

Configure Easter features for multiple worlds simultaneously:

# Enable for specific worlds
easterWorlds:
  - "world"
  - "world_nether"
  - "creative"

# Or enable for ALL worlds
easterWorlds: "ALL"

⚙️ Technical Details

Compatibility

  • Minecraft: 1.21.x
  • Platforms: Paper, Folia, Purpur, Spigot, Bukkit
  • Java: 21 or newer
  • Multi-core: Full Folia support with async scheduling
  • FoliaLib: Updated to 0.4.4 (fixes task wrapping issues)

Integrations (all optional)

  • PlaceholderAPI: 11 placeholders for scoreboards/chat
  • BS CustomJukebox: Automatic Easter music
  • WorldGuard/GriefPrevention: Respects protected regions

📦 Quick Start

  1. Download EasterHolidays-1.2.4.jar
  2. (Optional) Get the Resource Pack
  3. Place JAR in your server's plugins/ folder
  4. Restart server
  5. Use /easter on to activate
  6. Plugin auto-configures for resource pack compatibility!

🎯 Commands & Permissions

Player Commands (easter.user)

  • /easter status - View current status
  • /easter stats - Check your statistics
  • /easter leaderboard - See top players
  • /easter trail - Toggle rainbow trail
  • /easter pack - Get resource pack info

Admin Commands (easter.admin)

  • /easter on/off - Enable/disable Easter mode
  • /easter reload - Reload configuration
  • /easter boss - Spawn Easter Boss
  • /easter event <type> - Start special events
  • /easter launcher [infinite] - Get launcher or toggle infinite ammo
  • /easter spawnegg [type] - Spawn eggs for testing

🎨 Resource Pack Configuration

The plugin comes pre-configured for the EggLauncher Resource Pack:

# Default configuration (works with resource pack)
easterEggs:
  itemMaterial: "STICK"  # Changed from EGG for pack compatibility
  customModelData:
    common: "4-5"      # egg1, egg2 models
    rare: "2-3"        # egg3, egg4 models
    legendary: "6-7"   # egg5, egg6 models

easterEggLauncher:
  itemMaterial: "STICK"
  customModelData: 1   # osterblaster_3000 model

📊 Privacy & Performance

  • Metrics: Uses bStats #30349 for anonymous statistics (can be disabled)
  • Updates: Checks Modrinth for new versions (can be disabled)
  • Performance: Optimized with connection pooling and async operations
  • Database: SQLite with HikariCP connection pooling

🌍 Languages

Fully translated in English and German (/plugins/EasterHolidays/messages_en.yml)

📜 License

MIT - Free to use and modify!

🆕 What's New in v1.2.4

  • 🌍 Full multi-world support
  • 🎨 Resource pack integration with EggLauncher Pack
  • 🔫 /easter launcher infinite command for admins
  • 🥚 /easter spawnegg for testing custom models
  • 🐛 Fixed FoliaLib task wrapping exception
  • 📦 Changed default item from EGG to STICK for pack compatibility

Perfect for Easter events, family-friendly servers, or adding seasonal content to your world!

Ченджлог

1.3.6Релиз1.21.9, 1.21.10, 1.21.11 · 17 июня 2026 г.

[1.3.6] - 2026-06-17

Bug Fixes

Region / Land Protection

  • Block-Changing Features Now Respect Any Protection Plugin (Dominion, Towny, Lands, GriefDefender, ...): Carrot gardens and bunny hop pads modified the world via direct setType() calls, which fire no Bukkit event — so protection plugins never saw them. Only WorldGuard and GriefPrevention were checked, via plugin-specific reflection, meaning claims from any other protection plugin (e.g. Dominion) were silently ignored (reported case: an Easter Bunny turning protected stone into farmland). Block placement now runs through a new generic RegionIntegration.canPlace(...) check that fires a synthetic BlockPlaceEvent and honors its cancellation. Because virtually every land-protection plugin listens to that event, all of them are now respected at once — without adding any of them as a dependency.
  • Bunny Hop Pads Had No Protection Check At All: spawnHopPad() placed its block without ever consulting RegionIntegration. It now performs the generic protection check before placing.
  • Carrot Gardens Check Per Block: Protection is now evaluated for each block of the garden, so a claim covering only part of the spawn area is handled correctly instead of all-or-nothing.
1.3.5Релиз1.21.9, 1.21.10, 1.21.11 · 3 июня 2026 г.

[1.3.5] - 2026-06-03

Bug Fixes

Daily Quests

  • Fixed Quest Progress Not Persisting (Reward Duplication): Daily quest progress was kept only in memory and lost on restart. The empty shutdown block has been replaced with real persistence to dailyquests.yml. On load, only entries dated today are restored, which prevents re-claiming rewards after a restart and stops the in-memory map from growing unbounded over time.
  • Fixed Quests Not Reloading: /easter reload now reloads quest definitions from config (DailyQuestManager.reload() was never called).

Themed Mobs

  • Fixed Particle Timer Leak (Easter Chick & Rainbow Sheep): The repeating particle/color timers were never cancelled when the entity died. On Paper/Spigot (where entity tasks are not auto-retired) this leaked a repeating task per spawned mob. Timers now cancel themselves on death, and cleanup() cancels any remaining sheep timers.

Update Checker

  • Added Server-Compatibility Filter: The checker no longer reports updates that are incompatible with the running server. The Modrinth query now filters by the server's Minecraft version (game_versions) and a Bukkit-family loader (loaders).
  • Pick Highest Version Instead of Newest-Published: Selects the highest version_number across all compatible versions instead of just the first array element.
  • Fixed Resource Leak: BufferedReader is now closed via try-with-resources and the HttpURLConnection is disconnected in a finally block.

Shutdown & Thread-Safety

  • Removed Blocking Sleep on Main Thread: AchievementManager.close() no longer calls Thread.sleep(1000); the existing latch already guarantees all async saves complete.
  • Fixed Non-Thread-Safe Map: TimedEventManager.activeEvents is now a ConcurrentHashMap (accessed from both scheduler and main thread).

Misc

  • Cleanup Log Accuracy: EasterEggLauncherManager.cleanup() reported the count after clearing (always "0"); it now reports the actual number.

Improvements

  • Language Files Are Now Merged, Not Overwritten: messages_de.yml / messages_en.yml previously overwrote admin customizations on every start. They are now merged: existing values are kept and only missing keys are added from the JAR defaults.
  • Removed Dead Code & Stray File: Removed the unused saveResourceIfAbsent() helper and a stray Windows reserved-name nul file from the repository root.
1.3.4Релиз1.21.9, 1.21.10, 1.21.11 · 10 мая 2026 г.

[1.3.4] - 2026-05-10

Bug Fixes

Folia Compatibility

  • Fixed Folia Cleanup Thread-Safety: All cleanup methods (/easter cleanup, /easter off, plugin shutdown) now use scheduler.runForEntity() / scheduler.runAtLocation() instead of accessing entities directly from the command thread. Fixes IllegalStateException on Folia servers.
    • EasterEggManager, EasterBunnyManager, ThemedMobManager - Entity access via entity scheduler
    • EasterBossManager - Changed runAtLocation to runForEntity for entity removal
    • CarrotGardenManager, BunnyHopPadManager - Block operations via location scheduler
    • BunnyHopChallengeManager - Player potion effects via entity scheduler
  • Fixed Folia Scoreboard Crash: initializeDamageScoreboard() in EasterBossManager threw UnsupportedOperationException on Folia. Scoreboard API is now wrapped in try-catch and gracefully disabled on Folia servers.
  • Fixed Folia Scoreboard Reset Crash: handleBossDeath() and spawnBoss() scoreboard operations now wrapped for Folia compatibility.

Easter Boss

  • Fixed BossBar NPE & Duplicate Update: Removed duplicate setProgress() call without null-check in startBossAI() that caused NPE when BossBar was disabled.
  • Fixed BossBar Cleanup NPE: Added null-check before bossBar.removeAll() in cleanup.
  • Fixed Damage Sidebar Persisting After /easter killboss and /easter off: cleanup() did not reset player scoreboards - only handleBossDeath() (natural death) did. Sidebar now properly removed on all cleanup paths.
  • Added Missing BossBar Config: Added easterBoss.bossBar section (enabled, color, style, range) to default config - values were used in code but never exposed in config.yml.

Easter Egg Cleanup

  • Fixed Eggs Not Being Removed on /easter off: Cleanup checked item.getCustomName() (entity name) but Easter Eggs only have a display name on the ItemStack, not on the entity. Now correctly checks item.getItemStack().getItemMeta().getDisplayName().
  • Fixed Language-Dependent Cleanup: Cleanup only matched English name "Easter Egg" but not German "Osterei". Now checks both languages plus the active language file dynamically.

Bunny Hop Pads

  • Fixed Placement: Hop pad now spawns on top of the block the player is looking at (target block + 1) instead of replacing a block or spawning at the player's feet. Checks for free space above target block.
  • Fixed Invalid Block Type: Changed default blockType from LIGHT_BLUE_SLAB (does not exist) to LIGHT_BLUE_CONCRETE.
  • Fixed Extreme Boost Power: Changed default boostPower from 50.0 to 3.0 (reasonable value).

Commands & Events

  • Fixed Event "parade" Not Recognized: Added "parade" as alias for "bunny-parade" in command handler and tab-completion.

Improvements

Easter Title GUI

  • Improved Locked Title Display: Locked titles now show the title name (grayed out), the unlock requirement, and a visual progress bar instead of just "??? Locked".
  • Added Progress Tracking: Each locked title shows current progress (e.g., |||||||||| 12/25) based on the player's egg/bunny stats.
1.3.3Релиз1.21.9, 1.21.10, 1.21.11 · 29 апреля 2026 г.

[1.3.3] - 2026-04-29

Bug Fixes

  • Fixed Folia Scheduler Crash: EasterBasketManager used the Bukkit Scheduler (runTaskTimerAsynchronously, runTaskAsynchronously) which throws UnsupportedOperationException on Folia. Replaced with FoliaSchedulerHelper for full Folia compatibility.
1.3.2Релиз1.21.9, 1.21.10, 1.21.11 · 22 апреля 2026 г.

[1.3.2] - 2026-04-22

New Features

In-Game Loot Table Management

  • New Admin Command: /easter drops - Manage loot tables and egg type chances without editing config files
    • Supports tiers: common, rare, legendary, boss (Easter Boss loot)
    • /easter drops list <tier> - View all items in a loot table
    • /easter drops add <tier> <MATERIAL:amount> - Add items to a loot table
    • /easter drops remove <tier> <index> - Remove items by index number
    • /easter drops chance - View current egg type spawn chances
    • /easter drops chance <type> <percent> - Set spawn chance for normal/golden/diamond/ eggs
    • Permission: easter.admin.drops
    • Changes are saved to config.yml immediately (no restart required)
    • Full tab-completion for all sub-commands and arguments

Configurable Egg Type Chances

  • Egg type spawn chances are now configurable via config.yml instead of hardcoded
    • easterEggs.typeChances.normal (default: 94%)
    • easterEggs.typeChances.golden (default: 5%)
    • easterEggs.typeChances.diamond (default: 1%)
    • Warning when total doesn't add up to 100%
1.3.1Релиз1.21.9, 1.21.10, 1.21.11 · 21 апреля 2026 г.

[1.3.1] - 2026-04-21

New Features

Give Loot Command

  • New Admin Command: /easter giveloot <player> <tier> - Give loot rewards to players via command
    • Supports tiers: common, rare, legendary, boss
    • Uses the configured loot tables from config.yml
    • Gives a random item from the selected tier
    • Alias: /easter loot
    • Permission: easter.admin.giveloot
    • Full tab-completion for player names and tiers
    • Multi-language support (EN/DE)

Bug Fixes

Easter Boss & Region Protection

  • Fixed Boss Invincibility Exploit in GriefPrevention Claims: Players could claim the land where the Easter Boss spawned, making it invincible to anyone except the claim owner
    • Added HIGHEST priority event handler that bypasses region protection for Easter Boss damage
    • All players can now damage the Easter Boss regardless of claim ownership
    • Prevents the exploit where players claim land under the boss to grief other players

Title System

  • Fixed Race Condition on Player Load: Title data is now initialized synchronously before async database load, preventing data loss when players interact with the title GUI immediately after joining
  • Fixed Single Title Unlock Bug: updateTitle() now unlocks ALL titles a player qualifies for, not just the highest one. Previously, a player with 500 eggs would only get "Epic Egg Hunter" but not the lower-tier titles
  • Fixed Thread Safety Issues: TitleData.selectedTitle is now volatile, and unlockedTitles uses a thread-safe ConcurrentHashMap.newKeySet() instead of a regular HashSet
  • Fixed Potential NullPointerExceptions: Added null checks for ItemMeta in title GUI creation (both title items and clear button)
  • Fixed Fragile GUI Lock Detection: Title GUI now checks Material.GRAY_DYE instead of checking display name for "Locked" text, which failed with non-English languages
  • Fixed Shutdown Data Loss Risk: Replaced Thread.sleep(2000) with CompletableFuture.allOf().get(5s) to properly wait for all async save operations to complete

Command System

  • Added /easter title select none and /easter title select clear: Players can now remove their title via command instead of only through the GUI

Database Repair

  • Added titles.db to /easter dbrepair: Title database is now included in all repair operations (check, fix, backup) alongside statistics and baskets

Improvements

  • Invalid Title Logging: parseTitles() now logs a warning when encountering unknown title entries in the database instead of silently skipping them
1.3.0Релиз1.21.9, 1.21.10, 1.21.11 · 6 апреля 2026 г.

[1.3.0] - 2026-04-06

🐛 Bug Fixes

Command System

  • Tab-Completion: Added missing commands to auto-complete
    • Added aliases: lb, top for leaderboard
    • Added aliases: repairdb for dbrepair
    • Added aliases: jukebox for music
    • Added resource pack commands: pack, resourcepack, texturepack
    • All commands now properly appear in tab-completion

Leaderboard System

  • Fixed "Unknown User" Bug: Players in leaderboard now show correct names
    • Automatically resolves player names using Bukkit OfflinePlayer API
    • Updates database with resolved names to prevent future issues
    • Handles old database entries with missing or invalid names
    • Improved name resolution for offline players

Easter Basket System

  • Fixed Item Loss Bug: Items no longer disappear from baskets
    • Added backup mechanism during save operations
    • Improved transaction handling with proper rollback on errors
    • Added auto-save every 5 minutes for modified baskets
    • Asynchronous saving to prevent main thread blocking
    • Better error handling and recovery
    • Fixed race conditions during inventory close events

🔧 Improvements

  • Database Operations: More robust error handling and logging
  • Performance: Asynchronous basket saving reduces server lag

📖 Documentation

  • Updated plugin.yml: Complete command documentation with all aliases
  • Improved help text: Added all command variations and options
1.2.9Релиз1.21.9, 1.21.10, 1.21.11 · 5 апреля 2026 г.

[1.2.9] - 2026-04-05

✨ New Features

Boss Damage Tracking System

  • Live Damage Scoreboard: Shows top 5 damage dealers during boss fights
    • Real-time updates with damage values and percentages
    • Automatically displayed to players within 50-block radius
    • Clean, color-coded display on the sidebar
    • "Waiting for combat..." message before first damage
    • Configurable via easterBoss.damageTracking.scoreboard
  • Post-Battle Damage Report: Detailed chat report when boss is defeated
    • Complete damage breakdown for all participants
    • Percentage-based damage distribution
    • Top 10 damage dealers displayed with rankings (configurable)
    • Medal system (⭐ Gold/Silver/Bronze) for top 3 players
  • MVP System: Special recognition for the highest damage dealer
    • MVP announcement broadcast to all players
    • Special title animation and sound effects for MVP
    • Unique rewards for top damage dealer
    • Fully configurable (broadcast, animation, sounds)
  • Multi-Language Support: Full EN/DE translations for all damage tracking features

Boss Sound Configuration

  • Customizable Sound Settings: All boss sounds are now configurable
    • Spawn sound (volume, pitch, enable/disable)
    • Death sound (volume, pitch, enable/disable)
    • Attack sounds (volume, pitch, enable/disable)
  • Volume Control: Set volume from 0.0 to 2.0 for each sound type
  • New config section: easterBoss.sounds
    sounds:
      spawn:
        enabled: true
        volume: 2.0  # 0.0-2.0
        pitch: 0.5   # 0.0-2.0
    

🔧 Improvements

Configuration System

  • Enhanced ConfigMigrator: Now correctly compares full version numbers (1.2.8 vs 1.2.9)
  • Automatic Config Updates: New settings are added without losing existing configuration
  • Better Migration Detection: Explicitly checks for all new config sections
  • Improved Logging: Shows exactly which config options were added during migration

Damage Tracking Accuracy

  • Overkill Protection: Damage is correctly capped at boss's remaining health
  • Environmental Damage Tracking: Fire, fall damage, etc. now properly tracked
  • TNT Damage Attribution: TNT damage is now credited to the player who placed it
  • Event Priority Fix: Uses MONITOR priority for accurate final damage values

Scoreboard Display

  • Immediate Display: Scoreboard shows instantly when boss spawns
  • Better Player Detection: Improved range detection for showing/hiding scoreboard
  • Consistent Updates: Fixed timing issues with scoreboard updates
  • Automatic Cleanup: Scoreboard properly removed when players leave range

🐛 Bug Fixes

  • Fixed ConfigMigrator not detecting version changes properly

📝 Technical Changes

  • Added value clamping for all sound volumes (0.0-2.0 range)
  • Improved debug logging for sound settings and damage tracking
  • Better thread safety for damage tracking maps
  • Optimized scoreboard update frequency (configurable)

Комментарии

Загружаем…