mmm / plugins /game.js
ravenbs1's picture
Upload 140 files
046b271 verified
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.");
}
});