我如何在 Visual Studio 代码上定义公会?不和谐.js
Posted
技术标签:
【中文标题】我如何在 Visual Studio 代码上定义公会?不和谐.js【英文标题】:How do i define guild on Visual studio code? Discord.js 【发布时间】:2020-08-22 04:31:27 【问题描述】:const Discord = require('discord.js');
const BOTCLIENT = new Discord.Client();
const Token = '...2vXOGsiI';
const Prefix = '-';
BOTCLIENT.on('ready', () =>
BOTCLIENT.user.setActivity("Prefix = '-', Made by Zachary#9293");
);
BOTCLIENT.on('ready', () =>
console.log('online');
)
BOTCLIENT.on('message', message=>
let args = message.content.substring(Prefix.length).split(" ");
switch(args[0])
case 'Commands':
message.channel.send("My commands are here: 'https://docs.google.com/document/d/...aBbo6k0/edit?usp=sharing'" )
break;
case 'Invite':
message.channel.send("My invite is 'https://discordapp.com/oauth2/authorize?client_id=...382&scope=BOT%20BOIIIIIIIIII&permissions=8'")
break;
case 'CreateChannel':
guildMember.roles.add(['123456789012345678', '098765432109876543']);
break;
)
BOTCLIENT.login(Token);
是我的代码,但我收到错误“定义公会”,我用谷歌搜索和搜索,但找不到如何定义公会!有人请帮忙。
这是我得到的错误:
ReferenceError: guild is not defined
at Client.<anonymous> (c:\Users\OKBOO\OneDrive\Desktop\Discord Bot\index.js:34:9)
at Client.emit (events.js:327:22)
at MessageCreateAction.handle (c:\Users\OKBOO\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\actions\MessageCreate.js:31:14)
at Object.module.exports [as MESSAGE_CREATE] (c:\Users\OKBOO\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\handlers\MESSAGE_CREATE.js:4:32)
at WebSocketManager.handlePacket (c:\Users\OKBOO\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketManager.js:386:31)
at WebSocketShard.onPacket (c:\Users\OKBOO\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:436:22)
at WebSocketShard.onMessage (c:\Users\OKBOO\OneDrive\Desktop\Discord Bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:293:10)
at WebSocket.onMessage (c:\Users\OKBOO\OneDrive\Desktop\Discord Bot\node_modules\ws\lib\event-target.js:120:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (c:\Users\OKBOO\OneDrive\Desktop\Discord Bot\node_modules\ws\lib\websocket.js:800:20)
【问题讨论】:
您能否编辑您的问题以包含完整的错误(例如“ReferenceError: guild is not defined”或其他内容)。另外,请更改您的 Discord 令牌。你刚刚泄露了它。 错误是“ReferenceError: guild is not defined” 能否请您包括完整的错误(包括堆栈跟踪)? 您需要重置您的令牌,您刚刚泄露了它,请将您的令牌存储在单独的文件中 每个事件只需要1个,去掉第二个ready
事件
【参考方案1】:
通过查看这段代码,我怀疑它与以下内容有关:
guildMember.roles.add(['123456789012345678', '098765432109876543']);
我没有看到公会成员在任何地方得到定义。
你可以尝试用let guildMember = message.member
定义它
您可以使用let guild = message.guild
定义“公会”
正如 Syntle 所说,您不需要两个准备好的事件,只需将它们放在一个中即可
BOTCLIENT.on('ready', () =>
BOTCLIENT.user.setActivity("Prefix = '-', Made by Zachary#9293");
console.log('online');
);
至于将令牌存储在不同的文件中,您可以这样做:
// index.js
const config = require("./config.js")
const token = config.token
// config.js
module.exports =
token: "REALTOK3N"
【讨论】:
【参考方案2】:是的,Unkwn 是对的 guildMember
未定义。
如果您尝试为发送命令的人添加角色,请将其替换为 message.member
整个 ine 将是:message.member.roles.add(['123456789012345678', '098765432109876543']);
【讨论】:
以上是关于我如何在 Visual Studio 代码上定义公会?不和谐.js的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Visual Studio Code 中放置自定义输入以进行调试