【发布时间】:2021-09-21 13:52:39
【问题描述】:
我在 vs 代码上使用 node.js + discord.js,这也是我第一次编码,所以请原谅我丑陋的格式等。 一切都是最新的,并且运行得非常好,直到它只是......没有。这让我发疯了,没有一个对其他人有用的解决方案对我有用。 我正在关注 this 教程,但为了个性化我的机器人而偏离了它。
Index.js
require('dotenv').config();
const {
Client,
Message,
User,
ClientUser,
GuildMember,
ClientApplication,
Guild
} = require('discord.js');
const client = new Client({
intents: ["GUILDS", "GUILD_MESSAGES", "GUILD_MESSAGE_TYPING", "GUILD_PRESENCES"]
});
const prefix = '!';
client.on('ready', () => {
console.log('SHOWTIME!!');
client.user.setStatus('idle');
});
client.on("message", (message) => {// EventEmitter
if (message.content == "!ping") { // Check if message is "!ping"
message.channel.send("Pinging ...") // Placeholder for pinging ...
.then((msg) => { // Resolve promise
msg.edit("Pong! " + (Date.now() - message.createdTimestamp)); // Edits message with current timestamp minus timestamp of message
});
}
});
client.on("message", (message) => {
if (message.author.bot) return; {
if (message.content == "!help") {
message.channel.send("What can I help you with?")
.then((message) => {
message.react("1️⃣").then(_e => {
message.react("2️⃣").then(_e => {
message.react("⏹");
});
});
});
}
}
client.on("message", (message) => {
if (message.content == "!ns") {
(message.react)("????");
message.reply('The next session is scheduled for ...!');
}
});
client.on("message", async (message) => {
if (message.author.bot) return; {
if (message.content == "!uptime") {
(message.react)("✨");
let days = Math.floor(client.uptime / 86400000);
let hours = Math.floor(client.uptime / 3600000) % 24;
let minutes = Math.floor(client.uptime / 60000) % 60;
let seconds = Math.floor(client.uptime / 1000) % 60;
message.channel.send((`__I have been online for...__\n${days}d ${hours}h ${minutes}m ${seconds}s!`));
}
}
});
client.login(process.env.token_renren);
});
package.JSON
{
"name": "renren_v2",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node ./src/index.js",
"dev": "nodemon ./src/index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"discord.js": "^13.1.0",
"dotenv": "^10.0.0",
"express": "^4.17.1"
},
"devDependencies": {
"nodemon": "^2.0.12"
}
}
终端中不断出现的消息:
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node ./src/index.js`
[nodemon] clean exit - waiting for changes before restart
具体来说,在我添加 此 特定命令后,Nodemon 停止工作:
client.on("message", (message) => {
if (message.author.bot) return; {
if (message.content == "!help") {
message.channel.send("Hm? What can I help you with?")
.then((message) => {
message.react("1️⃣").then(_e => {
message.react("2️⃣").then(_e => {
message.react("⏹");
});
我在它第一次给我错误后将其删除,但将其添加回来查看是否是问题所在。将其添加回来后,将其删除将不再使 nodemon 工作。我已经尝试卸载、将其安装为项目开发、清理安装节点等,但到目前为止没有任何效果。
【问题讨论】:
-
那里有大量的消息事件处理程序......你应该只有一个
client.on("message")。为什么在`if (message.author.bot) return;`之后开始一个块?为什么要将客户端登录到消息处理程序中? -
哇,我什至没有注意到我将登录名放在了消息处理程序中。现已修复,非常感谢您提供的信息。另外,client.on("message") 是因为我不断收到“已声明但从未定义的消息”错误,并且放置它可以解决它,但我想我应该研究更多的机器人代码并从它们的编码中学习。跨度>
标签: javascript node.js discord.js nodemon