promotional bannermobile promotional banner

evilcursefix

Defensive crash and recursion fixes for the CLOSING SONG EZHOU 1.3.1+ modpack.
Back to Files

evilcursefix-1.5.3.jar

File nameevilcursefix-1.5.3.jar
Uploader
yuuka0desuyuuka0desu
Uploaded
Sep 5, 2026
Downloads
13
Size
85.4 KB
Mod Loaders
Forge
File ID
8814076
Type
R
Release
Supported game versions
  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:evilcursefix-1682959:8814076")

Learn more about Curse Maven

What's new

## 1.5.3
- **Performance**: cached the reflective `Method` handles in `FCAEffectSyncGuardMixin`
  and `GoetyWandStatsCompatMixin` (they previously ran `Class.getMethod` on every damage
  event — a hot-path cost added by our own guards).
- **Diagnostics**: added `DamagePerfProbeMixin` — times every `ForgeHooks.onLivingHurt`
  dispatch, prints per-30 s stats (count / avg / max / ≥10 ms slow count) and dumps the
  thread stack for any single event slower than 25 ms (60 s cooldown).

## 1.5.2
- Fixed `NoSuchMethodError` in Touhou Little Maid Spell (万法皆通) calling the removed
  Goety 2.5.35.x signature `WandUtil.getStats(LivingEntity, ISpell)` — reflective
  overload detection with cached fallback (`GoetyWandStatsCompatMixin`).

## 1.5.1
- Fixed NPE in Goety `Owned.isAlliedTo(Entity)` when a servant's revenge target died
  and `HurtByTargetGoal` passed a null target (`GoetyOwnedNullTargetGuardMixin`).

## 1.5.0
- **Merged the standalone `npefix` mod**:
  - `EzfixAttributeMapNullGuardMixin` — null-tolerant AttributeMap accessors when the
    attribute supplier was never registered (generic NPE class).
  - `EzfixGuiNullPlayerGuardMixin`, `EzfixLightTextureNullGuardMixin` — skip HUD/light
    rendering while the local player is missing (client).
- **Merged the standalone `anti_overflow` mod**:
  - `EzfixArmorPiercingGuardMixin` — time_slow (GuardianMod) armor-piercing re-hurt guard.
  - `EzfixSlashRecursionGuardMixin` — SlashBlade `AttackManager.doSlash` recursion guard.
  - `EzfixHighfrequencyRecursionGuardMixin` (+ `Star` variant) — YakumoBlade
    `Highfrequency.onDoingSlash` recursion guard for both package layouts
    (`registry.specialeffects` and `specialeffects.starSE`).
  - `EzfixMixinPlugin` — conditionally enables the optional slash guards by class
    presence. (The duplicated EventBus logger fix was not merged; ezfix 1.2.0 already
    covers it.)
- **Regression fix (1.4.11)**: replaced the `ConcurrentHashMap.computeIfAbsent`
  implementation in the curios TagKey cache with a lock-free get / create-outside /
  `putIfAbsent` pattern — the old version could spin-lock the render thread when the
  mapping function re-entered the same bin.

## 1.4.11
- **Performance**: added `CuriosTagKeyCacheMixin` — caches curios slot `TagKey`s
  (previously every `testCurioPredicates` call created a new `ResourceLocation` and
  interned a new TagKey, hammering Guava's weak intern table and stalling the render
  thread at 1–2 FPS).
- **Diagnostics**: the watchdog now logs through log4j (`ezfix-monitor` logger) so its
  output reliably lands in `latest.log`.

## 1.4.10
- Fixed invalid `@Redirect` factory signature in `TravelopticsNightwardenRingMixin`
  (Mixin requires the target type, not `Object`, as return type for constructor
  redirects). Restored `CompatRingData` return type; construction stays reflective
  and fail-safe.

## 1.4.9
- Added the independent watchdog thread (`EzfixMonitor` + server/render heartbeat
  mixins): 60 s status summaries, 30 s stall detection with automatic full thread-stack
  dumps — turns "game not responding" reports into actionable stack traces.

