@zhin.js/adapter-discord 3.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/README.md +6 -6
- package/client/Dashboard.tsx +33 -33
- package/dist/index.js +1 -1
- package/lib/adapter.d.ts +14 -13
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +50 -49
- package/lib/adapter.js.map +1 -1
- package/lib/{bot-interactions.d.ts → endpoint-interactions.d.ts} +4 -4
- package/lib/endpoint-interactions.d.ts.map +1 -0
- package/lib/{bot-interactions.js → endpoint-interactions.js} +4 -4
- package/lib/endpoint-interactions.js.map +1 -0
- package/lib/{bot.d.ts → endpoint.d.ts} +4 -4
- package/lib/endpoint.d.ts.map +1 -0
- package/lib/{bot.js → endpoint.js} +73 -42
- package/lib/endpoint.js.map +1 -0
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +78 -71
- package/lib/index.js.map +1 -1
- package/lib/platform-permit.d.ts +16 -0
- package/lib/platform-permit.d.ts.map +1 -0
- package/lib/platform-permit.js +50 -0
- package/lib/platform-permit.js.map +1 -0
- package/lib/types.d.ts +3 -3
- package/lib/types.d.ts.map +1 -1
- package/package.json +11 -9
- package/skills/discord/PERMITS.md +25 -0
- package/skills/discord/SKILL.md +1 -1
- package/src/adapter.ts +48 -46
- package/src/{bot-interactions.ts → endpoint-interactions.ts} +5 -5
- package/src/{bot.ts → endpoint.ts} +73 -43
- package/src/index.ts +82 -70
- package/src/platform-permit.ts +65 -0
- package/src/types.ts +3 -3
- package/lib/bot-interactions.d.ts.map +0 -1
- package/lib/bot-interactions.js.map +0 -1
- package/lib/bot.d.ts.map +0 -1
- package/lib/bot.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,26 @@
|
|
|
1
1
|
# @zhin.js/adapter-discord
|
|
2
2
|
|
|
3
|
+
## 4.0.0
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- zhin.js@3.0.0
|
|
8
|
+
- @zhin.js/host-api@2.0.0
|
|
9
|
+
- @zhin.js/host-router@2.0.0
|
|
10
|
+
|
|
11
|
+
## 3.0.1
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- d8def69: fix: 性能优化
|
|
16
|
+
- 2ef4896: fix: 更新概念 Bot=>Endpoint,已适配后续更多的业务场景;统一角色权限
|
|
17
|
+
- Updated dependencies [d8def69]
|
|
18
|
+
- Updated dependencies [2ef4896]
|
|
19
|
+
- @zhin.js/host-router@1.0.1
|
|
20
|
+
- @zhin.js/host-api@1.0.1
|
|
21
|
+
- zhin.js@2.0.1
|
|
22
|
+
- @zhin.js/client@2.0.3
|
|
23
|
+
|
|
3
24
|
## 3.0.0
|
|
4
25
|
|
|
5
26
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -21,7 +21,7 @@ Interactions 模式需同时启用 `@zhin.js/host-router`。
|
|
|
21
21
|
|
|
22
22
|
## 配置
|
|
23
23
|
|
|
24
|
-
所有
|
|
24
|
+
所有 Endpoint 使用 **同一 context:`discord`**,通过 **`connection`** 区分连接方式。
|
|
25
25
|
|
|
26
26
|
### Gateway(connection: gateway,默认)
|
|
27
27
|
|
|
@@ -29,7 +29,7 @@ Interactions 模式需同时启用 `@zhin.js/host-router`。
|
|
|
29
29
|
plugins:
|
|
30
30
|
- "@zhin.js/adapter-discord"
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
endpoints:
|
|
33
33
|
- context: discord
|
|
34
34
|
connection: gateway
|
|
35
35
|
name: my-discord-bot
|
|
@@ -44,7 +44,7 @@ plugins:
|
|
|
44
44
|
- "@zhin.js/host-router"
|
|
45
45
|
- "@zhin.js/adapter-discord"
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
endpoints:
|
|
48
48
|
- context: discord
|
|
49
49
|
connection: interactions
|
|
50
50
|
name: my-discord-bot
|
|
@@ -60,7 +60,7 @@ bots:
|
|
|
60
60
|
|
|
61
61
|
| 模式 | 适用场景 | 依赖 |
|
|
62
62
|
|------|----------|------|
|
|
63
|
-
| **gateway** | 常规 Bot:读消息、群管、Gateway 事件 |
|
|
63
|
+
| **gateway** | 常规 Bot:读消息、群管、Gateway 事件 | Endpoint Token + Intents |
|
|
64
64
|
| **interactions** | 仅需斜杠命令 / 交互组件,或 Gateway 与 HTTP 并存 | `@zhin.js/host-router` + Application ID + Public Key |
|
|
65
65
|
|
|
66
66
|
Gateway 需开启 **MESSAGE CONTENT INTENT**;Interactions 须在 Developer Portal 配置 **Interactions Endpoint URL**(指向 `interactionsPath`)。
|
|
@@ -105,9 +105,9 @@ addMiddleware(async (message, next) => {
|
|
|
105
105
|
## Discord 开发者配置
|
|
106
106
|
|
|
107
107
|
1. 前往 [Discord Developer Portal](https://discord.com/developers/applications)
|
|
108
|
-
2. 创建应用并获取
|
|
108
|
+
2. 创建应用并获取 Endpoint Token
|
|
109
109
|
3. 开启 **MESSAGE CONTENT INTENT**(需要读取消息内容)
|
|
110
|
-
4. 通过 OAuth2 URL 邀请
|
|
110
|
+
4. 通过 OAuth2 URL 邀请 Endpoint 加入服务器
|
|
111
111
|
5. Interactions 模式还需配置 Interactions Endpoint URL
|
|
112
112
|
|
|
113
113
|
## 许可证
|
package/client/Dashboard.tsx
CHANGED
|
@@ -2,7 +2,7 @@ import { useEffect, useState, useCallback } from 'react'
|
|
|
2
2
|
import { apiFetch } from './utils/api'
|
|
3
3
|
import { RefreshCw, Server, Wifi, WifiOff, Power, PowerOff, Users, Loader2, Globe } from 'lucide-react'
|
|
4
4
|
|
|
5
|
-
interface
|
|
5
|
+
interface EndpointRow {
|
|
6
6
|
name: string
|
|
7
7
|
connected: boolean
|
|
8
8
|
mode: string
|
|
@@ -22,14 +22,14 @@ interface GuildInfo {
|
|
|
22
22
|
type Tab = 'overview' | 'guilds'
|
|
23
23
|
|
|
24
24
|
export default function DiscordDashboard() {
|
|
25
|
-
const [
|
|
25
|
+
const [endpoints, setEndpoints] = useState<EndpointRow[]>([])
|
|
26
26
|
const [loading, setLoading] = useState(true)
|
|
27
27
|
const [error, setError] = useState('')
|
|
28
28
|
const [tab, setTab] = useState<Tab>('overview')
|
|
29
29
|
const [actionLoading, setActionLoading] = useState<Record<string, boolean>>({})
|
|
30
30
|
|
|
31
31
|
// Guild browser state
|
|
32
|
-
const [
|
|
32
|
+
const [selectedEndpoint, setSelectedEndpoint] = useState('')
|
|
33
33
|
const [guilds, setGuilds] = useState<GuildInfo[]>([])
|
|
34
34
|
const [guildsLoading, setGuildsLoading] = useState(false)
|
|
35
35
|
|
|
@@ -37,9 +37,9 @@ export default function DiscordDashboard() {
|
|
|
37
37
|
setLoading(true)
|
|
38
38
|
setError('')
|
|
39
39
|
try {
|
|
40
|
-
const res = await apiFetch('/api/discord/
|
|
40
|
+
const res = await apiFetch('/api/discord/endpoints')
|
|
41
41
|
const json = await res.json()
|
|
42
|
-
if (json.success)
|
|
42
|
+
if (json.success) setEndpoints(json.data)
|
|
43
43
|
else setError(json.error || '获取数据失败')
|
|
44
44
|
} catch {
|
|
45
45
|
setError('无法连接服务器')
|
|
@@ -54,7 +54,7 @@ export default function DiscordDashboard() {
|
|
|
54
54
|
setActionLoading(prev => ({ ...prev, [name]: true }))
|
|
55
55
|
try {
|
|
56
56
|
const endpoint = connected ? 'disconnect' : 'connect'
|
|
57
|
-
const res = await apiFetch(`/api/discord/
|
|
57
|
+
const res = await apiFetch(`/api/discord/endpoints/${encodeURIComponent(name)}/${endpoint}`, { method: 'POST' })
|
|
58
58
|
const json = await res.json()
|
|
59
59
|
if (!json.success) setError(json.error || '操作失败')
|
|
60
60
|
await fetchData()
|
|
@@ -65,12 +65,12 @@ export default function DiscordDashboard() {
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
const loadGuilds = async (
|
|
69
|
-
|
|
68
|
+
const loadGuilds = async (endpointName: string) => {
|
|
69
|
+
setSelectedEndpoint(endpointName)
|
|
70
70
|
setGuildsLoading(true)
|
|
71
71
|
setGuilds([])
|
|
72
72
|
try {
|
|
73
|
-
const res = await apiFetch(`/api/discord/
|
|
73
|
+
const res = await apiFetch(`/api/discord/endpoints/${encodeURIComponent(endpointName)}/guilds`)
|
|
74
74
|
const json = await res.json()
|
|
75
75
|
if (json.success) setGuilds(json.data)
|
|
76
76
|
else setError(json.error || '获取服务器列表失败')
|
|
@@ -81,7 +81,7 @@ export default function DiscordDashboard() {
|
|
|
81
81
|
}
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
const
|
|
84
|
+
const gatewayEndpoints = endpoints.filter((e) => e.connected && e.mode === 'gateway')
|
|
85
85
|
|
|
86
86
|
return (
|
|
87
87
|
<div className="p-6 max-w-5xl mx-auto">
|
|
@@ -112,36 +112,36 @@ export default function DiscordDashboard() {
|
|
|
112
112
|
{/* Overview Tab */}
|
|
113
113
|
{tab === 'overview' && (
|
|
114
114
|
<>
|
|
115
|
-
{!loading && !
|
|
116
|
-
<div className="text-center text-gray-500 py-12">暂无 Discord
|
|
115
|
+
{!loading && !endpoints.length && !error && (
|
|
116
|
+
<div className="text-center text-gray-500 py-12">暂无 Discord Endpoint 实例</div>
|
|
117
117
|
)}
|
|
118
118
|
<div className="grid gap-4 md:grid-cols-2">
|
|
119
|
-
{
|
|
120
|
-
<div key={
|
|
119
|
+
{endpoints.map((endpoint) => (
|
|
120
|
+
<div key={endpoint.name} className="border rounded-lg p-4 bg-card shadow-sm">
|
|
121
121
|
<div className="flex items-center justify-between mb-3">
|
|
122
|
-
<span className="font-medium text-lg">{
|
|
123
|
-
{
|
|
122
|
+
<span className="font-medium text-lg">{endpoint.name}</span>
|
|
123
|
+
{endpoint.connected
|
|
124
124
|
? <span className="flex items-center gap-1 text-green-600 text-sm"><Wifi className="w-4 h-4" /> 在线</span>
|
|
125
125
|
: <span className="flex items-center gap-1 text-gray-400 text-sm"><WifiOff className="w-4 h-4" /> 离线</span>}
|
|
126
126
|
</div>
|
|
127
|
-
{
|
|
127
|
+
{endpoint.user && <div className="text-sm text-gray-500 mb-2">@{endpoint.user.tag}</div>}
|
|
128
128
|
<div className="grid grid-cols-2 gap-2 text-sm text-gray-600 mb-3">
|
|
129
|
-
<div className="flex justify-between"><span>模式</span><span className="font-mono">{
|
|
130
|
-
<div className="flex justify-between"><span>服务器</span><span className="font-mono">{
|
|
131
|
-
<div className="flex justify-between"><span>频道</span><span className="font-mono">{
|
|
129
|
+
<div className="flex justify-between"><span>模式</span><span className="font-mono">{endpoint.mode}</span></div>
|
|
130
|
+
<div className="flex justify-between"><span>服务器</span><span className="font-mono">{endpoint.guildCount}</span></div>
|
|
131
|
+
<div className="flex justify-between"><span>频道</span><span className="font-mono">{endpoint.channelCount}</span></div>
|
|
132
132
|
</div>
|
|
133
133
|
<div className="flex gap-2">
|
|
134
134
|
<button
|
|
135
|
-
onClick={() => toggleConnect(
|
|
136
|
-
disabled={actionLoading[
|
|
137
|
-
className={`flex items-center gap-1 px-3 py-1.5 rounded text-sm text-white ${
|
|
138
|
-
{actionLoading[
|
|
135
|
+
onClick={() => toggleConnect(endpoint.name, endpoint.connected)}
|
|
136
|
+
disabled={actionLoading[endpoint.name]}
|
|
137
|
+
className={`flex items-center gap-1 px-3 py-1.5 rounded text-sm text-white ${endpoint.connected ? 'bg-red-500 hover:bg-red-600' : 'bg-green-500 hover:bg-green-600'} disabled:opacity-50`}>
|
|
138
|
+
{actionLoading[endpoint.name]
|
|
139
139
|
? <Loader2 className="w-3.5 h-3.5 animate-spin" />
|
|
140
|
-
:
|
|
141
|
-
{
|
|
140
|
+
: endpoint.connected ? <PowerOff className="w-3.5 h-3.5" /> : <Power className="w-3.5 h-3.5" />}
|
|
141
|
+
{endpoint.connected ? '断开' : '连接'}
|
|
142
142
|
</button>
|
|
143
|
-
{
|
|
144
|
-
<button onClick={() => { setTab('guilds'); loadGuilds(
|
|
143
|
+
{endpoint.connected && endpoint.mode === 'gateway' && (
|
|
144
|
+
<button onClick={() => { setTab('guilds'); loadGuilds(endpoint.name) }}
|
|
145
145
|
className="flex items-center gap-1 px-3 py-1.5 rounded text-sm bg-gray-100 hover:bg-gray-200 text-gray-700">
|
|
146
146
|
<Globe className="w-3.5 h-3.5" /> 查看服务器
|
|
147
147
|
</button>
|
|
@@ -156,18 +156,18 @@ export default function DiscordDashboard() {
|
|
|
156
156
|
{/* Guilds Tab */}
|
|
157
157
|
{tab === 'guilds' && (
|
|
158
158
|
<div>
|
|
159
|
-
{
|
|
159
|
+
{gatewayEndpoints.length > 0 && (
|
|
160
160
|
<div className="mb-4 flex items-center gap-2">
|
|
161
161
|
<label className="text-sm text-gray-500">选择机器人:</label>
|
|
162
|
-
<select value={
|
|
162
|
+
<select value={selectedEndpoint} onChange={(e) => loadGuilds(e.target.value)}
|
|
163
163
|
className="border rounded px-2 py-1 text-sm">
|
|
164
164
|
<option value="">--</option>
|
|
165
|
-
{
|
|
165
|
+
{gatewayEndpoints.map((e) => <option key={e.name} value={e.name}>{e.name}</option>)}
|
|
166
166
|
</select>
|
|
167
167
|
<span className="text-xs text-gray-400 ml-2">仅 Gateway 模式支持</span>
|
|
168
168
|
</div>
|
|
169
169
|
)}
|
|
170
|
-
{!
|
|
170
|
+
{!gatewayEndpoints.length && <div className="text-center text-gray-500 py-8">暂无 Gateway 模式在线 Endpoint</div>}
|
|
171
171
|
{guildsLoading && <div className="flex justify-center py-8"><Loader2 className="w-6 h-6 animate-spin text-indigo-500" /></div>}
|
|
172
172
|
|
|
173
173
|
{!guildsLoading && guilds.length > 0 && (
|
|
@@ -187,7 +187,7 @@ export default function DiscordDashboard() {
|
|
|
187
187
|
))}
|
|
188
188
|
</div>
|
|
189
189
|
)}
|
|
190
|
-
{!guildsLoading &&
|
|
190
|
+
{!guildsLoading && selectedEndpoint && !guilds.length && <div className="text-center text-gray-400 py-8">该机器人未加入任何服务器</div>}
|
|
191
191
|
</div>
|
|
192
192
|
)}
|
|
193
193
|
</div>
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{useEffect as pe,useState as p,useCallback as me}from"react";var V="zhin_api_token",J="zhin_api_base";function _(){let t=localStorage.getItem(J)?.trim();return t?t.replace(/\/$/,""):typeof window<"u"?window.location.origin:""}function j(){return localStorage.getItem(V)}async function T(t,u){let l=j(),s=new Headers(u?.headers);l&&s.set("Authorization",`Bearer ${l}`);let r=_(),f=typeof t=="string"&&t.startsWith("/")?`${r}${t}`:t,i=await fetch(f,{...u,headers:s});return i.status===401&&(localStorage.removeItem(V),window.dispatchEvent(new CustomEvent("zhin:auth-required"))),i}import{forwardRef as te,createElement as oe}from"react";var q=(...t)=>t.filter((u,l,s)=>!!u&&u.trim()!==""&&s.indexOf(u)===l).join(" ").trim();var E=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var z=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(u,l,s)=>s?s.toUpperCase():l.toLowerCase());var O=t=>{let u=z(t);return u.charAt(0).toUpperCase()+u.slice(1)};import{forwardRef as ae,createElement as K}from"react";var b={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var N=t=>{for(let u in t)if(u.startsWith("aria-")||u==="role"||u==="title")return!0;return!1};import{createContext as $,useContext as Y,useMemo as Be,createElement as Me}from"react";var ee=$({});var X=()=>Y(ee);var Z=ae(({color:t,size:u,strokeWidth:l,absoluteStrokeWidth:s,className:r="",children:f,iconNode:i,...m},D)=>{let{size:L=24,strokeWidth:C=2,absoluteStrokeWidth:v=!1,color:h="currentColor",className:R=""}=X()??{},g=s??v?Number(l??C)*24/Number(u??L):l??C;return K("svg",{ref:D,...b,width:u??L??b.width,height:u??L??b.height,stroke:t??h,strokeWidth:g,className:q("lucide",R,r),...!f&&!N(m)&&{"aria-hidden":"true"},...m},[...i.map(([y,I])=>K(y,I)),...Array.isArray(f)?f:[f]])});var d=(t,u)=>{let l=te(({className:s,...r},f)=>oe(Z,{ref:f,iconNode:u,className:q(`lucide-${E(O(t))}`,`lucide-${t}`,s),...r}));return l.displayName=O(t),l};var ue=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],S=d("globe",ue);var de=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],n=d("loader-circle",de);var le=[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],k=d("power-off",le);var fe=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],w=d("power",fe);var se=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],P=d("refresh-cw",se);var re=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],A=d("server",re);var ie=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],B=d("users",ie);var ce=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],M=d("wifi-off",ce);var ne=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],F=d("wifi",ne);import{Fragment as Le,jsx as a,jsxs as o}from"react/jsx-runtime";function H(){let[t,u]=p([]),[l,s]=p(!0),[r,f]=p(""),[i,m]=p("overview"),[D,L]=p({}),[C,v]=p(""),[h,R]=p([]),[g,y]=p(!1),I=me(async()=>{s(!0),f("");try{let x=await(await T("/api/discord/bots")).json();x.success?u(x.data):f(x.error||"\u83B7\u53D6\u6570\u636E\u5931\u8D25")}catch{f("\u65E0\u6CD5\u8FDE\u63A5\u670D\u52A1\u5668")}finally{s(!1)}},[]);pe(()=>{I()},[I]);let Q=async(e,x)=>{L(c=>({...c,[e]:!0}));try{let c=x?"disconnect":"connect",W=await(await T(`/api/discord/bots/${encodeURIComponent(e)}/${c}`,{method:"POST"})).json();W.success||f(W.error||"\u64CD\u4F5C\u5931\u8D25"),await I()}catch{f("\u64CD\u4F5C\u5931\u8D25")}finally{L(c=>({...c,[e]:!1}))}},G=async e=>{v(e),y(!0),R([]);try{let c=await(await T(`/api/discord/bots/${encodeURIComponent(e)}/guilds`)).json();c.success?R(c.data):f(c.error||"\u83B7\u53D6\u670D\u52A1\u5668\u5217\u8868\u5931\u8D25")}catch{f("\u83B7\u53D6\u670D\u52A1\u5668\u5217\u8868\u5931\u8D25")}finally{y(!1)}},U=t.filter(e=>e.connected&&e.mode==="gateway");return o("div",{className:"p-6 max-w-5xl mx-auto",children:[o("div",{className:"flex items-center justify-between mb-6",children:[o("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[a(A,{className:"w-6 h-6"})," Discord \u673A\u5668\u4EBA"]}),o("button",{onClick:I,disabled:l,className:"flex items-center gap-1 px-3 py-1.5 rounded bg-indigo-500 text-white hover:bg-indigo-600 disabled:opacity-50 text-sm",children:[a(P,{className:`w-4 h-4 ${l?"animate-spin":""}`})," \u5237\u65B0"]})]}),r&&a("div",{className:"mb-4 p-3 bg-red-50 text-red-600 rounded border border-red-200",children:r}),o("div",{className:"flex gap-1 mb-6 border-b",children:[a("button",{onClick:()=>m("overview"),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${i==="overview"?"border-indigo-500 text-indigo-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:"\u6982\u89C8"}),a("button",{onClick:()=>m("guilds"),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${i==="guilds"?"border-indigo-500 text-indigo-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:"\u670D\u52A1\u5668\u5217\u8868"})]}),i==="overview"&&o(Le,{children:[!l&&!t.length&&!r&&a("div",{className:"text-center text-gray-500 py-12",children:"\u6682\u65E0 Discord \u673A\u5668\u4EBA\u5B9E\u4F8B"}),a("div",{className:"grid gap-4 md:grid-cols-2",children:t.map(e=>o("div",{className:"border rounded-lg p-4 bg-card shadow-sm",children:[o("div",{className:"flex items-center justify-between mb-3",children:[a("span",{className:"font-medium text-lg",children:e.name}),e.connected?o("span",{className:"flex items-center gap-1 text-green-600 text-sm",children:[a(F,{className:"w-4 h-4"})," \u5728\u7EBF"]}):o("span",{className:"flex items-center gap-1 text-gray-400 text-sm",children:[a(M,{className:"w-4 h-4"})," \u79BB\u7EBF"]})]}),e.user&&o("div",{className:"text-sm text-gray-500 mb-2",children:["@",e.user.tag]}),o("div",{className:"grid grid-cols-2 gap-2 text-sm text-gray-600 mb-3",children:[o("div",{className:"flex justify-between",children:[a("span",{children:"\u6A21\u5F0F"}),a("span",{className:"font-mono",children:e.mode})]}),o("div",{className:"flex justify-between",children:[a("span",{children:"\u670D\u52A1\u5668"}),a("span",{className:"font-mono",children:e.guildCount})]}),o("div",{className:"flex justify-between",children:[a("span",{children:"\u9891\u9053"}),a("span",{className:"font-mono",children:e.channelCount})]})]}),o("div",{className:"flex gap-2",children:[o("button",{onClick:()=>Q(e.name,e.connected),disabled:D[e.name],className:`flex items-center gap-1 px-3 py-1.5 rounded text-sm text-white ${e.connected?"bg-red-500 hover:bg-red-600":"bg-green-500 hover:bg-green-600"} disabled:opacity-50`,children:[D[e.name]?a(n,{className:"w-3.5 h-3.5 animate-spin"}):e.connected?a(k,{className:"w-3.5 h-3.5"}):a(w,{className:"w-3.5 h-3.5"}),e.connected?"\u65AD\u5F00":"\u8FDE\u63A5"]}),e.connected&&e.mode==="gateway"&&o("button",{onClick:()=>{m("guilds"),G(e.name)},className:"flex items-center gap-1 px-3 py-1.5 rounded text-sm bg-gray-100 hover:bg-gray-200 text-gray-700",children:[a(S,{className:"w-3.5 h-3.5"})," \u67E5\u770B\u670D\u52A1\u5668"]})]})]},e.name))})]}),i==="guilds"&&o("div",{children:[U.length>0&&o("div",{className:"mb-4 flex items-center gap-2",children:[a("label",{className:"text-sm text-gray-500",children:"\u9009\u62E9\u673A\u5668\u4EBA\uFF1A"}),o("select",{value:C,onChange:e=>G(e.target.value),className:"border rounded px-2 py-1 text-sm",children:[a("option",{value:"",children:"--"}),U.map(e=>a("option",{value:e.name,children:e.name},e.name))]}),a("span",{className:"text-xs text-gray-400 ml-2",children:"\u4EC5 Gateway \u6A21\u5F0F\u652F\u6301"})]}),!U.length&&a("div",{className:"text-center text-gray-500 py-8",children:"\u6682\u65E0 Gateway \u6A21\u5F0F\u5728\u7EBF\u673A\u5668\u4EBA"}),g&&a("div",{className:"flex justify-center py-8",children:a(n,{className:"w-6 h-6 animate-spin text-indigo-500"})}),!g&&h.length>0&&a("div",{className:"grid gap-3 md:grid-cols-2 lg:grid-cols-3",children:h.map(e=>o("div",{className:"border rounded-lg p-3 bg-card shadow-sm flex items-center gap-3",children:[e.icon?a("img",{src:e.icon,alt:"",className:"w-10 h-10 rounded-full"}):a("div",{className:"w-10 h-10 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-500 font-bold text-sm",children:e.name[0]}),o("div",{className:"flex-1 min-w-0",children:[a("div",{className:"font-medium text-sm truncate",children:e.name}),o("div",{className:"flex items-center gap-1 text-xs text-gray-400",children:[a(B,{className:"w-3 h-3"})," ",e.memberCount," \u6210\u5458"]})]})]},e.id))}),!g&&C&&!h.length&&a("div",{className:"text-center text-gray-400 py-8",children:"\u8BE5\u673A\u5668\u4EBA\u672A\u52A0\u5165\u4EFB\u4F55\u670D\u52A1\u5668"})]})]})}function Sa(t){t.addRoute({path:"/console/discord",name:"Discord",element:t.React.createElement(H,{hostReact:t.React})}),t.addTool({id:"discord",name:"Discord",path:"/console/discord"})}export{Sa as register};
|
|
1
|
+
import{useEffect as pe,useState as p,useCallback as me}from"react";var E="zhin_api_token",J="zhin_api_base";function _(){let t=localStorage.getItem(J)?.trim();return t?t.replace(/\/$/,""):typeof window<"u"?window.location.origin:""}function j(){return localStorage.getItem(E)}async function T(t,u){let l=j(),s=new Headers(u?.headers);l&&s.set("Authorization",`Bearer ${l}`);let r=_(),f=typeof t=="string"&&t.startsWith("/")?`${r}${t}`:t,i=await fetch(f,{...u,headers:s});return i.status===401&&(localStorage.removeItem(E),window.dispatchEvent(new CustomEvent("zhin:auth-required"))),i}import{forwardRef as te,createElement as oe}from"react";var q=(...t)=>t.filter((u,l,s)=>!!u&&u.trim()!==""&&s.indexOf(u)===l).join(" ").trim();var V=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var z=t=>t.replace(/^([A-Z])|[\s-_]+(\w)/g,(u,l,s)=>s?s.toUpperCase():l.toLowerCase());var O=t=>{let u=z(t);return u.charAt(0).toUpperCase()+u.slice(1)};import{forwardRef as ae,createElement as K}from"react";var b={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var N=t=>{for(let u in t)if(u.startsWith("aria-")||u==="role"||u==="title")return!0;return!1};import{createContext as $,useContext as Y,useMemo as Be,createElement as Me}from"react";var ee=$({});var X=()=>Y(ee);var Z=ae(({color:t,size:u,strokeWidth:l,absoluteStrokeWidth:s,className:r="",children:f,iconNode:i,...m},D)=>{let{size:L=24,strokeWidth:C=2,absoluteStrokeWidth:v=!1,color:h="currentColor",className:R=""}=X()??{},g=s??v?Number(l??C)*24/Number(u??L):l??C;return K("svg",{ref:D,...b,width:u??L??b.width,height:u??L??b.height,stroke:t??h,strokeWidth:g,className:q("lucide",R,r),...!f&&!N(m)&&{"aria-hidden":"true"},...m},[...i.map(([y,I])=>K(y,I)),...Array.isArray(f)?f:[f]])});var d=(t,u)=>{let l=te(({className:s,...r},f)=>oe(Z,{ref:f,iconNode:u,className:q(`lucide-${V(O(t))}`,`lucide-${t}`,s),...r}));return l.displayName=O(t),l};var ue=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20",key:"13o1zl"}],["path",{d:"M2 12h20",key:"9i4pu4"}]],S=d("globe",ue);var de=[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]],n=d("loader-circle",de);var le=[["path",{d:"M18.36 6.64A9 9 0 0 1 20.77 15",key:"dxknvb"}],["path",{d:"M6.16 6.16a9 9 0 1 0 12.68 12.68",key:"1x7qb5"}],["path",{d:"M12 2v4",key:"3427ic"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],k=d("power-off",le);var fe=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],w=d("power",fe);var se=[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]],P=d("refresh-cw",se);var re=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],A=d("server",re);var ie=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],B=d("users",ie);var ce=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],M=d("wifi-off",ce);var ne=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],F=d("wifi",ne);import{Fragment as Le,jsx as a,jsxs as o}from"react/jsx-runtime";function H(){let[t,u]=p([]),[l,s]=p(!0),[r,f]=p(""),[i,m]=p("overview"),[D,L]=p({}),[C,v]=p(""),[h,R]=p([]),[g,y]=p(!1),I=me(async()=>{s(!0),f("");try{let x=await(await T("/api/discord/endpoints")).json();x.success?u(x.data):f(x.error||"\u83B7\u53D6\u6570\u636E\u5931\u8D25")}catch{f("\u65E0\u6CD5\u8FDE\u63A5\u670D\u52A1\u5668")}finally{s(!1)}},[]);pe(()=>{I()},[I]);let Q=async(e,x)=>{L(c=>({...c,[e]:!0}));try{let c=x?"disconnect":"connect",W=await(await T(`/api/discord/endpoints/${encodeURIComponent(e)}/${c}`,{method:"POST"})).json();W.success||f(W.error||"\u64CD\u4F5C\u5931\u8D25"),await I()}catch{f("\u64CD\u4F5C\u5931\u8D25")}finally{L(c=>({...c,[e]:!1}))}},G=async e=>{v(e),y(!0),R([]);try{let c=await(await T(`/api/discord/endpoints/${encodeURIComponent(e)}/guilds`)).json();c.success?R(c.data):f(c.error||"\u83B7\u53D6\u670D\u52A1\u5668\u5217\u8868\u5931\u8D25")}catch{f("\u83B7\u53D6\u670D\u52A1\u5668\u5217\u8868\u5931\u8D25")}finally{y(!1)}},U=t.filter(e=>e.connected&&e.mode==="gateway");return o("div",{className:"p-6 max-w-5xl mx-auto",children:[o("div",{className:"flex items-center justify-between mb-6",children:[o("h1",{className:"text-2xl font-bold flex items-center gap-2",children:[a(A,{className:"w-6 h-6"})," Discord \u673A\u5668\u4EBA"]}),o("button",{onClick:I,disabled:l,className:"flex items-center gap-1 px-3 py-1.5 rounded bg-indigo-500 text-white hover:bg-indigo-600 disabled:opacity-50 text-sm",children:[a(P,{className:`w-4 h-4 ${l?"animate-spin":""}`})," \u5237\u65B0"]})]}),r&&a("div",{className:"mb-4 p-3 bg-red-50 text-red-600 rounded border border-red-200",children:r}),o("div",{className:"flex gap-1 mb-6 border-b",children:[a("button",{onClick:()=>m("overview"),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${i==="overview"?"border-indigo-500 text-indigo-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:"\u6982\u89C8"}),a("button",{onClick:()=>m("guilds"),className:`px-4 py-2 text-sm font-medium border-b-2 transition-colors ${i==="guilds"?"border-indigo-500 text-indigo-600":"border-transparent text-gray-500 hover:text-gray-700"}`,children:"\u670D\u52A1\u5668\u5217\u8868"})]}),i==="overview"&&o(Le,{children:[!l&&!t.length&&!r&&a("div",{className:"text-center text-gray-500 py-12",children:"\u6682\u65E0 Discord Endpoint \u5B9E\u4F8B"}),a("div",{className:"grid gap-4 md:grid-cols-2",children:t.map(e=>o("div",{className:"border rounded-lg p-4 bg-card shadow-sm",children:[o("div",{className:"flex items-center justify-between mb-3",children:[a("span",{className:"font-medium text-lg",children:e.name}),e.connected?o("span",{className:"flex items-center gap-1 text-green-600 text-sm",children:[a(F,{className:"w-4 h-4"})," \u5728\u7EBF"]}):o("span",{className:"flex items-center gap-1 text-gray-400 text-sm",children:[a(M,{className:"w-4 h-4"})," \u79BB\u7EBF"]})]}),e.user&&o("div",{className:"text-sm text-gray-500 mb-2",children:["@",e.user.tag]}),o("div",{className:"grid grid-cols-2 gap-2 text-sm text-gray-600 mb-3",children:[o("div",{className:"flex justify-between",children:[a("span",{children:"\u6A21\u5F0F"}),a("span",{className:"font-mono",children:e.mode})]}),o("div",{className:"flex justify-between",children:[a("span",{children:"\u670D\u52A1\u5668"}),a("span",{className:"font-mono",children:e.guildCount})]}),o("div",{className:"flex justify-between",children:[a("span",{children:"\u9891\u9053"}),a("span",{className:"font-mono",children:e.channelCount})]})]}),o("div",{className:"flex gap-2",children:[o("button",{onClick:()=>Q(e.name,e.connected),disabled:D[e.name],className:`flex items-center gap-1 px-3 py-1.5 rounded text-sm text-white ${e.connected?"bg-red-500 hover:bg-red-600":"bg-green-500 hover:bg-green-600"} disabled:opacity-50`,children:[D[e.name]?a(n,{className:"w-3.5 h-3.5 animate-spin"}):e.connected?a(k,{className:"w-3.5 h-3.5"}):a(w,{className:"w-3.5 h-3.5"}),e.connected?"\u65AD\u5F00":"\u8FDE\u63A5"]}),e.connected&&e.mode==="gateway"&&o("button",{onClick:()=>{m("guilds"),G(e.name)},className:"flex items-center gap-1 px-3 py-1.5 rounded text-sm bg-gray-100 hover:bg-gray-200 text-gray-700",children:[a(S,{className:"w-3.5 h-3.5"})," \u67E5\u770B\u670D\u52A1\u5668"]})]})]},e.name))})]}),i==="guilds"&&o("div",{children:[U.length>0&&o("div",{className:"mb-4 flex items-center gap-2",children:[a("label",{className:"text-sm text-gray-500",children:"\u9009\u62E9\u673A\u5668\u4EBA\uFF1A"}),o("select",{value:C,onChange:e=>G(e.target.value),className:"border rounded px-2 py-1 text-sm",children:[a("option",{value:"",children:"--"}),U.map(e=>a("option",{value:e.name,children:e.name},e.name))]}),a("span",{className:"text-xs text-gray-400 ml-2",children:"\u4EC5 Gateway \u6A21\u5F0F\u652F\u6301"})]}),!U.length&&a("div",{className:"text-center text-gray-500 py-8",children:"\u6682\u65E0 Gateway \u6A21\u5F0F\u5728\u7EBF Endpoint"}),g&&a("div",{className:"flex justify-center py-8",children:a(n,{className:"w-6 h-6 animate-spin text-indigo-500"})}),!g&&h.length>0&&a("div",{className:"grid gap-3 md:grid-cols-2 lg:grid-cols-3",children:h.map(e=>o("div",{className:"border rounded-lg p-3 bg-card shadow-sm flex items-center gap-3",children:[e.icon?a("img",{src:e.icon,alt:"",className:"w-10 h-10 rounded-full"}):a("div",{className:"w-10 h-10 rounded-full bg-indigo-100 flex items-center justify-center text-indigo-500 font-bold text-sm",children:e.name[0]}),o("div",{className:"flex-1 min-w-0",children:[a("div",{className:"font-medium text-sm truncate",children:e.name}),o("div",{className:"flex items-center gap-1 text-xs text-gray-400",children:[a(B,{className:"w-3 h-3"})," ",e.memberCount," \u6210\u5458"]})]})]},e.id))}),!g&&C&&!h.length&&a("div",{className:"text-center text-gray-400 py-8",children:"\u8BE5\u673A\u5668\u4EBA\u672A\u52A0\u5165\u4EFB\u4F55\u670D\u52A1\u5668"})]})]})}function Sa(t){t.addRoute({path:"/console/discord",name:"Discord",element:t.React.createElement(H,{hostReact:t.React})}),t.addTool({id:"discord",name:"Discord",path:"/console/discord"})}export{Sa as register};
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs:
|
package/lib/adapter.d.ts
CHANGED
|
@@ -2,21 +2,22 @@
|
|
|
2
2
|
* Discord 适配器:单一适配器支持 Gateway / Interactions,由 config.connection 区分
|
|
3
3
|
*/
|
|
4
4
|
import { Adapter, Plugin } from "zhin.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import type {
|
|
8
|
-
export type
|
|
9
|
-
export declare class DiscordAdapter extends Adapter<
|
|
5
|
+
import { DiscordEndpoint } from "./endpoint.js";
|
|
6
|
+
import { DiscordInteractionsEndpoint } from "./endpoint-interactions.js";
|
|
7
|
+
import type { DiscordEndpointConfig } from "./types.js";
|
|
8
|
+
export type DiscordEndpointLike = DiscordEndpoint | DiscordInteractionsEndpoint;
|
|
9
|
+
export declare class DiscordAdapter extends Adapter<DiscordEndpointLike> {
|
|
10
10
|
#private;
|
|
11
|
+
static readonly capabilities: readonly ["inbound", "outbound"];
|
|
11
12
|
constructor(plugin: Plugin);
|
|
12
|
-
|
|
13
|
-
kickMember(
|
|
14
|
-
banMember(
|
|
15
|
-
unbanMember(
|
|
16
|
-
muteMember(
|
|
17
|
-
setMemberNickname(
|
|
18
|
-
listMembers(
|
|
19
|
-
getGroupInfo(
|
|
13
|
+
createEndpoint(config: DiscordEndpointConfig): DiscordEndpointLike;
|
|
14
|
+
kickMember(endpointId: string, sceneId: string, userId: string): Promise<boolean>;
|
|
15
|
+
banMember(endpointId: string, sceneId: string, userId: string, reason?: string): Promise<boolean>;
|
|
16
|
+
unbanMember(endpointId: string, sceneId: string, userId: string): Promise<boolean>;
|
|
17
|
+
muteMember(endpointId: string, sceneId: string, userId: string, duration?: number): Promise<boolean>;
|
|
18
|
+
setMemberNickname(endpointId: string, sceneId: string, userId: string, nickname: string): Promise<boolean>;
|
|
19
|
+
listMembers(endpointId: string, sceneId: string): Promise<any[]>;
|
|
20
|
+
getGroupInfo(endpointId: string, sceneId: string): Promise<any>;
|
|
20
21
|
start(): Promise<void>;
|
|
21
22
|
}
|
|
22
23
|
//# sourceMappingURL=adapter.d.ts.map
|
package/lib/adapter.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,mBAAmB,GAAG,eAAe,GAAG,2BAA2B,CAAC;AAMhF,qBAAa,cAAe,SAAQ,OAAO,CAAC,mBAAmB,CAAC;;IAC9D,gBAAyB,YAAY,mCAAoC;gBAI7D,MAAM,EAAE,MAAM;IAI1B,cAAc,CAAC,MAAM,EAAE,qBAAqB,GAAG,mBAAmB;IAiB5D,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAO9D,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAO9E,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAO/D,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,SAAM;IAO9E,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAOvF,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAO/C,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAOhD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}
|
package/lib/adapter.js
CHANGED
|
@@ -2,85 +2,86 @@
|
|
|
2
2
|
* Discord 适配器:单一适配器支持 Gateway / Interactions,由 config.connection 区分
|
|
3
3
|
*/
|
|
4
4
|
import { Adapter } from "zhin.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
function isGatewayBot(
|
|
8
|
-
return
|
|
5
|
+
import { DiscordEndpoint } from "./endpoint.js";
|
|
6
|
+
import { DiscordInteractionsEndpoint } from "./endpoint-interactions.js";
|
|
7
|
+
function isGatewayBot(endpoint) {
|
|
8
|
+
return endpoint.$config.connection === "gateway";
|
|
9
9
|
}
|
|
10
10
|
export class DiscordAdapter extends Adapter {
|
|
11
|
+
static capabilities = ['inbound', 'outbound'];
|
|
11
12
|
#router;
|
|
12
13
|
constructor(plugin) {
|
|
13
14
|
super(plugin, "discord", []);
|
|
14
15
|
}
|
|
15
|
-
|
|
16
|
+
createEndpoint(config) {
|
|
16
17
|
const connection = config.connection ?? "gateway";
|
|
17
18
|
switch (connection) {
|
|
18
19
|
case "gateway":
|
|
19
|
-
return new
|
|
20
|
+
return new DiscordEndpoint(this, config);
|
|
20
21
|
case "interactions":
|
|
21
22
|
if (!this.#router) {
|
|
22
23
|
throw new Error("Discord connection: interactions 需要 router,请安装并在配置中启用 @zhin.js/host-router");
|
|
23
24
|
}
|
|
24
|
-
return new
|
|
25
|
+
return new DiscordInteractionsEndpoint(this, this.#router, config);
|
|
25
26
|
default:
|
|
26
27
|
throw new Error(`Unknown Discord connection: ${config.connection}`);
|
|
27
28
|
}
|
|
28
29
|
}
|
|
29
|
-
async kickMember(
|
|
30
|
-
const
|
|
31
|
-
if (!
|
|
32
|
-
throw new Error(`
|
|
33
|
-
if (!isGatewayBot(
|
|
30
|
+
async kickMember(endpointId, sceneId, userId) {
|
|
31
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
32
|
+
if (!endpoint)
|
|
33
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
34
|
+
if (!isGatewayBot(endpoint))
|
|
34
35
|
throw new Error("群管仅支持 connection: gateway");
|
|
35
|
-
return
|
|
36
|
+
return endpoint.kickMember(sceneId, userId);
|
|
36
37
|
}
|
|
37
|
-
async banMember(
|
|
38
|
-
const
|
|
39
|
-
if (!
|
|
40
|
-
throw new Error(`
|
|
41
|
-
if (!isGatewayBot(
|
|
38
|
+
async banMember(endpointId, sceneId, userId, reason) {
|
|
39
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
40
|
+
if (!endpoint)
|
|
41
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
42
|
+
if (!isGatewayBot(endpoint))
|
|
42
43
|
throw new Error("群管仅支持 connection: gateway");
|
|
43
|
-
return
|
|
44
|
+
return endpoint.banMember(sceneId, userId, reason);
|
|
44
45
|
}
|
|
45
|
-
async unbanMember(
|
|
46
|
-
const
|
|
47
|
-
if (!
|
|
48
|
-
throw new Error(`
|
|
49
|
-
if (!isGatewayBot(
|
|
46
|
+
async unbanMember(endpointId, sceneId, userId) {
|
|
47
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
48
|
+
if (!endpoint)
|
|
49
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
50
|
+
if (!isGatewayBot(endpoint))
|
|
50
51
|
throw new Error("群管仅支持 connection: gateway");
|
|
51
|
-
return
|
|
52
|
+
return endpoint.unbanMember(sceneId, userId);
|
|
52
53
|
}
|
|
53
|
-
async muteMember(
|
|
54
|
-
const
|
|
55
|
-
if (!
|
|
56
|
-
throw new Error(`
|
|
57
|
-
if (!isGatewayBot(
|
|
54
|
+
async muteMember(endpointId, sceneId, userId, duration = 600) {
|
|
55
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
56
|
+
if (!endpoint)
|
|
57
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
58
|
+
if (!isGatewayBot(endpoint))
|
|
58
59
|
throw new Error("群管仅支持 connection: gateway");
|
|
59
|
-
return
|
|
60
|
+
return endpoint.timeoutMember(sceneId, userId, duration);
|
|
60
61
|
}
|
|
61
|
-
async setMemberNickname(
|
|
62
|
-
const
|
|
63
|
-
if (!
|
|
64
|
-
throw new Error(`
|
|
65
|
-
if (!isGatewayBot(
|
|
62
|
+
async setMemberNickname(endpointId, sceneId, userId, nickname) {
|
|
63
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
64
|
+
if (!endpoint)
|
|
65
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
66
|
+
if (!isGatewayBot(endpoint))
|
|
66
67
|
throw new Error("群管仅支持 connection: gateway");
|
|
67
|
-
return
|
|
68
|
+
return endpoint.setNickname(sceneId, userId, nickname);
|
|
68
69
|
}
|
|
69
|
-
async listMembers(
|
|
70
|
-
const
|
|
71
|
-
if (!
|
|
72
|
-
throw new Error(`
|
|
73
|
-
if (!isGatewayBot(
|
|
70
|
+
async listMembers(endpointId, sceneId) {
|
|
71
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
72
|
+
if (!endpoint)
|
|
73
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
74
|
+
if (!isGatewayBot(endpoint))
|
|
74
75
|
throw new Error("群管仅支持 connection: gateway");
|
|
75
|
-
return
|
|
76
|
+
return endpoint.getMembers(sceneId);
|
|
76
77
|
}
|
|
77
|
-
async getGroupInfo(
|
|
78
|
-
const
|
|
79
|
-
if (!
|
|
80
|
-
throw new Error(`
|
|
81
|
-
if (!isGatewayBot(
|
|
78
|
+
async getGroupInfo(endpointId, sceneId) {
|
|
79
|
+
const endpoint = this.endpoints.get(endpointId);
|
|
80
|
+
if (!endpoint)
|
|
81
|
+
throw new Error(`Endpoint ${endpointId} 不存在`);
|
|
82
|
+
if (!isGatewayBot(endpoint))
|
|
82
83
|
throw new Error("群管仅支持 connection: gateway");
|
|
83
|
-
return
|
|
84
|
+
return endpoint.getGuildInfo(sceneId);
|
|
84
85
|
}
|
|
85
86
|
async start() {
|
|
86
87
|
this.#router = this.plugin.inject("router");
|
package/lib/adapter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAU,MAAM,SAAS,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AASzE,SAAS,YAAY,CAAC,QAA6B;IACjD,OAAQ,QAAQ,CAAC,OAAmC,CAAC,UAAU,KAAK,SAAS,CAAC;AAChF,CAAC;AAED,MAAM,OAAO,cAAe,SAAQ,OAA4B;IAC9D,MAAM,CAAmB,YAAY,GAAG,CAAC,SAAS,EAAE,UAAU,CAAU,CAAC;IAEzE,OAAO,CAAU;IAEjB,YAAY,MAAc;QACxB,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,cAAc,CAAC,MAA6B;QAC1C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,SAAS,CAAC;QAClD,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,SAAS;gBACZ,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE,MAA8B,CAAC,CAAC;YACnE,KAAK,cAAc;gBACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;oBAClB,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;gBACJ,CAAC;gBACD,OAAO,IAAI,2BAA2B,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,MAAmC,CAAC,CAAC;YAClG;gBACE,MAAM,IAAI,KAAK,CAAC,+BAAgC,MAAgC,CAAC,UAAU,EAAE,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAc;QAClE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAc,EAAE,MAAe;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAc;QACnE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAc,EAAE,QAAQ,GAAG,GAAG;QAClF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,UAAkB,EAAE,OAAe,EAAE,MAAc,EAAE,QAAgB;QAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,UAAkB,EAAE,OAAe;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,OAAe;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,UAAU,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,OAAO,GAAI,IAAI,CAAC,MAAM,CAAC,MAA8C,CAAC,QAAQ,CAAC,CAAC;QACpF,IAAI,CAAC,MAAM,CAAC,UAAkE,CAC7E,QAAQ,EACR,CAAC,MAAc,EAAE,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,CAAC,CACF,CAAC;QACF,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Discord Interactions
|
|
2
|
+
* Discord Interactions Endpoint 实现
|
|
3
3
|
*/
|
|
4
4
|
import { Client } from "discord.js";
|
|
5
|
-
import {
|
|
5
|
+
import { Endpoint, Message, SendOptions } from "zhin.js";
|
|
6
6
|
import { type Router } from "@zhin.js/host-router/router";
|
|
7
7
|
import type { DiscordInteractionsConfig } from "./types.js";
|
|
8
8
|
import type { DiscordAdapter } from "./adapter.js";
|
|
9
|
-
export declare class
|
|
9
|
+
export declare class DiscordInteractionsEndpoint extends Client implements Endpoint<DiscordInteractionsConfig, any> {
|
|
10
10
|
adapter: DiscordAdapter;
|
|
11
11
|
$config: DiscordInteractionsConfig;
|
|
12
12
|
$connected: boolean;
|
|
@@ -31,4 +31,4 @@ export declare class DiscordInteractionsBot extends Client implements Bot<Discor
|
|
|
31
31
|
$sendMessage(options: SendOptions): Promise<string>;
|
|
32
32
|
$recallMessage(id: string): Promise<void>;
|
|
33
33
|
}
|
|
34
|
-
//# sourceMappingURL=
|
|
34
|
+
//# sourceMappingURL=endpoint-interactions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-interactions.d.ts","sourceRoot":"","sources":["../src/endpoint-interactions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,MAAM,EAiBP,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAwC,MAAM,SAAS,CAAC;AAC/F,OAAO,EAAsB,KAAK,MAAM,EAAsB,MAAM,6BAA6B,CAAC;AAClG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,qBAAa,2BACX,SAAQ,MACR,YAAW,QAAQ,CAAC,yBAAyB,EAAE,GAAG,CAAC;IAgBhC,OAAO,EAAE,cAAc;IAAyB,OAAO,EAAE,yBAAyB;IAfrG,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,oBAAoB,CAGd;IAEd,IAAI,YAAY,6BAEf;IAED,IAAI,GAAG,WAEN;gBAEkB,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAS,OAAO,EAAE,yBAAyB;IAerG,OAAO,CAAC,yBAAyB;YAOnB,iBAAiB;IA0C/B,OAAO,CAAC,sBAAsB;YAiBhB,wBAAwB;IA+BtC,OAAO,CAAC,0BAA0B;IAuClC,OAAO,CAAC,iBAAiB;IAuCnB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAiCzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;YAgBpB,qBAAqB;IAsBnC,sBAAsB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,CAAC,WAAW,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,GAC3C,IAAI;IAKP,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAKvD,OAAO,CAAC,eAAe;IAYvB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAIhC,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAcnD,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAChD"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Discord Interactions
|
|
2
|
+
* Discord Interactions Endpoint 实现
|
|
3
3
|
*/
|
|
4
4
|
import { Client, GatewayIntentBits, REST, Routes, InteractionType, InteractionResponseType, } from "discord.js";
|
|
5
5
|
import nacl from "tweetnacl";
|
|
6
6
|
import { Message, segment } from "zhin.js";
|
|
7
7
|
import { registerFetchRoute } from "@zhin.js/host-router/router";
|
|
8
|
-
export class
|
|
8
|
+
export class DiscordInteractionsEndpoint extends Client {
|
|
9
9
|
adapter;
|
|
10
10
|
$config;
|
|
11
11
|
$connected;
|
|
@@ -126,7 +126,7 @@ export class DiscordInteractionsBot extends Client {
|
|
|
126
126
|
return Message.from(interaction, {
|
|
127
127
|
$id: interaction.id,
|
|
128
128
|
$adapter: "discord",
|
|
129
|
-
$
|
|
129
|
+
$endpoint: this.$config.name,
|
|
130
130
|
$sender: {
|
|
131
131
|
id: interaction.user?.id || interaction.member?.user?.id,
|
|
132
132
|
name: interaction.user?.username || interaction.member?.user?.username,
|
|
@@ -281,4 +281,4 @@ export class DiscordInteractionsBot extends Client {
|
|
|
281
281
|
async $recallMessage(id) { }
|
|
282
282
|
}
|
|
283
283
|
// 定义 Adapter 类
|
|
284
|
-
//# sourceMappingURL=
|
|
284
|
+
//# sourceMappingURL=endpoint-interactions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint-interactions.js","sourceRoot":"","sources":["../src/endpoint-interactions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Discord
|
|
2
|
+
* Discord Endpoint 实现 (Gateway)
|
|
3
3
|
*/
|
|
4
4
|
import { Client, Message as DiscordMessage, TextChannel, DMChannel, NewsChannel, ThreadChannel, EmbedBuilder, AttachmentBuilder, MessageCreateOptions, ChatInputCommandInteraction } from "discord.js";
|
|
5
|
-
import {
|
|
5
|
+
import { Endpoint, Message, SendOptions, SendContent, MessageSegment } from "zhin.js";
|
|
6
6
|
import type { DiscordGatewayConfig, DiscordChannelMessage } from "./types.js";
|
|
7
7
|
import type { DiscordAdapter } from "./adapter.js";
|
|
8
|
-
export declare class
|
|
8
|
+
export declare class DiscordEndpoint extends Client implements Endpoint<DiscordGatewayConfig, DiscordChannelMessage> {
|
|
9
9
|
adapter: DiscordAdapter;
|
|
10
10
|
$config: DiscordGatewayConfig;
|
|
11
11
|
private slashCommandHandlers;
|
|
@@ -119,4 +119,4 @@ export declare class DiscordBot extends Client implements Bot<DiscordGatewayConf
|
|
|
119
119
|
private fileExists;
|
|
120
120
|
static formatContentToText(content: SendContent): string;
|
|
121
121
|
}
|
|
122
|
-
//# sourceMappingURL=
|
|
122
|
+
//# sourceMappingURL=endpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.d.ts","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|