Code Examples

Some examples of Cler codes

Here is the kick command [Updated] for the new version Discord v14

const { SlashCommandBuilder, PermissionFlagsBits, EmbedBuilder } = require('discord.js');
const { query } = require('../db'); // Importar el conector de PostgreSQL

module.exports = {
  data: new SlashCommandBuilder()
    .setName('kick')
    .setDescription('Expulsa a un miembro del servidor.')
    .addUserOption(option =>
      option.setName('user')
        .setDescription('El usuario que deseas expulsar')
        .setRequired(true)
    )
    .addStringOption(option =>
      option.setName('reason')
        .setDescription('Razรณn para expulsar al miembro')
        .setRequired(false)
    )
    .setDefaultMemberPermissions(PermissionFlagsBits.KickMembers), // Permisos de expulsiรณn

  name: 'kick', // Este es el nombre para los comandos con prefijo
  description: 'Expulsa a un miembro del servidor.',
  
  async executeSlash(interaction) {
    const member = interaction.options.getMember('user');
    const reason = interaction.options.getString('reason') || 'No se proporcionรณ ninguna razรณn.';
    await this.kickMember(interaction, member, reason);
  },
  
  async executePrefix(message, args) {
    const member = message.mentions.members.first();
    if (!member) {
      return message.reply('<:440warning:1287542257985126501> | Por favor menciona a un usuario vรกlido.');
    }

    // El resto del mensaje puede contener el motivo, si se proporciona
    const reason = args.slice(1).join(' ') || 'No se proporcionรณ ninguna razรณn.';
    await this.kickMember(message, member, reason);
  },

  async kickMember(context, member, reason) {
    const isInteraction = !!context.isCommand;

    // Verificar si tiene permisos de expulsiรณn (solo en prefijos)
    if (!isInteraction && !context.member.permissions.has('KICK_MEMBERS')) {
      return context.reply({ content: '<:win11erroicon:1287543137505378324> | No tienes permiso para expulsar miembros.', ephemeral: true });
    }

    if (!member) {
      return context.reply({ content: '<:440warning:1287542257985126501> | Por favor selecciona a un miembro vรกlido.', ephemeral: true });
    }

    if (!member.kickable) {
      return context.reply({ content: '<a:denyxbox:1287542408082358292> | No puedo expulsar a este miembro.', ephemeral: true });
    }

    try {
      // Intentar enviar un mensaje directo al usuario antes de expulsarlo
      try {
        await member.send(`Has sido expulsado del servidor ${context.guild.name} por ${context.user.tag}. Razรณn: ${reason}`);
      } catch (error) {
        console.log(`[LOG] No se pudo enviar un mensaje directo a ${member.user.tag}.`);
      }

      // Expulsar al miembro
      await member.kick(reason);

      // Crear el embed para notificar al canal
      const kickEmbed = new EmbedBuilder()
        .setColor(0xff0000) // Rojo
        .setTitle('Miembro Expulsado')
        .setDescription(`${member.user.tag} ha sido expulsado del servidor.`)
        .addFields(
          { name: '<a:9755discordstaffanimated:1287542237571321896> Moderador', value: `${context.user.tag}`, inline: true },
          { name: '<:discordcopyid:1287542182080679997> Miembro', value: `${member.user.tag}`, inline: true },
          { name: '<:discordeditprofile:1287542190926467094> Razรณn', value: reason, inline: false }
        )
        .setThumbnail(member.user.displayAvatarURL())
        .setTimestamp()
        .setFooter({ text: 'Expulsiรณn ejecutada', iconURL: context.user.displayAvatarURL() });

      // Enviar el embed como respuesta
      await context.reply({ embeds: [kickEmbed] });

      // Registrar el kick en la tabla 'kicks'
      await query('INSERT INTO kicks (user_id, moderator_id, reason, timestamp) VALUES ($1, $2, $3, $4)', [
        member.user.id,
        context.user.id,
        reason,
        new Date(),
      ]);

      // Registrar el evento en 'moderation_events'
      await query('INSERT INTO moderation_events (user_id, moderator_id, action, reason, timestamp) VALUES ($1, $2, $3, $4, $5)', [
        member.user.id,
        context.user.id,
        'kick',
        reason,
        new Date(),
      ]);

      // Log en consola
      console.log(`[LOG] ${context.user.tag} ha expulsado a ${member.user.tag} en ${context.guild.name} por ${reason}`);
    } catch (error) {
      console.error(error);
      context.reply({ content: 'Hubo un error al expulsar a este miembro.', ephemeral: true });
    }
  },
};

