HexCrystal69/Discord_ORBS
GitHub: HexCrystal69/Discord_ORBS
一款通过在开发者控制台中模拟游戏、直播和视频播放等活动来自动完成 Discord 任务的客户端 JavaScript 自动化工具。
Stars: 0 | Forks: 0
# 🌌 Discord ORBS:自动化 Discord 任务完成器

一款高级的 Discord 客户端自动化实用工具,旨在直接通过 Discord 应用程序或 Web 浏览器的开发者控制台,自动完成处于活动状态的 **Discord 任务**。
通过 Webpack chunk 提取,这些脚本能动态模拟运行游戏、直播活动、视频播放和活跃的语音通话,只需几分钟即可满足当前 Discord 任务的要求——无需安装或运行任何实际游戏。
## 🚀 核心功能
* **⚡ 多功能合一自动化**:自动检测并完成多种类型的任务,包括游戏游玩时长、直播时长、观看宣传视频以及语音频道活动。
* **🔄 基于队列的处理 ([orbs-1.js](file:///d:/Mini/Discord_ORBS/orbs-1.js))**:在队列中自动遍历所有已加入、未完成且未过期的任务,无需用户干预即可逐一完成。
* **🛠️ 稳健的模块选择器回退机制 ([orbs-1.js](file:///d:/Mini/Discord_ORBS/orbs-1.js))**:针对 Discord 客户端更新内置了强大的错误处理功能,可在回退导出路径(`Z`/`A`, `ZP`/`Ay` 等)之间自动切换,以精准定位 Webpack 模块。
* **🛡️ 轻量级且原生**:使用原生 JavaScript 编写,零外部依赖。直接挂钩到正在运行的 Discord 客户端的活跃状态中。
## 📂 文件对比
本仓库提供了两种实现方式:
| 功能 | 🌟 [orbs-1.js](file:///d:/Mini/Discord_ORBS/orbs-1.js)(推荐) | [orbs-2.js](file:///d:/Mini/Discord_ORBS/orbs-2.js)(旧版/精简版) |
| :--- | :--- | :--- |
| **多任务处理** | **是**(按顺序遍历所有可用任务) | **否**(仅处理找到的第一个任务) |
| **Webpack 兼容性** | **高**(对已更新的模块布局实施动态回退检查) | **低**(静态选择器;如果 Discord 更新内部变量将会失效) |
| **视频进度循环** | 增强的计时和重试验证检查 | 简单的顺序间隔 |
| **目标受众** | 拥有多个活跃任务并寻求稳健解决方案的用户 | 单任务场景 / 参考代码 |
## 🛠️ 工作原理(技术架构)
这些脚本会拦截 Discord 的 React/Flux 架构的内部状态。它们通过客户端脚本和浏览器 DevTools 来实现这一点:
### 1. Webpack Chunk 劫持
为了访问 Discord 的私有存储,脚本将一个包含回调符号的虚假 chunk 推送到全局 `webpackChunkdiscord_app` 数组中。此回调的第三个参数是 Webpack 的模块解析器 `r`:
```
let wpRequire = webpackChunkdiscord_app.push([[Symbol()], {}, r => r]);
webpackChunkdiscord_app.pop();
```
提取出 `wpRequire` 后,脚本会扫描内部模块缓存(`wpRequire.c`)以定位核心 Discord 模块:
* `QuestsStore`:检索有关当前任务登记、进度和配置的信息。
* `RunningGameStore`:管理对运行中游戏的检测。
* `ApplicationStreamingStore`:控制语音频道的视频流元数据。
* `ChannelStore` & `GuildChannelStore`:提供对私有频道和服务器的访问权限。
* `FluxDispatcher`:协调通信并分发虚假事件以触发 UI 状态更新。
* `api`:利用 Discord 的内部凭证和 Headers 执行 HTTP 请求。
### 2. 任务模拟机制
根据任务所需的操作,将执行特定的机制:
#### 📺 观看视频 (`WATCH_VIDEO` / `WATCH_VIDEO_ON_MOBILE`)
脚本会识别视频时长要求,计算所需的进度,并直接向以下地址发出模拟进度的 HTTP POST 请求:
`/quests/{quest_id}/video-progress`
它会在后台模拟视频播放进度,不断更新 Discord 服务器,直到 API 报告任务已完成。
#### 🎮 玩游戏 (`PLAY_ON_DESKTOP`)
在 Discord 桌面版应用程序中,脚本会覆盖内部的游戏检测存储:
* 暂时挂钩 `RunningGameStore.getRunningGames` 和 `RunningGameStore.getGameForPID`,以返回与任务游戏 ID 匹配的模拟游戏描述符。
* 通过 `FluxDispatcher` 分发 `RUNNING_GAMES_CHANGE` 操作。
* 订阅 `QUESTS_SEND_HEARTBEAT_SUCCESS` 分发器操作以监控进度直到完成,然后恢复原始的存储函数。
#### 📹 直播游戏 (`STREAM_ON_DESKTOP`)
脚本模拟在语音频道中进行游戏直播:
* 挂钩 `ApplicationStreamingStore.getStreamerActiveStreamMetadata` 以报告目标任务游戏正在进行直播。
* 监控进度更新,并在达到目标时长时恢复原始函数。
* *注意:这要求你处于一个至少有另一名参与者的语音频道中。*
#### 🎙️ 游玩活动 (`PLAY_ACTIVITY`)
脚本会定位你的第一个私人私信频道或语音服务器频道,建立流密钥表示形式(`call:channel_id:1`),并定期向以下地址广播心跳 POST 请求:
`/quests/{quest_id}/heartbeat`
它会每 20 秒持续发送心跳、更新进度,并在达到目标时长时发送结束心跳以完成任务。
## 📖 使用说明
### 前置条件
1. 在浏览器中打开你的 Discord 应用(桌面版)或 Discord 网页版。
2. 导航至 **用户设置 > 礼品库存 / 任务**,并确保你已**加入**(点击“接受任务”)你希望完成的任务。
### 第 1 步:打开开发者控制台
* **Discord 网页版**:按 `F12` 或 `Ctrl + Shift + I` (Windows/Linux) / `Cmd + Option + I` (macOS),然后切换到 **控制台** 标签页。
* **Discord 桌面客户端**:
要在官方 Discord 桌面客户端中打开开发者工具,你需要通过 Discord 的本地配置文件(`settings.json`)启用它:
1. 完全关闭 Discord(确保已从系统托盘/任务管理器中关闭)。
2. 在你的系统上找到 `settings.json` 文件:
* **Windows**:按 `Win + R`,输入 `%appdata%\discord` 并按 `Enter`。
* **macOS**:打开访达,按 `Cmd + Shift + G`,并粘贴 `~/Library/Application Support/discord`。
* **Linux**:检查 `~/.config/discord`。
3. 在文本编辑器(例如记事本、VS Code)中打开 `settings.json`,并添加或修改 `"DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING"` 键,将其设置为 `true`。或者,你可以使用以下配置替换文件内容:
{
"IS_MAXIMIZED": true,
"IS_MINIMIZED": false,
"WINDOW_BOUNDS": {
"x": 112,
"y": 60,
"width": 1284,
"height": 724
},
"DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING": true,
"MIN_WIDTH": 940,
"MIN_HEIGHT": 500,
"chromiumSwitches": {}
}
4. 保存文件并重启 Discord。
5. 在桌面应用程序中按 `Ctrl + Shift + I`(或在 macOS 上按 `Cmd + Option + I`)打开开发者工具。
6. 切换到 **控制台** 标签页。
7. *注意:粘贴代码时 Discord 可能会显示安全警告。如果出现提示,请在控制台提示符中输入 `allow pasting` 以解锁粘贴功能。*
### 第 2 步:运行脚本
1. 复制 [orbs-1.js](file:///d:/Mini/Discord_ORBS/orbs-1.js) 的全部内容。
2. 将其粘贴到 Discord 控制台中。
3. 按 `Enter`。
### 第 3 步:监控进度
* 脚本会在控制台中打印详细日志,显示它当前正在模拟哪个任务。
* 它会记录进度状态更新(例如 `Quest progress: 120/900`)。
* 完成后,你可以从 **礼品库存** 标签页领取你的奖励。
## ⚠️ 重要免责声明与警告
标签:CMS安全, Discord, JavaScript, Webpack, 云资产清单, 响应拦截, 数字取证, 数据可视化, 自动化脚本, 自定义脚本, 逆向工程