Discord机器人_AWL

创作者: AWLGaming
已更新:2026-07-23 20:05:37
170KB

前置 MOD

使用 Discord机器人_AWL 时将自动安装

关于此 MOD

AWL维护的DiscordBot分支,支持Valheim 1.0并具有弹性Discord集成。

瓦尔海姆的Discord AWL机器人

AWL Gaming 维护的原始版本分支 锈蚀模组Discord机器人它保留了现有的瓦尔海姆与Discord双向集成,同时保持与当前瓦尔海姆版本的兼容性以及更安全的客户端/服务器传输。

原作者: 锈蚀模组AWL Gaming 维护此分支,并不主张上游实现的著作权。参见 通知.md.

AWL 1.4.7 亮点

  • 无效的 Discord 机器人令牌现在会停止重复的网关重连尝试,而不再刷屏服务器日志。
  • 在服务器配置中更新机器人令牌现在会自动重启Discord网关连接。

前置条件

  • BepInEx 已安装
  • JsonDotNet 已安装
  • Discord Webhook 已为你的服务器配置
  • Discord 机器人令牌 (如果你想让你的 Discord 服务器能够向游戏中发送消息)
  • 需要开启 客户端 和 服务器

安装

Discord 设置

如何创建Discord机器人

  1. 创建一个 Discord 应用程序
    • 前往 Discord 开发者门户
    • 点击“新申请”(右上角)
    • 给你的应用起个名字(例如 ValheimBot),然后点击“创建”。
  2. 添加一个 机器人 到应用程序
    • 在左侧边栏中,点击“机器人”
    • 点击“添加机器人”---->点击“好的,就这么做!”确认
    • 你的应用程序现在已关联了一个机器人用户。
    • 你必须启用 消息内容意图
  3. 复制 机器人令牌
    • 在机器人页面中,找到“令牌”部分,点击“重置令牌”(如果已显示,则点击“复制”)。
    • 确认,然后复制生成的令牌。
    • 请妥善保管此令牌。如果泄露,请点击“重置令牌”以生成新的令牌
  4. 邀请机器人加入你的Discord服务器
    • 在侧边栏中,点击“OAuth2”---->“URL生成器”。
    • 下 瞄准镜,检查 机器人
    • 以下 机器人权限,检查你的机器人所需的权限
      • 发送消息
      • 阅读消息记录
      • 查看频道
    • 在底部复制生成的网址
    • 在浏览器中打开该网址,并邀请机器人加入你的Discord服务器

创建 Discord Webhook

Webhook 允许插件在不使用机器人身份的情况下向 Discord 频道发送消息。

  1. 创建 Webhook

    • 前往“集成”选项卡
    • 点击“创建 Webhook”
    • 给它起个名字(例如“Valheim Chat”)
  2. 复制 Webhook URL

    • 点击“复制 Webhook URL”
    • 保存此URL以用于插件配置

正在获取频道 ID

你需要 Discord 频道 ID 才能让机器人读取消息:

  1. 启用开发者模式

    • 在Discord中,前往用户设置(齿轮图标)
    • 前往“高级”设置
    • 启用“开发者模式”
  2. 复制频道ID

    • 右键点击你要使用的每个通道
    • 选择“复制ID”
    • 为你的配置保存这些ID

配置插件

首次运行后,配置文件将生成在 BepInEx/config/. 编辑 Discord 机器人配置文件以设置您的:

  • 频道 ID
  • Webhook URL [仅服务器]
  • 机器人令牌 [仅服务器]
  • AI API 密钥 [仅在使用服务器代理时由服务器端使用]

配置

在以下位置查找DiscordBot插件配置 BepinEx/配置/RustyMods.DiscordBot.cfg.

仅在专用服务器配置中配置 webhook URL、Discord 机器人令牌和服务器 AI API 密钥。1.4.1 版本不再将 webhook URL 或 API 密钥同步到客户端。已连接的客户端向服务器代理提交有界 webhook 请求,由服务器代理在本地解析目标地址。

Webhook 网址 需要完整的 Discord webhook URL。 频道ID 只需要Discord频道的数字ID。它们不可互换。

配置文件编辑会被监视,保存后自动重新加载。无需控制台命令。替换 DiscordBot.dll 不可热重载,需要重启受影响的服务器或客户端进程。

你的配置可能如下所示:

