← back to browse
goat command

hack

Create a fake hacked image for mentioned user or the sender user

0
views
0
likes
0
installs
raw source
const { loadImage, createCanvas } = require('canvas');
const axios = require('axios');
const fs = require('fs-extra');

module.exports = {
  config: {
    name: "hack",
    version: "1.0.10",
    author: "Rakib Adil",
    description: "Create a fake hacked image for mentioned user or the sender user",
    guide: "use {p}hack or {p}hack @mention or reply to someone's message",
    countDown: 5,
    role: 0,
    category: "fun",
    usePrefix: true, // you can use this cmd without prefix by setting to false.
    premium: false
  },

  wrapText: async (text, ctx, maxWidth) => {
    return new Promise((resolve) => {
      if (ctx.measureText(text).width < maxWidth) return resolve([text]);
      if (ctx.measureText("W").width > maxWidth) return resolve(null);
      const words = text.split(" ");
      const lines = [];
      let line = "";
      while (words.length > 0) {
        let split = false;
        while (ctx.measureText(words[0]).width >= maxWidth) {
          const temp = words[0];
          words[0] = temp.slice(0, -1);
          if (split) words[1] = `${temp.slice(-1)}${words[1]}`;
          else {
            split = true;
            words.splice(1, 0, temp.slice(-1));
          }
        }
        if (ctx.measureText(`${line}${words[0]}`).width < maxWidth) line += `${words.shift()} `;
        else {
          lines.push(line.trim());
          line = "";
        }
        if (words.length === 0) lines.push(line.trim());
      }
      return resolve(lines);
    });
  },

  onStart: async ({ args, api, event }) => {
    const pathImg = __dirname + "/cache/bgImg.png";
    const pathAvt1 = __dirname + "/cache/avt.png";

    const mentionIds = Object.keys(event.mentions || {});
    const targetId = (event.messageReply && event.messageReply.senderID)
      ? event.messageReply.senderID
      : (mentionIds.length ? mentionIds[0] : event.senderID);

    let name = "Unknown";
    try {
      const info = await api.getUserInfo(targetId);
      if (info && info[targetId] && info[targetId].name) name = info[targetId].name;
    } catch (e) {
      console.warn("getUserInfo failed:", e?.message || e);
    }

    const bgImg = [
      "https://i.ibb.co/zTf5GSs2/Screenshot-2025-03-03-22-28-20-197-com-facebook-lite-1.png"
    ];
    const rndm = bgImg[Math.floor(Math.random() * bgImg.length)];

    try {
      const bgRes = await axios.get(rndm, { responseType: "arraybuffer" });
      fs.writeFileSync(pathImg, Buffer.from(bgRes.data));

      const avtRes = await axios.get(
        `https://graph.facebook.com/${targetId}/picture?width=720&height=720&access_token=6628568379%7Cc1e620fa708a1d5696fb991c1bde5662`,
        { responseType: "arraybuffer" }
      );
      fs.writeFileSync(pathAvt1, Buffer.from(avtRes.data));

      const baseImg = await loadImage(pathImg);
      const baseAvt = await loadImage(pathAvt1);

      const canvas = createCanvas(baseImg.width, baseImg.height);
      const ctx = canvas.getContext("2d");

      ctx.drawImage(baseImg, 0, 0, canvas.width, canvas.height);

      ctx.font = "35px Arial";
      ctx.fillStyle = "#1878F3";
      ctx.textAlign = "left";

      const lines = await module.exports.wrapText(name, ctx, 350);
      let x = 300;
      let y = 740;
      if (lines && Array.isArray(lines)) {
        for (let line of lines) {
          ctx.fillText(line, x, y);
          y += 33;
        }
      } else {
        ctx.fillText(name, x, y);
      }

      ctx.drawImage(baseAvt, 127, 660, 130, 140);

      const imageBuffer = canvas.toBuffer();
      fs.writeFileSync(pathImg, imageBuffer);

      fs.removeSync(pathAvt1);

      return api.sendMessage(
        {
          body: "✅ hacked done, please check your inbox for pass ⚠️",
          attachment: fs.createReadStream(pathImg)
        },
        event.threadID,
        () => fs.unlinkSync(pathImg),
        event.messageID
      );
    } catch (err) {
      console.error("Error in hack cmd:", err);
      try { if (fs.existsSync(pathAvt1)) fs.removeSync(pathAvt1); } catch(e){}
      try { if (fs.existsSync(pathImg)) fs.removeSync(pathImg); } catch(e){}
      return api.sendMessage("❌ Failed to create hack image. Try again later.", event.threadID, event.messageID);
    }
  }
};

View raw file