【发布时间】:2021-08-09 03:42:29
【问题描述】:
我正在使用 discord.js 创建一个“文本冒险”机器人。用户通过回复 a、b、c 或 d 来选择他们想做的事情。我通过使用一个名为“stage”的变量来分隔问题。问题是,机器人不会让用户选择下一个选项,而是使用他们之前的答案。
我尝试使用 .lastMessage,但我无法让它工作。或者我用错了,因为我有点业余。
下面是一些代码,向您展示我是如何处理它的。 (我删除了这个故事,因为它有点......暴力)
require("dotenv").config();
var stage = 0;
let time = 0;
const { Client } = require('discord.js');
const client = new Client();
client.on('ready', () => {
console.log(`${client.user.username} has arrived`);
});
client.on('message', (message) => {
if (message.author.bot === true) return;
if (message.content === 'begin') {
}
if (message.content === 'restart'){
stage = 0;
message.channel.send('Welcome adventurer! To begin, type "a"');
}
if (message.content === 'a' && stage === 0) {
message.channel.send('...');
message.channel.send('...');
message.channel.send('...');
message.channel.send('Do you:');
message.channel.send('a) ...');
message.channel.send('b) ...');
message.channel.send('c) ...');
message.channel.send('d) ...');
stage = 1;
}
if (message.content === 'a' && stage === 1) {
message.channel.send('...');
message.channel.send('...);
message.channel.send('...');
message.channel.send('...');
message.channel.send('...');
message.channel.send('Do you:');
message.channel.send('a) ...');
message.channel.send('b) ...');
}
});
client.login(process.env.DISCORDJS_BOT_TOKEN);
编辑:对不起,我没有添加那么多代码,我不熟悉这个网站,并添加了其余部分。机器人本身可以工作,我只是不确定如何让它只回复一条消息。
如果您需要更多信息,我使用了这个视频: https://www.youtube.com/watch?v=BmKXBVdEV0g&t=15s&ab_channel=TraversyMedia
【问题讨论】:
-
您能否在代码中添加更多内容以显示具体是哪个部分不起作用?
-
是的,很抱歉,我添加了更多代码以便更好地解释。如果需要,我也可以附上一些屏幕截图。
标签: discord discord.js