javascript - 修复不和谐 !avatar 命令的代码
问题描述
我正在尝试制作一个机器人,它的一个命令将图像放入嵌入中,到目前为止,它的唯一工作时间是当我执行 !avatar 但我希望它能够执行 !avatar @the specified user 然后它放该用户个人资料图片链接。这是它当前拥有的代码。
bot.on('message', message => {
if (message.content.startsWith('!embed')) {
const embed = new Discord.RichEmbed()
.setDescription(message.content)
.setFooter('Cloudzy')
message.channel.send({ embed })
}
解决方案
对于任何感兴趣的人,这里有一个示例机器人,它可以发布带有用户头像的丰富嵌入。
您所要做的就是将以下命令发送到服务器。
!avatar @username#0000
机器人 - index.js
const config = require('./config.json');
const { token } = require('./auth.json');
const { Client, RichEmbed } = require('discord.js');
const logger = require('winston');
const client = new Client();
// Configure logger settings
logger.remove(logger.transports.Console);
logger.add(new logger.transports.Console, { colorize: true });
logger.level = 'debug';
client.on('ready', (evt) => {
logger.info('Connected');
logger.info('Logged in as: ' + client.user.username + ' - (' + client.user.id + ')');
});
client.on('message', (message) => {
if (!message.content.startsWith(config.prefix)) return; // Not listening...
const withoutPrefix = message.content.slice(config.prefix.length).trim();
let args = withoutPrefix.split(/\s+/g);
let command = args.shift();
switch (command) {
case 'avatar':
// Credit: PLASMA chicken - https://stackoverflow.com/a/55611445/1762224
const user = message.mentions.users.first() || message.author;
const avatarEmbed = new RichEmbed()
.setColor(0x333333)
.setAuthor(user.username)
.setImage(user.avatarURL);
message.channel.send(avatarEmbed);
}
});
client.login(token);
配置 - config.json
{
"prefix" : "!",
"inviteLink" : "<INVITE LINK HERE>"
}
授权 - auth.json
{
"token": "<AUTH TOKEN HERE>"
}
推荐阅读
- apache-spark - Spark RDD 分区效果
- java - Open Java CLI after is already running
- gradle - 使用 gradle 6.7 我无法汇总子项目的测试报告
- php - 用端口杀死 PHP 服务器
- javascript - 在 html 中显示值来自 sessionStorage 的标签
- sas - 输入时丢失字符字段的小数精度
- sql - 我得到:错误(8,1):PL/SQL:SQL 语句被忽略和错误(8,52):PL/SQL:ORA-00936:此表达式中缺少表达式
- iot - BG95-M3 AT+COPS 和 LTE 网络
- php - 将数组从低到高排序
- powerbi - 创建动态链接/按钮以指向仪表板中的另一个页面