-
-
Save pedroricardo/10ae51a653a8b1a286e5766f61f41679 to your computer and use it in GitHub Desktop.
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); |
Faz esse comando pra handler
Pode criar um comando
cargo
que exibe uma mensagem para ser reagida
Ou usar meu código como base para criar seu próprio handlerconst { RichEmbed } = require("discord.js"); const { promptMessage } = require("<diretorio do arquivo/funcoes.js>"); const opcoes = ["🌎","🚀"] // Supondo que tenha cargo "mundo" e "foguete" exports.help = { name: "cargo" } exports.run = async (client, message, args) => { const embed = new RichEmbed(); embed.setTitle("**CARGOS**"); embed.setColor("RANDOM"); embed.setDescription("Escolha um cargo clicando na reação correspondente:\n") embed.addField("**Cargos**","🌎 - Mundo \n🚀 - Foguete"); embed.setTimestamp(); //Envia mensagem richEmbed const m = await message.channel.send(embed); //Adiciona reações e aguarda 30 segundos por uma escolha do usuário const cargoEscolhido = await promptMessage(m, message.author, 30, opcoes); if (cargoEscolhido === `🚀`){ var chave = "Foguete"; }else if (cargoEscolhido === `🌎`) { var chave = "Mundo" } else { embed.addField("**CARGO NÃO DEFINIDO**", "Use o comando novamente."); m.edit(embed); message.delete(); // Apaga mensagem do usuario (comando) para um chat mais limpo return m.delete(15000) // Apaga mensagem enviada (embed) }; // retorna nada para caso de emoji diferente // buscando cargo por nome (também pode buscar por ID) var cargo = await message.guild.roles.find(role => role.name.toLowerCase() === chave.toLowerCase()); // buscando membro var member = await message.guild.members.find(member => member.id === message.author.id); if (cargo == null) { // Caso não exista o cargo com o valor de chave passado embed.addField(`CARGO ${chave.toUpperCase()} NAO ENCONTRADO`) m.edit(embed) message.delete() return m.delete(15000) } // se o membro ja tiver o cargo selecionado, apague o mesmo if (member.roles.some(x => x.name === cargo.name)) { member.removeRole(cargo.id) .then(member => console.log(`${member.user.username} removeu o cargo ${cargo.name}`)) .catch(err => console.log(err)); embed.addField("**\nREMOVIDO**", `${member.user.username} removeu o cargo ${cargo.name}\n` + `Use o comando \`!cargo\` novamente para adicionar ou remover outro cargo.`); } // caso contrario, adicione cargo selecionado else { member.addRole(cargo.id) .then(member => { var nome = member.user.username; console.log(`${nome} adicionou o cargo ${chave}`); }) .catch(err => console.error); embed.addField("**\nADICIONADO**", `${member.user.username} adicionou o cargo ${cargo.name}\n` + `Use o comando \`!cargo\` novamente para adicionar ou remover outro cargo.`); } m.edit(embed); message.delete(); m.delete(40000); return } // fim exports.runArquivo funcoes.js
module.exports = { promptMessage: async function (message, author, time, validReactions) { // Tempo em segundos time *= 1000; // Reage com cada emoji enviado como parametro for (const reaction of validReactions) await message.react(reaction); // Permite reações apenas do autor da mensagem, // Filtra apenas emojis enviados pelo parametro. const filter = (reaction, user) => validReactions.includes(reaction.emoji.name) && user.id === author.id; // Aguarda reação do usuário return message .awaitReactions(filter, { max: 1, time: time}) .then(collected => collected.first() && collected.first().emoji.name); } } //fim module.exports
tentei usar esse codigo mas fica dando esse erro: (node:9404) UnhandledPromiseRejectionWarning: TypeError [INVALID_TYPE]: Supplied options is not an object.
at Message.delete (E:\bagbot\node_modules\discord.js\src\structures\Message.js:501:44)
at Object.exports.run (E:\bagbot\comandos\cargo.js:33:24)
(node:9404) 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:9404) [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.
alguem sabe como arrumar esse comando para versão 12?
O meu aparece colocar o cargo mas não o retira
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
let servidor =client.guilds.get("766720116716077108")
let membro = servidor.members.get(dados.d.user_id)
let vermelho = servidor.roles.get('766737145301172264'),
azul = servidor.roles.get('766737043610140712'),
verde = servidor.roles.get('766737106550390794')
if(dados.t === "MESSAGE_REACTION_ADD"){
if(dados.d.emoji.name === "🔴"){
if(membro.roles.has(vermelho)) return
membro.addRole(vermelho)
}else if(dados.d.emoji.name === "🔵"){
if(membro.roles.has(azul)) return
membro.addRole(azul)
}else if(dados.d.emoji.name === "🟢"){
if(membro.roles.has(verde)) return
membro.addRole(verde)
}
}
if(dados.t === "MESSAGE_REACTION_REMOVE"){
if(dados.d.emoji.name === "🔴"){
if(membro.roles.has(vermelho)) return
membro.addRole(vermelho)
}else if(dados.d.emoji.name === "🔵"){
if(membro.roles.has(azul)) return
membro.addRole(azul)
}else if(dados.d.emoji.name === "🟢"){
if(membro.roles.has(verde)) return
membro.addRole(verde)
}
}
})
bot.login(config.token);
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"); ❌
tentei usar esse codigo mas fica dando esse erro: (node:9404) UnhandledPromiseRejectionWarning: TypeError [INVALID_TYPE]: Supplied options is not an object.
at Message.delete (E:\bagbot\node_modules\discord.js\src\structures\Message.js:501:44)
at Object.exports.run (E:\bagbot\comandos\cargo.js:33:24)
(node:9404) 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:9404) [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.
Pode ser que o seu bot esteja tentando apagar uma mensagem que foi apagada manualmente ou que esta mensagem tenha mais de 15 dias (não é o caso).
Se você não quer que o bot apague as mensagens basta remover as linhas que fazem delete( )
message.delete( );
m.delete( );
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") returnVocê 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
Queria colocar uma resposta automática quando o usuário usa uma tal reação. Pode me ajudar?
Estou fazendo no Repl.it
esta com esse erro :
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: 2)
(node:1989) UnhandledPromiseRejectionWarning: TypeError: client.guilds.get is not a function
(node:1989) 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: 3)
mas ele e da repl.it ou nao
pq eu queria dele
Esta dando error esse code pra mim --> "TypeError: Cannot read property 'members' of undefined"
é a versão antiga da discord.js '-'
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 ?
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") returnVocê 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()
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.
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])
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!! 😁
So uma pergunta, eu coloco isso na Index ou crio uma pasta e de registro.js
aí eu boto lá?
Tranquilo, boa sorte com o Bot e o seu mini-game.