Skip to content

MinecraftIsTooEasy/team

Repository files navigation

Team Mod

Team Mod 是一个面向 MITE 1.6.4 / FishModLoader >= 3.4.2 的队伍系统模组。
它提供了完整的组队、邀请、成员管理、服务端持久化、客户端界面与管理员控制能力,并额外处理了友伤、登录提醒、状态同步和数据修复等细节。

功能概览

玩家功能

  • O 键打开队伍界面
  • 创建队伍
  • 邀请玩家加入队伍
  • 接收邀请后在 GUI 中同意或拒绝
  • 队长可转移队长、重命名队伍、踢出成员
  • 玩家可主动离开队伍
  • 队长离队时自动选择新队长
  • 最后一名成员离队时自动解散队伍

联机与规则

  • 队友之间自动禁用友伤
  • 服务器与客户端之间同步队伍状态和邀请通知
  • 玩家登录后会补发仍然有效的待处理邀请
  • 邀请默认 10 分钟过期
  • 单个玩家最多同时保留 3 个待处理邀请
  • 对频繁查询和频繁邀请做了冷却限制,避免刷包

管理员功能

  • /teamlist 查看当前所有队伍与队长
  • /teamleader <队伍名> <新队长> 强制修改指定队伍的队长,支持自动补全

数据与稳定性

  • 队伍数据写入世界存档,支持周期性保存与停服刷盘
  • 载入数据时会重建索引并尝试自修复不一致状态
  • 名称匹配对大小写与首尾空格更宽容
  • 支持根据存档历史玩家名解析邀请目标与成员显示名

客户端交互

项目内置了一套轻量 GUI:

  • 主界面:创建、邀请、离队、转移队长、改名、成员管理
  • 邀请弹窗:收到邀请后可直接接受或拒绝
  • 成员管理页:队长可分页查看成员并执行踢出

默认热键定义在 TeamKeybinds 中,目前为 O

对外 API

模组初始化时会注册 TeamApiV1,其他模组可通过 TeamApiProvider.get() 获取实例。

当前暴露的方法包括:

  • apiVersion()
  • getIdentityKey(ServerPlayer player)
  • getLeaderIdentityKey(ServerPlayer player)
  • isInTeam(ServerPlayer player)
  • isSameTeam(ServerPlayer a, ServerPlayer b)

这套 API 适合做:

  • 队友识别
  • 队长身份判断
  • 友军判定
  • 其他模组的权限或交互联动

开发环境

  • JDK 17
  • Gradle Wrapper
  • FishModLoader
  • libs/ 下的本地依赖:
    • RustedIronCore-*.jar
    • ManyLib-*.jar

构建说明

FishModLoader 解析顺序

build.gradle 会按以下顺序查找 FishModLoader:

  1. gradle.properties 中的 fml_jar_path
  2. 环境变量 FML_JAR_PATH
  3. fml_home / FML_HOME 下的常见路径
  4. 工作区内预设的默认候选路径

找不到时,构建会直接失败并给出提示。

本地依赖解析顺序

RustedIronCoreManyLib 的解析顺序如下:

  1. gradle.properties 中的显式路径
  2. 对应环境变量
  3. libs/ 目录下的模式匹配

建议每种依赖在 libs/ 中只保留一个匹配的 jar。

常用命令

.\gradlew.bat compileJava
.\gradlew.bat test
.\scripts\team_regression.ps1 -ProjectRoot .

构建产物默认位于 build/libs/

测试覆盖

项目已经包含一组以服务层为核心的单元测试,覆盖方向包括:

  • 管理员改队长逻辑
  • 邀请过期与筛选
  • 聊天提示
  • 冷却控制
  • 数据修复
  • 网络分发保护
  • 本地化
  • 登录邀请补发
  • 持久化策略
  • 玩家名解析
  • 状态同步目标选择
  • 存储读写支持

此外,scripts/team_regression.ps1 还提供了编译检查与手动回归清单。

目录结构

src/main/java/com/github/hahahha/team/
  api/       对外 API
  command/   管理员命令
  gui/       客户端界面
  mixins/    游戏注入点
  system/    队伍核心逻辑、同步、存储与工具支持

src/main/resources/
  assets/team/lang/   中英文语言文件
  fml.mod.json        模组元数据
  team.mixins.json    Mixin 配置

语言文件

语言资源位于:

  • src/main/resources/assets/team/lang/en_US.lang
  • src/main/resources/assets/team/lang/zh_CN.lang

模组启动时会注册 team 资源域,服务端文本也带有 en_US 回退逻辑,避免某些情况下原版语言系统未加载模组词条。

版本信息

  • 当前 mod_version1.1.0
  • 模组 ID:team
  • 入口类:com.github.hahahha.team.TeamMod

License

本项目使用 MIT License

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors

Languages