【问题标题】:TempMute In discord.js v12discord.js v12 中的 TempMute
【发布时间】:2020-12-03 05:48:42
【问题描述】:

我想知道如何创建一个临时静音命令,我的意思是当我输入 t-mute (user) (time) 时,会根据我建立的时间应用一个角色。事实是我不知道该怎么做:(

【问题讨论】:

    标签: javascript node.js discord bots discord.js


    【解决方案1】:

    要在做某事之前设置超时,你可以使用 JavaScript 的 setTimeout() 函数。

    setTimeout(() => {
    //do something
    }, afterMs)
    

    我将假设您已经设置了用户和时间参数,并且以分钟为单位指定持续时间。

    let user = args[value];
    let duration = parseInt(args[value]);
    setTimeout(() => {
    //do something
    }, duration * 60 * 1000)
    

    value 替换为消息中的参数值,具体取决于您的参数处理程序。 parseInt() 将参数(字符串)转换为数字。例如,指定的持续时间为“5”,在parseInt() 之后将变为5。 比如说,消息中指定的持续时间是 5(分钟),因为setTimeout() 以毫秒为单位作为持续时间值,我们使用duration * 60 * 1000 将其转换为毫秒。

    【讨论】:

      【解决方案2】:

      您应该使用setTimeout() 函数。


      // function example
      
      setTimeout(() => {
        console.log('This will be logged after a 5 second delay')
      }, 5000) // 5000 is 5 seconds in ms (milliseconds)

      在您的情况下,您可以使用它来添加Muted 角色,然后在指定时间后将其删除。假设您使用的是功能性命令处理程序,以下是创建tempmute 命令的方法:

      // Usage: !tempmute @user [time (in milliseconds)]
      
      // get user from mention
      const target = message.guild.member(message.mentions.users.first())
      
      // give user 'Muted' role
      target.roles.cache.add('<ID of role you want to give>')
      
      setTimeout(() => {
      
        // remove 'Muted' role
        target.roles.cache.remove('<ID of role that was given>')
      
      }, args[1]) // trigger function after specified time
      

      当然,这是一个非常简单的模板,你需要添加更多才能使它成为一个好的命令。

      另一个建议是使用 npm 包msms 是一个可以将各种时间格式转换为毫秒的解析器。


      例子:

      // Before:
      
      // !tempmute @person 600000
      
      setTimeout(() => {
        // code...
      }, args[1]) 
      
      // After:
      
      // !tempmute @person 1h
      
      setTimeout(() => {
        // code...
      }, ms(args[1]))
      

      希望这在某些方面有用。

      【讨论】:

        猜你喜欢
        • 2021-01-24
        • 2020-10-19
        • 2021-08-04
        • 2020-12-22
        • 2021-03-26
        • 2021-11-24
        • 2021-01-01
        • 2021-02-18
        • 1970-01-01
        相关资源
        最近更新 更多