我正在尝试使用它来创建一个 eval 命令:
const testcode = "hello";
if (command === "run" || command === "eval") {
if (message.author.id !== "744752301033521233" && message.author.id !== "716343156513439845")
return message.channel.send({embed: {
title: "✍️RUN",
description: "❌You're not bot owner"
}});
try {
const code = args.join(" ");
let evaled = eval(code);
if (typeof evaled !== "string") {
//console.log(evaled);
evaled = await require("util").inspect(evaled);
//console.log(evaled);
message.channel.send(`\`\`\`xl\n${evaled}\`\`\``);
} else {
message.channel.send(`\`\`\`xl\n${evaled}\`\`\``);
}
} catch (err) {
message.channel.send({
embed: {
title: "✍️RUN",
description: "Error:\n```xl\n" + err + "```",
color: 961818,
timestamp: new Date(),
footer: {
icon_url: client.user.avatarURL
}
}
});
}
}
这段代码对我来说工作正常。 (例如,!run testcode.length
将返回 5)
但是,如果此代码返回超过 4096 个字符,则会返回错误。
所以我使用了拆分选项:
const testcode = "hello";
if (command === "run" || command === "eval") {
if (message.author.id !== "744752301033521233" && message.author.id !== "716343156513439845")
return message.channel.send({embed: {
title: "✍️RUN",
description: "❌You're not bot owner"
}});
try {
const code = args.join(" ");
let evaled = eval(code);
if (typeof evaled !== "string") {
//console.log(evaled);
evaled = await require("util").inspect(evaled);
//console.log(evaled);
message.channel.send(`\`\`\`xl\n${evaled}\`\`\``, { split: true });
} else {
message.channel.send(`\`\`\`xl\n${evaled}\`\`\``, { split: true });
}
} catch (err) {
message.channel.send({
embed: {
title: "✍️RUN",
description: "Error:\n```xl\n" + err + "```",
color: 961818,
timestamp: new Date(),
footer: {
icon_url: client.user.avatarURL
}
}
});
}
}
但是,当我使用此代码运行 !run testcode.length
时,控制台上出现 cannot send an empty message
错误。我该如何修复这个错误?