当前位置: 首页 > 知识库问答 >
问题:

不一致js bot,临时静音命令不静音

羿昊英
2023-03-14

如前所述。我正在尝试为我的Discord机器人创建一个临时静音命令。我遇到的问题是,它创建了一个静音的角色,但即使我更改了烫发,用户仍然可以编写消息。除此之外,我还收到了以下弃用警告:

(节点:15956)弃用警告:集合#查找:改为传递函数

    const Discord = require("discord.js");
const ms = require("ms");

module.exports.run = async (bot, message, args) => {

  //!tempmute @user 1s/m/h/d

  let tomute = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
  if(!tomute) return message.reply("Couldn't find user.");
  if(tomute.hasPermission("MANAGE_MESSAGES")) return message.reply("Can't mute them!");
  let muterole = message.guild.roles.find(`name`, "muted");
  //start of create role
  if(!muterole){
    try{
      muterole = await message.guild.createRole({
        name: "muted",
        color: "#000000",
        permissions:[]
      })
      message.guild.channels.forEach(async (channel, id) => {
        await channel.overwritePermissions(muterole, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false
        });
      });
    }catch(e){
      console.log(e.stack);
    }
  }
  //end of create role
  let mutetime = args[1];
  if(!mutetime) return message.reply("You didn't specify a time!");

  await(tomute.addRole(muterole.id));
  message.reply(`<@${tomute.id}> has been muted for ${ms(ms(mutetime))}`);

  setTimeout(function(){
    tomute.removeRole(muterole.id);
    message.channel.send(`<@${tomute.id}> has been unmuted!`);
  }, ms(mutetime));


//end of module
}

module.exports.help = {
  name: "tempmute"
}

共有2个答案

荀嘉熙
2023-03-14

我在你的脚本中发现了一些错误,所以我为你修复了它

//!tempmute @user 1s/m/h/d

  let tomute = message.guild.member(message.mentions.users.first() ||
message.guild.members.get(args[0]));   if(!tomute) return
message.reply("Couldn't find user.");  
if(tomute.hasPermission("MANAGE_MESSAGES")) return
message.reply("Can't mute them!");   let muterole =
message.guild.roles.find(muterole => muterole.name === "muted");  
//start of create role   if(!muterole){
    try{
      muterole = await message.guild.createRole({
        name: "muted",
        color: "#000000",
        permissions:[]
      })
      message.guild.channels.forEach(async (channel, id) => {
        await channel.overwritePermissions(muterole, {
          SEND_MESSAGES: false,
          ADD_REACTIONS: false
        });
      });
    }catch(e){
      console.log(e.stack);
    }   }   //end of create role   let mutetime = args[1];   if(!mutetime) return message.reply("You didn't specify a time!");

  await(tomute.addRole(muterole.id));   message.reply(`<@${tomute.id}>
has been muted for ${message(message(mutetime))}`);

  setTimeout(function(){
    tomute.removeRole(muterole.id);
    message.channel.send(`<@${tomute.id}> has been unmuted!`);   }, message (mutetime));

//end of module }

module.exports.help = {   name: "tempmute" }
岳彬炳
2023-03-14

我发现了问题,就像你说的,是权限问题。最重要的是,我应该改变:

let muterole = message.guild.roles.find(`name`, "muted");

对下列事项:

let muterole = message.guild.roles.find(muterole => muterole.name === "muted");
 类似资料:
  • 代码有效,但不是原因 这只会显示最后两个字的原因,我不知道为什么?我如何将其转为包含全部原因 (命令是'!静音@成员[时间][原因])

  • 我正在尝试创建一个不和谐的机器人。js。它显示没有错误,可以联机并完美运行。但是,当我尝试运行命令时,bot不会说任何话,甚至不会发出错误消息。我的代码在这里:

  • 问题内容: 最近,我一直在询问有关discord.py的大量问题,这就是其中之一。 有时候,有些人向您的不和谐服务器发送垃圾邮件,但踢或禁止它们似乎太苛刻了。我想到了一个命令,该命令将在给定的时间内删除通道上的所有新消息。 到目前为止,我的代码是: 我这一节中的代码是: 所有使用的变量都在bot的顶部预先定义。 我的问题是,该漫游器会删除其有权访问的所有频道中的所有新消息。我尝试放入该部分,但这使

  • 所以我为我的不和谐机器人做了一个静音命令,它会发现是否存在一个“静音”角色,如果不存在,机器人会创建一个“静音”角色,然后把这个角色给提到的成员,目前当我运行命令时,它只给我一个如果命令写入错误,它应该发送的嵌入。 我仍然无法找出问题所在以及原因,我非常想知道代码中的错误以及是否还有我不知道的错误。

  • 我试图为我的不和谐机器人创建一个静音命令。我把所有的代码都打了出来,我很确定它应该能工作。然而每当我输入N?静音不会发生任何事情,随后在我的命令提示符中也不会显示任何内容。没有错误消息,没有什么。我试图在异步def静音()之后放置一个打印,但也没有显示出来。 我有以下代码: 我试着做一个踢命令berore,但是在搜索stackoverflow和其他十几个网站来找出为什么它不起作用后,我放弃了。现在

  • 我不和谐。关于repl的js初学者。信息技术 代码: 但是控制台发送这样的错误: 有人能看出我错在哪里吗?