Discord
Macro Deck 自带在面板上控制 Discord:静音、拒听、加入语音频道、更改语音设置,以及通过 Webhook 发布消息。
“连接 Discord”对话框,包含“客户端 ID”和“客户端密钥”字段
- 显示真实状态的静音和拒听按键
- 加入或离开语音频道,打开文字频道
- 设置麦克风和输出音量、语音模式和语音处理
- 在个人资料上显示自定义的 Rich Presence 活动
- 通过 Webhook 向频道发布消息和嵌入内容
Discord 集成将 Macro Deck 连接到同一台电脑上的官方 Discord 桌面应用。它使用 Discord 的本地 RPC 接口,也就是 Discord 为控制客户端的应用提供的接口,因此按键的效果就像亲自在 Discord 中点击一样。Discord 只向你自己拥有的应用开放这种访问权限,所以设置时需要在 Discord Developer Portal 中创建一个免费应用并授权一次。
可以做什么
- 使用 麦克风静音 和 拒听 将自己静音或拒听。按键会显示是否处于静音状态,在 Discord 中静音时也是如此。
- 加入某个服务器上的语音频道、离开当前语音频道,或在 Discord 应用中打开文字频道。
- 设置、增大或减小麦克风和输出音量,在 按键说话 和 语音激活 之间切换,并开启或关闭标准降噪、回声消除和自动增益控制。
- 使用 设置 Rich Presence 在个人资料上显示自定义活动,并使用 清除 Rich Presence 将其移除。
- 使用 执行 Webhook 通过 Webhook 向任意频道发布消息,可附带嵌入内容。只要集成已启用,此动作无需设置集成即可使用。
一些示例设置:
- 一个 麦克风 按键,使用 切换 模式的 麦克风静音,其颜色跟随
discord_is_self_muted变量变化。 - 一个加入团队语音频道的按键,并开启 如果我已连接,则将我移过去,这样在其他频道中时也能使用。
- 一个由 麦克风已静默 触发器触发的流程打开红灯,另一个由 麦克风已开启 触发的流程再将其关闭。
- 一个通过 Webhook 发布“直播已开始”及频道链接的按键。
运行方式
Macro Deck 启动时会连接 Discord,并在关闭并重新打开 Discord 后自动重新连接,每次尝试失败后等待的时间会稍长一些,最长一分钟。此时会触发 已连接 和 已断开连接 触发器。Discord 未连接期间,除 discord_is_connected 外的变量都显示为不可用。在 Discord 中所做的更改以及管理员的静音操作会立即反映在变量和触发器中。可以设置一个 Discord 账户。
准备工作
- 官方 Discord 桌面应用,与 Macro Deck 运行在同一台电脑上。在 Linux 上,Flatpak 和 Snap 版本也可以使用。
- 一个 Discord 账户,以及在 Discord Developer Portal 中创建的一个属于你的免费应用。
- Macro Deck 和 Discord 以相同的权限启动(两者都不以管理员身份运行,或都以管理员身份运行)。
- 仅用于 执行 Webhook:一个频道的 Webhook URL。它需要启用集成,但无需任何设置。
设置步骤
第 1 步: 创建 Discord 应用
打开 Discord Developer Portal 并创建一个新应用。名称无关紧要。从 General Information 中复制 Application ID:这就是 客户端 ID。
第 2 步: 添加重定向 URI 并复制密钥
在应用中打开 OAuth2。添加
http://localhost/作为重定向地址并保存。这个地址永远不会被打开,Discord 只检查它是否已注册。然后复制 Client Secret(如果 Discord 不显示,请重置它)。第 3 步: 在 Macro Deck 中打开 Discord
确保 Discord 桌面应用正在运行。在 Macro Deck 中,点击侧边栏中的 集成,然后点击 Discord。
第 4 步: 输入客户端 ID 和客户端密钥
在 概览 选项卡的 配置 部分中点击 设置。打开右上角的开关也会打开同一个对话框。在 连接 Discord 对话框中粘贴 客户端 ID 和 客户端密钥,然后点击 继续。
第 5 步: 在 Discord 中授权
在 在 Discord 中授权 步骤中点击 继续。Discord 会显示你的应用的授权提示:接受它。Macro Deck 会以 Discord 加括号内的用户名保存该连接,并启用集成。
第 6 步: 为按键添加动作
在 面板 页面上点击一个按键。面板必须处于解锁状态:右上角显示 锁定 按钮时,面板即为解锁状态。编辑器打开时已选中 短按。点击 + 添加动作,在 添加动作 对话框左侧选择 Discord,选择 麦克风静音,并将 动作 设为 切换。
第 7 步: 按下按键
在面板上按下该按键。Discord 会将麦克风静音,按键会一直显示静音状态,直到在面板上或 Discord 中取消静音。
动作14
可以放在按键上,也可以在流程中运行。
- 麦克风静音
- 将麦克风静音、取消静音或切换静音状态。
- 拒听
- 拒听、取消拒听或切换拒听状态。
- 标准降噪
- 开启或关闭 Discord 的标准降噪。无法控制 Krisp。
- 回声消除
- 开启或关闭 Discord 的回声消除。
- 自动增益控制
- 开启或关闭自动增益控制。
- 设置语音模式
- 在按键说话和语音激活之间切换,或在两者之间来回切换。
- 设置麦克风音量
- 设置、增大或减小 Discord 的麦克风音量。
- 设置输出音量
- 设置、增大或减小 Discord 的输出音量,最高 200%。
- 加入语音频道
- 将你连接到某个服务器上的语音频道,可选择从其他频道移过去。
- 离开语音频道
- 断开与当前语音频道的连接。
- 打开文字频道
- 在 Discord 应用中打开文字频道。
- 设置 Rich Presence
- 在个人资料上显示自定义活动(正在玩、正在听、正在观看或正在参加),包含详情、图片和已用时间。
- 清除 Rich Presence
- 移除 Macro Deck 在个人资料上设置的活动。
- 执行 Webhook
- 通过 Webhook URL 向频道发送消息,可附带嵌入内容。无需设置即可使用。
触发器18
按键或流程可以对这些事件做出响应。
- 已连接
- Macro Deck 已连接到 Discord 应用。
- 已断开连接
- Discord 应用已关闭,或连接已中断。
- 麦克风已静音
- 你将自己的麦克风静音了。
- 麦克风已取消静音
- 你取消了自己麦克风的静音。
- 已拒听
- 你将自己设为拒听。
- 已取消拒听
- 你取消了自己的拒听。
- 服务器静音
- 管理员将你静音了。
- 服务器取消静音
- 管理员取消了你的静音。
- 服务器拒听
- 管理员将你设为拒听。
- 服务器取消拒听
- 管理员取消了你的拒听。
- 麦克风已静默
- 麦克风因任何原因停止传输声音:你或管理员进行了静音或拒听。
- 麦克风已开启
- 麦克风可以重新传输声音:没有任何静音或拒听生效。
- 已加入语音频道
- 你加入了一个语音频道,可选择仅限某个特定频道。
- 已离开语音频道
- 你离开了一个语音频道,可选择仅限某个特定频道。
- 语音连接状态已更改
- Discord 的语音连接状态发生变化,例如变为
VOICE_CONNECTED,并附带平均延迟。 - 有人开始说话
- 当前语音频道中有人开始说话,并说明是否为你。
- 有人停止说话
- 当前语音频道中有人停止说话,并说明是否为你。
- 收到通知
- Discord 显示了一条桌面通知,附带其标题和正文。
变量11
在按键和组件上显示这些值,或在条件中使用它们。
discord_is_connected- Macro Deck 是否已连接到 Discord 应用。
discord_user_name- 已连接账户的名称。
discord_is_self_muted,discord_is_self_deafened- 你是否将自己静音或拒听。
discord_is_server_muted,discord_is_server_deafened- 管理员是否将你静音或拒听。
discord_is_muted,discord_is_deafened- 你是否因任何原因处于静音或拒听状态。
discord_is_speaking- 你当前是否正在说话。
discord_is_in_voice_channel,discord_voice_channel,discord_voice_server- 你是否在语音频道中,以及该频道及其服务器的名称。
discord_voice_connection_state,discord_voice_ping- 语音连接的状态及其平均延迟(毫秒)。
discord_input_volume,discord_output_volume- Discord 的输入和输出音量百分比。也可以设置它们,例如通过滑块。
discord_voice_mode- Discord 使用按键说话还是语音激活。
discord_noise_suppression,discord_echo_cancellation,discord_automatic_gain_control- 降噪、回声消除和自动增益控制是否开启。
常见问题解答
为什么需要自己的 Discord 应用?
Discord 只向你所在团队的应用授予控制客户端的权限。自己的应用是免费的,Macro Deck 只使用其 客户端 ID 和 客户端密钥 向 Discord 进行授权。
它能与 Vesktop、Legcord 或其他 Discord 客户端配合使用吗?
不能。第三方客户端可以共享游戏活动,但 Macro Deck 无法控制它们。请启动官方 Discord 桌面应用;其他客户端可以同时继续运行。
Discord 运行在另一台电脑上时能用吗?
不能。Macro Deck 通过本地连接与 Discord 通信,因此 Discord 必须运行在运行 Macro Deck 的电脑上。只有 执行 Webhook 无需 Discord 应用即可使用。
设置提示 Discord 拒绝了连接,是哪里出了问题?
Macro Deck 和 Discord 以不同的权限运行,例如其中一个是通过 以管理员身份运行 启动的。请以相同方式启动两者,然后重试。
某项语音设置没有变化,为什么?
可能有另一个连接到 Discord 的应用占用了语音设置,或者 Krisp 启用时 Discord 会忽略高级语音设置。请关闭其他控制 Discord 的应用,在 Discord 的 语音和视频 设置中手动更改一次该设置,然后再次运行动作。
我的凭据存储在哪里?
客户端密钥 和 Discord 返回的令牌加密存储在电脑上,只会发送给 Discord。当 Discord 不再接受已存储的授权时,集成会显示 Discord 授权已过期 以及 重新连接 按钮。
“聊天和语音”分类中的更多集成
Discord Webhook
Macro Deck 自带通过 Webhook 向 Discord 频道发布带有嵌入和提及的丰富消息,并提供实时预览。
SinusBot
Macro Deck 自带控制 SinusBot 实例播放的音乐,并在面板上显示正在播放的内容。