-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Description
const client = new Discord.Client();
const PREFIX = '!'; // Prefixo dos comandos
let sorteios = []; // Array de sorteios
// Função que cria um novo sorteio
function criarSorteio(mensagem, itemSorteado) {
const novoSorteio = {
mensagem,
itemSorteado,
participantes: []
};
sorteios.push(novoSorteio);
mensagem.react('🎉'); // Adiciona a reação ao anúncio do sorteio
}
client.on('ready', () => {
console.log(`Bot iniciado como ${client.user.tag}!`);
});
client.on('message', (message) => {
// Verifica se o autor da mensagem é um bot ou se a mensagem não começa com o prefixo
if (message.author.bot || !message.content.startsWith(PREFIX)) {
return;
}
const args = message.content.slice(PREFIX.length).trim().split(' '); // Separa os argumentos do comando
const command = args.shift().toLowerCase(); // Obtém o comando
if (command === 'sorteio') {
const itemSorteado = args.join(' ');
if (!itemSorteado) {
message.reply('por favor, especifique o que será sorteado!');
return;
}
const novaMensagemSorteio = new Discord.MessageEmbed()
.setTitle(`🎉 **SORTEIO** 🎉 - ${itemSorteado}`)
.setDescription('Reaja com 🎉 para participar!')
.setColor('#FFCC00');
message.channel.send(novaMensagemSorteio).then((mensagem) => {
criarSorteio(mensagem, itemSorteado);
});
}
});
client.on('messageReactionAdd', async (reaction, user) => {
// Verifica se o usuário que reagiu é um bot ou se a reação não é a desejada
if (user.bot || reaction.emoji.name !== '🎉') {
return;
}
const mensagem = reaction.message;
// Verifica se a mensagem do sorteio existe e é válida
if (!mensagem.embeds.length || !mensagem.embeds[0].title.startsWith('🎉 **SORTEIO** 🎉')) {
return;
}
// Obtém o sorteio da lista de sorteios
const sorteio = sorteios.find(sorteio => sorteio.mensagem.id === mensagem.id);
// Verifica se o sorteio existe
if (!sorteio) {
return;
}
// Verifica se o usuário já está participando do sorteio
if (sorteio.participantes.includes(user.id)) {
return;
}
// Adiciona o usuário aos participantes do sorteio
sorteio.participantes.push(user.id);
// Cria uma nova mensagem do sorteio com a lista atualizada de participantes
const participantes = sorteio.participantes.map(participanteId => `<@${participanteId}>`).join('\n');
const novaMensagemSorteio = new Discord.MessageEmbed()
.setTitle(`🎉 **SORTEIO** 🎉 - ${sorteio.itemSorteado}`)
.setDescription(`Participantes:\n${participantes}`)
.setColor('#FFCC00');
// Atualiza a mensagem do sorteio com a lista atualizada de participantes
await mensagem.edit(novaMensagemSorteio);
});
client.login('TOKEN_DO_SEU_BOT');```
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels