【新手指南】使用Discord Bot Maker创建机器人

0 点赞
Discord Bot Maker
转载

《Discord Bot Maker》入门指南:教你如何创建Discord机器人。本指南每周更新。如果你觉得本指南有用、内容丰富或毫无帮助,欢迎在下方评论! 本指南将包含Discord Bot Maker发布的YouTube教程系列中的信息。 请注意,本指南面向完全没有经验的新手,在我开发最新机器人的过程中会每周更新,直到涵盖所有功能并足够全面为止。 本指南当前版本为0.1,这意味着它尚未完成,仍在编写中。在我们完成编写期间,请给予支持。---- 介绍 ---- 原作者tgtgamer在撰写本文后已长时间未上线。他希望在跟进更新后继续撰写。对于可能存在的任何不一致之处,我们深表歉意。 《Discord Bot Maker》是什么? 《Discord Bot Maker》是一款无需大量代码即可构建机器人的应用程序。这款机器人制作软件面向经验较少的用户,他们希望拥有一个可以自定义但无需花哨功能的机器人。 《Discord Bot Maker》的许多功能都很简单,但凭借一定的编码知识和一些简单脚本,你可以创建用于任何用途的复杂机器人。 帮助与支持? 需要更多一对一支持或帮助?你可以加入相关Discord获取支持。《Discord Bot Maker》更新内容 • 这是官方的DBM(Discord Bot Maker)Discord社区,你可以在这里找到所有开发者和支持团队。 • 这是我的官方Discord社区,90%的时间里你都能在这里找到我和我的团队,这里能提供最快速的支持。 DBM即将推出的更新 以下是根据官方Discord社区列出的当前即将推出的更新内容。当前优先事项(按计划完成顺序) 1. 完成文档(我很想在这方面提供帮助) 2. 修复更多漏洞 3. 实现更多事件 4. 实现确认操作 5. 实现确认的编辑器更新 6. 实现音乐机器人更新 未来计划实现的功能 • 解除成员封禁 • 查找服务器 • 检查成员权限 • 检查成员是否拥有角色 • 跳转到操作 • 更改角色权限 • 重启机器人 • 调用事件/命令 • 存储时间信息 • 设置成员语音频道 • 获取多个参数 未来编辑器更新 • 添加获取开发者ID的功能,用于【仅机器人所有者】限制 • 添加设置机器人分片的功能 • 保存时自动刷新机器人的选项 • 能够禁用命令的大小写敏感性 • 克隆操作 长期更新 • 重做图像编辑系统支持更动态的图像操作;使用通用字体类型并在操作中定义字体大小。 • 机器人能够加入语音频道、播放本地音频以及从包括YouTube在内的互联网来源流式传输音频,也就是【音乐机器人更新】。 前提条件

Discord开发者应用 要使用Discord机器人创建器,你需要访问该网页并设置一个机器人。 应用名称 应用名称仅在将机器人邀请到服务器时使用,我的教程机器人命名为“Tutorial_DBM”(DBM即Discord Bot Maker)。 应用描述 这是关于机器人的附加信息,如果你知道机器人的功能,可以选择添加。

接下来你会看到一些信息,只需点击“创建机器人用户”。这将为你的应用生成一个机器人,其中包含我们需要的信息。 将机器人账户与Discord Bot Maker关联 要将机器人关联到Discord Bot Maker,你需要进入设置页面。这需要开发者网站上的【机器人令牌】和【客户端ID】。

---- 第一部分 -- 创建你的第一个机器人 ---- 设置机器人

好的,在本教程中,我们将从零开始设置一个机器人。不过,当你设置机器人时,建议选择一个默认模板。 我们将机器人命名为“教程机器人”,并保存在桌面上。你也可以选择保存在其他位置,但我认为桌面是存放任何你计划编写的代码的最佳位置。 创建你的第一个事件 服务器加入事件 现在,我们开始让机器人变得有趣起来。我们要设置一个“服务器加入事件”。 简单来说,当这个机器人加入服务器时,我们希望它向我们发送一条消息,以确认机器人正在正常工作。这样,如果没有显示这条消息,我们就知道可能忘记做某些事情了。 设置事件 首先,点击DBM中的“事件”选项卡。我们将创建一个名为【OnConnect】的新事件,这会告诉机器人该事件的名称,我们希望它能便于我们日后编辑机器人时快速记忆和识别。 你需要从事件触发器列表中选择【机器人加入服务器】。这将告诉机器人,当它连接到服务器时,需要执行以下操作。

添加动作 现在我们要添加一个动作。默认情况下,这个动作是【发送消息】,所以我们只需要将频道设置为默认频道,并输入一条消息即可。

启动并连接到你的Discord服务器 在加入服务器之前,我们需要先启动机器人。这是一个简单的流程,只需进入【项目】选项卡并选择【运行项目】即可。

项目启动后,你的窗口背景颜色会变为蓝色,如下所示。如果没有立即发生变化,请稍等片刻,它最终会启动。

要将机器人连接到你的服务器,你需要返回设置界面。设置下方会有一些链接,第一个是预设为赋予机器人所有权限的邀请链接,第二个是允许你设置自定义链接的计算器(有关更多信息,请参见自定义邀请链接部分)。点击默认链接,将机器人邀请到你的服务器。你应该会在Discord中收到来自机器人的消息。

---- 第二部分 -- 设置简单命令 ---- 管理命令 踢出命令

原始代码: {"name":"踢出","permissions":"踢出成员","restriction":"1","actions":[{"condition":"1","comparison":"0","value":"1","iftrue":"3","iftrueVal":"2","iffalse":"0","iffalseVal":"","name":"检查参数"},{"channel":"0","varName":"","message":"```\n请@提及一名用户以将其踢出!\n!Kick [@用户] [原因]\n```","storage":"0","varName2":"","name":"发送消息"},{"name":"结束动作序列"},{"info":"1","infoIndex":"2","storage":"1","varName":"原因","name":"存储命令参数"},{"member":"0","varName":"","reason":"${tempVars( \"reason \") || \" \"}","name":"踢出成员"}]} 要创建踢出命令,首先点击【创建新命令】按钮。现在在命令名称中输入“kick” 你需要将其限制在服务器内使用,因此在命令限制中选择“仅服务器” 接下来,为防止用户滥用此命令,我们需要设置用户所需的权限,建议设置为“踢出成员” 操作步骤: 首先,我们要检查命令的参数,确保至少提到了一个人。 我们需要将其配置为检查只提到了一个人。因此,在条件下选择“提到的成员数量为”,并将比较方式设置为“等于”,数值设为“1”。 暂时保留其他两个字段,因为我们还没有其他操作。

下一步是创建命令失败时发送的消息。为此,我们将使用以下消息: 请提及一位用户以将其踢出! !Kick [@用户] [原因] 接下来是添加结束动作序列。这可以在【其他内容】面板中找到。这将告诉机器人该部分序列已完成,无需继续执行。 要获取【原因】,你需要存储命令参数。同样,这可以在【其他内容】面板中找到。我们希望存储用户名之后的所有信息。因此,我们将选择: 来源信息:多个参数 从参数编号开始:2 存储位置:临时变量 变量名称:reason 该命令的最后部分是执行踢出操作。所以我们要从成员控制面板中选择【踢出成员】。在踢出成员选项中,我们要选择被提及的用户作为成员,原因将设置为${tempVars("reason") || ""}

封禁指令 原始代码: {"name":"Ban","permissions":"BAN_MEMBERS","restriction":"1","actions":[{"condition":"1","comparison":"0","value":"1","iftrue":"3","iftrueVal":"2","iffalse":"0","iffalseVal":"","name":"Check Parameters"},{"channel":"0","varName":"","message":"``` n请提及一位用户以封禁他们! n!Ban [@用户] [原因] n```","storage":"0","varName2":"","name":"Send Message"},{"name":"End Action Sequence"},{"info":"1","infoIndex":"2","storage":"1","varName":"reason","name":"Store Command Params"},{"member":"0","varName":"","reason":"${tempVars( \"reason \") || \" \"}\",\"name\":\"Ban Member\"}]} 要创建封禁指令,首先点击【创建新指令】按钮。现在在命令名称处输入“ban” 你需要将其限制为仅服务器可用,因此在命令限制中选择“仅服务器” 接下来,为防止用户滥用此命令,我们需要设置用户所需的权限,建议设置为“ban Members(封禁成员)” 操作步骤 首先,我们要检查命令的参数,确保至少提到了一个人。 我们要将其配置为检查只提到了一个人。因此,我们将在条件下选择“提到的成员数量为”,并将比较方式设置为“等于”,数值设为“1”。 暂时保留其他两个字段,因为我们还没有其他操作。

下一步是创建命令失败时发送的消息。为此,我们将使用以下消息: ``` 请提及一名用户以封禁他们! !ban [@用户] [原因] ``` 接下来是添加结束动作序列。这可以在【其他内容】面板中找到。这将告诉机器人该部分序列已完成,无需继续执行。 要获取【原因】,你需要存储命令参数。同样,这可以在【其他内容】面板中找到。我们希望存储用户名被踢出后的所有信息。因此,我们将选择: 来源信息:多个参数 从参数编号开始:2 存储位置:临时变量 变量名称:reason 此命令的最后部分是执行封禁操作。所以我们要从成员控制面板中选择【封禁成员】。在封禁成员选项中,我们要选择被提及的用户作为成员,理由将设置为${tempVars("reason") || ""}

静音命令 原始代码: {"name":"静音","permissions":"MUTE_MEMBERS","restriction":"1","actions":[{"condition":"1","comparison":"0","value":"1","iftrue":"3","iftrueVal":"2","iffalse":"0","iffalseVal":"","name":"检查参数"},{"channel":"0","varName":"","message":"``` n请@一位用户以将其静音! n!"}静音 [@用户] n```","存储":"0","变量名2":"","名称":"发送消息"},{"名称":"结束动作序列"},{"成员":"0","变量名":"","静音":"0","名称":"设置成员静音"}]} 待编写教程 取消静音命令 原始代码: {"名称":"取消静音","权限":"MUTE_MEMBERS","限制":"1","动作":[{"条件":"1","比较":"0","值":"1","如果为真":"3","如果为真值":"2","如果为假":"0","如果为假值":"","名称":"检查参数"},{"频道":"0","变量名":"","消息":"``` n请@提及一位用户以取消其静音! n!"教程待编写 ---- 第三部分 -- 自定义机器人外观 ---- 机器人初始化 此脚本用于让机器人在启动时执行一些很棒的小功能。我通常会让它在启动时设置机器人资料状态、游戏和用户名。我的机器人还会在某些频道不存在时创建它们,比如【#bot--log】。 原始代码: {"name":"BotInitialization","temp":"","event-type":"1","actions":[{"username":"Tutorial_DBM","name":"设置机器人用户名"},{"status":"0","name":"设置机器人状态"},{"gameName":"TGTBots","gameLink":"","name":"设置机器人游戏"},{"storage":"3","varName":"botversion","changeType":"0","value":"0."}]01","name":"控制变量"},{"title":"机器人控制","author":"TGTGaming Bots","color":"#F3FF00","timestamp":"true","url":"","author图标":"","图片链接":"","缩略图链接":"","存储":"3","变量名":"botstartingembed","name":"创建嵌入消息"},{"存储":"3","变量名":"botstartingembed","字段名称":"机器人信息","消息":"机器人名称:TGTBot n机器人版本:${全局变量( \"botversion \")} n机器人所有者:TGTGamer#4947","行内显示":"0","name":"添加嵌入字段"},{"信息":"2","查找内容":"The Bot Log","存储":"2","变量名":"logchannelID","name":"查找频道"},{"存储":"2","变量名":"logchannelID","比较方式":"0","数值":"","如果为真":"3","如果为真数值":"2","如果为假":"0","如果为假数值":"","name":"检查变量"},{"频道名称":"bot--log","主题":"The Bot日志,位置,存储:0,变量名,名称:创建文本频道},{信息:2,查找:机器人日志,存储:2,变量名:日志频道ID,名称:查找频道},{存储:3,变量名:机器人启动嵌入,字段名称:特定服务器信息,消息:日志频道:${serverVars( "logchannelID ")},不内联,名称:添加嵌入字段},{存储:3,变量名:机器人启动嵌入,频道:6,变量名2:日志频道ID,名称:发送嵌入消息]}] 教程待编写 自定义邀请链接 教程待编写 ---- 高级信息 -- 功能文档 ---- 请注意,要使用以下信息,您需要了解如何使用原始数据。 要使用原始数据,只需右键单击命令或事件,然后从菜单中选择“编辑原始数据”

机器人客户端控制 获取机器人成员 这有什么作用? 如何使用? 设置机器人离开状态 这有什么作用? 如何使用? 设置机器人头像 这有什么作用? 这允许你通过URL设置机器人头像。无需前往Discord开发者网站即可更改头像。 如何使用? 你需要结合存储命令参数或预定义变量来使用。例如,在命令中使用!avatar 图片链接。 示例原始代码: {"name":"avatar","permissions":"ADMINISTRATOR","restriction":"1","actions":[{"info":"0","infoIndex":"1","storage":"1","varName":"test1","name":"Store Command Params"},{"storage":"1","varName":"test1","name":"Set Bot Avatar"}]} 设置机器人游戏状态 这有什么作用? 这允许你设置自定义的“正在玩”状态。许多机器人会使用此空间来宣传他们的网站或命令前缀。 如何使用? 示例原始代码: 设置机器人昵称 这有什么作用? 这允许你通过命令更改机器人的昵称。 如何使用? 前缀.setnickname [NICKNAME.TO.SET] 示例:!setnickname DBM 示例原始代码: {"name":"setnickname","permissions":"NONE","restriction":"2","actions":[{"info":"1","infoIndex":"1","storage":"1","varName":"nickname.to.set","name":"Store Command Params"},{"server":"0","varName":"","nickname":"${tempVars(/\"nickname.to.set/\")}","name":"Set Bot Nickname"}]} 设置机器人状态 这有什么作用? 如何使用? 示例原始代码: 设置机器人用户名 这有什么作用? 如何使用?日志,位置,存储:0,变量名,名称:创建文本频道},{信息:2,查找:机器人日志,存储:2,变量名:日志频道ID,名称:查找频道},{存储:3,变量名:机器人启动嵌入,字段名称:特定服务器信息,消息:日志频道:${serverVars( "logchannelID ")},行内:0,名称:添加嵌入字段},{存储:3,变量名:机器人启动嵌入,频道:6,变量名2:日志频道ID,名称:发送嵌入消息]}]用户请求脚本 TGTGamer愿意为有礼貌请求的人研究构建脚本和代码。请查看以下列表了解他目前正在处理的脚本...缺席脚本 - 由Scarlingg请求 此脚本创建列表并分配角色。该角色需要在机器人重启时记录缺席人员。 第一部分 - 添加缺席用户。{"名称":"缺席","权限":"无","限制":"1","操作":[ {"信息":"1","查找":"缺席","存储":"2","变量名":"缺席角色","名称":"查找角色"}, {"条件":"1","比较":"0","值":"1","如果为真":"0","如果为真的值":"","如果为假":"1","如果为假的值":"","名称":"检查参数"}, {"存储":"2","变量名":"缺席用户","添加类型":"0","位置":"","值":"被提及用户","名称":"添加项目到列表"}, {"成员":"0","变量名2":"","角色":"4","变量名":"缺席角色","名称":"添加成员角色"}, {"标题":"缺席","作者":"","颜色":"","时间戳":"true","链接":"","作者图标":"","图片链接":"","缩略图链接":"","存储":"1","变量名":"缺席嵌入消息","名称":"创建嵌入消息"}, {"存储":"1","变量名":"缺席嵌入消息","字段名称":"${被提及用户}","消息":"你已被标记为缺席。","类型":"文本"} ]}第二部分 - 召回缺席用户 { "name": "listabsent", "permissions": "无", "restriction": "1", "actions": [ { "list": "8", "varName": "absentusers", "start": "", "middle": "", "end": " n", "storage": "1", "varName2": "absentuserstext", "name": "转换列表为文本" }, { "title": "", "author": "", "color": "", "timestamp": "false", "url": "", "authorIcon": "", "imageUrl": "", "thumbUrl": "", "storage": "1", "varName": "absentembed", "name": "创建嵌入消息" }, { "storage": "1", "varName": "absentembed", "fieldName": "缺席用户", "message": "${tempVars( \"absentuserstext \")}", "inline": "1", "name": "添加嵌入字段" } ] }警告系统 此命令过大,无法在此发布。请查看下方链接(链接已屏蔽) 警告用户 警告 封禁用户 - 带管理员日志 { "名称": "封禁用户", "权限": "无", "限制": "1", "操作": [ { "存储": "0", "变量名": "", "名称": "删除消息" }, { "成员": "1", "变量名": "", "角色": "4", "变量名2": "管理员角色", "如果为真": "2", "如果为真值": "7", "如果为假": "0", "如果为假值": "", "名称": "检查成员是否拥有角色" }, { "频道": "0", "变量名": "", "消息": "${成员},你没有执行此操作的权限。"{ "存储": "1", "变量名2": "失败", "名称": "发送消息" }, { "时间": "3", "计量单位": "1", "名称": "等待" }, { "存储": "1", "变量名": "失败", "名称": "删除消息" }, { "名称": "结束动作序列" }, { "条件": "1", "比较": "0", "值": "1", "如果为真": "0", "如果为真值": "", "如果为假": "2", "如果为假值": "14", "名称": "检查参数" }, { "成员": "0", "变量名": "", "数据名称": "警告次数", "默认值": "0", "存储": "1", "变量名2": "总警告数", "名称": "存储成员数据" }, { "成员": "0", "变量名": "", "数据名称": "警告原因", "默认值": " ", "存储": "1", "变量名2": "原因", "名称": "存储成员数据" }, { "标题": "已封禁", "作者": "", "颜色": "#daff00", "时间戳": "true", "链接": "", "作者头像": "", "图片链接": ""{"thumbUrl": "", "storage": "1", "varName": "已封禁用户消息", "name": "创建嵌入消息"}, {"storage": "1", "varName": "已封禁用户消息", "message": "【${member}】已封禁【${mentionedUser}】", "name": "设置嵌入描述"}, {"storage": "1", "varName": "警告列表消息", "channel": "0", "varName2": "", "name": "发送嵌入消息"}, {"name": "结束操作序列"}, {"channel": "0", "varName": "", "message": "你需要@提及一名成员!", "storage": "1", "varName2": "失败", "name": "发送消息"}, {"time": "3", "measurement": "1", "name": "等待"}, {"storage": "1", "varName": "失败", "name": "删除消息"}], "_id": "SkOVY"}---- 高级信息 -- 功能发布 ---- 强大指令 -- 原始数据 本部分将列出社区创建的原始代码形式的指令。这是为你的机器人快速添加功能的最快方式。 请阅读指令的完整标题和所有附加信息,因为它们可能需要多个步骤。 踢出指令 - 简单 原始代码: {"name":"踢出","permissions":"KICK_MEMBERS","restriction":"1","actions":[{"condition":"1","comparison":"0","value":"1","iftrue":"3","iftrueVal":"2","iffalse":"0","iffalseVal":"","name":"检查参数"},{"channel":"0","varName":"","message":"``` n请提及一名用户以将其踢出! n!踢出 [@用户] [原因] n```","存储":"0","变量名2":"","名称":"发送消息"},{"名称":"结束动作序列"},{"信息":"1","信息索引":"2","存储":"1","变量名":"原因","名称":"存储命令参数"},{"成员":"0","变量名":"","原因":"${临时变量( \"原因 \") || \" \"}\",\"名称\":\"踢出成员"}]}\n封禁命令 - 简单原始代码: \n{"名称":"封禁","权限":"封禁成员","限制":"1","动作":[{"条件":"1","比较":"0","值":"1","如果为真":"3","如果为真值":"2","如果为假":"0","如果为假值":"","名称":"检查参数"},{"频道":"0","变量名":"","消息":"``` n请提及一位用户以封禁他们! n!"封禁 [@用户] [原因] n```","存储":"0","变量名2":"","名称":"发送消息"},{"名称":"结束动作序列"},{"信息":"1","信息索引":"2","存储":"1","变量名":"原因","名称":"存储命令参数"},{"成员":"0","变量名":"","原因":"${临时变量( \"原因 \") || \" \"}\",\"名称\":\"封禁成员"}]}\n禁言命令 - 简单原始代码: \n{"名称":"禁言","权限":"禁言成员","限制":"1","动作":[{"条件":"1","比较":"0","值":"1","如果为真":"3","如果为真值":"2","如果为假":"0","如果为假值":"","名称":"检查参数"},{"频道":"0","变量名":"","消息":"``` n请提及一位用户以禁言他们! n!"静音 [@用户] n```","存储":"0","变量名2":"","名称":"发送消息"},{"名称":"结束动作序列"},{"成员":"0","变量名":"","静音":"0","名称":"设置成员静音"}]} 取消静音命令 - 简单原始代码: {"名称":"取消静音","权限":"MUTE_MEMBERS","限制":"1","动作":[{"条件":"1","比较":"0","值":"1","如果为真":"3","如果为真值":"2","如果为假":"0","如果为假值":"","名称":"检查参数"},{"频道":"0","变量名":"","消息":"``` n请@提及一位用户以取消其静音! n!"解除静音 [@用户] n```","存储":"0","变量名2":"","名称":"发送消息"},{"名称":"结束动作序列"},{"成员":"0","变量名":"","静音":"1","名称":"设置成员静音"}]}\n花式骰子指令 - 简单原始代码:\n{"名称":"dice","权限":"无","限制":"1","动作":[{"存储":"1","变量名":"dice","最小值":"1","最大值":"6","名称":"生成随机数"},{"标题":"骰子","作者":"${成员}","颜色":"#00FFF0","时间戳":"false","链接":"","作者图标":"","图片链接":"","缩略图链接":"https://cdn.pixabay.com/photo/2016/03/31/19/19/dice-1294902_960_720.png","存储":"1","变量名":"dice.msg","名称":"创建嵌入消息"},{"存储":"1","变量名":"dice.msg","消息":"你掷出了 ${tempVars( \"dice \")}!","名称":"设置嵌入描述"},{"存储":"1","变量名":"dice.精彩活动 -- 原始数据 本部分将列出社区创建的命令原始代码。这是为你的机器人快速添加功能的最快方式。 请阅读命令的完整标题和所有附加信息,因为它们可能需要多个步骤。 机器人初始化 - 重命名机器人并创建日志频道 将此脚本输入DBM后,你需要修改相关信息。在启动机器人前请检查代码,因为它可能会更改你不希望更改的信息。{"名称":"机器人初始化","临时数据":"","事件类型":"1","操作":[{"用户名":"教程_DBM","名称":"设置机器人用户名"},{"状态":"0","名称":"设置机器人状态"},{"游戏名称":"TGTBots","游戏链接":"","名称":"设置机器人游戏"},{"存储位置":"3","变量名":"机器人版本","更改类型":"0","数值":"0."}01","name":"控制变量"},{"title":"机器人控制","author":"TGTGaming Bots","color":"#F3FF00","timestamp":"true","url":"","authorIcon":"","imageUrl":"","thumbUrl":"","storage":"3","varName":"botstartingembed","name":"创建嵌入消息"},{"storage":"3","varName":"botstartingembed","fieldName":"机器人信息","message":"机器人名称:TGTBot n机器人版本:${全局变量( \"botversion \")} n机器人所有者:TGTGamer#4947","inline":"0","name":"添加嵌入字段"},{"info":"2","find":"机器人日志","storage":"2","varName":"logchannelID","name":"查找频道"},{"storage":"2","varName":"logchannelID","comparison":"0","value":"","iftrue":"3","iftrueVal":"2","iffalse":"0","iffalseVal":"","name":"检查变量"},{"channelName":"bot--log","topic":"机器人"