首先,正常的 discord.js 内容在我的代码中似乎不起作用。
所以我想让用户调用命令,机器人回复并删除用户的消息,也就是调用命令。
bot.on('message', function (user, userID, channelID, message, evt) {
if (message.substring(0, 1) == '?') {
var args = message.substring(1).split(' ');
var cmd = args[0];
args = args.splice(1);
switch(cmd) {
case 'gw':
var gw = args.slice(1).join(' ');
var thumb = args[0];
let date = new Date();
let smalldate = date.getDate() + '/' + (date.getMonth() +1) + ' | ' + date.getHours() + ':' + date.getMinutes();
bot.sendMessage({
to: channelID,
message: `\n <@&${'806183931065401405'}>` + `\n` + `\n ? __**Giveaway**__ ?`,
embed: {
color: 16580705,
footer: {
text: 'Started On : ' + smalldate,
},
thumbnail:{
url : thumb
},
title: gw,
description: 'Hosted By: ' + user,
}
});
bot.deleteMessage(message);
}
}
});
衷心感谢您的任何回复。
答案 0 :(得分:2)
正如我在评论中所讨论的,以下是更改:
bot.on('message', message => {// arrow function
if (message.content.startsWith(PREFIX) {
body = message.content.slice(PREFIX.length)
var args = message.content.substring(1).split(' ');
var cmd = args[0];
args = args.splice(1);
switch(cmd) {
case 'gw':
var gw = args.slice(1).join(' ');
var thumb = args[0];
let date = new Date();
let smalldate = date.getDate() + '/' + (date.getMonth() +1) + ' | ' + date.getHours() + ':' + date.getMinutes();
message.channel.send({
to: channelID,
message: `\n <@&${'806183931065401405'}>` + `\n` + `\n ? __**Giveaway**__ ?`,
embed: {
color: 16580705,
footer: {
text: 'Started On : ' + smalldate,
},
thumbnail:{
url : thumb
},
title: gw,
description: 'Hosted By: ' + user,
}
});
message.delete();
}
}
});
答案 1 :(得分:1)
我为您添加了一些代码格式。
bot.on('message')
只返回 message
对象,不能添加其他变量。
对于删除初始消息,您可以使用 message.delete()
使用 Discord.js documentation :) 学习自由的方法
const Discord = require('discord.js');
const bot = new Discord.Client();
const prefix = '?';
bot.on('ready', () => {
console.log('\x1b[32m%s\x1b[0m', `${bot.user.username} is online on ${bot.guilds.cache.size} servers!`);
});
bot.on('message', async (message) => {
if (!message.content.startsWith(prefix)) return;
let args = message.content.substring(prefix.length).split(' ');
let cmd = args.shift();
switch (cmd) {
case 'gw':
let gw = args.join(' ');
let thumb = args[0];
let date = new Date();
let smallDate = date.getDate() + '/' + (date.getMonth() + 1) + ' | ' + date.getHours() + ':' + date.getMinutes();
let embed = new Discord.MessageEmbed();
embed.setDescription(`Hosted By: ${message.author}`);
embed.setColor(16580705);
embed.setFooter(`Started On : ${smallDate}`); //Better use embed.setTimestamp(), because its will convert time yo user local timezone
embed.setTitle(gw);
await message.channel.send(`\n <@&${'806183931065401405'}>` + `\n` + `\n ? __**Giveaway**__ ?`, embed)
await message.delete()
}
});