我最近一直在尝试使用不和谐的机器人,现在尝试编辑嵌入程序时遇到了问题。 我正在做一个轮询命令,该命令会在一定时间后用完,计时器可以正常工作,但是编辑却不能。错误输出为“未知消息”,但是应该定义消息吗?
代码:
client.on('message', message =>{
let allArgs = message.content.split(" ");
// Splits commands into arguments
let args = message.content.substring(config.prefix.length).split(" ");
allArgs = allArgs.map(function(x){ return x.toLowerCase() });
// All commands
switch(args[0]){
case 'help':
message.channel.send(helpEmbed)
break;
case 'poll':
if(args.length < 8) {
message.channel.send(pollUsage);
message.delete();
}
else {
pollMsg = message.content.slice(6,message.length);
var pollArgs = pollMsg.split("/"); // Splits arguments by "/"
if(pollArgs.length > 11) {
message.channel.send(pollUsage);
message.delete();
}
else {
var timeArgs = pollArgs[1].split(":");
console.log(timeArgs);
if(timeArgs.length > 4) {
message.channel.send(pollUsage);
message.delete();
}
else {
var pollEmbed = new Discord.MessageEmbed()
.setColor(pink)
.setTitle('POLL')
.setAuthor('IdealBot', 'https://hypixel.net/attachments/ideal-png.1417277/', 'https://hypixel.net/threads/ideal-ideal-%E2%9D%96-level-52-%E2%9D%96-sweaty-skyblock-guild-%E2%9D%96-top-10-sb-guild-%E2%9D%96-splashes-%E2%9D%96-events-%E2%9D%96-recruiting.2500755/')
.addFields(
{ name: 'Question', value: pollArgs[0] },
{ name: '\u200B', value: '\u200B' },
)
.setTimestamp()
.setFooter('Time left: ' + pollArgs[1]);
for(i=2;i<pollArgs.length;i++) {
pollEmbed.addFields({ name: 'Option '+pollReact[i-2], value: pollArgs[i], inline: true });
}
pollEmbed.addFields({ name: '\u200B', value: '\u200B' });
var days = parseInt(timeArgs[0]);
var hours = parseInt(timeArgs[1]);
var minutes = parseInt(timeArgs[2]);
var seconds = parseInt(timeArgs[3]);
var secDays = days*24*60*60;
var secHours = hours*60*60;
var secMinutes = minutes*60;
console.log("Hours in seconds: " + secHours + ", Minutes in seconds: " + secMinutes + ", Additional seconds: " + seconds);
var totalTime = secDays+secHours+secMinutes+seconds;
var totalTimeMilliseconds = totalTime*1000;
console.log(totalTime);
var currentTime = new Date().getTime();
var endDate = currentTime+totalTimeMilliseconds;
const msg = message.channel.send(pollEmbed).then(sentEmbed => {
for(i=2;i<pollArgs.length;i++) {
sentEmbed.react(pollReactEmoji[i-2])
}
}).catch((err) => {
console.error('Error! ' + err)
})
message.delete();
}
var timer = setInterval(function() {
var currentTime = new Date().getTime();
var remainingTime = endDate-currentTime;
if (remainingTime >= 0) {
let daysCalc = Math.floor(remainingTime / (1000 * 60 * 60 * 24));
let hoursCalc = Math.floor((remainingTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
let minutesCalc = Math.floor((remainingTime % (1000 * 60 * 60)) / (1000 * 60));
let secondsCalc = Math.floor((remainingTime % (1000 * 60)) / 1000);
if(daysCalc < 10) { daysCalc = "0"+ daysCalc};
if(hoursCalc < 10) { hoursCalc = "0"+ hoursCalc};
if(minutesCalc < 10) { minutesCalc = "0"+ minutesCalc};
if(secondsCalc < 10) { secondsCalc = "0"+ secondsCalc};
var remainingTimeText = daysCalc + ":" + hoursCalc + ":" + minutesCalc + ":" + secondsCalc;
console.log(remainingTimeText);
var pollEmbedEdit = new Discord.MessageEmbed()
.setFooter('Time left: ' + remainingTimeText);
message.edit(pollEmbedEdit).catch((err) => {
console.error('Error! ' + err);
})
}
else {
}
}, 1000);
}
}
break;
}
真的很感谢您的帮助。
答案 0 :(得分:0)
当您尝试编辑$('input[name="element-one"], input[name="element-two"], input[name="element-three"]').valid();
时,将运行此message
到用户消息。您需要将method
块放在edit
结尾,然后运行then(sentEmbed => {
。
方法
sentEmbed.edit(DATA)
将删除所有其他消息数据,因此当您使用message.edit
时,新的嵌入将仅包含页脚字段。
.setFooter('Time left: ' + remainingTimeText);