Derity™

Derity™

红蓝笑脸球,名为Verity——OpenRouter AI,你的声音是Derity™的声音,地上的生存箱,动画,通用知识

Derity - Minecraft Fabric 模组 1.21.1

一个会说话的红蓝混合球体,可通过OpenRouter AI与你聊天,还有一根邪恶的Derity 之棍,它会杀死你、尖叫并把你发射出去!

功能特性

1. Derity 实体 - 会说话的球

  • 外观:14x14x14 方块球体,带有红蓝渐变(一半红色 #E53935,一半蓝色 #1E88E5,中间紫色混合),白色眼睛配瞳孔,闪亮高光,小天线
  • 移动方式
    • 弹跳物理:落地时带动量弹跳,挤压/拉伸变形
    • 空中漂浮/漂移,偶尔悬停(可切换无重力)
    • 在 8 格范围内环绕附近玩家
    • 撞墙弹回并发出声音
    • 无摔落伤害,移动时旋转和摇摆
    • 阴影半径 0.45
  • 聊天 AI(OpenRouter)
    • 在聊天中输入 Derity <你的消息>(例如:Derity hello!Derity who are you?
    • 如果 32 格范围内有 Derity,它会通过 OpenRouter 回复(默认使用 openai/gpt-4o-mini
    • 回复会以 <Derity> ... 广播,最近的 Derity 实体会跳跃、显示名牌并播放声音
    • 异步工作,无卡顿
    • 未设置 API 密钥时使用本地搞笑回复(带 弹跳 旋转 的搞笑球体台词)
    • 右键点击 Derity 可打招呼并触发弹跳

2. Derity 之棍 - 红蓝混合棍

  • 材质:16x16 对角线棍体,红→蓝渐变且中间发光,深紫色轮廓
  • 合成配方
    R
    B
    S
    
    R = 红色染料,B = 蓝色染料,S = 木棍 → 1 个 Derity 之棍
  • 使用(右键)
    • 尖叫:播放 derity_scream 音效(循声守卫音爆 + 恶魂尖叫),音量 2.0
    • 移动效果:将你以 (±1, 1.8-2.6, ±1) 的速度发射出去,附加反胃 10 秒、失明 3 秒、缓慢效果
    • 粒子效果:灵魂、音爆、爆炸
    • 广播消息☠ <玩家> was consumed by the Derity Stick! AAAAAAAH!!!
    • 杀死你:0.8 秒延迟后生效(魔法伤害,无视护甲,尽可能在创造模式下也能击杀)
    • 消耗棍体耐久(5 次使用),2 秒冷却时间
  • 攻击实体:用棍子攻击任何实体也会导致尖叫并杀死攻击者(背叛!)

3. 音效(映射至原版)

  • derity_talkentity/slime/squish
  • derity_bounceentity/slime/jump
  • derity_hurtentity/slime/hurt
  • derity_deathentity/slime/death
  • derity_screamentity/warden/sonic_boom + entity/ghast/scream

安装方法

  1. 需要 Fabric Loader 0.16.10 + Fabric API 0.107.0+1.21.1 + Minecraft 1.21.1 + Java 21
  2. 构建:.\gradlew.bat buildbuild/libs/derity-1.0.0.jar
  3. 将 jar 文件放入 mods/ 文件夹
  4. 运行游戏,通过 /summon derity:derity 或刷怪蛋(工具/刷怪蛋创造模式选项卡)生成 Derity

OpenRouter 设置(用于聊天 AI)

  1. https://openrouter.ai/keys 获取 API 密钥
  2. 运行一次游戏以生成 config/derity.json
  3. 编辑 config/derity.json
{
  "openRouterApiKey": "sk-or-v1-...your key...",
  "openRouterModel": "openai/gpt-4o-mini",
  "systemPrompt": "You are Derity, a playful talking red and blue mixed ball...",
  "temperature": 0.9,
  "maxTokens": 150,
  "siteUrl": "https://github.com/derity/mod",
  "siteName": "Derity Minecraft Mod"
}
  1. 重启世界/服务器。聊天输入:Derity what's the meaning of life?
  2. 没有密钥时,Derity 会使用搞笑的本地回复。

相关文件src/main/java/com/riority/derity/config/DerityConfig.java:16src/main/java/com/riority/derity/util/OpenRouterClient.java:22

命令与测试

  • /summon derity:derity ~ ~1 ~ — 在脚边生成球体
  • 给予棍子:/give @p derity:derity_stick
  • 给予刷怪蛋:/give @p derity:derity_spawn_egg
  • 聊天:Derity hello → 看到 <Derity> *bounces* HIII!!...
  • 使用棍子 → 被发射出去,听到循声守卫音爆,死亡

相关文件

  • 实体:src/main/java/com/riority/derity/entity/DerityEntity.java:25 — 弹跳物理,tickMovementLogic()
  • 棍子:src/main/java/com/riority/derity/item/DerityStickItem.java:22
  • AI 客户端:src/main/java/com/riority/derity/util/OpenRouterClient.java:11
  • 模组初始化:src/main/java/com/riority/derity/DerityMod.java:18 — 聊天监听器 ServerMessageEvents.ALLOW_CHAT_MESSAGE
  • 渲染器:src/main/java/com/riority/derity/client/DerityEntityRenderer.java:16 — 挤压/拉伸、旋转
  • 模型:src/main/java/com/riority/derity/client/DerityEntityModel.java:10 — 图层 derity:derity
  • 纹理:src/main/resources/assets/derity/textures/entity/derity.png(生成)和 .../item/derity_stick.png
  • 音效:src/main/resources/assets/derity/sounds.json:1
  • 合成配方:src/main/resources/data/derity/recipe/derity_stick.json:1

移动细节

  • 在地面hy = 0.42 + rand*0.25hx/z ±0.3,播放弹跳音效
  • 空中:8% 概率随机漂移,3% 悬停(无重力),2% 下落
  • 环绕:每 tick 有 1.5% 概率环绕最近玩家,Vec3(-toPlayer.z, 0.05, toPlayer.x) *0.12
  • 撞墙horizontalCollisionvelocity *= -0.7, y+0.2
  • 渲染scaleX/Z = 1 + squash*0.6scaleY = 1 - squash,旋转 12°/tick,摇摆 sin/cos 倾斜,上下浮动 sin(0.3)*0.08

构建

.\gradlew.bat build        # → build/libs/derity-1.0.0.jar
.\gradlew.bat runClient    # 测试客户端
.\gradlew.bat runServer    # 测试服务器

致谢

  • Fabric 示例模组模板
  • OpenRouter(https://openrouter.ai
  • 纹理通过 PIL 生成(红色 #E53935 + 蓝色 #1E88E5

享受 Derity 吧!弹跳 摇摆 触摸棍子时会尖叫