簡體   English   中英

Discord.js 加入和離開事件不起作用

[英]Discord.js Join and Leave Events not working

我正在嘗試用我想出的一些新技巧制作一個機器人,但這些事件不起作用。

當有人加入或離開時,它不會在控制台中記錄它。

index.js:

const config = require('./config.js');

const {Client} = require('discord.js');
const client = new Client();

const utils = require('./utils.js');

let prefix = config.prefix;

client.on('ready', () => {
    utils.ready(client);
    utils.registerEvents(client);
});

client.on("message", message => {
    utils.onMessage(client, message, prefix);
})

client.login(config.token);

實用程序.js:

const fs = require("fs");
const eventHandler = require('./eventHandler.js');

module.exports.ready = async (client) => {
    console.log("--------------------");
    console.log("Name: " + client.user.username);
    console.log("ID: " + client.user.id)
    console.log("--------------------");
    client.user.setActivity("Team INSTINCT BETA", {"type": "STREAMING", "url": "https://twitch.tv/hanyaku"});
}

module.exports.onMessage = async (client, message, prefix) => {
    let raw = message.content.slice(prefix.length).split(" ");
    let cmd = raw[0];
    let rawArgs = raw.join(" ");
    let args = rawArgs.slice(cmd.length).split(" ");

    if(message.content.startsWith(prefix))
    {
        fs.exists(`./commands/${cmd}.js`,function(exists){
            let cmdFile = require(`./commands/${cmd}.js`);
            cmdFile.run(client, message, args);
        });
    }
}

module.exports.registerEvents = async (client) => {
    eventHandler.register(client,'guildMemberAdd');
    eventHandler.register(client,'guildMemberRemove');
}

事件處理程序.js:

module.exports.register = async (client, eventName) => {
    eval(`${eventName}(client);`);
}

function guildMemberAdd(client)
{
    client.on('guildMemberAdd', member => {
        let eventFile = require(`./commands/guildMemberAdd.js`);
        eventFile.run(client, member);
    });
    console.log("Event guildMemberAdd Registriert");
}

function guildMemberRemove(client)
{
    client.on('guildMemberRemove', member => {
        let eventFile = require(`./commands/guildMemberRemove.js`);
        eventFile.run(client, member);
    });
    console.log("Event guildMemberRemove Registriert");
}

guildMemberAdd.js:

const { Client, Collection, MessageEmbed, MessageAttachment } = require('discord.js');
const fs = require("fs");
const Canvas = require('canvas');

const fetch = require("node-fetch");

module.exports.run = async (client, member) => {
    console.log('Member Joined');
    let channel = client.channels.cache.get('776942211798532106');

    let { user } = member;

    var name = user.tag;

    let embed = new MessageEmbed()
    .setTitle('Welcome')
    .setDescription('Have a nice time, ' + name)
    channel.send(embed);

}

我猜錯誤在 eventHandler.js 或 guildMember.js

我希望得到幫助。 問候 - Hanyaku

我認為您需要啟用 SERVER MEMBERS INTENT。

Go 到 discord 開發門戶和機器人部分將有服務器成員意圖選項,啟用它。

暫無
暫無

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

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