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

Auto-Shield Reborn

Auto-block with a shield in either hand, within a 180-degree arc, with server-set durability cost. Fabric + NeoForge, MC 26.x.

Загрузки
1K
Подписчики
1
Обновлён
5 августа 2026 г.
Лицензия
All-Rights-Reserved

Опубликован 11 июня 2026 г.

Auto-Shield Reborn

Hold a shield in either hand and you automatically block any hit a raised shield would normally block - no need to raise it. All blocking is server-authoritative, so it works on dedicated servers even for players who do not have the mod installed.

Why Auto-Shield Reborn

  • Block without raising. Melee, projectiles, and most direct damage from your front 180-degree arc (horizontal) are blocked automatically while a shield is in your main or off hand; hits from behind still land, and shield-bypassing damage (fire, fall, drowning, magic, starvation) passes through - exactly like a manually-raised shield.
  • Server-authoritative + fair. The per-hit shield durability cost is server-configurable (0-10, default 1; 0 = the shield never wears). Operators set it; everyone else sees it read-only.
  • Lightweight. Adds no blocks, items, or commands. Install it on a server for the behaviour; install it on clients too for the in-game config screen.

Usage

Hold a shield. Each automatic block plays the shield sound, swings your arm, and chips the shield by the configured cost. Open the config screen from ModMenu (Fabric) or the Config button on the mod-list entry (Forge / NeoForge); operators edit the durability cost and the server clamps, persists, and syncs it to everyone.

Ships as a Fabric, Forge, and NeoForge mod (client + server).

By Kishku7. All Rights Reserved. A from-scratch rewrite of agorasim20/autoshield (CC0-1.0).

Ченджлог

1.2.1+26.3Бета26.3-snapshot-7 · 5 августа 2026 г.

Fixed

  • LivingEntity.swing(InteractionHand, boolean) is GONE at 26.3-snapshot-7 -- a hard compile break in the auto-block mixin, which swings the shield hand as block feedback. Both the 1-arg and 2-arg overloads were removed; the only remaining form is swing(hand, SwingAnimation, sendToSwingingEntity). Now emitted per version by the codegen (compat.swing_anim, >= 26.3): 26.3+ passes the shield's own getInteractAnimation() -- a block is a use-path action, which is the animation vanilla threads through its own interact sites -- and every earlier cell keeps the plain 2-arg call. The sendToSwingingEntity flag stays true either way: this mixin runs server-side and the blocking player should see their own swing.

Changed

  • Fabric 26.3 cell moved to MC 26.3-snapshot-7 (from snapshot-6): fabric-api 0.156.1+26.3 -> 0.156.2+26.3, resource pack_format 94 -> 95 (bumped in _codegen/compat.py resource_format, the mod's single source for that value), exclusive window [26.3-alpha.6, 26.3-alpha.7) -> [26.3-alpha.7, 26.3-alpha.8). Every 26.3 snapshot bumps pack_format by one, so each jar stays snapshot-exclusive. ModMenu stays on 21.0.0-alpha.1 (still the 26.3-line major). No other cell changed.

Notes

  • The other snapshot-7 breaking surfaces do not touch ASR: the trailing Prediction argument on LivingEntity.drop(ItemStack, boolean) / Inventory.placeItemBackInInventory (ASR neither drops nor returns items), the client-side LocalPlayer.drop(boolean) return-type change, the InteractionResult.SwingSource CLIENT/SERVER -> PREDICTED/SERVER_ONLY rename (ASR uses only the plain InteractionResult constants), and the 32 new concrete slab/stair blocks plus the filled-map colour component removals.
1.2.0+26.3Бета26.3-snapshot-6 · 29 июля 2026 г.

Added

  • /asr commands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):
    • /asr or /asr durability -- show the current durability cost (anyone).
    • /asr durability <0-10> -- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did.
    • /asr reload -- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only its CommandDispatcher and an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric via CommandRegistrationCallback, and on NeoForge/Forge via RegisterCommandsEvent (both the EB6 and EB7 wiring).
  • ASRConfig.reload() backing /asr reload.

Fixed

  • All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a newer mojmap MC. The 26.1 row pinned 17.0.0-beta.1 -- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just the ModMenuApi / ConfigScreenFactory surface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.

