bewanff_terima.js

by Yatzz
42 Raw
const weapons = [
    "SG Terompet", "SG Meteor Merah", "SG Reaper", "SG OPM", "SG Kayu😂",
    "SG Bunny", "SG Mamba", "SG Aqua", "SG Golden", "SG Peluru Suci",
    "SG 2 Juta", "SG Mata Elang", "SG Lumut", "Granat😎"
];

let cooldowns = new Map(); // Menyimpan cooldown pemain

let handler = async (m, { hanz, setReply }) => {
    let sender = m.sender;

    // Cek apakah pemain sedang dalam permainan atau cooldown
    if (cooldowns.has(sender)) {
        let waktuSisa = Math.ceil((cooldowns.get(sender) - Date.now()) / 1000);
        if (waktuSisa > 0) {
            let waktuMenit = Math.floor(waktuSisa / 60);
            let waktuDetik = waktuSisa % 60;
            return setReply(`⚠️ Kamu masih dalam permainan atau cooldown! ⏳\n🕒 Permainan selesai dalam *${waktuMenit} menit ${waktuDetik} detik*!`);
        } else {
            cooldowns.delete(sender); // Hapus cooldown jika waktunya sudah habis
        }
    }

    // Cari siapa yang menantang bewan
    let foundGame = Object.entries(global.db.data.bewanff).find(([challenger, game]) => game.enemy === sender);

    if (!foundGame) return setReply("⚠️ Tidak ada tantangan bewan yang harus diterima!");

    let [opponent, gameData] = foundGame;
    
    // Tandai bahwa tantangan sudah diterima
    gameData.accepted = true;

    let userA = opponent;
    let userB = sender;

    // Pilih senjata acak
    let weaponA = Math.random() < 0.1 ? "Granat😎" : weapons[Math.floor(Math.random() * weapons.length)];
    let weaponB = Math.random() < 0.1 ? "Granat😎" : weapons[Math.floor(Math.random() * weapons.length)];

    await hanz.sendMessage(m.chat, { 
        text: `🔥 *PERTARUNGAN DIMULAI!* 🔥\n\n👮🏻‍♂️ @${userA.split("@")[0]} menggunakan *${weaponA}*!\n👮🏼‍♂️ @${userB.split("@")[0]} menggunakan *${weaponB}*!\n\n⚔️ *Duel sengit dimulai!*\n⏳ *Tunggu 1 menit untuk hasilnya...*`, 
        mentions: [userA, userB] 
    });

    // Simpan cooldown sementara
    let gameEndTime = Date.now() + 60000;
    cooldowns.set(userA, gameEndTime);
    cooldowns.set(userB, gameEndTime);

    setTimeout(() => {
        let winner, loser;
        let loserScore = Math.floor(Math.random() * 7); // Skor kalah antara 0 - 6
        let score = 7; // Pemenang selalu dapat 7 poin

        // Jika ada yang pakai Granat, auto menang
        if (weaponA === "Granat😎") {
            winner = userA;
            loser = userB;
        } else if (weaponB === "Granat😎") {
            winner = userB;
            loser = userA;
        } else {
            winner = Math.random() < 0.5 ? userA : userB;
            loser = winner === userA ? userB : userA;
        }

        let winnerWeapon = winner === userA ? weaponA : weaponB;
        let loserWeapon = loser === userA ? weaponA : weaponB;

        let notif = `🏆 *PERTANDINGAN SELESAI!* 🏆\n\n💥 *BOOYAH!* 🎯\n🏅 *Pemenang:* @${winner.split("@")[0]} menggunakan *${winnerWeapon}*!\n❌ *Loser:* @${loser.split("@")[0]} yang bertarung menggunakan *${loserWeapon}*.\n\n📊 *Skor Akhir:* ${score} - ${loserScore}`;

        if (winnerWeapon === "Granat😎") {
            notif += `\n\nUDAH PASTI KALAH LAH, LAWAN LU AJA PAKE GRANAT😂😂`;
        }

        notif += `\n\n> #FFBOOYAH #ANJAYMABAR #SALAMJAMSUT #SALAMBOOYAHBRADER #EPEPSELALUDIHATI #PRIPAYERMAKINHD`;

        hanz.sendMessage(m.chat, { text: notif, mentions: [winner, loser] });

        delete global.db.data.bewanff[userA];
        delete global.db.data.bewanff[userB];

        // Set cooldown 5 menit setelah pertandingan selesai
        let cooldownEndTime = Date.now() + 5 * 60000;
        cooldowns.set(userA, cooldownEndTime);
        cooldowns.set(userB, cooldownEndTime);
    }, 60000);
};

handler.command = ["bewanffacc"];
handler.tags = ["game"];
handler.help = ["bewanffacc"];
handler.group = true;

module.exports = handler;