All versions
1.0.4
Release
Tpa-Tinmoli 1.0.43 months ago 14
Compatibility
Minecraft: Java Edition
26.1.1
Platform
Fabric
Supported environments
Client-side
Server-side
Changes
[1.0.4] - 2026-07-24
Added
- Added a paginated icon picker for freely choosing Home or Warp icons from all vanilla items
- The Homes GUI supports middle-clicking a home to make it the default for
/home - Home and Warp GUI action hints are split across two lore lines to avoid overly long text
- The Homes GUI opens the picker with
Shift + Left-clickand quickly resets the icon withShift + Right-click - Home icon data is stored in SQLite and remains compatible with existing homes without an icon field
- Added custom icons to the Warps GUI; only players with administrator permissions can open the icon picker or reset warp icons
- Made SQLite the only runtime storage, always using
config/tpa/storage.db - Added the
/tpastorage json-to-sqlitecommand requiring administrator permissions for importing legacystorage.jsonintostorage.db - Added the
/tpareloadcommand requiring administrator permissions for reloading configuration, SQLite data, and language files without restarting - Added the SQLite JDBC dependency and bundled the driver into the mod JAR
- Added five fully independent projects for Minecraft 1.21.11, 26.1, 26.1.1, 26.1.2, and 26.2
Fixed
- Fixed
back/home/tpa/warp/spawn/rtp.enabledconfiguration switches having no effect - Fixed queued stale teleport tasks potentially running after a delayed teleport was replaced or cancelled
- Fixed teleport particle/countdown timers accessing player and world state off-thread or keeping the JVM alive
- Fixed TPA reminders incorrectly saying a request had already expired and requests not being removed exactly at 120 seconds
- Fixed player-only
/tpaacceptand/tpadenypotentially failing when invoked from the console - Fixed null fields in legacy or partially damaged storage potentially preventing startup
- Fixed external language files missing new translation keys after a mod update, which caused raw keys to appear in chat and GUIs
- Unified administrator command visibility so regular players no longer see warp management or storage conversion commands in
/tpals - Fixed
/tpalsnot showing the JSON-to-SQLite import command to operators - Fixed a race that could send an expiration reminder after a TPA request was accepted or denied
- Fixed the
home.playerMaximumconfiguration not being enforced - Fixed players being able to create additional homes after reaching the configured limit
- Fixed duplicate home names being incorrectly reported as a limit error when the player was at the limit
Improved
- Bundled English and Chinese language files are now synchronized on startup: new keys are added, obsolete keys are removed, and existing custom values are preserved
- Invalid built-in language files are backed up and restored from bundled content
- Configuration files are now explicitly written using UTF-8
- Removed
storage.backend, the JSON runtime backend, and the SQLite-to-JSON command - JSON imports are written to a temporary database, read back for verification, existing databases are backed up before replacement, and a full reload runs automatically after success
- JSON imports are loaded immediately and rejected when the source is missing or empty
- Negative delays, invalid RTP ranges, and reminder times outside the request lifetime are normalized safely
- Custom GUI icons now hide built-in attack damage, attack speed, and tool attribute lines
- Negative
home.playerMaximumvalues are normalized to0 - Adapted to Minecraft 26.2 combining colored bed and stained glass pane constants into the
ColorCollectionAPI - collecting all five JARs in
dist/ - Updated the English and Chinese READMEs with fixed SQLite storage and legacy JSON import instructions
新增
- 新增分页图标选择器,可从全部原版物品中自由选择 Home 或 Warp 图标
- Home GUI 支持鼠标中键直接设置默认 Home,之后可通过无参数
/home传送 - Home 与 Warp GUI 的操作提示拆分为两排显示,避免单行文字过长
- Home GUI 使用
Shift + 左键打开选择器,Shift + 右键快速恢复默认图标 - Home 图标数据保存到 SQLite,并兼容没有图标字段的旧数据
- 新增 Warp GUI 自定义图标,打开图标选择器或重置 Warp 图标需要管理员权限
- SQLite 设为唯一运行时存储,数据固定保存在
config/tpa/storage.db - 新增需要管理员权限的
/tpastorage json-to-sqlite命令,将旧版storage.json导入storage.db - 新增需要管理员权限的
/tpareload,无需重启即可重载配置、SQLite 数据和语言文件 - 新增 SQLite JDBC 依赖,并将驱动打包到模组 JAR 中
- 新增 Minecraft 1.21.11、26.1、26.1.1、26.1.2、26.2 五个完全独立的版本项目
修复
- 修复配置中的
back/home/tpa/warp/spawn/rtp.enabled开关不生效的问题 - 修复延迟传送被替换或取消后,已排队的旧任务仍可能执行传送的问题
- 修复传送粒子和倒计时 Timer 异步访问玩家/世界状态及阻止 JVM 退出的问题
- 修复 TPA 请求提醒被错误显示为“已过期”,以及请求未在 120 秒时精确移除的问题
- 修复控制台执行玩家专用的
/tpaaccept、/tpadeny时可能出现上下文异常的问题 - 修复旧版或部分损坏存储中 null 字段可能导致启动失败的问题
- 修复模组更新后外部语言文件缺少新翻译键,导致聊天和 GUI 显示原始键名的问题
- 统一管理员命令权限:普通玩家的
/tpals不再显示 Warp 管理与存储转换命令 - 修复
/tpals未向 OP 显示 JSON → SQLite 导入命令的问题 - 修复 TPA 请求接受或拒绝后仍可能发送过期提醒的竞态问题
- 修复
home.playerMaximum配置不生效的问题 - 修复玩家达到 Home 数量上限后仍可继续创建 Home 的问题
- 修复达到数量上限时,重复设置同名 Home 被错误提示为数量超限的问题
改进
- 内置中英文语言文件改为启动时增量同步:补充新键、移除废弃键并保留已有自定义值
- 语言文件损坏时自动备份并使用内置内容恢复
- 配置文件现在显式使用 UTF-8 编码写入
- 移除
storage.backend配置、JSON 运行时后端和 SQLite → JSON 反向转换命令 - JSON 导入先写入临时数据库并回读校验,替换前自动备份已有数据库,成功后自动执行完整重载
- JSON 导入后立即加载新数据;源文件缺失或为空时拒绝导入,避免误覆盖
- 为负数延迟、非法 RTP 范围及超出请求生命周期的提醒时间增加自动校正
- GUI 自定义图标隐藏镐、武器等物品自带的攻击伤害、攻击速度和工具属性提示
- 对负数
home.playerMaximum进行校验,并自动修正为0 - 适配 Minecraft 26.2 将彩色床和染色玻璃板常量整合为
ColorCollection的 API 变化 - 五个版本的 JAR 统一输出到
dist/ - 更新中英文 README,补充固定 SQLite 存储和旧 JSON 数据导入说明
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:cY7rNL8R:jTEbMfY1"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:cY7rNL8R:jTEbMfY1"
}

