discord - 我想在 discord.js 中创建一个 eval 命令
问题描述
我正在尝试使用它来创建一个 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
,控制台上出现错误。我该如何修复这个错误?
解决方案
推荐阅读
- python - 方法同时返回自身和一个值
- python - 找不到退出循环并保留当前输入的变量的方法
- asp.net-mvc - 在单个根文件夹下组织 WebApi 控制器并路由到它们
- android - Kotlin 协程和 SecurityException
- django - 如何为 django summernote 表单传递不同的 id
- reactjs - React 应用程序视频挂起,浏览器显示许多“待处理”流
- sql - 按日期、名称和值的 PIVOT SQL 表
- c# - 进度条超过最大值
- java - 当我发布的数量超过获取数量时,Java 信号量会增加许可数量
- vba - 未为 SaveAs 设置对象变量或 With 块 - vba