【发布时间】:2022-01-24 21:19:01
【问题描述】:
const levels = require('discord-xp')
const { MessageEmbed } = require('discord.js')
const client = require('../../index')
module.exports = {
name: "edit",
description: "Edits a users level or xp",
usage: ".edit <user> [xp / level] [add / set / remove] <number>",
developersOnly: true,
run: async (message, args, client) => {
const usage = ".edit <user> [xp / level] [add / set / remove] <number>"
if (!args[0]) return message.channel.send(`> You need to state more arguments \`${usage}\``)
if (!mentionedMember) return message.channel.send(`> Mention a valid user / member.`);
if (!args[1]) return message.message.channel.send(`> You must state if you are editing the member's level or xp: \`${usage}\``)
const mentionedMember = message.mentions.members.first()
if (!['xp', 'level'].includes(args[1])) return message.channel.send(`> You did not specify if you are changing level or xp: \`${usage}\``)
if (args[1] === "xp") {
if (!['add', 'set', 'remove'].includes(args[2])) return message.channel.send(`You did not state if you're adding, setting, or removing`)
const value = Number(args[3]);
let levelUser = await Levels.fetch(mentionedMember.user.id, message.guild.id)
if (!levelUser) return message.channel.send('> That person isnt in the database yet.')
if (args[2] === 'add') {
if (!value) return message.channel.send('> That is not a valid number')
try {
await Levels.appendXp(mentionedMember.user.id, message.guild.id, value)
message.channel.send(`> Added \`${value}\` xp to ${mentionedMember}`)
} catch (err) {
console.log(err)
}
} else if (args[2] === 'remove') {
if (!value) return message.channel.send('> That is not a valid number')
try {
await Levels.subtractXp(mentionedMember.user.id, message.guild.id, value)
message.channel.send(`> Removed \`${value}\` xp to ${mentionedMember}`)
} catch (err) {
console.log(err)
}
} else if (args[2] === 'set') {
if (!value) return message.channel.send('> That is not a valid number')
try {
await Levels.setXp(mentionedMember.user.id, message.guild.id, value)
message.channel.send(`> Set ${mentionedMember}'s xp to \`${value}\``)
} catch (err) {
console.log(err)
}
}
} else if (args[1] === 'level') {
if (!['add', 'set', 'remove'].includes(args[2])) return message.channel.send(`You did not state if you're adding, setting, or removing`)
const value = Number(args[3]);
let levelUser = await Levels.fetch(mentionedMember.user.id, message.guild.id)
if (!levelUser) return message.channel.send('> That person isnt in the database yet.')
if (args[2] === 'add') {
if (!value) return message.channel.send('> That is not a valid number')
try {
await Levels.appendLevel(mentionedMember.user.id, message.guild.id, value)
message.channel.send(`> Added \`${value}\` level(s) to ${mentionedMember}`)
} catch (err) {
console.log(err)
}
} else if (args[2] === 'remove') {
if (!value) return message.channel.send('> That is not a valid number')
try {
await Levels.subtractLevel(mentionedMember.user.id, message.guild.id, value)
message.channel.send(`> Removed \`${value}\` level(s) to ${mentionedMember}`)
} catch (err) {
console.log(err)
}
} else if (args[2] === 'set') {
if (!value) return message.channel.send('> That is not a valid number')
try {
await Levels.setLevel(mentionedMember.user.id, message.guild.id, value)
message.channel.send(`> Set ${mentionedMember}'s level to \`${value}\``)
} catch (err) {
console.log(err)
}
}
}
}
}
这应该是我的机器人调平系统的级别和 xp 编辑命令 我首先对自己进行了测试,但它似乎没有用,我认为我的代码中没有任何错误。它发送这个超长错误:
TypeError: Cannot read properties of undefined (reading 'members')
at Object.run (/home/runner/sung-jin-woo/commands/leveling/edit.js:13:46)
at Client.<anonymous> (/home/runner/sung-jin-woo/events/guild/messageCreate.js:124:18)
at Client.emit (node:events:402:35)
at MessageCreateAction.handle (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/actions/MessageCreate.js:25:14)
at Object.module.exports [as MESSAGE_CREATE] (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/websocket/WebSocketManager.js:350:31)
at WebSocketShard.onPacket (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/websocket/WebSocketShard.js:443:22)
at WebSocketShard.onMessage (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/websocket/WebSocketShard.js:300:10)
at WebSocket.onMessage (/home/runner/sung-jin-woo/node_modules/ws/lib/event-target.js:199:18)
at WebSocket.emit (node:events:390:28)
at Receiver.receiverOnMessage (/home/runner/sung-jin-woo/node_modules/ws/lib/websocket.js:1022:20)
at Receiver.emit (node:events:390:28)
at Receiver.dataMessage (/home/runner/sung-jin-woo/node_modules/ws/lib/receiver.js:522:14)
at Receiver.getData (/home/runner/sung-jin-woo/node_modules/ws/lib/receiver.js:440:17)
at Receiver.startLoop (/home/runner/sung-jin-woo/node_modules/ws/lib/receiver.js:148:22)
at Receiver._write (/home/runner/sung-jin-woo/node_modules/ws/lib/receiver.js:83:10) Promise {
<rejected> TypeError: Cannot read properties of undefined (reading 'members')
at Object.run (/home/runner/sung-jin-woo/commands/leveling/edit.js:13:46)
at Client.<anonymous> (/home/runner/sung-jin-woo/events/guild/messageCreate.js:124:18)
at Client.emit (node:events:402:35)
at MessageCreateAction.handle (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/actions/MessageCreate.js:25:14)
at Object.module.exports [as MESSAGE_CREATE] (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/websocket/handlers/MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/websocket/WebSocketManager.js:350:31)
at WebSocketShard.onPacket (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/websocket/WebSocketShard.js:443:22)
at WebSocketShard.onMessage (/home/runner/sung-jin-woo/node_modules/discord.js/src/client/websocket/WebSocketShard.js:300:10)
at WebSocket.onMessage (/home/runner/sung-jin-woo/node_modules/ws/lib/event-target.js:199:18)
at WebSocket.emit (node:events:390:28)
at Receiver.receiverOnMessage (/home/runner/sung-jin-woo/node_modules/ws/lib/websocket.js:1022:20)
at Receiver.emit (node:events:390:28)
at Receiver.dataMessage (/home/runner/sung-jin-woo/node_modules/ws/lib/receiver.js:522:14)
at Receiver.getData (/home/runner/sung-jin-woo/node_modules/ws/lib/receiver.js:440:17)
at Receiver.startLoop (/home/runner/sung-jin-woo/node_modules/ws/lib/receiver.js:148:22)
at Receiver._write (/home/runner/sung-jin-woo/node_modules/ws/lib/receiver.js:83:10)
}
所以有人可以帮助我吗? (如果您需要有关代码的更多信息,请在评论中回复并回复那里的信息)
【问题讨论】:
-
您在复制错误消息后是否更改了代码?你如何执行
run()? -
我不明白你的问题
标签: javascript node.js discord discord.js bots