
DiscordWebhook
仅使用Webhook在Discord中显示聊天和事件。支持多频道!
查看大图一个 Hytale 插件,可使用 webhook 将游戏内事件链接到 Discord 频道。该插件会自动向您的 Discord 服务器发送玩家加入、离开、死亡、聊天消息以及服务器生命周期事件。
当前功能
- 事件配置系统:每个事件类型都有独立的配置文件
- 占位符系统:动态占位符,如
{player}、{message}、{deathCause}、{time}等 - 时区支持:支持带时区控制的时间占位符(例如
{time-america/los_angeles}) - 多 Webhook 频道:将不同的事件路由到不同的 Discord 频道
- 消息自定义:完全控制消息格式(嵌入、纯文本或两者兼有)
- 事件开关:启用或禁用单个事件
- 更新检查:检查 Github 发布版本以获取更新,并在有更新时通知您
- 热重载:无需重启服务器,使用
/dw-reload即可重新加载配置 - 默认事件模板:首次启动时,默认事件配置会自动从资源中复制
当前事件
- 玩家加入事件:当玩家加入服务器时发送可自定义的通知
- 玩家离开事件:当玩家离开服务器时发送可自定义的通知
- 玩家死亡事件:当玩家在服务器中死亡时发送可自定义的通知
- 玩家聊天:将所有玩家的聊天消息转发到 Discord,并可完全自定义
- 服务器启动:当服务器启动时发送通知
- 服务器关闭:当服务器关闭时发送通知
安装
- 从发布页面下载最新版本
- 将
DiscordWebhook-x.x.x.jar文件放入 Hytale 服务器的mods文件夹中 - 启动服务器以生成配置文件
- 编辑
Jemsire_DiscordWebhook/WebhookConfig.json文件并添加您的 Discord webhook URL - (可选)在
Jemsire_DiscordWebhook/events/文件夹中自定义各个事件的配置 - 在游戏中输入
/dw-reload热重载配置以启动插件
注意:默认事件配置将在首次启动时自动创建。您可以自定义它们或保持原样。
配置
首次启动后,配置文件将在您的 mods 文件夹中创建。该插件使用两级配置系统:
- WebhookConfig.json:主配置文件,包含 webhook URL 和频道
- events/:各个事件的配置文件
获取 Discord Webhook URL
- 打开您的 Discord 服务器设置
- 转到 集成 → Webhook
- 点击 新建 Webhook 或选择一个现有的 webhook
- 复制 webhook URL
- 将其粘贴到您的
WebhookConfig.json文件中
主配置文件 (WebhookConfig.json)
主配置文件位于 Jemsire_DiscordWebhook/WebhookConfig.json:
{
"WebhookLink": "https://discord.com/api/webhooks/YOUR_WEBHOOK_URL_HERE",
"Version": 2,
"UpdateCheck": true,
"WebhookChannels": {
"default": "https://discord.com/api/webhooks/YOUR_DEFAULT_WEBHOOK_URL",
"staff": "https://discord.com/api/webhooks/YOUR_STAFF_WEBHOOK_URL"
}
}
配置选项:
WebhookLink:默认 webhook URL(用作备用)Version:配置版本(当前为 2)UpdateCheck:启用/禁用自动更新检查WebhookChannels:频道名称到 webhook URL 的映射(例如 "default"、"staff"、"admin")
事件配置文件
每个事件在 Jemsire_DiscordWebhook/events/ 中都有其自己的配置文件。默认配置会在首次启动时自动创建:
PlayerChat.json- 玩家聊天消息PlayerConnect.json- 玩家连接事件PlayerDisconnect.json- 玩家离开事件PlayerDeath.json- 玩家死亡事件Boot.json- 服务器启动事件Shutdown.json- 服务器关闭事件
事件配置结构
{
"Enabled": true,
"WebhookChannel": "default",
"MessageJson": "{\"content\": \"💬 **{player}**: {message}\"}"
}
配置选项:
Enabled:启用或禁用此事件(true/false)WebhookChannel:要使用的 webhook 频道(必须与主配置中WebhookChannels的一个键匹配)MessageJson:带有占位符的原始 Discord webhook JSON(见下文)
消息格式示例
纯文本消息:
{
"Enabled": true,
"WebhookChannel": "default",
"MessageJson": "{\"content\": \"💬 **{player}**: {message}\"}"
}
嵌入消息:
{
"Enabled": true,
"WebhookChannel": "default",
"MessageJson": "{\"embeds\": [{\"title\": \"📥 玩家加入\", \"description\": \"{player} 已进入世界!\", \"color\": 65280}]}"
}
组合(文本 + 嵌入):
{
"Enabled": true,
"WebhookChannel": "default",
"MessageJson": "{\"content\": \"新玩家!\", \"embeds\": [{\"title\": \"玩家加入\", \"description\": \"{player} 加入了服务器\", \"color\": 65280}]}"
}
带时区的服务器事件:
{
"Enabled": true,
"WebhookChannel": "default",
"MessageJson": "{\"embeds\": [{\"title\": \"🚀 服务器已启动\", \"description\": \"服务器于 {time-america/los_angeles} 启动\", \"color\": 3447003}]}"
}
可用占位符
占位符在运行时会被替换为实际值。在您的 JSON 字符串中使用 {placeholderName}。
玩家占位符:
{player}- 玩家的用户名或显示名称(取决于上下文){playerUsername}- 玩家的用户名(别名){playerDisplayName}- 玩家的显示名称(别名){playerUuid}- 玩家的 UUID(如果可用)
聊天占位符:
{message}- 聊天消息内容{content}- 聊天消息内容(别名)
死亡占位符:
{deathCause}- 格式化的死亡消息{deathMessage}- 格式化的死亡消息(别名){deathMessageRaw}- 原始死亡消息(如果可用)
时间占位符:
{time}- 服务器默认时区的当前时间(格式:yyyy-MM-dd HH:mm:ss z){time-<timezone>}- 指定时区的当前时间(例如{time-america/los_angeles})
时区示例:
{time-america/los_angeles}- 太平洋时间(PST/PDT){time-america/new_york}- 东部时间(EST/EDT){time-america/chicago}- 中部时间(CST/CDT){time-america/denver}- 山地时间(MST/MDT){time-europe/london}- 英国时间(GMT/BST){time-europe/paris}- 欧洲中部时间(CET/CEST){time-asia/tokyo}- 日本标准时间(JST){time-australia/sydney}- 澳大利亚东部时间(AEST/AEDT){time-utc}- 协调世界时(UTC)
时区说明:
- 时区名称不区分大小写(例如,
AMERICA/LOS_ANGELES与america/los_angeles效果相同) - 可以使用任何有效的 Java 时区 ID(请参阅 IANA 时区数据库)
- 如果指定的时区无效,系统将默认使用 UTC 并在控制台记录警告
- 时间格式包含时区缩写(例如 "2026-01-25 10:30:45 PST")
注意:某些占位符在某些事件中不起作用。占位符会自动进行 JSON 转义,因此特殊字符不会破坏您的 webhook 负载。
命令
/dw-reload- 无需重启服务器即可重新加载插件配置- 权限:
discordwebhook.reload - 使用:仅在配置发生更改时重新加载
- 权限:
本项目是开源的:
欢迎贡献或将其改编为您自己的系统!查看 Github
想获取我所有项目的更新?
加入 Discord!立即加入!
正在加载版本记录…



正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。