簡體   English   中英

為什么 .get() 在我的不和諧機器人代碼中不起作用?

[英]Why is .get() not working in my discord bot code?

我正在嘗試更改頻道名稱以顯示公會中的用戶數量。 但是,當我啟動我的機器人時,它在控制台中顯示以下內容:

無法讀取未定義的屬性“編輯”

我將問題縮小到這一行: bot.channels.get("533334637163053077");

以防萬一你需要它,這是我的代碼:

const Discord=require('discord.js');
const fs = require("fs");
const bot = new Discord.Client();
const PREFIX = "-";
const guildID = "418505146876559371";
let ref = require("./ref.json");
let request = require(`request`);
const memberCountChannel = bot.channels.get("533334637163053077"); //This one is the one
//that is not working I think
bot.commands = new Discord.Collection();

var servers = {};

bot.on('warn', console.warn);
bot.on('error', console.error);

bot.on('ready', function(guild)
{
    console.log(`${bot.user.username} is online with ${bot.users.size} 
    members.\n\n\n\n\n\n\n\n\n`);
    bot.user.setActivity('with the server. Type -help for info.');
    memberCountChannel.edit(`Members: ${guild.memberCount}`, 8000); //Change name of channel
});
bot.on("guildMemberAdd", function(member){
    memberCountChannel.edit(`Members: ${guild.memberCount}`, 8000);//Change name of channel
});

bot.on("guildMemberRemove", async function(member){
    memberCountChannel.edit(`Members: ${guild.memberCount}`, 8000);//Change name of channel
});
bot.login('TOKEN HERE');

編輯:該頻道確實存在,並且機器人確實有權使用該頻道執行所有操作。

本質上,問題是,正如您正確推測的那樣

const memberCountChannel = bot.channels.get("533334637163053077");

這樣做的原因是您試圖在一個對象(通道)上調用一個方法(.get),該對象(通道)在 .on('ready') 事件被觸發之前不存在。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM