Skip to content

Instantly share code, notes, and snippets.

@pedroricardo
Last active January 18, 2024 11:09
Show Gist options
  • Save pedroricardo/da90fd467962ca8424cfc56dc3a54df6 to your computer and use it in GitHub Desktop.
Save pedroricardo/da90fd467962ca8424cfc56dc3a54df6 to your computer and use it in GitHub Desktop.
Como Criar Bot para Discord em Javascript #2 https://www.youtube.com/watch?v=KYnXhtyqQRQ
const Discord = require("discord.js"); //baixar a lib
const client = new Discord.Client();
const config = require("./config.json");
client.on("ready", () => {
console.log(`Bot foi iniciado, com ${client.users.size} usuários, em ${client.channels.size} canais, em ${client.guilds.size} servidores.`);
client.user.setPresence({ game: { name: 'comando', type: 1, url: 'https://www.twitch.tv/pedroricardo'} });
//0 = Jogando
// 1 = Transmitindo
// 2 = Ouvindo
// 3 = Assistindo
});
client.on("message", async message => {
if(message.author.bot) return;
if(message.channel.type === "dm") return;
if(!message.content.startsWith(config.prefix)) return;
const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const comando = args.shift().toLowerCase();
// coamdno ping
if(comando === "ping") {
const m = await message.channel.send("Ping?");
m.edit(`Pong! A Latência é ${m.createdTimestamp - message.createdTimestamp}ms. A Latencia da API é ${Math.round(client.ping)}ms`);
}
});
client.login(config.token);
{
"prefix": "!",
"token": "XXXXXXX"
}
Copy link

ghost commented Jul 11, 2020

@CGlacial

Quando eu deixo o meu bot Online não aparece o número de servidores,canais e users
Aparece essa mensagem: O bot foi iniciado com undefined Membros, em undefined Canais, em undefined Servidores.
Também não aparece a Presence

Tente

const Discord = require("discord.js");
const client = new Discord.Client();
const config = require("./config.json");

client.on("ready", () => {
console.log(Servidores ${client.guilds.cache.size})

client.user.setActivity("Prefix : ", {
type: "STREAMING",
url: "https://www.twitch.tv/..."

});

});

client.on("message", async message => {

if(message.author.bot) return;
if(!message.content.startsWith(config.prefix)) return;

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

/======Comandos=====/

});

client.login(config.token);

Galera quem poder usar um programa que eu fiz em shell para instalar o discord.js em celulares e "hospedagem" de bot com o termux e so clicar aqui =) Obg

Caso tenha duvida de como usar chamar no Discord : Hiruzen do Rodo#1605

Copy link

ghost commented Jul 13, 2020

@CGlacial

Quando eu deixo o meu bot Online não aparece o número de servidores,canais e users
Aparece essa mensagem: O bot foi iniciado com undefined Membros, em undefined Canais, em undefined Servidores.
Também não aparece a Presence

Tente
const Discord = require("discord.js");
const client = new Discord.Client();
const config = require("./config.json");
client.on("ready", () => {
console.log(Servidores ${client.guilds.cache.size})
client.user.setActivity("Prefix : ", {
type: "STREAMING",
url: "https://www.twitch.tv/..."
});
});
client.on("message", async message => {

if(message.author.bot) return;
if(!message.content.startsWith(config.prefix)) return;

const args = message.content.slice(config.prefix.length).trim().split(/ +/g);
const comando = args.shift().toLowerCase();
/======Comandos=====/
});
client.login(config.token);
Galera quem poder usar um programa que eu fiz em shell para instalar o discord.js em celulares e "hospedagem" de bot com o termux e so clicar aqui =) Obg
Caso tenha duvida de como usar chamar no Discord : Hiruzen do Rodo#1605

E se eu quisesse fazer ficar mudando a presence como o da Loritta

Não entendi muito o que você quis dizer mas acho que é o Activity do bot muda de tempo em tempo, caso seja isso você deve ir em Discord Developer Portal, depois disso selecione sua aplicação, lá você vai encontrar o Rich Presence (SETTINGS)

Screenshot_2020-07-13 Discord Developer Portal — API Docs for Bots and Developers

De uma olhada clicando aqui para saber um pouco mais, e como funciona

@nelsonrita11
Copy link

não esta a funcionar

@devjoseh
Copy link

poderia disponibilizar um script de say? ja pesquisei em todo canto e n achei

Copy link

ghost commented Jul 18, 2020

@YTJoseGames

poderia disponibilizar um script de say? ja pesquisei em todo canto e n achei

if(comando === "say") {
const sayMessage = args.join(" ");
message.delete().catch(O_o=>{});
message.channel.send(sayMessage);
}

@sttztry
Copy link

sttztry commented Aug 10, 2020

Poderia disponibilizar o comando de quando alguém entrar no servidor meu bot dar bem vindo e aparecer o avatar da pessoa que entrou

client.on("guildMemberAdd", async (member) => {

let guild = await client.guilds.cache.get("IDdoSeuServidor");
let channel = await client.channels.cache.get("IDdoCanalDeBoasVindas");
let emoji = await member.guild.emojis.cache.find(emoji => emoji.name === "nomedoemoji");
if (guild != member.guild) {
return console.log("Bem-vindo!
");
} else {
let embed = await new Discord.MessageEmbed()
.setColor("#7c2ae8")
.setAuthor(member.user.tag, member.user.displayAvatarURL())
.setTitle(${emoji} Boas-vindas ${emoji})
.setImage("LinkDeVideoDeBoasVindasDoEmbed")
.setDescription(**${member.user}**, bem-vindo(a) ao servidor **${guild.name}**! Atualmente estamos com **${member.guild.memberCount} membros**, divirta-se conosco! :heart:)
.setThumbnail(member.user.displayAvatarURL({ dynamic: true, format: "png", size: 1024 }))
.setFooter("Mensaagem que voce preferir")
.setTimestamp();

channel.send(embed);

}
});

@sttztry
Copy link

sttztry commented Aug 10, 2020

poderia disponibilizar um script de say? ja pesquisei em todo canto e n achei

const Discord = require('discord.js');

module.exports.run = async (client, message, args) => {
const sayMessage = args.join(' ');
message.delete().catch(O_o => {});
message.channel.send(sayMessage);
};

@lipepeixoto
Copy link

Como eu faço para que o bot responda palavras-chave. Ex:
Usuário: Bom dia;
Bot: Bom dia (Usuário). Tenha ótimo dia.
Que ele entenda sem prefixo.

@VictorDEV-Discord
Copy link

pedro como funciona o sistema da loritta que ela fica alternando entre assistindo algo ou transmitindo ?

Coloque no Index e Antes do Bot fazer Login!

Code:
client.on("ready", () => {
let activities = [
Utilize ${config.prefix}help para obter ajuda,
${client.guilds.cache.size} servidores!,
${client.channels.cache.size} canais!,
${client.users.cache.size} usuários!,
],
i = 0;
setInterval( () => client.user.setActivity(${activities[i++ % activities.length]}, {
type: "PLAYING"
}), 1000);
client.user
.setStatus("dnd")
.catch(console.error);
console.log("Estou Online!")
});

@telazu
Copy link

telazu commented Oct 3, 2020

Mano, quando eu faço o comando "node ." da erro
não sei o que fazer olha ai
image

Copy link

ghost commented Oct 4, 2020

@telazu

Mano, quando eu faço o comando "node ." da erro
não sei o que fazer olha ai
image

Seu código teve ter um "}" para mais ou a menos, ou pode ser a versão que você esta usando do nodejs, deve esta errada

@Loryzinha
Copy link

Quando eu deixo o meu bot Online não aparece o número de servidores,canais e users
Aparece essa mensagem: O bot foi iniciado com undefined Membros, em undefined Canais, em undefined Servidores.
Também não aparece a Presence

Tire esse código:

client.on("ready", () => {
console.log(Bot foi iniciado, com ${client.users.size} usuários, em ${client.channels.size} canais, em ${client.guilds.size} servidores.);
client.user.setPresence({ game: { name: 'comando', type: 1, url: 'https://www.twitch.tv/pedroricardo'} });
//0 = Jogando
// 1 = Transmitindo
// 2 = Ouvindo
// 3 = Assistindo
});

Insira este no lugar do anterior:

client.on("ready", () => {
console.log(O bot foi iniciado, com ${client.users.cache.size} usuários e em ${client.guilds.cache.size} servidores.);
client.user.setActivity('(O nome do status aqui)', { type: 'PLAYING' });(Eu estou em ${client.guilds.cache.size} servidores);
});

client.on("guildCreate", guild => {
console.log(O bot entrou no servidor: ${guild.name} (ID do servidor: ${guild.id}). Membros: ${guild.memberCount} membros!);
client.user.setActivity(Estou em ${client.guilds.cache.size} servidores.);
});

client.on("guildDelete", guild => {
console.log(O bot foi removido do servidor: ${guild.name} (ID do servidor: ${guild.id}));
client.user.setActivity(Serving ${client.guilds.cache.size} servers);
});

@NascyPB
Copy link

NascyPB commented Nov 7, 2020

O meu bot está aceitando qualquer prefixo. O meu prefixo é o !, Mas ele responde tanto o comando !ping como o #ping, @ping, &ping...
Ele não aceita apenas o prefixo !, Ele aceita qualquer um. Alguém tem como me ajudar?

@frowsynergy
Copy link

alguem poderia por favor me mandar o comando de ban ?

@abnervitor123
Copy link

algm tem o comando de ban? plsss

@Mewrillo
Copy link

Opa, quando eu incio o bot fica tudo bem mas ai não aparece os status personalizados e la quando o bot ta iniciando mostra assim Bot foi iniciado, com undefined usuários em undefined canais, em undefined servidores.
(node:8188) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'size' of undefined
at Client.

olhem a print do code https://prnt.sc/vr8rys

@Pira4Ever
Copy link

boa noite eu escrevi tudo igual a vôce mas quando escrevo no terminal node . esta dando erro, eu vou colocar aqui em baixo:
const Discord = require("discord.js");
const client = new Discord.client();
const config= require("./config.json");

Client.on("ready", () => {
console.log(bot foi iniciado, com ${client.users.size} usuários, em ${client.channels.size} canais, em ${client.guilds.size} servidores.);
client.user.setGame(eu estou em ${client.guilds.size} servidores);
});

client.on("guildCreate", guild => {
console.log(O bot entrou no servidor: ${guild.name} (id: ${guild.id}). População: ${guild.memberCount} membros!);
client.user.setActivity(Estou em ${client.guilds.size} servidores);
});

client.on("guildDelet", guild => {
console.log(O bot foi removido do servidor: ${guild.name} (id: ${guild.id});
client.user.setActivity(serving ${client.guilds.size} servers);
});

client.on("message", async message => {

Em const client = new Discord.client(); o Discord.client tem que ter o C maiúsulo assim: const client = new Discord.Client();

@Mirai-dev155
Copy link

O meu bot não reconhece o prefixo o que há de errado?
Screenshot_1

@Xlegendary-X
Copy link

pessoal quando eu executo o comando node . ele da um erro fica assim:

Error: Cannot find module 'C:\Users\Desktop\bot_legal\index.js'. Please verify that the package.json has a valid "main" entry
at tryPackage (internal/modules/cjs/loader.js:303:19)
at Function.Module._findPath (internal/modules/cjs/loader.js:516:18)
at resolveMainPath (internal/modules/run_main.js:12:25)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:66:24)

at internal/main/run_main_module.js:17:47 {

code: 'MODULE_NOT_FOUND',
path: 'C:\Users\\Desktop\bot_legal\package.json',
requestPath: 'C:\Users\\Desktop\bot_legal'
}

@Xlegendary-X
Copy link

algm tem o comando de ban? plsss

Boa Noite, Bom Dia, Boa Tarde, Esse é o Código de Ban.

`// Import the discord.js module
const Discord = require('discord.js');

// Create an instance of a Discord client
const client = new Discord.Client();

/**

  • The ready event is vital, it means that only after this will your bot start reacting to information
  • received from Discord
    */
    client.on('ready', () => {
    console.log('I am ready!');
    });

client.on('message', message => {
// Ignore messages that aren't from a guild
if (!message.guild) return;

// if the message content starts with "!ban"
if (message.content.startsWith('!ban')) {
// Assuming we mention someone in the message, this will return the user
// Read more about mentions over at https://discord.js.org/#/docs/main/master/class/MessageMentions
const user = message.mentions.users.first();
// If we have a user mentioned
if (user) {
// Now we get the member from the user
const member = message.guild.member(user);
// If the member is in the guild
if (member) {
/**
* Ban the member
* Make sure you run this on a member, not a user!
* There are big differences between a user and a member
* Read more about what ban options there are over at
* https://discord.js.org/#/docs/main/master/class/GuildMember?scrollTo=ban
*/
member
.ban({
reason: 'They were bad!',
})
.then(() => {
// We let the message author know we were able to ban the person
message.reply(Successfully banned ${user.tag});
})
.catch(err => {
// An error happened
// This is generally due to the bot not being able to ban the member,
// either due to missing permissions or role hierarchy
message.reply('I was unable to ban the member');
// Log the error
console.error(err);
});
} else {
// The mentioned user isn't in this guild
message.reply("That user isn't in this guild!");
}
} else {
// Otherwise, if no user was mentioned
message.reply("You didn't mention the user to ban!");
}
}
});

// Log our bot in using the token from https://discord.com/developers/applications
client.login('your token here');`

@XlegendaryXofc
Copy link

XlegendaryXofc commented Feb 26, 2021

O meu aparece isto: Pong! A latência é ${m.createdTimestamp - message.createdTimestamp}ms. A latência da API é ${Math.round(client.ping)}ms Print: https://prnt.sc/pfqse1

Tente Trocar Seu Código Para

  const m = await message.channel.send('ping?'); // Enviando a Mensagem

  m.edit(`🏓 **| Pong!**\nLatência do Server: **${m.createdTimestamp -
      message.createdTimestamp}ms.**\nLatência da API: **${Math.round(
      client.ws.ping
    )}ms**` // Editando e Enviando o Ping, O Ping Fica Melhor Quanto Mais Baixo.
  );
};

// Vai Funcionar

@Slow-a
Copy link

Slow-a commented Apr 14, 2021

Oi, eu tenho um code handler, e tenho um autorole, tenho 39 commands ao total, mas tudo dando certo, pedi até umas informações e tal, e minha handler está tão ruim porque, pega todos commands mas o autorole não pega, e eu tinha feito em um tutorial de yt e tal.., e até que pegou bem, porém o problema é quando eu executo o autorole, ele fala que
buscas.run is not a function

client.on('message',message => { if (message.author.bot) return; if (message.channel.type == 'dm') return; if (!message.content.toLowerCase().startsWith(config.prefix)) return; if (message.content.startsWith(<@!${client.user.id}>) || message.content.startsWith(<@${client.user.id}>`)) return;

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

try {

var buscas = require(`../tt/commands/${file}.js`)
 console.log(buscas)
 buscas.run(client, message, args);

} catch (err) {
console.error('Erro:' + err);

``}
});

esse é meu handler, só queria saber o porque do error, e não tem nada errado no autorole, tanto é que meu amigo refez ela pra mim em um video yt, e mesmo assim.., a autorole pega e a minha não pega.

@zzzjss
Copy link

zzzjss commented May 13, 2021

O meu aparece isto: Pong! A latência é ${m.createdTimestamp - message.createdTimestamp}ms. A latência da API é ${Math.round(client.ping)}ms Print: https://prnt.sc/pfqse1

if(comando === "ping") {
const m = message.channel.send("Ping?");
m.edit(Pong! A latencia eh ${m.createdTimestamp - message.createdTimestamp}ms. A Latencia da API eh ${Math.round(client.ws.ping)}ms);
}

@ryanfigueredo
Copy link

Ao iniciar o bot, com node . aparece esse erro.

TypeError [CLIENT_MISSING_INTENTS]: Valid intents must be provided for the Client.
at Client._validateOptions (C:\Users\ryanf\Desktop\Bot.js\node_modules\discord.js\src\client\Client.js:544:13)
at new Client (C:\Users\ryanf\Desktop\Bot.js\node_modules\discord.js\src\client\Client.js:73:10)
at Object. (C:\Users\ryanf\Desktop\Bot.js\bot.js:2:16)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {

@VilelinhaJunior
Copy link

estou com o mesmo problema! Ja conseguiu resolver?

@BrunoFreschi
Copy link

Olá deve estar faltando alguma instrução nas classe que são chamadas. Pelo oque consegui entender não esta encontrando alguns módulos.
Vou dar uma pesquisada caso encontrem mandem postem aqui.

@VitorJoseDeAssis
Copy link

VitorJoseDeAssis commented Jan 31, 2022

Quando tento iniciar o bot aparece esse erro, não estou entendendo o pq
unknown

@bMexe
Copy link

bMexe commented Feb 4, 2022

Mesmo problema alguem conseguiu resolver?

@VitorJoseDeAssis
Copy link

VitorJoseDeAssis commented Feb 4, 2022 via email

@Davizinsouza
Copy link

ol

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment