Skip to content

Instantly share code, notes, and snippets.

@pedroricardo
Last active December 20, 2021 19:23
Show Gist options
  • Save pedroricardo/10ae51a653a8b1a286e5766f61f41679 to your computer and use it in GitHub Desktop.
Save pedroricardo/10ae51a653a8b1a286e5766f61f41679 to your computer and use it in GitHub Desktop.
Criando Bot Discord #6 - Adicionar Cargos por Reação https://youtu.be/J833mDDFMLQ
const Discord = require("discord.js"); //baixar a lib
const client = new Discord.Client();
const config = require("./config.json");
client.on("ready", () => {
console.log('Olá mundo')
})
client.on('raw', async dados => {
if(dados.t !== "MESSAGE_REACTION_ADD" && dados.t !== "MESSAGE_REACTION_REMOVE") return
if(dados.d.message_id != "566982078625873931") return
let servidor = client.guilds.get("558703169903788057")
let membro = servidor.members.get(dados.d.user_id)
let cargo1 = servidor.roles.get('566986334242340864'),
cargo2 = servidor.roles.get('566986370363686943'),
cargo3 = servidor.roles.get('566986398989549632')
if(dados.t === "MESSAGE_REACTION_ADD"){
if(dados.d.emoji.id === "566966275578789888"){
if(membro.roles.has(cargo1)) return
membro.addRole(cargo1)
}else if(dados.d.emoji.name === "👌"){
if(membro.roles.has(cargo2)) return
membro.addRole(cargo2)
}else if(dados.d.emoji.id === "566966738013388821"){
if(membro.roles.has(cargo3)) return
membro.addRole(cargo3)
}
}
if(dados.t === "MESSAGE_REACTION_REMOVE"){
if(dados.d.emoji.id === "566966275578789888"){
if(membro.roles.has(cargo1)) return
membro.removeRole(cargo1)
}else if(dados.d.emoji.name === "👌"){
if(membro.roles.has(cargo2)) return
membro.removeRole(cargo2)
}else if(dados.d.emoji.id === "566966738013388821"){
if(membro.roles.has(cargo3)) return
membro.removeRole(cargo3)
}
}
})
client.login(config.token);
@luizzitow123
Copy link

Esta dando error esse code pra mim --> "TypeError: Cannot read property 'members' of undefined"

é a versão antiga da discord.js '-'

@YuryRegis
Copy link

Queria colocar uma resposta automática quando o usuário usa uma tal reação. Pode me ajudar?

Qual seria a versão da sua biblioteca Discord.Js ?

@luizzitow123
Copy link

gente o meu codico da erro diz que "client is not defined" e depois da uns comandos estranhos ai eu nao entendo o que se passa
const Discord = require('discord.js');
const bot = new Discord.Client();
const token = 'NzY3Mzk3OTkxMTA2ODcxMjk2.X4xVEg.NfIqTrp8Sy6-xkkkQlwUR0YFBnI';
const config = require('./config.json');
bot.login(token);
bot.on ('ready', () => {
console.log('estou pornto')
})
bot.on('message', msg =>{
if (msg.content === 'odrabot') {
msg.reply('https://tenor.com/view/scrubs-im-going-to-kill-you-gif-3468039')
}
})
bot.on('raw', async dados => {
if(dados.t !== "MESSAGE_REACTION_ADD" && dados.t !== "MESSAGE_REACTION_REMOVE") return
if(dados.d.message_id != "767411280558161960") return

Você instanciou o Discord.Client( ) como "bot", basta renomea-lo...

const client = new Discord.Client();

ou usar o nome que você usou na declaração.

let servidor = bot.guilds.get("766720116716077108");    ✔️
let servidor = client.guilds.get("766720116716077108"); ❌

ja troquei mas nao vai se modar diz sempre: "client.guilds.get is not a function" ou "bot.guilds.get is not a function

"(node:4128) UnhandledPromiseRejectionWarning: TypeError: bot.guilds.get is not a function
at Client. (C:\Users\admin\Desktop\bot\index.js:25:31)
at Client.emit (events.js:315:20)
at WebSocketShard.onMessage (C:\Users\admin\Desktop\bot\node_modules\discord.js\src\client\websocket\WebSocketShard.js:295:27)
at WebSocket.onMessage (C:\Users\admin\Desktop\bot\node_modules\ws\lib\event-target.js:125:16)
at WebSocket.emit (events.js:315:20)
at Receiver.receiverOnMessage (C:\Users\admin\Desktop\bot\node_modules\ws\lib\websocket.js:797:20)
at Receiver.emit (events.js:315:20)
at Receiver.dataMessage (C:\Users\admin\Desktop\bot\node_modules\ws\lib\receiver.js:437:14)
at Receiver.getData (C:\Users\admin\Desktop\bot\node_modules\ws\lib\receiver.js:367:17)
at Receiver.startLoop (C:\Users\admin\Desktop\bot\node_modules\ws\lib\receiver.js:143:22)
(node:4128) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:4128) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code." repete esta mensagem 4 vezes

tente client.guilds.cache.get() ou bot.guilds.cache.get()

@Gamer-234
Copy link

O meu está dando esse erro, alguém sabe como resolve?

(node:3637) UnhandledPromiseRejectionWarning: TypeError: membro.removeRole is not a function
(node:3637) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async > function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled > promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode).(rejection id: 1)
(node:3637) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

@YuryRegis
Copy link

O meu está dando esse erro, alguém sabe como resolve?

(node:3637) UnhandledPromiseRejectionWarning: TypeError: membro.removeRole is not a function

Então amigo. O código que eu escrevi foi baseado na versão 11 da livraria DIscord.js. Você precisa adaptar o código para a versão que você esteja usando que, imagino eu, ser a versão 12.
Veja, o erro está dizendo "membro.removeRole" não é uma função. Se você olhar na documentação da v12, irá notar que agora, o método está dentro da propriedade roles de um member (não mais diretamente do member) e que este método agora é chamado de remove e é este o método que você deve usar para remover roles na v12. Logo o código correto, segundo a livraria na versão 12, deveria ser:

membro.roles.remove(role, [motivo])

@Gamer-234
Copy link

O meu está dando esse erro, alguém sabe como resolve?

(node:3637) UnhandledPromiseRejectionWarning: TypeError: membro.removeRole is not a function

Então amigo. O código que eu escrevi foi baseado na versão 11 da livraria DIscord.js. Você precisa adaptar o código para a versão que você esteja usando que, imagino eu, ser a versão 12.
Veja, o erro está dizendo "membro.removeRole" não é uma função. Se você olhar na documentação da v12, irá notar que agora, o método está dentro da propriedade roles de um member (não mais diretamente do member) e que este método agora é chamado de remove e é este o método que você deve usar para remover roles na v12. Logo o código correto, segundo a livraria na versão 12, deveria ser:

membro.roles.remove(role, [motivo])

Ahhh, muito obrigado!! 😁

@NekoChan-157
Copy link

So uma pergunta, eu coloco isso na Index ou crio uma pasta e de registro.js aí eu boto lá?

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