如何在不和谐的机器人上设置服务器特定变量?

How to set server specific variables on a discord bot?

所以,我正在使用 node.js 创建一个 discord 机器人。我需要帮助制作服务器特定变量(不能在其他服务器上使用或可能不同)

我搜索了一些东西,唯一的结果是通过公会 ID 跟踪我的变量。问题是它使用 'message.guild.id',这意味着我无法在检查消息之前使用它。

设置前缀的代码应该是这样的:

function setPrefix(message, arguments){
    prefix[message.guild.id] = arguments
}

这就是我想在代码开头设置它的方式:

prefix = {}
prefix[guild.id] = "@"

我试过了,但是,当然,我无法获得那样的公会 ID,所以每次我尝试时它都是未定义的。我能做什么? (请注意我不是很有经验)

您会在 <Client>.guilds 中找到您的机器人所属的所有公会的列表。你只需要遍历它们并设置你想要的前缀。

将机器人所在的每个公会 ID 的前缀设置为“@”的快速代码段:

var Discord = require("discord.js");

var client = new Discord.Client();

var prefix = {};
var defaultPrefix = "@";

client.on("ready", function(){
    var allGuilds = client.guilds;
    //initialize all prefixes to a default prefix
    allGuilds.tap(function(guild){
        prefix[guild.id] = defaultPrefix;
    });
});

client.login("BOT_TOKEN")