Changed

  • Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).

Verified

  • Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
  • Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
  • Behavioural, on the Raider 26.3-snapshot-6 dedicated server: /asr reported cost 1, /asr durability 4 applied and echoed, /asr read back 4, /asr reload re-read 4, and the value was confirmed written to config/autoshield-reborn.json.

Known gap (unchanged from 1.1.3)

  • ASR still has no scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their own gradlew. Every other loader has a canonical build script.
1.2.0+26.2Релиз26.2 · 29 июля 2026 г.

Added

  • /asr commands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):
    • /asr or /asr durability -- show the current durability cost (anyone).
    • /asr durability <0-10> -- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did.
    • /asr reload -- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only its CommandDispatcher and an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric via CommandRegistrationCallback, and on NeoForge/Forge via RegisterCommandsEvent (both the EB6 and EB7 wiring).
  • ASRConfig.reload() backing /asr reload.

Fixed

  • All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a newer mojmap MC. The 26.1 row pinned 17.0.0-beta.1 -- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just the ModMenuApi / ConfigScreenFactory surface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.

Changed

  • Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).

Verified

  • Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
  • Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
  • Behavioural, on the Raider 26.3-snapshot-6 dedicated server: /asr reported cost 1, /asr durability 4 applied and echoed, /asr read back 4, /asr reload re-read 4, and the value was confirmed written to config/autoshield-reborn.json.

Known gap (unchanged from 1.1.3)

  • ASR still has no scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their own gradlew. Every other loader has a canonical build script.
1.2.0+26.2-neoforgeРелиз26.2 · 29 июля 2026 г.

Added

  • /asr commands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):
    • /asr or /asr durability -- show the current durability cost (anyone).
    • /asr durability <0-10> -- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did.
    • /asr reload -- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only its CommandDispatcher and an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric via CommandRegistrationCallback, and on NeoForge/Forge via RegisterCommandsEvent (both the EB6 and EB7 wiring).
  • ASRConfig.reload() backing /asr reload.

Fixed

  • All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a newer mojmap MC. The 26.1 row pinned 17.0.0-beta.1 -- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just the ModMenuApi / ConfigScreenFactory surface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.

Changed

  • Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).

Verified

  • Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
  • Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
  • Behavioural, on the Raider 26.3-snapshot-6 dedicated server: /asr reported cost 1, /asr durability 4 applied and echoed, /asr read back 4, /asr reload re-read 4, and the value was confirmed written to config/autoshield-reborn.json.

Known gap (unchanged from 1.1.3)

  • ASR still has no scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their own gradlew. Every other loader has a canonical build script.
1.2.0+26.1Релиз26.1, 26.1.1, 26.1.2 · 29 июля 2026 г.

Added

  • /asr commands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):
    • /asr or /asr durability -- show the current durability cost (anyone).
    • /asr durability <0-10> -- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did.
    • /asr reload -- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only its CommandDispatcher and an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric via CommandRegistrationCallback, and on NeoForge/Forge via RegisterCommandsEvent (both the EB6 and EB7 wiring).
  • ASRConfig.reload() backing /asr reload.

Fixed

  • All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a newer mojmap MC. The 26.1 row pinned 17.0.0-beta.1 -- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just the ModMenuApi / ConfigScreenFactory surface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.

Changed

  • Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).

Verified

  • Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
  • Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
  • Behavioural, on the Raider 26.3-snapshot-6 dedicated server: /asr reported cost 1, /asr durability 4 applied and echoed, /asr read back 4, /asr reload re-read 4, and the value was confirmed written to config/autoshield-reborn.json.

Known gap (unchanged from 1.1.3)

  • ASR still has no scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their own gradlew. Every other loader has a canonical build script.
1.2.0+26.1.2-neoforgeРелиз26.1, 26.1.1, 26.1.2 · 29 июля 2026 г.

Added

  • /asr commands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):
    • /asr or /asr durability -- show the current durability cost (anyone).
    • /asr durability <0-10> -- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did.
    • /asr reload -- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only its CommandDispatcher and an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric via CommandRegistrationCallback, and on NeoForge/Forge via RegisterCommandsEvent (both the EB6 and EB7 wiring).
  • ASRConfig.reload() backing /asr reload.

