- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想创建一个 react Angular 色机器人但是这条线const maths = message.guild.roles.cache.find(role => role.name === "Maths");
给我这个错误:类型错误:无法读取未定义的属性(读取“公会”)
我该如何解决这个问题?
谢谢 !
index.js:
const client = new Discord.Client({ intents: ["GUILDS", "GUILD_MESSAGES"]}, {partials: ["MESSAGE", "CHANNEL", "REACTION"] })
require("dotenv").config();
const prefix = "!";
const fs = require("fs");
client.commands = new Discord.Collection();
const commandFiles = fs.readdirSync("./commands/").filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.commands.set(command.name, command);
}
client.on("ready", () => {
console.log("bot online");
});
client.on("message", message => {
if(!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ +/);
const command = args.shift().toLowerCase();
if (command === "reactionrole") {
client.commands.get("reactionrole").execute(message. args, Discord, client);
}
});
client.login(process.env.BOT_TOKEN);
react Angular 色.js:
name: 'reactionrole',
description: "Sets up a reaction role message",
async execute(message, args, Discord, client) {
const channel = "889087325244629012";
const maths = message.guild.roles.cache.find(role => role.name === "Maths");
const mathsExpertes = message.guild.roles.cache.find(role => role.name === "Maths expertes");
const nsi = message.guild.roles.cache.find(role => role.name === "NSI");
const physique = message.guild.roles.cache.find(role => role.name === "Physique");
const svt = message.guild.roles.cache.find(role => role.name === "SVT");
const artsPlastique = message.guild.roles.cache.find(role => role.name === "Arts Plastiques");
const mathsEmoji = '📐';
const mathsExpertesEmoji = '🧠';
const nsiEmoji = '💻';
const physiqueEmoji = '🧪';
const svtEmoji = '🧬';
const artsPlastiquesEmoji = '🎨';
let embed = new Discord.MessageEmbed()
.setColor("#e42643")
.setTitle("Selection des matière")
setDescription("Choisis tes matières en cliquant sur la reaction qui correspond\n\n"
+ `${mathsEmoji} : Maths\n`
+ `${mathsExpertesEmoji} : Maths Expertes\n`
+ `${nsiEmoji} : NSI\n`
+ `${physiqueEmoji} : Physique\n`
+ `${svtEmoji} : SVT\n`
+ `${artsPlastiquesEmoji} : Arts Plastiques\n`);
let messageEmbed = await message.channel.send(embed);
messageEmbed.react(mathsEmoji);
messageEmbed.react(mathsExpertesEmoji);
messageEmbed.react(nsiEmoji);
messageEmbed.react(physiqueEmoji);
messageEmbed.react(svtEmoji);
messageEmbed.react(artsPlastiquesEmoji);
client.on("messageReactionAdd", async(reaction, user) => {
if (reaction.message.partial) await reaction.message.fetch();
if (reaction.partial) await reaction.fetch();
if (user.bot) return;
if (!reaction.message.guild) return;
if (reaction.message.channel.id == channel) {
if (reaction.emoji.name === mathsEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.add(maths);
}
if (reaction.emoji.name === mathsExpertesEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.add(mathsExpertes);
}
if (reaction.emoji.name === nsiEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.add(nsi);
}
if (reaction.emoji.name === physiqueEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.add(physique);
}
if (reaction.emoji.name === svtEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.add(svt);
}
if (reaction.emoji.name === artsPlastiquesEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.add(artsPlastique);
}
} else {
return;
}
});
client.on("messageReactionRemove", async(reaction, user) => {
if (reaction.message.partial) await reaction.message.fetch();
if (reaction.partial) await reaction.fetch();
if (user.bot) return;
if (!reaction.message.guild) return;
if (reaction.message.channel.id == channel) {
if (reaction.emoji.name === mathsEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.remove(maths);
}
if (reaction.emoji.name === mathsExpertesEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.remove(mathsExpertes);
}
if (reaction.emoji.name === nsiEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.remove(nsi);
}
if (reaction.emoji.name === physiqueEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.remove(physique);
}
if (reaction.emoji.name === svtEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.remove(svt);
}
if (reaction.emoji.name === artsPlastiquesEmoji){
await reaction.message.guild.members.cache.get(user.id).roles.remove(artsPlastique);
}
} else {
return;
}
});
}
}
最佳答案
您正在尝试访问 undefined object 的属性。
如果你尝试这样做,你会得到一个错误。
const someObject = undefined
someObject.someProperty
client.commands.get("reactionrole").execute(message. args, Discord, client);
您正在使用
.
而不是
,
所以你将 3 个变量传递给这个函数:
message.args
,
Discord
,
client
,但您必须传递 4 个变量:
client.commands.get("reactionrole").execute(message, args, Discord, client);
关于javascript - 类型错误 : Cannot read properties of undefined (reading 'guild' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69245416/
我只是有一个更琐碎的问题。 为什么undefined == undefined 返回true,而undefined >= undefined 为false? undefined 等于 undefine
用PHP 7.2编写套接字服务器。根据Firefox 60中的“网络”选项卡,服务器的一些HTTP响应的第一行随机变为undefined undefined undefined。因此,我尝试记录套接字
在 JavaScript 中这是真的: undefined == undefined 但这是错误的: undefined <= undefined 起初我以为<=运算符包含第一个,但我猜它试图将其转换
在回答这个问题 (Difference between [Object, Object] and Array(2)) 时,我在 JavaScript 数组中遇到了一些我以前不知道的东西(具有讽刺意味的
来自https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/of , Note: thi
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
当我添加 到我的 PrimeFaces Mobile 页面,然后我在服务器日志中收到以下警告 WARNING: JSF1064: Unable to find or serve resource, u
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我正在运行 PHP 脚本并继续收到如下错误: Notice: Undefined variable: my_variable_name in C:\wamp\www\mypath\index.php
我是一名优秀的程序员,十分优秀!