ItamarD
ItamarD

Reputation: 39

ROBLOX Discord bot

I'm trying to create a discord bot that connects to a Roblox account that I made. I'm trying to create a command that will shout a message in a group, but there's a problem at the login and I can't figure out how to fix the problem.

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);

It gives me the error: Shout error: Error: Shout failed, verify login, permissions, and message

Upvotes: 0

Views: 1436

Answers (1)

Cipher
Cipher

Reputation: 2722

At the first you don`t close you client.on('ready') state.

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

This funcyion will never reply, because you use return, before reply.

Your groupId looks like undefined, because you declarate it let groupId = groupid;, so this is the one way, why got you got this error.

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);

Upvotes: 2

Related Questions