[1 - 通用] ## 若开启,配置将被锁定,仅服务器管理员可更改。[与服务器同步] 锁定配置 = 开 ## 设置检查 Discord 消息的间隔时间,单位为秒 [与服务器同步] 轮询间隔 = 5 ## 若开启,错误将以警告形式记录到控制台 [与服务器同步] 记录错误 = 关 [2 - 通知] ## 设置 webhook 以接收通知,如服务器启动、停止、保存等... [仅服务器] [不与服务器同步] Webhook 地址 = <你的-discord-webhook-地址> ## 若开启,机器人将在服务器启动时发送消息 [与服务器同步] 启动 = 关 ## 若开启,机器人将在服务器关闭时发送消息 [与服务器同步] 关闭 = 关 ## 若开启,机器人将在服务器保存时发送消息 [与服务器同步] 保存 = 关 ## 若开启,机器人将在玩家死亡时发送消息 [与服务器同步] 死亡时 = 开 ## 若开启,机器人将在新玩家连接时发送消息 [与服务器同步] 新连接 = 关 [3 - 聊天] ## 设置 Discord webhook 以显示聊天消息 [仅服务器] [不与服务器同步] Webhook 地址 = <你的-discord-webhook-地址> ## 设置要监控消息的频道 ID [与服务器同步] 频道 ID = <频道-id> ## 若开启,机器人将在玩家喊话时发送消息并监控 Discord 中的消息 [与服务器同步] 启用 = 开 [4 - 命令] ## 设置 Discord webhook 以显示命令的反馈消息 [仅服务器] [不与服务器同步] Webhook 地址 = <你的-discord-webhook-地址> ## 设置要监控输入命令的频道 ID [与服务器同步] 频道 ID = <频道-id> ## Discord 管理员列表,可以运行命令 [与服务器同步] Discord 管理员 = user1,user2 [5 - 设置] ## 在此处添加机器人令牌,仅服务器 机器人令牌 = 


用途

游戏内转Discord

  • 以以下身份发送的任何消息: 喊叫 游戏内聊天内容将显示在您配置的 Discord 聊天频道中
  • 服务器事件(如启动)将发布到通知频道
  • 死亡事件将发布到死亡动态频道

Discord 转游戏内

  • 配置的 Discord 聊天频道中发送的消息将显示在游戏内聊天中
  • 在配置的Discord命令频道中发送的命令将在服务器上执行

Discord 指令

在你的指定命令频道中发送命令:

  • 命令应以命令前缀开头 !
  • 示例: !listplayers 列出在线玩家
  • 示例: 保存 拯救世界

指令

传说:

- <string:Parameter> - 文本参数 - <int:Parameter> - 数字参数 - <float:Parameter> - 小数参数 - <parameter?> - 可选参数 - [Admin Only] - 仅限已注册Discord管理员使用的命令

通用指令

帮助

描述: 所有可用命令列表
用法: !帮助

管理员列表 仅限管理员

描述: 注册到插件的不和谐管理员列表
用法: !listadmins


玩家管理

玩家列表 [仅管理员]

描述: 活跃玩家及其位置列表
用法: !listplayers

踢 [仅管理员]

描述: 将玩家踢出服务器
用法: 踢出玩家 <string:PlayerName>

给 仅限管理员

说明: 直接将物品添加到玩家背包中
用法: !give <string:PlayerName> <string:ItemName> <int:Stack> <int?:Quality> <int?:Variant>
示例: !give PlayerName IronSword 1 3 0

位置 [仅管理员]

描述: 获取玩家当前的位置坐标
用法: !pos <string:玩家名>

死亡 [仅管理员]

描述: 击杀指定玩家
用法: !die <string:PlayerName>


传送指令

传送 [仅管理员]

描述: 将玩家传送至地点、床或另一名玩家
用法:

  • 传送 <string:PlayerName> 到床上 - 传送到床上
  • 传送 <string:PlayerName> <string:OtherPlayerName> - 传送到其他玩家
  • 传送 <string:PlayerName> <float:x> <float:y> <float:z> - 传送到坐标

传送所有人 仅限管理员

描述: 将所有玩家传送到指定坐标
用法: !teleportall <float:x> <float:y> <float:z>


环境与天气

收听

描述: 可用环境列表
用法: !listenv

环境 仅管理员

说明: 强制所有玩家启用环境
用法: !环境 <string:EnvironmentName>
示例: !env 暮光_晴朗

重置环境 [仅管理员]

描述: 将所有玩家的环境重置为默认值
用法: 重置环境


生成与生物

生成 [仅管理员]

描述: 在指定位置生成预制体
用法:

  • !spawn <字符串:预制体名称> <整数:等级> <字符串:玩家名称> - 在玩家位置生成
  • !spawn <string:预制体名称> <int:等级> <float:x> <float:y> <float:z> - 在坐标处生成
    示例: 生成3个巨魔,目标为PlayerName

事件

列出事件 [仅管理员]

描述: 可用事件名称列表
用法: !listevents

活动 仅管理员

描述: 在玩家身上触发一个事件
用法: !event <string:事件名称> <string:玩家名称>
示例: !event 狼群玩家名


玩家效果与技能

列表状态

描述: 可用状态效果列表
用法: !liststatus

添加状态 管理员专用

描述: 将状态效果添加到玩家
用法: !addstatus <string:PlayerName> <string:StatusEffect> <float:Duration>
示例: !addstatus PlayerName Rested 300

技能列表

描述: 可用技能列表
用法: 技能列表

提升技能 [仅管理员]

描述: 提升玩家技能等级
用法: !raiseskill <string:PlayerName> <string:SkillType> <float:Amount>
示例: !raiseskill PlayerName Swords 10


服务器管理

保存 [仅管理员]

描述: 保存玩家档案和世界
用法: 保存

消息 [仅管理员]

描述: 向所有玩家发送广播消息(显示在屏幕中央)
用法: !消息 <消息文本>
示例: !message 服务器将在5分钟后重启!

设置按键 [仅管理员]

描述: 设置全局标记(影响世界状态)
用途: !setkey <字符串:GlobalKeyName>
示例: !setkey 击败_骨量


管理员管理

添加管理员 [仅管理员]

描述: 将 Discord 用户名添加到管理员列表
用法: !addadmin <string:用户名>

移除管理员 [仅管理员]

描述: 从管理员列表中移除Discord用户名
用法: !removeadmin <字符串:用户名>


AI聊天

ChatAI支持Gemini、OpenRouter、OpenAI和DeepSeek。请求按配置的提供商顺序依次尝试,并 每个供应商的模型数量 在切换到下一个提供商之前对每个提供商进行限制。认证、配额和速率限制故障会立即故障转移到下一个提供商。

API密钥仅保留在拥有它们的本地机器上。使用 使用服务器密钥 = 开启 和 服务器AI中间商 = 开启,没有本地密钥的客户端可以向服务器请求自动生成的死亡/日常俏皮话。服务器仅返回生成的文本以及提供商/模型元数据,绝不会将持有者凭证同步到客户端。

手动玩家提示通过服务器代理默认保持禁用。启用 允许玩家AI提示词 只有当你刻意想要这种行为时。

相关设置:

[8 - AI] 服务商 = Gemini 服务商顺序 = Gemini, OpenRouter, ChatGPT, DeepSeek Gemini = Gemini 模型 = Flash3_6 Gemini 模型列表 = gemini-3.6-flash, gemini-3.5-flash-lite, gemini-3.5-flash, gemini-3.1-flash-lite, gemini-flash-latest, gemini-flash-lite-latest, gemini-3.1-pro-preview, gemini-3-flash-preview, gemini-pro-latest, gemini-2.5-flash-lite, gemini-2.5-pro Gemini 自动发现 = 开启 OpenRouter = OpenRouter 模型 = AutoFree OpenRouter 模型列表 = openrouter/free OpenRouter 自动发现 = 开启 OpenRouter 仅限免费 = 开启 ChatGPT = OpenAI 模型列表 = gpt-5.6-luna, gpt-5.6-terra, gpt-5.6-sol, gpt-5.6, gpt-5.5, gpt-5.4-mini, gpt-5.4-nano, gpt-4.1-mini DeepSeek = DeepSeek 模型列表 = deepseek-chat, deepseek-reasoner 最大尝试次数 = 12 每个服务商模型数 = 3 请求超时秒数 = 30 远程响应超时秒数 = 120 模型目录缓存分钟数 = 60 最大输出 Token 数 = 160 最大提示字符数 = 4000 远程请求冷却秒数 = 2 使用服务器密钥 = 开启 服务器 AI 代理 = 开启 允许玩家 AI 提示 = 关闭 Discord 提示 = 关闭 死亡调侃 = 开启 每日调侃 = 开启

双子星模型 和 OpenRouter 模型 保留以实现向后兼容。已知的退役 Gemini 模型会在构建请求计划之前移除,即使旧配置仍将其选为旧版主模型也是如此。随后,自动发现会追加当前可用的模型,不可用的模型会故障转移到下一个模型/提供商。

OpenAI API的使用与ChatGPT订阅是分开的。如果使用OpenAI提供商,请配置一个具有API计费的OpenAI API密钥。

职业 [测试版]

任务允许在设定的时间间隔内调用 Discord 命令,从服务器启动时开始。

格式:

命令:!shout 间隔:1000.0 参数:这是一条服务器每16分钟重复发送的喊话消息

示例:

  • 每30分钟列出当前活跃玩家
命令:!listplayers 间隔:1800
  • 每1小时保存一次世界和活跃玩家档案
命令:!save 间隔:3600

开发与打包

  • BUILDING.md 包含可复现的 Windows 构建和验证命令。
  • PUBLISHING.md 包含Thunderstore和Hexium的包/上传流程以及必需的上游权限警告。
  • 注意.md 记录原作者署名及再分发状态。

笔记

  • 管理员命令: 标记有 仅管理员 仅限已注册在管理员名单中的Discord用户使用
  • 玩家名称: 使用游戏中显示的确切玩家名称(区分大小写)
  • 坐标: 使用世界坐标(你可以通过以下方式获取这些坐标: 位置 指令)
  • 物品名称: 使用游戏中的精确预制体名称
  • 错误处理: 如果命令失败或参数不正确,机器人将回复错误信息

Valheim: 英灵神殿 的热门 MOD

探索适用于 Valheim: 英灵神殿 的最佳MOD,带来新功能、升级画面,以及令人兴奋的方式来改变您的游戏体验。

使用 Xmod 解锁 Valheim: 英灵神殿 的全部潜力 — 今天就探索这些顶级 MOD!