我正在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".