module.exports.help = {
  name: 'kick',
  description: 'Expulsa a un miembros del servidor.',
  usage: 'kick <user> <reason>',
};

Here is an example for the Love command

const Discord = require("discord.js") // Se define Discord para el embed.
let color = (process.env.COLOR)
let dev = (process.env.DEV)
module.exports.run = async(client, message, args) => {
    let users =  message.mentions.users.first();
        if (!users) return message.reply("Menciona a alguien porfavor! :heartpulse:") //Para que mencionen al usuario
        if (users === message.author) return message.channel.send(":heart_exclamation: **El amor por ti mismo es infinito, comparte un poco** :heart_exclamation:");
        if (users === client.user) return message.channel.send("**Lo nuestro no funcionaria! >n<** :sob:")
    const random = Math.floor(Math.random() * 100);
    let heard = "";
        if(random < 10){
            heard=':woman_gesturing_no: **Negativo** *No son compatibles en lo absoluto, sera mejor dar la vuelta y continuar el recorrido...* :woman_gesturing_no::';
        }else if(random < 40){
            heard=':broken_heart: *Podrian perfectamente ser amigos, pero solo eso...* :broken_heart:';
        }else if(random < 75){
            heard=':heart: *Podriรกn intentarlo, aunque como mejores amigos sera lo suficiente...* :heart:'; // Un pequeรƒยฑo Match.Floor para hacerlo random y no de el mismo resultado!
        }else if(random < 101){
            heard=':sparkling_heart: **Son perfectamente compatibles, su relaciรณn podria durar varios aรฑos...** :sparkling_heart:';
        }
    let resp = [`El porcetanje de ${message.author.username} & ${users.username} son:`,`Vasha yo calculo que ${message.author.username} & ${users.username} da un:`,`Segun mis calculos ${message.author.username} & ${users.username} da un:`,`Los astros me indican que ${message.author.username} & ${users.username} son un:`, `A mi parecer ${message.author.username} & ${users.username} son un:`]
    //let avatar2 = users.displayAvatarURL()
    //let avatar1 = message.author.displayAvatarURL()
    /*let img = (avatar1, "  ", avatar2)*/
    let msg = resp[Math.floor(Math.random() * resp.length)]    //Mensajes distintos si quieren ponerle diferentes mensajes!
    const embed = new Discord.MessageEmbed()
        .setTitle('Nombre del ship: ' + message.author.username.slice(0, -2) + users.username.slice(2))
        .setAuthor(`${msg}`)
        .setThumbnail("https://c.tenor.com/VhFHg1pUQRcAAAAC/heart-emoji.gif")
        .setFooter("8Ball ยท Cler", message.author.displayAvatarURL(), users.displayAvatarURL())
        //.setImage(img)
        .setDescription(`${random} % ${heard}`)   //Resultado aleatorio de lo anterior estructurado 
        .setColor(0xff4d4d)
    message.channel.send({ embed : embed }) // Se envia el embed
}

module.exports.help = {
    name: "love",
    description: "love your match",
    aliases: ["love"]
}

Here is an example for the Bc command

const Discord = require("discord.js") // Se define Discord para el embed.
let color = (process.env.COLOR)
let dev = (process.env.DEV)
module.exports.run = async(client, message, args) => {
    let permiso = message.member.hasPermission("ADMINISTRATOR");
        if(!permiso){
            message.channel.send(':x: | No tienes el permiso de Administrador');
        } else{
        // Ponemos el permiso de administrador
            let canal = message.mentions.channels.first();
        // Recogemos el primer canal mencionado
            if(!canal) return message.channel.send(':x: | Debe escribir un canal');
        // Si no ha mencionado ningรบn canal retorna un mensaje
            let mensaje = args.slice(1).join(" ");
        // Recogemos el mensaje a mandar a partir de args[1]
            if(!mensaje) return message.channel.send(':x: | Debe escribir un mensaje');
        // Si no ha escrito ningรบn mensaje retorna un mensaje
        canal.send(mensaje)
        // Mandamos lo escrito por el usuario al canal mencionado
    message.channel.send(":white_check_mark: | **Mensaje enviado**");
}
}

module.exports.help = {
    name: "bc",
    description: "broadcast",
    aliases: ["bc"]
}

Last updated