Unofficial site, not affiliated with modrinth.com.What is this?
Плагины/EliteMobs
Все версииEliteMobs 10.2.0

EliteMobs 10.2.0

Release1 мес. назад

Список изменений

EliteMobs 10.2.0:

  • [New] Anti-autoclicker throttle — players who land more than autoclickerThrottleMaxHitsPerSecond (default 5) genuine melee hits on elites within a one-second sliding window are locked out of dealing damage to elites for autoclickerThrottlePenaltySeconds (default 5) and warned in chat. Only ENTITY_ATTACK swings count, so sweep secondaries, thorns, and projectiles don't false-positive. Configurable via autoclickerThrottleEnabled, autoclickerThrottleMaxHitsPerSecond, autoclickerThrottlePenaltySeconds, and autoclickerThrottleMessage in MobCombatSettings.yml.
  • [New] Per-skill internal proc cooldowns — ProcSkill now exposes getInternalCooldownMillis() so burst-damage procs can't be spammed by autoclickers faster than their intended cadence. Devastating Blow uses a 1.5s internal cooldown as the first consumer.
  • [New] Notification throttler — currency pickups, "no XP" warnings, and quest-progression messages are now batched and flushed once after a quiet period instead of flooding chat. Tunable via the new notificationThrottleSeconds key in DefaultConfig (default 10s, minimum 1s). Currency action-bar feedback still updates live; only the chat summary is debounced.
  • [New] Elytra prevention in EliteMobs worlds — players are stopped from gliding inside any EliteMobs content world via EntityToggleGlideEvent, PlayerChangedWorldEvent, and a per-tick PlayerMoveEvent backstop (necessary because cancelling the toggle event no longer reliably stops gliding client-side on 1.21.6+). Per-package opt-out via the new allowElytra config field on ContentPackagesConfigFields.
  • [New] EMDungeonLocator API — registered with MagmaCore's LocationQueryRegistry and (when present) bridged into FreeMinecraftModels' LocationAPI under the "EliteMobs" key so cross-plugin scripts can ask "is this location inside EliteMobs content?" with an O(1) world-name lookup. Covers every WorldPackage subclass (open-world, instanced, dynamic, hub).
  • [New] Lua entity enricher — every Lua entity table now carries is_elite, is_custom_boss, is_significant_boss flags and an elite sub-table with level, name, health, max_health, health_multiplier, damage_multiplier, and a remove() method; when FreeMinecraftModels is present, is_modeled, is_prop, and a model sub-table (model_id, play_animation, stop_animations, remove, is_dynamic) are also exposed.
  • [New] Boss global cooldown store for Lua scripts — ScriptableBoss now exposes a per-EliteEntity cooldown map via getGlobalCooldownStore() so Lua-scripted bosses can share cooldown state across hooks and instances of the same boss.
  • [New] Arena quest scoreboard line — new arenaQuestScoreboardProgressionMessage key in Quests.yml and an $arenaName placeholder for arena objectives in CustomQuestMenu summary lines, both resolving the arena's display name from CustomArenasConfig with a filename fallback.
  • [New] hideEnchants config option — new key in ItemSettings.yml (default true). When set to false, vanilla enchantment lines are shown on EliteMobs items, setup-menu icons, constructed elite items, and scroll-converted items instead of being hidden by ItemFlag.HIDE_ENCHANTS. (Contributed by Jeric.)
  • [New] playersSayMessage config option for the Summon Merchant enchantment — when false, summoning the merchant no longer makes the player /chat the configured message (default true preserves prior behavior).
  • [Fix] Quarantined Paper 26.1+ world migration debris before loading dungeon worlds. When a previous Paper migration left both the legacy folder and the modern /dimensions/minecraft/ folder populated, Bukkit.createWorld would throw "Refusing to overwrite existing migrated file" and the dungeon world would never load. The legacy folder is now renamed aside as .paper-migration-backup- so Paper sees no legacy trigger and loads cleanly from the modern path.
  • [Fix] Routed all world filesystem access through MagmaCore's new WorldFolderResolver — isDownloaded checks, wormhole-world existence checks, instanced-world cleanup loops, blueprint-clone destination wiping, and unique-world-name picking all now look at both legacy and Paper-26.1+ modern layouts. No-op on Spigot and pre-26.1 Paper.
  • [Fix] Fixed The Palace Sanctum's dungeonObjectives default missing the "filename=" prefix — the entry was a bare "the_palace_old_stone_king_p1.yml" instead of "filename=the_palace_old_stone_king_p1.yml", causing DungeonObjective.registerObjective to return null, the null to be added to the dungeon's objective list, and /em quit to NPE inside ArrayList.forEach during instance teardown. Existing servers with the bad value already on disk are auto-corrected at load time.
  • [Fix] Fixed /em quit throwing NullPointerException when a dungeon has no objectives configured or has malformed objective entries — DungeonInstance now null-checks rawDungeonObjectives before iterating, logs a warning when registerObjective returns null instead of adding the null to the list, and the unregister forEach skips null entries defensively.
  • [Fix] Backward-compat for legacy dungeonObjectives entries — entries that end in ".yml" without a "filename=" prefix are now auto-treated as filename= entries instead of being silently dropped, so existing servers with the old (typo'd) format keep working.
  • [Fix] Wormhole line visuals are now torn down when no players are within the wormhole's nearby radius. Previously the line BlockDisplays stayed in the world while the wormhole was idle, and any event during the away period that re-instantiated the WormholeEntry (config reload, content pack install/uninstall, /em setup flow) would create a fresh in-memory line list while the old BlockDisplays remained — producing the "AG wormhole multiplying, only one animated, the rest frozen in place" symptom. Lines now rebuild cleanly on the next tick a player walks back into range.
  • [Fix] Fixed runaway "World is null in filterByElite/Player/Living" warnings that fired once per shape per tick when a script zone's shape center lost its world (typically a referenced entity getting despawned mid-tick). The ZoneListenerTask now detects the null-world state and cancels itself with a single warning naming the boss, instead of looping forever doing no work.
  • [Fix] Fixed quest-progression chat messages flooding when objectives update in rapid succession — they're routed through MessageThrottler keyed per objective, so concurrent quests don't clobber each other.
  • [Fix] Fixed currency-pickup chat messages spamming during loot showers — pickups are summed and emitted as a single chat line after the configured quiet period, while the action bar still ticks live.
  • [Fix] Fixed "no XP" level-difference warnings flooding chat when farming low-level mobs — repeated identical warnings now collapse to one message with a "(xN)" suffix, while the capped-XP variant still sends immediately.
  • [Fix] Fixed gliding desync in protected EM worlds on 1.21.6+ — added a PlayerMoveEvent backstop that re-asserts setGliding(false) every tick because cancelling EntityToggleGlideEvent does not reliably stop the client.
  • [Fix] Fixed dungeonLockoutMinutes config field not being written to disk on first generation — the processInt call now passes write=true so default values persist for editing.
  • [Fix] Fixed scripted-item application breaking when FMM was a different version than expected — replaced reflection-based ScriptedItemAPI invocation in ItemConstructor with a direct API call wrapped in NoClassDefFoundError handling, so missing classes degrade gracefully and successful applications skip reflection overhead.
  • [Fix] Fixed FreeMinecraftModels dungeon bridging being silently skipped on older FMM jars — the bootstrap now logs a clear warning when LocationAPI is missing (FMM < 2.5.0) so server owners know is_in_dungeon won't see EliteMobs dungeons.
  • [Tweak] Temporary block management moved out of EntityTracker into MagmaCore's TemporaryBlockManager so the state is shared across plugins; addTemporaryBlock/isTemporaryBlock/removeTemporaryBlock now delegate, world-unload cleanup is handled by MagmaCore, and the Lua spawn_temporary_block helper goes through TemporaryBlockManager directly with a single requireAir flag.
  • [Tweak] FreeMinecraftModels dependency upgraded to 2.5.0 to pick up LocationAPI and the new ScriptedItemAPI signature.
  • [Tweak] Removed the silent Math.max(damage, 1) floor on outgoing player-to-elite damage — the multiplier pipeline now respects the real input damage (so true-zero damage hits like sweep secondaries no longer get clamped up to 1) before damageModifier and combatMultiplier are applied.
  • [Tweak] Premade dungeon display names prefixed with "&2[Dynamic] &3" — Craftenmines Lab Sanctum, The Bridge Sanctum, The Cave Sanctum, The City Dungeon, The Climb Dungeon, The Deep Mines Dungeon, The Mines Dungeon, The Nether Bell Sanctum, The Nether Wastes Dungeon, The Palace Sanctum, and The Quarry Dungeon now self-identify as dynamic dungeons in setup menus.
  • [Tweak] ItemLootShower internal cleanup — dropped the playerCurrencyPickup HashMap, BukkitRunnable poller, sendCurrencyNotification, and sendAdventurersGuildNotification helpers in favor of MessageThrottler.pushCurrency, which now drives both the chat summary and the adventurer's guild action-bar.
  • [Tweak] Updated MagmaCore dependency to 2.2.0-SNAPSHOT for the new WorldFolderResolver utility.

Метаданные

Канал релиза

Release

Номер версии

10.2.0

Загрузчики

Paper
Purpur
Spigot

Версии игры

1.21–26.1.2

Загрузок

2.7K

Дата публикации

1 мес. назад

Загрузил

ID версии

Главная