我想让成员在不和谐的bot中计数,但它给出了错误

时间:2019-09-25 13:48:20

标签: node.js count bots discord.js member

我想让Discord bot中的成员计数,但它给出了错误。我通过互联网为此搜索,但找不到! 这是代码:

//component
 onToggleChange(change:MatSlideToggleChange, index: number)
 {
     console.log('the toggle value is: ' + change.value + ' the id is: ' + index);
 }

//template
 (toggleChange)="onToggleChange($event, i)"

这里是错误:

const Commando = require('discord.js-commando');
const bot = new Commando.Client({commandPrefix: '$'});
const TOKEN = 'here is token';
const MIN_INTERVAL = 3 * 1000;
const guild = bot.guilds.get("394805546450026496");

bot.registry.registerGroup('connectc', 'Connectc');
bot.registry.registerGroup('defaultc', 'Defaultc');
bot.registry.registerDefaults();
bot.registry.registerCommandsIn(__dirname + "/commands")

bot.on('ready', function(){
    console.log("Ready");
    setInterval(function(){
        var memberCount = guild.members.filter(member => !member.user.bot).size;
        var memberCountChannel = bot.channels.get("547805078787194891");
        memberCountChannel.setName("?Osoby: "+ memberCount +" ?");
    }, MIN_INTERVAL);
});
bot.login(TOKEN);

请帮助我!

4 个答案:

答案 0 :(得分:1)

// update member
let myGuild = client.guilds.get("guilds_id_here");
let memberCount = myGuild.memberCount;
let memberCountChannel = myGuild.channels.get("channel_id_here");
memberCountChannel.setName("Member•" +memberCount+ "•User")

答案 1 :(得分:0)

当调用函数guild.members.filter(member => !member.user.bot).size;时,看起来guild的值未定义。您确定const guild = bot.guilds.get("394805546450026496");是否正确返回公会?您可以在调用get之后尝试记录guild的值吗?在discord.js文档的任何地方都看不到get(String id)方法。您是否尝试过使用推荐的find()

试试看。

const guild = bot.guilds.find(guild => {guild.id == "394805546450026496"});

答案 2 :(得分:0)

根据您的错误结果,行会未定义。 我运行了代码,它按预期运行。

module.exports.run = async (client, message, arguments) => {
   const guild = client.guilds.get("566596189827629066");
   setInterval(function () {
      var memberCount = guild.members.filter(member => !member.user.bot).size;  
      var memberCountChannel = client.channels.get("626462657817477131");
      memberCountChannel.setName(`${guild.name} has ${memberCount} members!`);
   }, 1000);
};

Image

请仔细检查 394805546450026496 是有效的行业ID,而不是频道ID /用户ID。如果是,请检查该机器人是否在上述公会中。

另一件事,建议在执行操作或从中读取数据之前先查看该行会是否可用。您可以使用guild.available进行检查。

答案 3 :(得分:0)

EXEC sp_RENAME 'SharedBalances.SharedBalanceId', 'BalanceId', 'COLUMN';

EXEC sp_RENAME 'SharedBalances', 'Balances';

-- Caution: Changing any part of an object name could break scripts and stored procedures.