所以我也尝试使用在另一个文件的函数中声明的变量。这是我声明变量的地方:
client.on('message', (message) => {
var GuildId = message.guild.id;
});
我也想在另一个文件中使用“GuildId”。我尝试导出它:
module.exports = {
GuildId
}
然后导入它:
const { GuildId } =require("../main.js")
但是在我要导入的文件中,变量是未定义的……我完全不知道为什么会这样……
哦,是的..我还尝试使用以下命令导出它:
exports.GuildId = message.guild.id;
和:
GuildID = message.guild.id;
但它也没有奏效。有任何想法吗?:C
编辑:
这是一个 Discord Bot,它作为 MemberCount 函数,所以它创建了一个 Channel,显示 Discord 上有多少用户。所以我想使用 GuildId 从我的 MYSQL 数据库中获取这个可定制的频道 ID。为此,我需要拥有 GuildID。我这样做:
connection.promise().query( GuildId,
`SELECT memberCountId FROM GuildConfigurable WHERE guildId = '${GuidId}'`
).then(result => {
MemberCountChannel.set(GuidId, result[0][0].memberCountId);
MemberCountChannelId = MemberCountChannel.get(GuidId);
我无法使用“guild.id”获取公会 ID,因为我太愚蠢了,而且它不起作用。我的意思是:
connection.promise().query( GuildId,
`SELECT memberCountId FROM GuildConfigurable WHERE guildId = '${guild.id}'`
).then(result => {
MemberCountChannel.set(guild.id, result[0][0].memberCountId);
MemberCountChannelId = MemberCountChannel.get(guild.id);
编辑2:
这是我的完整成员-counter.js:
常量 { 连接 } = 要求(“../database/db”);
module.exports = async (client) =>{
setInterval(() => {
let ts = Date.now();
let date_ob = new Date(ts);
let date = date_ob.getDate();
let month = (date_ob.getMonth()+1);
let year = date_ob.getFullYear();
let hours = ('0' + (date_ob.getHours()+1)).slice(-2);
let minutes = ('0' + (date_ob.getMinutes()+1)).slice(-2);
let seconds = ('0' + (date_ob.getSeconds()+1)).slice(-2);
const { globals } = require("../main.js");
const GuildId = globals.GuildId;
console.log('GuildId: ' + GuidId);
let MemberCountChannel = new Map();
module.exports.getMemberCount = (guildId) => {
connection.promise().query( GuildId,
`SELECT memberCountId FROM GuildConfigurable WHERE guildId = '${GuidId}'`
).then(result => {
MemberCountChannel.set(GuidId, result[0][0].memberCountId);
MemberCountChannelId = MemberCountChannel.get(GuidId);
const guild = client.guilds.cache.get(GuidId);
const memberCount = guild.memberCount;
const channel = guild.channels.cache.get(MemberCountChannelId);
console.log(MemberCountChannelId)
channel.setName(`Mitglieder: ${memberCount.toLocaleString()}`);
console.log('[INFO] '.green + year + '/' + month + '/' + date + ' ' + hours + ':' + minutes + ':' + seconds + ' Updating Member Count...');
}).catch(err => console.log(err));
};
}, 15000);
}