module.exports = {
  interaction: {
    name: "ÅŸifre",
    description: "Rastgele bir ÅŸifre verir.",
    options: [
      {
        name: "uzunluk",
        description: "Åžifrenin kaÃ§ karakter uzunluÄŸunda olmasÄ±nÄ± istiyorsun?",
        type: 4,
        required: true
      },
    ],
  },
  aliases: ["sifre", "ÅŸifre-oluÅŸtur", "sifreolustur", "sifreoluÅŸtur", "sifre-oluÅŸtur", "ÅŸifre-olustur", "ÅŸifreoluÅŸtur", "ÅŸifreolustur", "rastgele-sifre", "rastgelesifre", "rastgele-ÅŸifre"],
  category: "General",
  memberPermissions: [],
  botPermissions: ["SendMessages", "EmbedLinks"],
  nsfw: false,
  cooldown: false,
  ownerOnly: false,

  async execute(client, interaction, data, args) {

    var uzunluk;
    if (interaction.type === 2) {
      uzunluk = interaction.options.getInteger("uzunluk");
    } else {
      uzunluk = args[0];
    }

    if (!uzunluk)
      return interaction.reply({
        embeds: [
          {
            color: client.settings.embedColors.red,
            title: '**Â»** Åžifrenin KaÃ§ Karakter OlacaÄŸÄ±nÄ± Belirtmelisin!',
            description: `**â€¢** Ã–rnek kullanÄ±m: \`/ÅŸifre 32\``
          }
        ]
      });


    if (isNaN(uzunluk))
      return interaction.reply({
        embeds: [
          {
            color: client.settings.embedColors.red,
            title: '**Â»** GeÃ§erli Bir Uzunluk Belirtmelisin!',
            description: `**â€¢** Ã–rnek kullanÄ±m: \`/ÅŸifre 32\``
          }
        ]
      });

    if (uzunluk < 0)
      return interaction.reply({
        embeds: [
          {
            color: client.settings.embedColors.red,
            title: '**Â»** SEN BENÄ° Ã‡ILDIRTMAK MI Ä°STÄ°YORSUN?!',
            description: `**â€¢** UZUNLUÄžU NEGATÄ°F OLAN ÅžÄ°FRE MÄ° OLUR? :rage:`
          }
        ]
      });

    if (uzunluk == 0)
      return interaction.reply({
        embeds: [
          {
            color: client.settings.embedColors.red,
            title: '**Â»** ÅžÄ°FREN 0 HANELÄ° OLAMAZ!',
            description: `**â€¢** BAZEN BENÄ° SÄ°NÄ°R ETMEK Ä°Ã‡Ä°N BENÄ° KULLANDIÄžINIZI DÃœÅžÃœNÃœYORUM... :rage:`
          }
        ]
      });

    if (Math.trunc(uzunluk) > 500)
      return interaction.reply({
        embeds: [
          {
            color: client.settings.embedColors.red,
            title: '**Â»** Åžifren Ã‡oook Uzun!',
            description: `**â€¢** En fazla **500** karakterli ÅŸifre oluÅŸturabilirsin.`
          }
        ]
      });

    function generatePassword(length) {
      var charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.!@$#&%",
        retVal = "";
      for (var i = 0, n = charset.length; i < length; ++i) {
        retVal += charset.charAt(Math.floor(Math.random() * n));
      }
      return retVal;
    }

    var ÅŸifre = generatePassword(parseInt(Math.trunc(uzunluk)));

    /*var ÅŸifre = password.generate({
      length: `${uzunluk}`,
      numbers: true
    });*/

    const cevaplar = [
      "Tebrikler! bizden bir adet Ã§ok gizli ÅŸifre kazandÄ±nÄ±z!",
      "Bu ÅŸifreyi FBI ve CIA bile gelse Ã§Ã¶zemez.",
      "Merak etme hesabÄ±nÄ± Ã§almam. ðŸ˜‚",
      "Ultra mega gizli ÅŸifren hazÄ±r.",
      "Bunu senin iÃ§in fÄ±rÄ±ndan yeni Ã§Ä±kardÄ±m.",
      "SÄ±cacÄ±k ve taptaze ÅŸifren hazÄ±r.",
      "Åžifreni oluÅŸturdum!",
      "Sen bu ÅŸifreyi kullan da senin hesabÄ±na sÄ±zma yaÄŸ gibi sÄ±zayÄ±m.",
      "Al bakalÄ±m Ã§ocuk adam."
    ];

    var cevap = cevaplar[Math.floor(Math.random() * cevaplar.length)];

    return interaction.reply({
      embeds: [
        {
          color: client.settings.embedColors.default,
          title: `**Â»** ${cevap}`,
          description: ÅŸifre //`**â€¢** ${ÅŸifre}`,
        }
      ]
    });

  }
};