ROBLOX Discord 机器人

ROBLOX Discord bot

我正在尝试创建一个连接到我创建的 Roblox 帐户的 discord 机器人。 我正在尝试创建一个命令来在群组中喊出一条消息,但登录时出现问题,我不知道如何解决这个问题。

let roblox = require('noblox.js');
const { Client } = require("discord.js");
const { config } = require("dotenv");

const client = new Client({
    disableEveryone: true
});

config({
    path: __dirname + "/.env"
});

let prefix = process.env.PREFIX
let groupId = groupid;

client.on("ready", () => {
    console.log("I'm Ready!");

function login() {
    roblox.cookieLogin(process.env.COOKIE)
}

login()
    .then(function () {
        console.log(`Logged in to ${username}`);
    })
    .catch(function (error) {
        console.log(`Login error: ${error}`);
    });

client.on("message", async message => {
    console.log(`${message.author.username} said: ${message.content}`);
    if (message.author.bot) return;
    if (message.content.indexOf(prefix) !== 0) return;

    const args = message.content.slice(prefix.length).trim().split(/ +/g);
    const command = args.shift().toLowerCase();

    if (command === "shout") {
        if (!args) { 
            return;
            message.reply("You didn't specify a message to shout.")
        }
        const shoutMSG = args.join(" "); 

        roblox.shout(groupId, shoutMSG)
            .then(function() {
                console.log(`Shouted ${shoutMSG}`); 
            })
            .catch(function(error) { 
                console.log(`Shout error: ${error}`)
            });
    }
})

client.login(process.env.TOKEN);

它给我错误: Shout error: Error: Shout failed, verify login, permissions, and message

起初你不会关闭你的 client.on('ready') 状态。

        if (!args) { 
            return;
            message.reply("You didn't specify a message to shout.")
        }

这个函数永远不会回复,因为你在回复之前使用了return。

你的 groupId 看起来像 undefined,因为你声明它 let groupId = groupid;,所以这是一种方法,为什么你会得到这个错误。

let roblox = require('noblox.js');
const { Client } = require("discord.js");
const { config } = require("dotenv");

const client = new Client({
    disableEveryone: true
});

config({
    path: __dirname + "/.env"
});

let prefix = process.env.PREFIX
let groupId = groupid;

client.on("ready", () => {
    console.log("I'm Ready!");
})

function login() {
    roblox.cookieLogin(process.env.COOKIE)
}

login()
    .then(function () {
        console.log(`Logged in to ${username}`);
    })
    .catch(function (error) {
        console.log(`Login error: ${error}`);
    });

client.on("message", async message => {
    console.log(`${message.author.username} said: ${message.content}`);
    if (message.author.bot) return;
    if (message.content.indexOf(prefix) !== 0) return;

    const args = message.content.slice(prefix.length).trim().split(/ +/g);
    const command = args.shift().toLowerCase();

    if (command === "shout") {
        if (!args) return message.reply("You didn't specify a message to shout.")
        const shoutMSG = args.join(" "); 
        roblox.shout(groupId, shoutMSG)
            .then(function() {
                console.log(`Shouted ${shoutMSG}`); 
            })
            .catch(function(error) { 
                console.log(`Shout error: ${error}`)
            });
    }
})

client.login(process.env.TOKEN);