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."); } } };