← back to browse
goat command

kicked

Generate kicked image ๐Ÿ‘ข

0
views
0
likes
0
installs
raw source
const fs = require("fs-extra");
const path = require("path");
const axios = require("axios");

module.exports = {
  config: {
    name: "kicked",
    version: "2.0",
    author: "Converted by ariyan",
    countDown: 5,
    role: 0,
    shortDescription: "Generate kicked image ๐Ÿ‘ข",
    longDescription: "Tag or reply to someone to generate a kicked image",
    category: "fun",
    guide: "{pn} @tag or reply"
  },

  onStart: async function ({ event, message, usersData }) {
    const { senderID, mentions, messageReply } = event;

    const kickerID = senderID;
    let kickedID = Object.keys(mentions || {})[0];

    if (!kickedID && messageReply?.senderID) {
      kickedID = messageReply.senderID;
    }

    if (!kickedID) {
      return message.reply("๐Ÿ‘ข | Please tag someone or reply to their message.");
    }

    try {
      // Get names
      const kickerName = await usersData.getName(kickerID).catch(() => "Someone");
      const kickedName = await usersData.getName(kickedID).catch(() => "Someone");

      // Get avatar URLs
      const kickerAvatar = await usersData.getAvatarUrl(kickerID);
      const kickedAvatar = await usersData.getAvatarUrl(kickedID);

      // External API config
      const configURL = "https://raw.githubusercontent.com/noobcore404/NC-STORE/main/NCApiUrl.json";
      const rawRes = await axios.get(configURL);
      const apiBase = rawRes.data.apiv1;

      const apiURL = `${apiBase}/api/kicked?kicker=${encodeURIComponent(kickerAvatar)}&kicked=${encodeURIComponent(kickedAvatar)}`;

      // Get image
      const response = await axios.get(apiURL, { responseType: "arraybuffer" });

      // Save temp file
      const tmpDir = path.join(__dirname, "tmp");
      await fs.ensureDir(tmpDir);

      const filePath = path.join(tmpDir, `kicked_${kickerID}_${kickedID}.jpg`);
      await fs.writeFile(filePath, response.data);

      await message.reply({
        body: `๐Ÿ‘ข ${kickerName} just kicked ${kickedName}! ๐Ÿ˜†`,
        attachment: fs.createReadStream(filePath)
      });

      // Auto delete
      setTimeout(() => {
        if (fs.existsSync(filePath)) fs.unlinkSync(filePath);
      }, 5000);

    } catch (err) {
      console.error("Kicked command error:", err);
      return message.reply("โŒ | Couldn't generate kicked image. Try again later.");
    }
  }
};

View raw file