@zhin.js/adapter-discord 1.0.1
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 +9 -0
- package/LICENSE +21 -0
- package/README.md +600 -0
- package/lib/index.d.ts +96 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +870 -0
- package/lib/index.js.map +1 -0
- package/package.json +41 -0
- package/src/index.ts +1064 -0
- package/tsconfig.json +24 -0
package/lib/index.d.ts
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Client, GatewayIntentBits, Message as DiscordMessage, TextChannel, DMChannel, NewsChannel, ThreadChannel, EmbedBuilder, AttachmentBuilder, MessageCreateOptions, ApplicationCommandData, ChatInputCommandInteraction } from 'discord.js';
|
|
2
|
+
import { Bot, BotConfig, Adapter, Plugin, Message, SendOptions, SendContent, MessageSegment } from "zhin.js";
|
|
3
|
+
declare module 'zhin.js' {
|
|
4
|
+
interface RegisteredAdapters {
|
|
5
|
+
discord: Adapter<DiscordBot>;
|
|
6
|
+
'discord-interactions': Adapter<DiscordInteractionsBot>;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export type DiscordBotConfig = BotConfig & {
|
|
10
|
+
context: 'discord';
|
|
11
|
+
token: string;
|
|
12
|
+
name: string;
|
|
13
|
+
intents?: GatewayIntentBits[];
|
|
14
|
+
enableSlashCommands?: boolean;
|
|
15
|
+
globalCommands?: boolean;
|
|
16
|
+
defaultActivity?: {
|
|
17
|
+
name: string;
|
|
18
|
+
type: 'PLAYING' | 'STREAMING' | 'LISTENING' | 'WATCHING' | 'COMPETING';
|
|
19
|
+
url?: string;
|
|
20
|
+
};
|
|
21
|
+
slashCommands?: ApplicationCommandData[];
|
|
22
|
+
};
|
|
23
|
+
export interface DiscordInteractionsConfig extends BotConfig {
|
|
24
|
+
context: 'discord-interactions';
|
|
25
|
+
token: string;
|
|
26
|
+
name: string;
|
|
27
|
+
applicationId: string;
|
|
28
|
+
publicKey: string;
|
|
29
|
+
interactionsPath: string;
|
|
30
|
+
useGateway?: boolean;
|
|
31
|
+
intents?: GatewayIntentBits[];
|
|
32
|
+
slashCommands?: ApplicationCommandData[];
|
|
33
|
+
globalCommands?: boolean;
|
|
34
|
+
defaultActivity?: {
|
|
35
|
+
name: string;
|
|
36
|
+
type: 'PLAYING' | 'STREAMING' | 'LISTENING' | 'WATCHING' | 'COMPETING';
|
|
37
|
+
url?: string;
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
export interface DiscordBot {
|
|
41
|
+
$config: DiscordBotConfig;
|
|
42
|
+
}
|
|
43
|
+
export interface DiscordInteractionsBot {
|
|
44
|
+
$config: DiscordInteractionsConfig;
|
|
45
|
+
}
|
|
46
|
+
type DiscordChannelMessage = DiscordMessage<boolean>;
|
|
47
|
+
export declare class DiscordBot extends Client implements Bot<DiscordChannelMessage, DiscordBotConfig> {
|
|
48
|
+
private plugin;
|
|
49
|
+
$config: DiscordBotConfig;
|
|
50
|
+
$connected?: boolean;
|
|
51
|
+
private slashCommandHandlers;
|
|
52
|
+
constructor(plugin: Plugin, $config: DiscordBotConfig);
|
|
53
|
+
private handleDiscordMessage;
|
|
54
|
+
private handleSlashCommand;
|
|
55
|
+
$connect(): Promise<void>;
|
|
56
|
+
$disconnect(): Promise<void>;
|
|
57
|
+
$formatMessage(msg: DiscordChannelMessage): Message<DiscordChannelMessage>;
|
|
58
|
+
parseMessageContent(msg: DiscordChannelMessage): MessageSegment[];
|
|
59
|
+
parseTextContent(content: string, msg: DiscordChannelMessage): MessageSegment[];
|
|
60
|
+
parseAttachment(attachment: any): MessageSegment[];
|
|
61
|
+
$sendMessage(options: SendOptions): Promise<void>;
|
|
62
|
+
sendContentToChannel(channel: TextChannel | DMChannel | NewsChannel | ThreadChannel, content: SendContent, extraOptions?: MessageCreateOptions): Promise<void>;
|
|
63
|
+
handleFileSegment(data: any, files: AttachmentBuilder[], textContent: string): Promise<void>;
|
|
64
|
+
createEmbedFromData(data: any): EmbedBuilder;
|
|
65
|
+
private getActivityType;
|
|
66
|
+
private registerSlashCommands;
|
|
67
|
+
addSlashCommandHandler(commandName: string, handler: (interaction: ChatInputCommandInteraction) => Promise<void>): void;
|
|
68
|
+
removeSlashCommandHandler(commandName: string): boolean;
|
|
69
|
+
private fileExists;
|
|
70
|
+
static formatContentToText(content: SendContent): string;
|
|
71
|
+
}
|
|
72
|
+
export declare class DiscordInteractionsBot extends Client implements Bot<any, DiscordInteractionsConfig> {
|
|
73
|
+
private plugin;
|
|
74
|
+
$config: DiscordInteractionsConfig;
|
|
75
|
+
$connected?: boolean;
|
|
76
|
+
private router;
|
|
77
|
+
private slashCommandHandlers;
|
|
78
|
+
constructor(plugin: Plugin, router: any, $config: DiscordInteractionsConfig);
|
|
79
|
+
private setupInteractionsEndpoint;
|
|
80
|
+
private handleInteraction;
|
|
81
|
+
private verifyDiscordSignature;
|
|
82
|
+
private handleApplicationCommand;
|
|
83
|
+
private formatInteractionAsMessage;
|
|
84
|
+
private sendFollowUp;
|
|
85
|
+
private formatSendContent;
|
|
86
|
+
$connect(): Promise<void>;
|
|
87
|
+
$disconnect(): Promise<void>;
|
|
88
|
+
private registerSlashCommands;
|
|
89
|
+
addSlashCommandHandler(commandName: string, handler: (interaction: any) => Promise<void>): void;
|
|
90
|
+
removeSlashCommandHandler(commandName: string): boolean;
|
|
91
|
+
private getActivityType;
|
|
92
|
+
$formatMessage(msg: any): Message<any>;
|
|
93
|
+
$sendMessage(options: SendOptions): Promise<void>;
|
|
94
|
+
}
|
|
95
|
+
export {};
|
|
96
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|