首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过DMs收集输入

通过DMs收集输入
EN

Stack Overflow用户
提问于 2022-02-07 09:34:57
回答 1查看 52关注 0票数 0

我想知道在调用斜杠命令之后是否可能通过DMs获取用户的输入。我已经创建了一个小的迷你游戏,理想的情况下,可以在用户的DMs中发挥,以避免垃圾邮件的频道,它被调用。我的代码结构的一个示例如下:

代码语言:javascript
复制
module.exports = {
    data: new SlashCommandBuilder()
    .setName('game')
    .setDescription('Play game'),
async execute(interaction) {
    const score = await gameLogic(interaction.user);
    await interaction.reply(score);
    },
};

然后我向用户发送一个DM,让他们知道游戏已经启动,并调用一个等待用户输入的函数。

代码语言:javascript
复制
async function gameLogic(user) {
    user.send("Game time");
    let userInput = getUserInput();
    .... game logic ...
}

我尝试过使用消息收集器和awaitMessage,但似乎无法工作。真正尝试用尽所有的选择,直到转移到另一个解决方案。

我很感激你的建议!

编辑不幸的是,我不记得我到底尝试过什么,但我可以给出一些例子。

我的邮件收集器就是这样的:

代码语言:javascript
复制
async function getUserInput() {

    console.log("Awaiting user input");

    const filter = message => message.author.id === m_user.id;
    const collector = m_interaction.channel.createMessageCollector({ filter, max: 1, time: 15000, errors: ['time'] })
    collector.on('collect', message => console.log(`You wrote ${message.content}`));
    collector.on('error', collected => console.log("Time out"));
} 

我的awaitMessage是这样的:

代码语言:javascript
复制
async function getUserInput() {
    const filter = message => message.author.id === m_user.id;
    const message = await m_interaction.channel.awaitMessages({ filter, max: 1, time: 15000, errors: ['time'] })
        .then(message => m_interaction.channel.send(`You wrote ${message.content}`))
        .catch(collected => m_interaction.channel.send("Time out"));

    console.log(message);
}

我确信这些方法将用于从命令调用的通道收集输入,但我不确定如何修改它们以通过DMs收集输入。我确实读了一些关于dmChannel的东西,但似乎没能按照我想要的方式工作。

编辑2+解决方案--我已经成功地将DMChannel与用户存储在一起。

代码语言:javascript
复制
const channel = user.createDM();

现在我可以在那里使用MessageCollector了。希望这能帮上忙。

EN

回答 1

Stack Overflow用户

发布于 2022-02-07 20:04:46

我已经设法将DMChannel与用户存储在一起。

代码语言:javascript
复制
const channel = user.createDM();

现在我可以在那里使用MessageCollector了。希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71016289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档