我正在try 判断用户的权限,如果用户是管理员,它不会做其他任何事情,它会返回"No links allowed".我对许可判断有意见.

我的代码是:

client.on("messageCreate", (message) => {
  let regexp =
    /^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/;
  if (regexp.test(message.content)) {
    if (
      message.author.permissions.has(PermissionFlagsBits.Administrator)
    ) {
      return;
    } else {
      message.delete().then(() => {
        message.channel.send(`**<@${message.author.id}> No links allowed!**`);
      });
    }
  }
});

我得到的错误是:

TypeError: Cannot read properties of undefined (reading 'has')
    at Client.<anonymous> (/home/runner/sancturopolis-city-assistant/index.js:65:34)

我还试过:

client.on("messageCreate", (message) => {
  let regexp =
    /^(?:(?:https?|ftp):\/\/)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})))(?::\d{2,5})?(?:\/\S*)?$/;
  if (regexp.test(message.content)) {
    if (
      message.author.id.permissions.has(PermissionFlagsBits.Administrator)
    ) {
      return;
    } else {
      message.delete().then(() => {
        message.channel.send(`**<@${message.author.id}> No links allowed!**`);
      });
    }
  }
});

但仍然是同样的错误.

我预计,如果用户是管理员,它不会做其他任何事情,它将返回"No links allowed".

推荐答案

message.authorUser,只有GuildMemberpermissions.要获取消息作者的值为GuildMember,您可以改用message.member:

message.member.permissions.has(PermissionFlagsBits.Administrator)

Javascript相关问答推荐

不渲染具有HTML参数的React元素

积分计算和 colored颜色 判断错误

是什么原因导致此Angular 16应用程序中类型错误时属性结果不存在?

如何在使用fast-xml-parser构建ML时包括属性值?

警告!合同执行期间遇到错误[执行已恢复](Base Layer 2)

在React中获取数据后,如何避免不必要的组件闪现1秒?

如何将Cookie从服务器发送到用户浏览器

如何在ASP.NET JavaScript中使用Google Charts API仅对绘制为负方向的条形图移动堆叠条形图标签位置

如何从HTML对话框中检索单选项组的值?

在WordPress中使用带有WPCode的Java代码片段时出现意外令牌错误

未加载css colored颜色 ,无法将div设置为可见和不可见

同一类的所有div';S的模式窗口

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

为什么我的按钮没有从&q;1更改为&q;X&q;?

如何使用基于promise (非事件emits 器)的方法来传输数据?

令牌JWT未过期

使每个<;li>;元素的 colored颜色 与随机生成的 colored颜色 列表不同(不重复

使用线性插值法旋转直线以查看鼠标会导致 skip

输入的值的类型脚本array.排序()

Pevent触发material 用户界面数据网格中的自动保存