Skip to content

Necron-Dev/AutoDropX-Forge

Repository files navigation

AutoDropX

AutoDropX 是一款轻量、直观的 Minecraft 客户端模组:当你捡起物品时,按你的规则自动丢弃多余部分,始终保持背包整洁。提供“物品 ID / ID+NBT / 物品标签”三种匹配模式、鼠标滚轮极速调量、JEI 幽灵拖拽支持,以及 9 页配置页的快速切换(JEI 风格的 [<] 1/9 [>])。

主要语言 Kotlin。

特性一览

  • 自动丢弃溢出:按“最小保留数量”规则,仅保留需要的数目
  • 三种匹配模式:
    • ID:仅匹配物品 ID
    • ID+NBT:精确匹配物品及其 NBT
    • 物品标签:匹配当前物品的标签(支持多标签循环选择)
  • 交互友好:
    • 鼠标滚轮调整最小保留数量(默认步长 1;Shift ×8;Ctrl ×64)
    • 右键切换匹配模式(在标签模式下循环标签)
    • 中键删除该配置项
    • 将指针悬停在配置格上按 F 快速启用/禁用该项
    • 顶部 [<] 1/9 [>] 切换“配置页”,每一页都有独立规则
  • JEI 幽灵拖拽:直接从 JEI 面板将物品“拖入”配置格(无需真物品)
  • 自动保存:每次编辑立刻落盘;游戏重启后自动恢复

默认按键

  • 全局启用/禁用模组:B(可在“按键设置”里更改)
  • 打开配置界面:N(可在“按键设置”里更改)

在配置界面里怎么用

  • 左键配置格:
    • 手上空:从配置格“取出”该物品(并删除配置)
    • 手上有:将手上物品“放入”配置格(数量自动显示为最小保留数量)
  • 鼠标滚轮:调整“最小保留数量”(Shift ×8、Ctrl ×64)
  • 右键:在 ID → ID+NBT → 物品标签 模式之间切换;标签模式下会在可用标签间循环
  • 中键:删除该配置项
  • F:在指针所在配置格启用/禁用该项
  • 顶部页签:[<] 1/9 [>] JEI 风格翻页,九页规则互不影响(翻页前会自动保存当前页)
  • 手上拿着“鼠标物品”时:
    • 点配置格可放入
    • 点界面空白或玩家物品栏可清空“鼠标物品”

配置文件路径

  • 当前页:config/autodropx/active_profile.txt(内容为 1-9 的数字)
  • 每页规则:config/autodropx/profiles/pageN.snbt(N=1..9)
  • 旧版迁移:若存在 config/autodropx.snbt,首次加载自动迁移到第 1 页

JEI 幽灵拖拽

  • 打开 JEI 搜索,拖拽想要配置的物品到“配置格”即可创建规则(无需实际物品)

构建与运行

  • 依赖:JDK 17+
  • 构建:
    • Windows: 执行 ./gradlew.bat build
    • Linux/macOS: 执行 ./gradlew build
  • 产物:各平台模组位于对应子项目的 build/libs/
  • 开发运行(可选):
    • Forge 客户端:./gradlew :forge:runClient
    • Fabric 客户端:./gradlew :fabric:runClient
    • Quilt 客户端:./gradlew :quilt:runClient

实际支持的 Minecraft/加载器版本以 gradle.properties 为准。

常见问题(FAQ)

  • 为什么“最小保留数量”显示在物品数量上?
    • 为了更直观地预览该项的保留阈值;实际背包不会被修改。
  • 我可以为不同玩法保存不同规则吗?
    • 可以。使用顶部 [<] 1/9 [>] 切换到不同“页”,每页规则互不影响。
  • 与 JEI 一起使用时有何注意?
    • JEI 幽灵拖拽仅用于创建/替换配置项,不会真的消耗物品。

从源码中快速定位

  • Forge 端配置界面:forge/src/main/kotlin/ench/autodropx/forge/feature/config/ConfigContainerScreen.kt:1
  • Forge 端配置管理器:forge/src/main/kotlin/ench/autodropx/forge/feature/config/ConfigManager.kt:1
  • Forge 端热键绑定:forge/src/main/kotlin/ench/autodropx/forge/KeyBinding.kt:1

贡献

  • 欢迎 PR/Issue!建议在提交前先查看是否能稳定复现与是否与已有功能一致。
  • 代码风格尽量保持与现有 Kotlin 格式一致;功能性改动请附简要说明。

致谢

  • 感谢 JEI 提供优秀的 UI 交互范式
  • 感谢社区用户的反馈与建议

许可(License)

  • 本项目采用 GNU Lesser General Public License v2.1(LGPL-2.1)。
  • 详情见仓库根目录的 LICENSE 文件。
  • 若你提交贡献,默认将以相同许可一并授权发布。

About

A pure client-side mod to auto drop some items!

Resources

License

Stars

Watchers

Forks

Packages

No packages published