【问题标题】:Discord.js writing and reading message.author.id json file later deleting it from jsonDiscord.js 写入和读取 message.author.id json 文件,稍后将其从 json 中删除
【发布时间】:2020-08-23 04:07:28
【问题描述】:

我正在尝试制作类似于 Dank memer “请战斗”命令的东西,但我需要以某种方式存储消息作者 ID 以供以后使用,并在以后不需要时删除 id。最好的办法是将它存储在 JSON 中,然后从 JSON 中删除它。我尝试了不同的代码来编写和读取 JSON,但其中任何一个都不起作用。我只想简单地用 JSON 写这样的东西:

{
  "id":"*message author id*"
}

然后删除id

【问题讨论】:

    标签: json discord.js


    【解决方案1】:

    我认为,最简单的方法是将两个 id 存储在变量中并使用 [message collector][1] 获取下一条消息。就我个人而言,我将创建一个函数,它将有第一个用户、第二个用户、通道和 bool(我将在后面描述)作为参数。并且在函数内部,它将设置新的收集器,限制为 1 和基于 bool 的用户(如果 bool 为 false,则为 user 1,如果为 true,则为 user 2),然后在消息收集事件只需做一些战斗逻辑并使用反向布尔参数再次触发此功能。要开始战斗,只需使用随机布尔值触发此函数。 [1]:https://discord.js.org/#/docs/main/stable/class/MessageCollector
    编辑:代码(未经测试,很抱歉出现错误):

    function nextFightStep (channel, user1, user2, side /*, some other combat arguments*/) {
        //send some info message as dank memers "what do you want to do? punch, defend or end? Type your choice out in chat as it's displayed!" (and target member is side ? user1 : user2)
        new Discord.MessageCollector(channel,m => m.author.id == (side ? user1 : user2).user.id,{max:1}).on("collect",message => {
            //some fight logic
            if (/*continue fight*/) {
                nextFightStep(channel, user1, user2, !side /*, new fight arguments*/)
            }
            else {
                //some end fight logic
            }
        })
    }
    

    并使用以下参数触发此函数:发送通道,公会成员 1,公会成员 2,如果其公会成员 1 轮,一些默认战斗参数。

    【讨论】:

    • 如果您编写代码来更好地解释您的答案会更有帮助
    猜你喜欢
    • 2021-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-13
    • 2020-09-16
    • 2019-08-25
    • 1970-01-01
    • 2018-05-07
    相关资源
    最近更新 更多