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

我如何设置一个无法踢更高角色不和谐的成员。js

公西天逸
2023-03-14

我需要使用Discord的朋友对此代码提供一些帮助。js。我似乎无法编写此代码,我想要的是:

当人员/成员角色高于机器人时,机器人将发送消息称机器人无法踢高角色的成员,但当低于机器人角色的人员将被踢时

错误是:bot无法踢出bot角色上方或下方的所有成员

对此有什么解决办法吗?也许我遗漏了什么

        const rolepositionerror = new Discord.MessageEmbed()
        .setDescription('You can\'t kick members with equal or higher position!')
        .setColor("FF0000")

            const targetMember = message.mentions.members.first() || message.guild.members.cache.get(args[0])
 
            const authorHighestRole = message.member.roles.highest
            const targetHighestRole = targetMember.roles.highest
        if(targetHighestRole = authorHighestRole) return message.channel.send(rolepositionerror)

        if(targetMember) {
                targetMember.kick()
                message.channel.send(userkicked)
        }

共有1个答案

南宫胡媚
2023-03-14

不一致js的GuildMember有一个名为GuildMember#kickable的属性,如果用户可以被踢,该属性将返回true,您要做的是将其添加到代码中:

const targetMember = message.mentions.members.first()
  || message.guild.members.cache.get(args[0]);

if(targetMember) {
  if (targetMember.kickable) {
    // If you can kick the member, then...

    targetMember.kick()
    message.channel.send(userkicked)
  } else {
    // If you can't kick the member, then...

    const roleError = new Discord.MessageEmbed()
      .setDescription(
        "This member can't be kicked!\n" +
        "Check if they have a higher role than the bot and if the bot has permissions!"
      )
      .setColor("FF0000");
    return message.channel.send(roleError)
  }
}

有关更多信息,请查看以下链接:

  • Discordjs.guide-指南-踢成员
  • Discordjs.guide-指南-权限
  • Discord.js-文档-工会成员属性
  • Discord.js-Docs-Guild成员#kickable属性
 类似资料:
  • Bot只是不工作:/Bot没有给出任何错误

  • 我对用JavaScript编码非常陌生,我正在尝试为我计划在不和谐服务器中的事件创建一个非常简单的机器人。 基本上,如果所提到的成员在数组中没有角色集,那么它应该做的就是将角色分配给所提到的成员(仅第一个成员)。 虽然代码本身不会抛出任何错误(机器人登录并打印就绪状态),但每当我试图召唤机器人时,它都不会做任何事情。我认为我的技能不够好,不能自己解决这个问题,所以任何帮助都将受到高度赞赏!谢谢!

  • 我正在通过discord开发discord机器人。js和我需要在这一刻获得语音频道中的所有成员。我该怎么做?我试过了 但是它说find不是一个函数。还有,我试过了 但是它说get不是一个函数。

  • 接口说明 变更团队成员的角色 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /permissions/api/team/user/v1.0.0/changeUserRole 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN teamUserI

  • 接口说明 变更团队成员的角色 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 POST /permissions/api/team/user/v1.

  • 我正在尝试使用discord删除已创建的角色,该角色使用的是。js。 终端中的错误显示: DiscordAPIError:缺少权限 虽然我已经给了我的机器人所有权限。 代码: