|
const { delay } = require("@whiskeysockets/baileys"); |
|
const { cmd } = require("../command"); |
|
|
|
cmd({ |
|
pattern: "squidgame", |
|
desc: "Lancer le jeu Squid Game dans un groupe", |
|
category: "fun", |
|
filename: __filename |
|
}, async (conn, mek, m, { isAdmin, isOwner, participants, reply }) => { |
|
try { |
|
if (!m.isGroup) return reply("❌ Cette commande ne peut être utilisée que dans les groupes."); |
|
if (!isAdmin && !isOwner) return reply("❌ Seuls les admins peuvent utiliser cette commande."); |
|
|
|
let groupMembers = participants.filter(p => !p.admin); |
|
if (groupMembers.length < 5) return reply("⚠️ Il faut au moins 5 membres non-admins pour jouer."); |
|
|
|
let gameCreator = "@" + m.sender.split("@")[0]; |
|
|
|
|
|
let gameMessage = `🔴 *Squid Game: Red Light,🟢Green Light*\n\n🎭 *Front Man*: (${gameCreator})\n`; |
|
gameMessage += groupMembers.map(m => "@" + m.id.split("@")[0]).join("\n") + "\n\n"; |
|
gameMessage += "Tous les autres membres du groupe sont ajoutés comme joueurs ! Le jeu commence dans 50 secondes."; |
|
|
|
await conn.sendMessage(m.chat, { text: gameMessage, mentions: groupMembers.map(m => m.id) }); |
|
|
|
await delay(50000); |
|
|
|
|
|
let players = groupMembers.sort(() => 0.5 - Math.random()).slice(0, 5); |
|
|
|
let playersList = players.map((p, i) => `${i + 1}. @${p.id.split("@")[0]}`).join("\n"); |
|
|
|
await conn.sendMessage(m.chat, { |
|
text: `🎮 *Liste des joueurs:*\n${playersList}\n\n🔔 Le jeu commence maintenant !`, |
|
mentions: players.map(p => p.id) |
|
}); |
|
|
|
await delay(3000); |
|
|
|
|
|
let rulesMessage = `📜 *Règles du Squid Game:*\n\n` |
|
+ `1️⃣ Pendant 🟥 *Red Light*, les joueurs qui envoient un message seront *éliminés* et *expulsés* du groupe.\n\n` |
|
+ `2️⃣ Pendant 🟩 *Green Light*, les joueurs doivent envoyer un message. Ceux qui restent silencieux seront éliminés.\n\n` |
|
+ `3️⃣ Le jeu se termine lorsqu'il ne reste plus qu'un seul joueur.\n\n` |
|
+ `🏆 Survis pour devenir le *gagnant* !`; |
|
|
|
await conn.sendMessage(m.chat, { text: rulesMessage }); |
|
|
|
await delay(5000); |
|
|
|
let remainingPlayers = [...players]; |
|
while (remainingPlayers.length > 1) { |
|
let isGreenLight = Math.random() > 0.5; |
|
let lightMessage = isGreenLight ? "🟩 *Green Light*" : "🟥 *Red Light*"; |
|
await conn.sendMessage(m.chat, { text: `🔔 ${lightMessage}` }); |
|
|
|
await delay(5000); |
|
|
|
let playersToKick = []; |
|
let spokenPlayers = new Set(); |
|
|
|
conn.ev.on("messages.upsert", (msg) => { |
|
let sender = msg.messages[0].key.remoteJid; |
|
if (remainingPlayers.find(p => p.id === sender)) spokenPlayers.add(sender); |
|
}); |
|
|
|
if (isGreenLight) { |
|
|
|
for (let player of remainingPlayers) { |
|
if (!spokenPlayers.has(player.id)) { |
|
playersToKick.push(player); |
|
} |
|
} |
|
} else { |
|
|
|
for (let player of remainingPlayers) { |
|
if (spokenPlayers.has(player.id)) { |
|
playersToKick.push(player); |
|
} |
|
} |
|
} |
|
|
|
for (let player of playersToKick) { |
|
await conn.groupParticipantsUpdate(m.chat, [player.id], "remove"); |
|
let eliminationMessage = isGreenLight |
|
? `❌ @${player.id.split("@")[0]} est resté silencieux pendant 🟩 *Green Light* et a été éliminé et expulsé du groupe.` |
|
: `❌ @${player.id.split("@")[0]} a écrit pendant 🟥 *Red Light* et a été éliminé et expulsé du groupe.`; |
|
|
|
await conn.sendMessage(m.chat, { |
|
text: eliminationMessage, |
|
mentions: [player.id] |
|
}); |
|
} |
|
|
|
remainingPlayers = remainingPlayers.filter(p => !playersToKick.includes(p)); |
|
} |
|
|
|
if (remainingPlayers.length === 1) { |
|
await conn.sendMessage(m.chat, { |
|
text: `🏆 *Félicitations @${remainingPlayers[0].id.split("@")[0]} !*\nTu as survécu et remporté le Squid Game ! 🎉`, |
|
mentions: [remainingPlayers[0].id] |
|
}); |
|
} |
|
} catch (error) { |
|
console.error("Erreur dans la commande .squidgame:", error); |
|
reply("❌ Une erreur s'est produite lors du lancement du Squid Game."); |
|
} |
|
}); |
|
|
|
cmd({ |
|
pattern: "konami", |
|
desc: "Simulate a match between two teams and choose a winner randomly after 30 seconds.", |
|
category: "game", |
|
react: "⚽", |
|
filename: __filename, |
|
use: ".konami" |
|
}, async (conn, mek, m, { from, sender, reply }) => { |
|
try { |
|
|
|
const teams = [ |
|
"Real Madrid 🇪🇸", |
|
"FC Barcelone 🇪🇸", |
|
"Manchester United 🇬🇧", |
|
"Liverpool FC 🇬🇧", |
|
"Bayern Munich 🇩🇪", |
|
"Juventus 🇮🇹", |
|
"Paris Saint-Germain 🇫🇷", |
|
"Arsenal FC 🇬🇧", |
|
"AC Milan 🇮🇹", |
|
"Inter Milan 🇮🇹", |
|
"Chelsea FC 🇬🇧", |
|
"Borussia Dortmund 🇩🇪", |
|
"Cameroun 🇨🇲", |
|
"Côte D'Ivoire 🇨🇮", |
|
"Tottenham Hotspur 🇬🇧", |
|
"Sénégal 🇸🇳", |
|
"RDC 🇨🇩", |
|
"Congo 🇨🇬", |
|
"Ajax Amsterdam 🇳🇱", |
|
"FC Porto 🇵🇹", |
|
"SL Benfica 🇵🇹", |
|
"Olympique Lyonnais 🇫🇷", |
|
"Olympique de Marseille 🇫🇷", |
|
"AS Monaco 🇫🇷", |
|
"Sporting CP 🇵🇹", |
|
"Everton FC 🇬🇧", |
|
"West Ham United 🇬🇧", |
|
"Atletico Madrid 🇪🇸", |
|
"AS Roma 🇮🇹", |
|
"Fiorentina 🇮🇹", |
|
"Napoli 🇮🇹", |
|
"Celtic FC 🇬🇧", |
|
"Rangers FC 🇬🇧", |
|
"Feyenoord 🇳🇱", |
|
"PSV Eindhoven 🇳🇱", |
|
"Brazil 🇧🇷", |
|
"Germany 🇩🇪", |
|
"Argentina 🇦🇷", |
|
"France 🇫🇷", |
|
"Spain 🇪🇸", |
|
"Italy 🇮🇹", |
|
"England 🏴", |
|
"Portugal 🇵🇹", |
|
"Netherlands 🇳🇱", |
|
"Belgium 🇧🇪", |
|
"Mexico 🇲🇽", |
|
"Uruguay 🇺🇾", |
|
"USA 🇺🇸" |
|
|
|
]; |
|
|
|
|
|
const team1 = teams[Math.floor(Math.random() * teams.length)]; |
|
let team2 = teams[Math.floor(Math.random() * teams.length)]; |
|
while (team2 === team1) { |
|
team2 = teams[Math.floor(Math.random() * teams.length)]; |
|
} |
|
|
|
|
|
const announcement = `⚽ *Match Versus*\n\n${team1} 🆚 ${team2}\n\n@${sender.split("@")[0]}, choisis le gagnant ! Tu as 30 secondes pour réfléchir.`; |
|
await reply(announcement, { mentions: [sender] }); |
|
|
|
|
|
await new Promise(resolve => setTimeout(resolve, 30000)); |
|
|
|
|
|
const chosenTeam = Math.random() < 0.5 ? team1 : team2; |
|
|
|
|
|
const resultMessage = `🏆 *Résultat du Match*\n\nLe gagnant est : ${chosenTeam}🥳\n\n> Ici le resultat😎 @${sender.split("@")[0]} !`; |
|
await reply(resultMessage, { mentions: [sender] }); |
|
} catch (error) { |
|
console.error("Error in konami command:", error); |
|
reply("❌ Une erreur est survenue lors de l'exécution de la commande konami."); |
|
} |
|
}); |
|
|