Discord.Js:无法读取 table 问题
Discord.Js: Cannot read table issue
我正在尝试用 Discord.js 制作一个小的 Discord 机器人,但是在我的管理命令中,它在尝试将玩家添加到 table:[=14= 时抛出这个错误]
C:\Users\Mark\Desktop\DiscCentral\bot.js:49
如果(服务器管理员[1]){
^
TypeError: Cannot read property '1' of undefined
at Client.client.on (C:\Users\Mark\Desktop\DiscCentral\bot.js:49:20)
at emitOne (events.js:116:13)
at Client.emit (events.js:211:7)
at MessageCreateHandler.handle (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
at WebSocketPacketManager.handle (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:103:65)
at WebSocketConnection.onPacket (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
at WebSocket.onMessage (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\node_modules\ws\lib\event-target.js:120:16)
at emitOne (events.js:116:13)
at WebSocket.emit (events.js:211:7)
这是我的代码:
if(command === 'admin') {
if(message.member.roles.find("name", "Owner")){
var ServerExists = false;
for(var ServerId; ServerId<Admins.length; ServerId++) {
if(Admins[ServerId] === message.member.server.id) {
ServerExists = true;
}
}
if(ServerExists === false) {
var NewServer = Admins[Admins.length + 1]
NewServer = {};
}
for(var ServerId; ServerId<Admins.length; ServerId++) {
if(Admins[ServerId] === message.member.server.id) {
var ServerNumber = ServerId
}
}
var ServerAdmins = Admins[ServerNumber]
if(ServerAdmins[1]) {
ServerAdmins[1] = message.member.server.id;
} else {
ServerAdmins[ServerAdmins.length + 1] = message.member.server.id;
message.reply(`${ServerAdmins[ServerAdmins.length]} was added.`)
}
}
我假设问题是我在 table 中使用 table,但我不知道如何以任何其他方式为每个服务器分配等级。
对我应该做什么有什么建议吗?
您似乎没有在代码中声明 Admins
变量,至少您提供的代码是这样。告诉我们你是如何定义它的?就像现在一样,这就是它给你错误的原因。
我正在尝试用 Discord.js 制作一个小的 Discord 机器人,但是在我的管理命令中,它在尝试将玩家添加到 table:[=14= 时抛出这个错误]
C:\Users\Mark\Desktop\DiscCentral\bot.js:49 如果(服务器管理员[1]){ ^
TypeError: Cannot read property '1' of undefined
at Client.client.on (C:\Users\Mark\Desktop\DiscCentral\bot.js:49:20)
at emitOne (events.js:116:13)
at Client.emit (events.js:211:7)
at MessageCreateHandler.handle (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\src\client\websocket\packets\handlers\MessageCreate.js:9:34)
at WebSocketPacketManager.handle (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\src\client\websocket\packets\WebSocketPacketManager.js:103:65)
at WebSocketConnection.onPacket (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:333:35)
at WebSocketConnection.onMessage (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\src\client\websocket\WebSocketConnection.js:296:17)
at WebSocket.onMessage (C:\Users\Mark\Desktop\DiscCentral\node_modules\discord.js\node_modules\ws\lib\event-target.js:120:16)
at emitOne (events.js:116:13)
at WebSocket.emit (events.js:211:7)
这是我的代码:
if(command === 'admin') {
if(message.member.roles.find("name", "Owner")){
var ServerExists = false;
for(var ServerId; ServerId<Admins.length; ServerId++) {
if(Admins[ServerId] === message.member.server.id) {
ServerExists = true;
}
}
if(ServerExists === false) {
var NewServer = Admins[Admins.length + 1]
NewServer = {};
}
for(var ServerId; ServerId<Admins.length; ServerId++) {
if(Admins[ServerId] === message.member.server.id) {
var ServerNumber = ServerId
}
}
var ServerAdmins = Admins[ServerNumber]
if(ServerAdmins[1]) {
ServerAdmins[1] = message.member.server.id;
} else {
ServerAdmins[ServerAdmins.length + 1] = message.member.server.id;
message.reply(`${ServerAdmins[ServerAdmins.length]} was added.`)
}
}
我假设问题是我在 table 中使用 table,但我不知道如何以任何其他方式为每个服务器分配等级。
对我应该做什么有什么建议吗?
您似乎没有在代码中声明 Admins
变量,至少您提供的代码是这样。告诉我们你是如何定义它的?就像现在一样,这就是它给你错误的原因。