
⚔️ Spartan Weaponry Unofficial (NeoForge)
An unofficial community port of Spartan Weaponry for Minecraft 1.21.1.
Since the original author (ObliviousSp) has been inactive for over six months, this project adapts the original code to NeoForge 1.21.1, allowing players to enjoy the vast Spartan arsenal in the latest version.
✨ Features
- Massive Arsenal: Adds a wide variety of weapons including polearms, blunt weapons, heavy swords, and ranged options (Longbows, Crossbows, Throwing Knives).
- Unique Mechanics: Weapons feature custom attributes like Armor Piercing, Sweep attacks, and varied attack speeds.
- Material Support: Full compatibility with vanilla materials and common modded ores (Copper, Tin, Bronze, Steel, etc.).
- Modernized: Specifically rebuilt for the NeoForge ecosystem on 1.21.1.
🛠️ Requirements & Compat
- Platform: NeoForge 1.21.1
- Recommended Mods: * Curios API (For Quiver slots)
- JEI / EMI (To view recipes)
📜 Credits & License
- Original Author: ObliviousSp
- Ported by: Mai_xiyu & Claude AI
- License: Apache-2.0
⚠️ Note: This is an unofficial fork. Please report bugs here on the project page, NOT to the original author's page.
All Versions
+ Add VersionCommits from 1.21.1-1.2.2 to 1.21.1-1.2.3:
- Prepare 1.2.3 release (52b45ec)
- Fix weapon compatibility and spawn random safety (921af03)
- Remove duplicate projectile localization keys (875c252)
- Merge pull request #39 from king146464646/1.21.1 (785aa5a)
- Merge pull request #43 from XM666-Dev/1.21.1-FIX (a0d59c7)
- 删除冗余的代码以修复issues/35中副手物品意外阻挡主手投掷武器使用的问题 (1f4cc31)
- Complete, Fix errors and Improve Chinese translations and Add missing entries (44ccc33)
- Complete the missing English entries (05786b4)
- Merge pull request #34 from XM666-Dev/1.21.1-FIX (bed8789)
- Keep model fixes in data generation (3169aaf)
- 通过改进方法调用来修复和AliveCombat一起使用时投掷武器模型在第三人称下闪烁 修复两种短手柄的持棍动画 修复两种拳套损坏后爆出紫黑粒子 (0f7cd0a)
Commits from 1.21.1-1.2.1 to 1.21.1-1.2.2:
- Release 1.2.2 (0994056)
- Fix projectile and ranged weapon regressions (55cb0ec)
- Merge pull request #27 from MrMikeForDev/patch-2 (b7fe285)
- Update zh_cn.json (56c2da1)
- Update zh_cn.json (13d0779)
- Update Chinese Translation for Unofficial fork (4edc558)
- Merge pull request #26 from Syntax3rr/1.21.1 (1012b13)
- Format HeavyCrossbowItem multishot fix (fbe42ec)
- Fix multishot on Heavy Crossbows (05a78fc)
Commits from 1.21.1-1.2.0 to 1.21.1-1.2.1:
- Prepare Spartan Weaponry 1.2.1 release (63efa57)
- Bump API version to 15 for new accessors (d5b4f4b)
- Fix never-loaded mixins and major gameplay bugs, polish API (1fe0ce9)
- Allow manual release republish (128d108)
- Fix release publishing workflow (eb3c47e)
Commits from 1.21.1-1.1.2 to 1.21.1-1.2.0:
- Release Spartan Weaponry 1.2.0 fixes (3ca751e)
- Fix constantan weapon trait tag (81c1f21)
- Fix throwable melee weapon pickup (73cfa82)
- Refresh project documentation (3ad17d4)
- Fix throwing weapon survival pickup (ae48ff5)
- Extract weapon runtime helpers (88445e3)
- Run formatter on Java 21 (b2a716d)
- Normalize Java formatting and item group views (f1fdd43)
- Improve weapon maintenance structure (7610c3c)
## [1.0.7] - 2026-03-17
### Fixed
- Dimension Portal Crash**: Fixed
IllegalStateException: Cannot encode empty ItemStackcrash when any projectile entity (arrows, throwing weapons, bolts) enters a dimension portal (Nether, End, Aether, etc.). Root cause:AbstractArrow.addAdditionalSaveData()would callsave()on an empty pickup ItemStack during dimension transitions. - 维度传送门崩溃**: 修复了任何投射物实体(箭矢、投掷武器、弩箭)进入维度传送门(下界、末地、天境等)时
IllegalStateException: Cannot encode empty ItemStack崩溃。根本原因:AbstractArrow.addAdditionalSaveData()在维度转换时对空的 pickup ItemStack 调用save()。 - Bolt Persistence**: Fixed bolts losing their type (copper, diamond, netherite, etc.) after chunk unload/reload —
DATA_BOLTwas never saved to or loaded from NBT. - 弩箭持久化**: 修复了弩箭在区块卸载/重载后丢失类型(铜、钻石、下界合金等)的问题 —
DATA_BOLT从未写入/读取 NBT。
## [1.0.7] - 2026-03-17
### Fixed
- Dimension Portal Crash**: Fixed
IllegalStateException: Cannot encode empty ItemStackcrash when any projectile entity (arrows, throwing weapons, bolts) enters a dimension portal (Nether, End, Aether, etc.). Root cause:AbstractArrow.addAdditionalSaveData()would callsave()on an empty pickup ItemStack during dimension transitions. - 维度传送门崩溃**: 修复了任何投射物实体(箭矢、投掷武器、弩箭)进入维度传送门(下界、末地、天境等)时
IllegalStateException: Cannot encode empty ItemStack崩溃。根本原因:AbstractArrow.addAdditionalSaveData()在维度转换时对空的 pickup ItemStack 调用save()。 - Bolt Persistence**: Fixed bolts losing their type (copper, diamond, netherite, etc.) after chunk unload/reload —
DATA_BOLTwas never saved to or loaded from NBT. - 弩箭持久化**: 修复了弩箭在区块卸载/重载后丢失类型(铜、钻石、下界合金等)的问题 —
DATA_BOLT从未写入/读取 NBT。
## [1.0.7] - 2026-03-17
### Fixed
- Dimension Portal Crash**: Fixed
IllegalStateException: Cannot encode empty ItemStackcrash when any projectile entity (arrows, throwing weapons, bolts) enters a dimension portal (Nether, End, Aether, etc.). Root cause:AbstractArrow.addAdditionalSaveData()would callsave()on an empty pickup ItemStack during dimension transitions. - 维度传送门崩溃**: 修复了任何投射物实体(箭矢、投掷武器、弩箭)进入维度传送门(下界、末地、天境等)时
IllegalStateException: Cannot encode empty ItemStack崩溃。根本原因:AbstractArrow.addAdditionalSaveData()在维度转换时对空的 pickup ItemStack 调用save()。 - Bolt Persistence**: Fixed bolts losing their type (copper, diamond, netherite, etc.) after chunk unload/reload —
DATA_BOLTwas never saved to or loaded from NBT. - 弩箭持久化**: 修复了弩箭在区块卸载/重载后丢失类型(铜、钻石、下界合金等)的问题 —
DATA_BOLT从未写入/读取 NBT。
## [1.0.7] - 2026-03-17
### Fixed
- Dimension Portal Crash**: Fixed
IllegalStateException: Cannot encode empty ItemStackcrash when any projectile entity (arrows, throwing weapons, bolts) enters a dimension portal (Nether, End, Aether, etc.). Root cause:AbstractArrow.addAdditionalSaveData()would callsave()on an empty pickup ItemStack during dimension transitions. - 维度传送门崩溃**: 修复了任何投射物实体(箭矢、投掷武器、弩箭)进入维度传送门(下界、末地、天境等)时
IllegalStateException: Cannot encode empty ItemStack崩溃。根本原因:AbstractArrow.addAdditionalSaveData()在维度转换时对空的 pickup ItemStack 调用save()。 - Bolt Persistence**: Fixed bolts losing their type (copper, diamond, netherite, etc.) after chunk unload/reload —
DATA_BOLTwas never saved to or loaded from NBT. - 弩箭持久化**: 修复了弩箭在区块卸载/重载后丢失类型(铜、钻石、下界合金等)的问题 —
DATA_BOLT从未写入/读取 NBT。
## [1.0.7] - 2026-03-17
### Fixed
- Dimension Portal Crash**: Fixed
IllegalStateException: Cannot encode empty ItemStackcrash when any projectile entity (arrows, throwing weapons, bolts) enters a dimension portal (Nether, End, Aether, etc.). Root cause:AbstractArrow.addAdditionalSaveData()would callsave()on an empty pickup ItemStack during dimension transitions. - 维度传送门崩溃**: 修复了任何投射物实体(箭矢、投掷武器、弩箭)进入维度传送门(下界、末地、天境等)时
IllegalStateException: Cannot encode empty ItemStack崩溃。根本原因:AbstractArrow.addAdditionalSaveData()在维度转换时对空的 pickup ItemStack 调用save()。 - Bolt Persistence**: Fixed bolts losing their type (copper, diamond, netherite, etc.) after chunk unload/reload —
DATA_BOLTwas never saved to or loaded from NBT. - 弩箭持久化**: 修复了弩箭在区块卸载/重载后丢失类型(铜、钻石、下界合金等)的问题 —
DATA_BOLT从未写入/读取 NBT。
## [1.0.7] - 2026-03-17
### Fixed
- Dimension Portal Crash**: Fixed
IllegalStateException: Cannot encode empty ItemStackcrash when any projectile entity (arrows, throwing weapons, bolts) enters a dimension portal (Nether, End, Aether, etc.). Root cause:AbstractArrow.addAdditionalSaveData()would callsave()on an empty pickup ItemStack during dimension transitions. - 维度传送门崩溃**: 修复了任何投射物实体(箭矢、投掷武器、弩箭)进入维度传送门(下界、末地、天境等)时
IllegalStateException: Cannot encode empty ItemStack崩溃。根本原因:AbstractArrow.addAdditionalSaveData()在维度转换时对空的 pickup ItemStack 调用save()。 - Bolt Persistence**: Fixed bolts losing their type (copper, diamond, netherite, etc.) after chunk unload/reload —
DATA_BOLTwas never saved to or loaded from NBT. - 弩箭持久化**: 修复了弩箭在区块卸载/重载后丢失类型(铜、钻石、下界合金等)的问题 —
DATA_BOLT从未写入/读取 NBT。
## [1.0.7] - 2026-03-17
### Fixed
- Dimension Portal Crash**: Fixed
IllegalStateException: Cannot encode empty ItemStackcrash when any projectile entity (arrows, throwing weapons, bolts) enters a dimension portal (Nether, End, Aether, etc.). Root cause:AbstractArrow.addAdditionalSaveData()would callsave()on an empty pickup ItemStack during dimension transitions. - 维度传送门崩溃**: 修复了任何投射物实体(箭矢、投掷武器、弩箭)进入维度传送门(下界、末地、天境等)时
IllegalStateException: Cannot encode empty ItemStack崩溃。根本原因:AbstractArrow.addAdditionalSaveData()在维度转换时对空的 pickup ItemStack 调用save()。 - Bolt Persistence**: Fixed bolts losing their type (copper, diamond, netherite, etc.) after chunk unload/reload —
DATA_BOLTwas never saved to or loaded from NBT. - 弩箭持久化**: 修复了弩箭在区块卸载/重载后丢失类型(铜、钻石、下界合金等)的问题 —
DATA_BOLT从未写入/读取 NBT。
## [1.0.7] - 2026-03-17
### Fixed
- Dimension Portal Crash**: Fixed
IllegalStateException: Cannot encode empty ItemStackcrash when any projectile entity (arrows, throwing weapons, bolts) enters a dimension portal (Nether, End, Aether, etc.). Root cause:AbstractArrow.addAdditionalSaveData()would callsave()on an empty pickup ItemStack during dimension transitions. - 维度传送门崩溃**: 修复了任何投射物实体(箭矢、投掷武器、弩箭)进入维度传送门(下界、末地、天境等)时
IllegalStateException: Cannot encode empty ItemStack崩溃。根本原因:AbstractArrow.addAdditionalSaveData()在维度转换时对空的 pickup ItemStack 调用save()。 - Bolt Persistence**: Fixed bolts losing their type (copper, diamond, netherite, etc.) after chunk unload/reload —
DATA_BOLTwas never saved to or loaded from NBT. - 弩箭持久化**: 修复了弩箭在区块卸载/重载后丢失类型(铜、钻石、下界合金等)的问题 —
DATA_BOLT从未写入/读取 NBT。
## [1.0.5] - 2026-03-04
### Fixed
- Dedicated Server Crash**: Fixed a critical crash on dedicated servers caused by client-only class references (
Screen,ConfigurationScreen,IConfigScreenFactory) in the common mod entry pointModSpartanWeaponry. These classes are stripped byRuntimeDistCleaneron servers, causingNoClassDefFoundError. - 专用服务器崩溃**: 修复了因主模组入口
ModSpartanWeaponry中引用了客户端专属类(Screen、ConfigurationScreen、IConfigScreenFactory)而导致专用服务器崩溃的严重问题。这些类在服务器端被RuntimeDistCleaner移除,导致NoClassDefFoundError。 - CuriosHelper.Client on Server**: Added
FMLEnvironment.dist.isClient()guard to preventCuriosHelper.Client::registerReloadListenerfrom being called on dedicated servers. - CuriosHelper.Client 服务端问题**: 添加了
FMLEnvironment.dist.isClient()检查,防止在专用服务器上调用CuriosHelper.Client::registerReloadListener。
### Changed
- Config Screen Registration**: Moved config screen extension point registration from
ModSpartanWeaponrytoClientHelper.registerConfigScreen(), properly guarded behind a dist check. - 配置界面注册**: 将配置界面扩展点注册从
ModSpartanWeaponry移至ClientHelper.registerConfigScreen(),并用物理端检查正确保护。 - Missing Translations (en_us.json)**: Added 105 missing translation keys including all wooden weapon variants, throwing knives, boomerangs, javelins, tomahawks, quiver upgrade kits, and tipped projectile effects.
- 缺失翻译 (en_us.json)**: 补充了 105 个缺失的翻译 key,包括所有木质武器变体、飞刀、回旋镖、标枪、印第安战斧、箭袋升级包和药水箭头效果。
- Missing Translations (zh_cn.json)**: Added 14 missing translation keys including parrying dagger variants, quiver compartment tooltips, and lightweight trait.
- 缺失翻译 (zh_cn.json)**: 补充了 14 个缺失的翻译 key,包括格挡匕首变体、箭袋隔层提示和轻量化特性。
## [1.0.5] - 2026-03-04
### Fixed
- Dedicated Server Crash**: Fixed a critical crash on dedicated servers caused by client-only class references (
Screen,ConfigurationScreen,IConfigScreenFactory) in the common mod entry pointModSpartanWeaponry. These classes are stripped byRuntimeDistCleaneron servers, causingNoClassDefFoundError. - 专用服务器崩溃**: 修复了因主模组入口
ModSpartanWeaponry中引用了客户端专属类(Screen、ConfigurationScreen、IConfigScreenFactory)而导致专用服务器崩溃的严重问题。这些类在服务器端被RuntimeDistCleaner移除,导致NoClassDefFoundError。 - CuriosHelper.Client on Server**: Added
FMLEnvironment.dist.isClient()guard to preventCuriosHelper.Client::registerReloadListenerfrom being called on dedicated servers. - CuriosHelper.Client 服务端问题**: 添加了
FMLEnvironment.dist.isClient()检查,防止在专用服务器上调用CuriosHelper.Client::registerReloadListener。
### Changed
- Config Screen Registration**: Moved config screen extension point registration from
ModSpartanWeaponrytoClientHelper.registerConfigScreen(), properly guarded behind a dist check. - 配置界面注册**: 将配置界面扩展点注册从
ModSpartanWeaponry移至ClientHelper.registerConfigScreen(),并用物理端检查正确保护。 - Missing Translations (en_us.json)**: Added 105 missing translation keys including all wooden weapon variants, throwing knives, boomerangs, javelins, tomahawks, quiver upgrade kits, and tipped projectile effects.
- 缺失翻译 (en_us.json)**: 补充了 105 个缺失的翻译 key,包括所有木质武器变体、飞刀、回旋镖、标枪、印第安战斧、箭袋升级包和药水箭头效果。
- Missing Translations (zh_cn.json)**: Added 14 missing translation keys including parrying dagger variants, quiver compartment tooltips, and lightweight trait.
- 缺失翻译 (zh_cn.json)**: 补充了 14 个缺失的翻译 key,包括格挡匕首变体、箭袋隔层提示和轻量化特性。
## [1.0.4] - 2026-02-08
### Fixed
- Loyalty Enchantment Bug**: Fixed throwing weapons (and throwable melee weapons) losing ALL enchantments after being returned via the Loyalty enchantment. Root cause:
removeEnchantments()inThrowingWeaponEntitywas stripping all enchantments on block hit, pickup, and item drop. The method has been removed entirely; duplication is prevented by the existing AmmoUsed merge system. - 忠诚附魔 Bug**: 修复了可投掷武器(及带有投掷特性的近战武器)在通过忠诚附魔回收后丢失所有附魔效果的问题。根本原因:
ThrowingWeaponEntity中的removeEnchantments()会在命中方块、拾取和掉落时清除所有附魔。该方法已被完全移除,物品复制由现有的 AmmoUsed 合并系统防止。 - Entity Persistence**: ThrowingWeaponEntity now correctly saves/loads weapon data (
DATA_WEAPON) and loyalty return level (DATA_RETURN) in NBT, preventing weapon loss after chunk unload/reload. - 实体持久化**: ThrowingWeaponEntity 现在正确地在 NBT 中保存/加载武器数据和忠诚返回等级,防止区块卸载/重载后武器丢失。
- Non-merge Pickup Path**: Fixed
attemptCatch()incorrectly addingNBT_AMMO_USEDtag to non-ThrowingWeaponItem weapons (e.g., melee weapons with Throwable trait), which would cause enchantment loss on subsequent throws. - 非合并拾取路径**: 修复了
attemptCatch()错误地向非 ThrowingWeaponItem 武器(如带投掷特性的近战武器)添加NBT_AMMO_USED标签的问题,该问题会导致后续投掷时附魔丢失。
### Added
- Config Screen**: Added in-game configuration screen for client settings (crosshair options, HUD alignment, integration toggles). Accessible via NeoForge mod list → Config button.
- 配置界面**: 添加了客户端设置的游戏内配置界面(准星选项、HUD 对齐、联动开关)。可通过 NeoForge 模组列表 → 配置按钮访问。
## [1.0.2] - 2026-02-07
### Changed
- Mod ID Update**: Changed from
spartanweaponryunofficialtospartan_weaponry_unofficial(using underscores) to comply with Minecraft modding naming conventions. - Version Number**: Updated to 1.0.2.
### Added
- Strengthened Weapon Naming**: Longbows and heavy crossbows created through the addon API now automatically have the
_strengthenedsuffix: - Longbow:
longbow_{material}_strengthened(e.g.,longbow_diamond_strengthened) - Heavy Crossbow:
heavy_crossbow_{material}_strengthened(e.g.,heavy_crossbow_iron_strengthened) - Localization Updates**: Updated all 7 language translation files to support the new naming format.
### Fixed
- Model Generation System**: Fixed and improved texture path conversion logic in
ModelGenerator.java, supporting automatic conversion for all 18 material types. - Data Generation**: Resolved data generation failures caused by mismatches between weapon registration names and texture file names.
- Data Namespace References**: Updated 506 namespace references in data and assets JSON files from old to new Mod ID format.
### Technical Changes
- Refactored the
WeaponItemsRangedconstructor inModItems.javato add strengthened weapon suffix logic. - Extended the material list in
ModelGenerator.javato cover all vanilla and mod-added material types. - Renamed resource directory structure to match the new Mod ID (
assets/spartan_weaponry_unofficialanddata/spartan_weaponry_unofficial). - Updated API documentation and resource pack development guide to reflect the naming changes.
- Batch updated all namespace references in:
- 489 data JSON files (tags, enchantments, recipes, loot tables, advancements)
- 17 assets JSON files (models)
### Breaking Changes
⚠️ **Incompatible with Old Save Files**: Due to the Mod ID change, items from previous versions will be lost after updating. It is recommended to use this version in new worlds.
## [1.0.2] - 2026-02-07
### Changed
- Mod ID 更新**: 从
spartanweaponryunofficial更改为spartan_weaponry_unofficial(使用下划线),以符合 Minecraft 模组命名规范。 - 版本号**: 更新到 1.0.2。
### Added
- 强化武器命名**: 通过附加 API 创建的长弓和重型十字弩现在自动添加
_strengthened后缀: - 长弓:
longbow_{material}_strengthened(例如:longbow_diamond_strengthened) - 重型十字弓:
heavy_crossbow_{material}_strengthened(例如:heavy_crossbow_iron_strengthened) - 本地化更新**: 更新了所有 7 种语言的翻译文件以支持新的命名格式。
### Fixed
- 模型生成系统**: 修复并改进了
ModelGenerator.java中的纹理路径转换逻辑,支持所有 18 种材料的自动转换。 - 数据生成**: 解决了武器注册名与纹理文件名不匹配导致的数据生成失败问题。
- 数据命名空间引用**: 更新了 data 和 assets JSON 文件中的 506 处命名空间引用,从旧格式更新为新的 Mod ID 格式。
### Technical Changes
- 重构了
ModItems.java中的WeaponItemsRanged构造函数,添加了强化武器后缀逻辑。 - 扩展了
ModelGenerator.java中的材料列表,覆盖原版和模组添加的所有材料类型。 - 重命名了资源目录结构以匹配新的 Mod ID (
assets/spartan_weaponry_unofficial和data/spartan_weaponry_unofficial)。 - 更新了 API 文档和资源包开发指南以反映命名变更。
- 批量更新了所有命名空间引用:
- 489 个 data JSON 文件(tags、enchantments、recipes、loot tables、advancements)
- 17 个 assets JSON 文件(models)
### Breaking Changes
⚠️ **不兼容旧版本存档**: 由于 Mod ID 变更,旧版本的物品在更新后会丢失。建议在新世界中使用此版本。
## [1.0.2] - 2026-02-07
### Changed
- Mod ID Update**: Changed from
spartanweaponryunofficialtospartan_weaponry_unofficial(using underscores) to comply with Minecraft modding naming conventions. - Version Number**: Updated to 1.0.2.
### Added
- Strengthened Weapon Naming**: Longbows and heavy crossbows created through the addon API now automatically have the
_strengthenedsuffix: - Longbow:
longbow_{material}_strengthened(e.g.,longbow_diamond_strengthened) - Heavy Crossbow:
heavy_crossbow_{material}_strengthened(e.g.,heavy_crossbow_iron_strengthened) - Localization Updates**: Updated all 7 language translation files to support the new naming format.
### Fixed
- Model Generation System**: Fixed and improved texture path conversion logic in
ModelGenerator.java, supporting automatic conversion for all 18 material types. - Data Generation**: Resolved data generation failures caused by mismatches between weapon registration names and texture file names.
- Data Namespace References**: Updated 506 namespace references in data and assets JSON files from old to new Mod ID format.
### Technical Changes
- Refactored the
WeaponItemsRangedconstructor inModItems.javato add strengthened weapon suffix logic. - Extended the material list in
ModelGenerator.javato cover all vanilla and mod-added material types. - Renamed resource directory structure to match the new Mod ID (
assets/spartan_weaponry_unofficialanddata/spartan_weaponry_unofficial). - Updated API documentation and resource pack development guide to reflect the naming changes.
- Batch updated all namespace references in:
- 489 data JSON files (tags, enchantments, recipes, loot tables, advancements)
- 17 assets JSON files (models)
### Breaking Changes
⚠️ **Incompatible with Old Save Files**: Due to the Mod ID change, items from previous versions will be lost after updating. It is recommended to use this version in new worlds.
## [1.0.2] - 2026-02-07
### Changed
- Mod ID 更新**: 从
spartanweaponryunofficial更改为spartan_weaponry_unofficial(使用下划线),以符合 Minecraft 模组命名规范。 - 版本号**: 更新到 1.0.2。
### Added
- 强化武器命名**: 通过附加 API 创建的长弓和重型十字弩现在自动添加
_strengthened后缀: - 长弓:
longbow_{material}_strengthened(例如:longbow_diamond_strengthened) - 重型十字弓:
heavy_crossbow_{material}_strengthened(例如:heavy_crossbow_iron_strengthened) - 本地化更新**: 更新了所有 7 种语言的翻译文件以支持新的命名格式。
### Fixed
- 模型生成系统**: 修复并改进了
ModelGenerator.java中的纹理路径转换逻辑,支持所有 18 种材料的自动转换。 - 数据生成**: 解决了武器注册名与纹理文件名不匹配导致的数据生成失败问题。
- 数据命名空间引用**: 更新了 data 和 assets JSON 文件中的 506 处命名空间引用,从旧格式更新为新的 Mod ID 格式。
### Technical Changes
- 重构了
ModItems.java中的WeaponItemsRanged构造函数,添加了强化武器后缀逻辑。 - 扩展了
ModelGenerator.java中的材料列表,覆盖原版和模组添加的所有材料类型。 - 重命名了资源目录结构以匹配新的 Mod ID (
assets/spartan_weaponry_unofficial和data/spartan_weaponry_unofficial)。 - 更新了 API 文档和资源包开发指南以反映命名变更。
- 批量更新了所有命名空间引用:
- 489 个 data JSON 文件(tags、enchantments、recipes、loot tables、advancements)
- 17 个 assets JSON 文件(models)
### Breaking Changes
⚠️ **不兼容旧版本存档**: 由于 Mod ID 变更,旧版本的物品在更新后会丢失。建议在新世界中使用此版本。
## Apotheosis Mod Compatibility Fixes
- Fixed the issue where Battle Axes cannot be placed in the Reforging Table**: Added
SWORD_DIGto theItemAbilityset ofBATTLEAXE, allowing it to be recognized as a melee weapon by Apotheosis while retaining its original axe functionalities (stripping bark, removing copper patina, and de-waxing).
- Fixed the issue where other weapons cannot be placed in the Reforging Table**: Added the
SWORD_DIGability to all melee weapons and thrown weapons, including:
- Melee Weapons: Dagger, Parrying Dagger, Sword, Rapier, Saber, Katana, Greatsword, Club, Gauntlets, War Hammer, Lucerne Hammer, Spear, Halberd, Pike, Lance, Flail, Naginata, Quarterstaff, Scythe
- Thrown Weapons: Throwing Knife, Battle Axe, Javelin, Boomerang
## Sweep Attack Mechanics Overhaul (Sweep)
- Modified ** **
PlayerMixin.java**: Restored and rewrote the interception logic forEnchantmentHelper.getSweepingDamageRatio.
- New Calculation Formula**: Final Sweep Damage = Weapon Base Damage × Sweep Trait Multiplier (e.g., 8.5 × 0.75 = 6.375).
- Updated Sweep Multiplier Definitions in ** **
WeaponTraits.java**:
SWEEP_1: 25% (0.25f)
SWEEP_2: 50% (0.50f)
SWEEP_3: 75% (0.75f) - Corresponds to the original "Sweeping Edge III" effect.
## Attack Range (Reach) Adjustments
- Added New Trait Levels in ** **
WeaponTraits.java**:
REACH_1_5: +1.5 Blocks (Magnitude 6.5f)
REACH_2_5: +2.5 Blocks (Magnitude 7.5f)
- Updated ** **
ModWeaponTraitTagsProvider.java**: Adjusted attack range bonuses for various weapons (added to the original base values):
- +1.0 Block Increase**:
- Scythe: 0 -> +1.0 (
REACH_1)
- Javelin: 0 -> +1.0 (
REACH_1)
- Quarterstaff: 0 -> +1.0 (
REACH_1)
- Lance: +1.0 -> +2.0 (
REACH_2)
- Spear: +1.0 -> +2.0 (
REACH_2)
- +0.5 Block Increase**:
- Pike: +2.0 -> +2.5 (
REACH_2_5)
- Halberd: +1.0 -> +1.5 (
REACH_1_5)
- Glaive: +1.0 -> +1.5 (
REACH_1_5)
# 更新日志
## Apotheosis 模组兼容性修复
- 修复战斧无法放入重铸台的问题**:为
BATTLEAXE的ItemAbility集合添加了SWORD_DIG,使其能被 Apotheosis 识别为近战武器,同时保留原有的斧头功能(剥树皮、刮铜锈、去蜡)。
- 修复其他武器无法放入重铸台的问题**:为所有近战武器和投掷武器添加了
SWORD_DIG能力,包括:
- 近战武器:匕首、格挡匕首、剑、刺剑、军刀、武士刀、巨剑、棍棒、拳套、战锤、锤矛、长矛、戟、长枪、骑枪、链枷、薙刀、棍棒、镰刀
- 投掷武器:飞刀、战斧、标枪、回旋镖
## 横扫攻击机制重构(Sweep)
PlayerMixin.java** **修改 **:恢复并重构了EnchantmentHelper.getSweepingDamageRatio的拦截逻辑。
- 新增计算公式**:最终横扫伤害 = 武器基础伤害 × 横扫特质倍率(示例:8.5 × 0.75 = 6.375)。
WeaponTraits.java** **更新 中的横扫倍率定义**:SWEEP_1: 25% (0.25f)
SWEEP_2: 50% (0.50f)
SWEEP_3: 75% (0.75f) - 对应原版“横扫之刃III”效果。
## 攻击范围(Reach)调整
WeaponTraits.java** **在 中新增特质等级**:
REACH_1_5: +1.5 格(量级 6.5f)REACH_2_5: +2.5 格(量级 7.5f)
ModWeaponTraitTagsProvider.java** **更新 **:调整了各类武器的攻击范围加成(在原有基础值上增加):- +1.0 格提升**:
REACH_1)标枪:0 → +1.0(
REACH_1)棍棒:0 → +1.0(
REACH_1)骑枪:+1.0 → +2.0(
REACH_2)长矛:+1.0 → +2.0(
REACH_2)- +0.5 格提升**:
REACH_2_5)戟:+1.0 → +1.5(
REACH_1_5)薙刀:+1.0 → +1.5(
REACH_1_5)