File size: 7,788 Bytes
046b271 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
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); // Exclure les admins
if (groupMembers.length < 5) return reply("⚠️ Il faut au moins 5 membres non-admins pour jouer.");
let gameCreator = "@" + m.sender.split("@")[0];
// Message d'annonce du jeu
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); // Attente de 50s avant de sélectionner les joueurs
// Sélectionner 50 joueurs aléatoires
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);
// Explication des règles
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); // Délai de 5s entre chaque phase
let playersToKick = [];
let spokenPlayers = new Set(); // Stocke ceux qui ont parlé
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) {
// Vérifier qui ne parle pas
for (let player of remainingPlayers) {
if (!spokenPlayers.has(player.id)) {
playersToKick.push(player);
}
}
} else {
// Vérifier qui parle
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 {
// Liste étendue des clubs et équipes internationales avec leurs emojis
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 🇺🇸"
// Ajoutez d'autres équipes si nécessaire
];
// Sélection aléatoire de deux équipes différentes
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)];
}
// Annonce du match versus
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] });
// Attendre 30 secondes
await new Promise(resolve => setTimeout(resolve, 30000));
// Choix aléatoire du gagnant parmi les deux équipes
const chosenTeam = Math.random() < 0.5 ? team1 : team2;
// Message final annonçant le gagnant
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.");
}
});
|