我如何在 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 2017 中自定义折叠

如何在 Visual Studio Code 中放置自定义输入以进行调试

visual studio 2010怎么查看函数

用于代码生成的 Visual Studio 自定义工具...如何找出问题所在?

如何在 Visual Studio 代码中自定义触摸栏?

如何在 Visual Studio 2017 上禁用代码分析?