## 1.4.8
- Spudiversity audit follow-up — added 4 more reflective-damage recursion guards:
  Blood Fox Potato, Auspicious Potato, Build Potato, BlazeEnd effect.

## 1.4.7
- Added `SpudiversityInvisibleWaitingGuardMixin` — breaks the InvisibleWaiting
  self-reflect loop (combined with the tcc guard this fully stops the
  TargetDummy/EnderMan three-way reflect cycle).

## 1.4.6
- Added `FCAEffectSyncGuardMixin` — swallows the `ConcurrentModificationException`
  thrown inside `AttributeMap.setAttributesUpdating` when flame_chase_artifacts syncs
  potion effects during Apotheosis' charm tick (both `m_141973_` overloads).

## 1.4.5
- Cross-version hardening via reflection (fixes crashes on the 1.0.x modpack):
  - `VirtualWitchLearnSpellMixin` — no direct reference to ISS network classes
    (`LearnSpellPacket` absent in ISS 3.4.x); packet class and sender probed by name;
    fields read reflectively.
  - `TravelopticsRapidLaserMixin` — constructor probed: Cataclysm 3.31 8-arg first,
    legacy 6-double fallback.
  - `TravelopticsNightwardenRingMixin` — reflective construction, `Object` return
    (later corrected in 1.4.10).

## 1.4.4
- Added `TravelopticsNightwardenRingMixin` — adapts the 10-arg legacy
  `CompatRingData` constructor call (after cataclysm-to-magic-fix coremod rewrite) to
  the current 9-arg constructor (drops the obsolete size argument).

## 1.4.3
- Added `RankHandlerRecursionGuardMixin` for the 1.0.x modpack's old
  slashblade_useful_addon (1.1.x) `OnHurtEntity` re-hurt loop (harmless on 1.2.5+).

## 1.4.2
- Fixed `IllegalClassLoadError: ... is in a defined mixin package` startup crash —
  moved the shared guard helper (`EzfixRecursionGuard`) out of the mixin package into
  `com.example.ezfix.util`.

## 1.4.1
- Fixed a startup crash introduced by 1.4.0: the laser constructor `@Redirect` could
  fail its injection check on player instances (signature mismatch), and
  `defaultRequire: 1` promoted it to a fatal `MixinTransformerError`.
  - Reworked `TravelopticsRapidLaserMixin` to a HEAD `@Inject` method rewrite.
  - Globally lowered `defaultRequire` to **0**: any unmatched injection point is now
    skipped with a WARN instead of crashing the launch.

## 1.4.0
- Batch fixes from historical reports:
  - `gunsmithlib_std_ammo` merchant spawner `nextInt(0)` bound clamp.
  - traveloptics rapid-laser legacy Cataclysm constructor adaptation.
  - traveloptics sandstorm projectile client-particle reference on server.
  - SlashBlade `EntityDrive` knockback-enum NPE on dimension change.
  - Goety robe fire-reflect recursion guard.
  - tcc MetaMorph ↔ applyImaginaryDamage recursion guard (shared ThreadLocal).
  *(Superseded by 1.4.1/1.4.2; listed for completeness.)*

## 1.3.0
- Fixed Apotheosis loot-conversion crash: `Failed to locate any affixes for
  <curios:heart item>` — keep the original drop when the affix pool is empty
  (`ApotheosisEmptyAffixMixin`).

## 1.2.0
- Four historical crash-report fixes:
  - Virtual Witch Arrangement learn-spell packet → modern `LearnSpellPacket`.
  - Fallen Gems & Affixes spell-cast `LinkageError` guard.
  - Peyro's Scythe sinfire duplicate attribute-modifier guard.

## 1.1.0
- Fixed Goetic Legacy × Sophisticated Core container-close infinite recursion
  (per-player re-entrancy guard around blueprint sync).

## 1.0.0
- Initial release:
  - EventBus `handleException` log4j `MessageSupplier` LinkageError fix (the core
    fatal crash).
  - Null-guards for vanilla / Goety / yamazakura / add_potion villager trades.
  - Apotheosis socketing recipe `List.set` out-of-bounds guard.

This mod has no additional files