Fixed

  • All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a newer mojmap MC. The 26.1 row pinned 17.0.0-beta.1 -- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just the ModMenuApi / ConfigScreenFactory surface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.

Changed

  • Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).

Verified

  • Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
  • Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
  • Behavioural, on the Raider 26.3-snapshot-6 dedicated server: /asr reported cost 1, /asr durability 4 applied and echoed, /asr read back 4, /asr reload re-read 4, and the value was confirmed written to config/autoshield-reborn.json.

Known gap (unchanged from 1.1.3)

  • ASR still has no scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their own gradlew. Every other loader has a canonical build script.
1.2.0+1.21.9Релиз1.21.9 · 29 июля 2026 г.

Added

  • /asr commands -- ModMenu is now genuinely optional. Every setting the ModMenu config screen can reach is now reachable from a command, so ModMenu can be dropped at any time (and a vanilla client or the server console can drive it):
    • /asr or /asr durability -- show the current durability cost (anyone).
    • /asr durability <0-10> -- set it (op only). Persists to the config file and broadcasts the new value to every connected client, exactly like the screen did.
    • /asr reload -- re-read the config file from disk and re-sync (op only), so a hand-edited JSON can be applied without a restart. The tree lives in ONE loader-neutral class (command/ASRCommands.java, cog-emitted); each loader supplies only its CommandDispatcher and an S2C broadcast callback, since that part is genuinely loader-specific. Registered on Fabric via CommandRegistrationCallback, and on NeoForge/Forge via RegisterCommandsEvent (both the EB6 and EB7 wiring).
  • ASRConfig.reload() backing /asr reload.

Fixed

  • All three 26.x ModMenu pins were pointing at the wrong MC line. ModMenu ships a separate major per MC line, and an older major is INTERMEDIARY-named, so it cannot compile against a newer mojmap MC. The 26.1 row pinned 17.0.0-beta.1 -- which is the 1.21.11 line -- and that is what broke the 26.1 cell (cannot access class_437). 26.2 and 26.3 were both pinned to 26.1-era ModMenu and only compiled by luck, since ASR touches just the ModMenuApi / ConfigScreenFactory surface. Corrected to the real per-line versions: 26.1 -> 18.0.0, 26.2 -> 20.0.1, 26.3 -> 21.0.0-alpha.1. The Fabric 26.1 cell builds again.

Changed

  • Version 1.1.3 -> 1.2.0 (minor: new user-facing feature).

Verified

  • Fabric 26.1 / 26.2 / 26.3 and NeoForge 26.1 / 26.2 all build clean (0 javac warnings).
  • Forge validated on BOTH event-bus eras: 1.20.1 (EB6 + SimpleChannel) and 1.21.8 (EB7).
  • Behavioural, on the Raider 26.3-snapshot-6 dedicated server: /asr reported cost 1, /asr durability 4 applied and echoed, /asr read back 4, /asr reload re-read 4, and the value was confirmed written to config/autoshield-reborn.json.

Known gap (unchanged from 1.1.3)

  • ASR still has no scripts/build-forge.ps1; the Forge cells have to be driven cell-by-cell through their own gradlew. Every other loader has a canonical build script.
1.1.1+26.2-neoforgeРелиз26.2 · 28 июля 2026 г.

Added

  • scripts/build-neoforge.ps1 - Auto-Shield Reborn previously had no canonical NeoForge build script, so its NeoForge/26 cell had no reproducible build path and a bare gradlew build silently compiled a stale gitignored gen/ tree. The new script drives cog-gen then Gradle with per-26.X -P overrides and copies to dist/, matching the other mods.

Changed

  • NeoForge 26 cells rebuilt against the now-PUBLISHED NeoForge builds: 26.1 -> 26.1.2.87, 26.2 -> 26.2.0.35-beta (previously 26.2.0.25-beta, and the 26.1 NeoForge jar had no reproducible build at all). mavenLocal() removed from the cell.
  • No source or behaviour change. Server-boot smoketested on NeoForge 26.1.2 and 26.2.

Комментарии

Загружаем…