goat
command
slot
๐ Ultra-stylish love slot machine
0
views
0
likes
0
installs
Aliases: spin
raw source
module.exports = {
config: {
name: "slot",
aliases: ["spin"],
version: "1.9",
author: "Anik Islam Sadik",
countDown: 3,
role: 0,
description: "๐ Ultra-stylish love slot machine",
category: "game",
guide: { en: "Use: {pn} [bet amount]" }
},
onStart: async function ({ message, event, args, usersData }) {
const { senderID } = event;
const bet = parseInt(args[0]);
const formatMoney = (amount) => {
if (isNaN(amount)) return "๐ฒ0";
amount = Number(amount);
const scales = [
{ value: 1e15, s: 'Q', c: '๐' },
{ value: 1e12, s: 'T', c: 'โจ' },
{ value: 1e9, s: 'B', c: '๐' },
{ value: 1e6, s: 'M', c: '๐ฐ' },
{ value: 1e3, s: 'k', c: '๐ต' }
];
const sc = scales.find(x => amount >= x.value);
return sc ? `${sc.c}${(amount / sc.value).toFixed(2)}${sc.s}` : `๐ฒ${amount.toLocaleString()}`;
};
if (isNaN(bet) || bet <= 0) return message.reply("โ ๏ธ ๐๐ฅ๐ฅ๐ข๐ฅ: Please enter a valid bet amount! (Ex: slots 100)");
const user = await usersData.get(senderID);
if (user.money < bet) return message.reply(`โ ๐๐ก๐ฆ๐จ๐๐๐๐๐๐๐ก๐ง ๐๐จ๐ก๐๐ฆ: You need ${formatMoney(bet - user.money)} more to play!`);
const symbols = [
{ e: "๐", w: 30 }, { e: "๐", w: 25 }, { e: "๐", w: 20 },
{ e: "๐", w: 15 }, { e: "๐", w: 7 }, { e: "๐", w: 3 }
];
const roll = () => {
const tot = symbols.reduce((s, x) => s + x.w, 0);
let r = Math.random() * tot;
for (const x of symbols) {
if (r < x.w) return x.e;
r -= x.w;
}
return symbols[0].e;
};
const [s1, s2, s3] = [roll(), roll(), roll()];
let winnings = 0, outcome, winType = "", bonus = "";
if (s1 === "๐" && s2 === "๐" && s3 === "๐") {
winnings = bet * 10;
outcome = "๐ฅ ๐จ๐๐ง๐๐ ๐๐ง๐ ๐๐๐๐ ๐ข๐ก๐ ๐๐๐๐๐ฃ๐ข๐ง!";
winType = "๐ ๐๐๐๐๐ก๐๐๐ฅ๐ฌ ๐ช๐๐ก";
bonus = "๐ +3% Balance Bonus Added!";
await usersData.set(senderID, { money: user.money * 1.03 });
} else if (s1 === s2 && s2 === s3) {
winnings = bet * 5;
outcome = "๐ ๐๐๐๐๐ฃ๐ข๐ง! 3 Matching Hearts!";
winType = "๐ ๐๐๐ ๐ช๐๐ก";
} else if (s1 === s2 || s2 === s3 || s1 === s3) {
winnings = bet * 2;
outcome = "โจ 2 Matching Hearts!";
winType = "โก ๐๐ข๐ข๐ ๐ช๐๐ก";
} else if (Math.random() < 0.5) {
winnings = bet * 1.5;
outcome = "๐ฏ Lucky Love Spin Win!";
winType = "๐ ๐ฆ๐ ๐๐๐ ๐ช๐๐ก";
} else {
winnings = -bet;
outcome = "๐ Heartbroken! Better Luck Next Time!";
winType = "โ ๏ธ ๐๐ข๐ฆ๐ฆ";
}
await usersData.set(senderID, { money: user.money + winnings });
const finalBal = user.money + winnings;
const slotBox = `โญโโโโโโโโโโโโโโโโโฎ\nโ ๐ [ ${s1} โฆ ${s2} โฆ ${s3} ] ๐ โ\nโฐโโโโโโโโโโโโโโโโโฏ`;
const resText = winnings >= 0 ? `๐ข ๐ ๐ช๐ข๐ก: +${formatMoney(winnings)}` : `๐ด ๐ธ ๐๐ข๐ฆ๐ง: -${formatMoney(bet)}`;
return message.reply(`${slotBox}\n\n๐ฏ ${outcome}\n${winType ? `๐ฅ ${winType}\n` : ""}${bonus ? `${bonus}\n` : ""}\n${resText}\n๐ณ ๐๐๐๐๐ก๐๐: ${formatMoney(finalBal)}`);
}
};