koishi-adapter-discord
创建机器人
- 前往 https://discord.com/developers/applicationsopen in new window,登录账号创建一个应用
 - 点击「Bot」并创建一个新的机器人,保存这个页面中的 token(请注意不要泄露)
 - 要将机器人拉进你的服务器,点击「OAuth2」,并在网址生成器中勾选 Bot 和机器人所需要的权限
 - 打开生成的链接,选择你具有管理权限的服务器,就成功把机器人添加进去了
 - 将上面的 token 作为机器人配置项即可使用
 
机器人选项
options(.bots[]).type
- 可选值: discord
 
options(.bots[]).token
- 类型: 
string 
机器人账户的令牌。
适配器选项
包括全部的 WsClient 选项和下列额外选项:
options.discord.endpoint
- 类型: 
string - 默认值: 
'https://discord.com/api/v8' 
要请求的 API 网址。
options.discord.axiosConfig
用于 discord 适配器的请求配置。
options.discord.handleExternalAsset
- 可选值: 
string - 默认值: 
'auto' 
指定单独发送外链资源时采用的方法:
- download: 先下载后发送
 - direct: 直接发送链接
 - auto: 发送一个 HEAD 请求,如果返回的 Content-Type 正确,则直接发送链接,否则先下载后发送
 
options.discord.handleMixedContent
- 可选值: 
string - 默认值: 
'auto' 
指定发送图文混合内容时采用的方法:
- separate: 将每个不同形式的内容分开发送
 - attach: 图片前如果有文本内容,则将文本作为图片的附带信息进行发送
 - auto: 如果图片本身采用直接发送则与前面的文本分开,否则将文本作为图片的附带信息发送
 
当配置为 attach 并且发送文本+图片形式的消息时,无论 handleExternalAsset 配置为何都会先下载后发送。
频道
bot.$modifyChannel(channelId, data)
- channelId: 
string频道 ID - data: 
ModifyChannel请求的数据 
修改频道信息。
反应
bot.$createReaction(channelId, messageId, emoji)
- channelId: 
string频道 ID - messageId: 
string消息 ID - emoji: 
stringemoji 表情, 例如: 😊, 需提交其百分比编码open in new window 
以机器人的身份创建反应。
bot.$deleteReaction(channelId, messageId, emoji)
- channelId: 
string频道 ID - messageId: 
string消息 ID - emoji: 
stringemoji 表情 
删除机器人创建的反应。
bot.$deleteAllReactions(channelId, messageId, emoji?)
- channelId: 
string频道 ID - messageId: 
string消息 ID - emoji: 
stringemoji 表情 
删除所有反应。
Webhook
bot.$executeWebhook(id, token, data, wait)
- id: 
stringID - token: 
stringToken - data: 
ExecuteWebhookBody请求内容 - wait: 
boolean等待 Discord 处理消息, 默认为false(false将不会返回消息 ID ) - 返回值: 
Promise<string> 
执行 Webhook。
bot.$createWebhook(channelId, data)
- channelId: 
stringID - data: 
{ name: string; avatar?: string }提交内容 
创建 Webhook。
bot.$modifyWebhook(channelId, data)
- channelId: 
stringID - data: 
{ name: string; avatar?: string }提交内容 
修改 Webhook。
bot.$getChannelWebhooks(channelId)
- channelId: 
stringID - 返回值: 
Promise<Webhook[]> 
获取频道的 Webhook 列表。
bot.$getGuildWebhooks(guildId)
- guildId: 
string服务器 ID - 返回值: 
Promise<Webhook[]> 
获取服务器的 Webhook 列表。
服务器
bot.getGuildChannels(guildId)
- guildId: 
string服务器 ID - 返回值: 
Promise<Channel[]> 
获取服务器下的频道列表。
bot.$getGuildRoles(guildId)
- guildId: 
string服务器 ID - 返回值: 
Promise<Role[]> 
获取服务器权限列表。
bot.$listGuildMembers(guildId, limit?, after?)
- guildId: 
string服务器 ID - limit: 
number数量限制(1-1000), 默认为 1 - after: 
string上一页最后一位用户的 ID 
获取服务器用户列表。
bot.$getRoleMembers(guildId, roleId)
- guildId: 
string服务器 ID - roleId: 
string权限 ID - 返回值: 
Promise<GuildMember[]> 
获取服务器内拥有此权限的所有用户。
bot.$modifyGuildMember(guildId, userId, data)
- guildId: 
string服务器 ID - userId: 
string用户 ID - data: 
ModifyGuildMember请求内容 
修改服务器成员信息。
bot.$setGroupCard(guildId, userId, nick)
- guildId: 
string服务器 ID - userId: 
string用户 ID - nick: 
string昵称 
修改用户在服务器内的昵称。
bot.$addGuildMemberRole(guildId, userId, roleId)
- guildId: 
string服务器 ID - userId: 
string用户 ID - roleId: 
string权限 ID 
为成员增加权限。
bot.$removeGuildMemberRole(guildId, userId, roleId)
- guildId: 
string服务器 ID - userId: 
string用户 ID - roleId: 
string权限 ID 
删除成员权限。
bot.$createGuildRole(guildId, data)
- guildId: 
string服务器 ID - data: 
GuildRoleBody 
增加服务器权限。
bot.$modifyGuildRole(guildId, roleId, data)
- guildId: 
string服务器 ID - roleId: 
string权限 ID - data: 
GuildRoleBody 
修改服务器权限。
bot.$modifyGuild(guildId, data)
- guildId: 
string服务器 ID - data: 
GuildModify提交内容 
修改服务器信息
bot.$setGroupName(guildId, name)
- guildId: 
string服务器 ID - name: 
string 
修改服务器名称。