UNPKG

daisy-blackjack

Version:
354 lines (321 loc) 24.2 kB
const shuffle = require("shuffle-array"); const Discord = require("discord.js"); const Collect = require("./collect"); module.exports = async (message, options) => { if (!message) throw new Error("[MISSING_PARAMETER] The message or interaction parameter was not provided, was null or undefined."); if (!(message instanceof Discord.Message) && !(message instanceof Discord.CommandInteraction)) throw new Error("[INVALID_PARAMATER] The message or interaction parameter provided is not valid."); if (!options) options = {}; options.transition === "edit" ? options.transition = "edit" : options.transition = "delete"; options.buttons === false ? options.buttons = false : options.buttons = true; options.doubledown === false ? options.doubledown = false : options.doubledown = true; options.insurance === false ? options.insurance = false : options.insurance = true; options.split === false ? options.split = false : options.split = true; options.resultEmbed === false ? options.resultEmbed = false : options.resultEmbed = true; options.normalEmbed === false ? options.normalEmbed = false : options.normalEmbed = true; !options.emojis ? options.emojis = {} : options.emojis; options.emojis = { clubs: options.emojis?.clubs || "♣️", spades: options.emojis?.spades || "♠️", hearts: options.emojis?.hearts || "♥️", diamonds: options.emojis?.diamonds || "♦️" }; let commandType; if (message instanceof Discord.Message) { commandType = "message"; } else if (message instanceof Discord.CommandInteraction) { commandType = "interaction"; }; options.commandType = commandType; if (options && !(options instanceof Object)) throw new Error(`[INVALID_PARAMATER] The options parameter expected an object, but recieved ${Array.isArray(options) ? "array" : typeof options }`); if (typeof options.emojis !== "object") throw new Error(`[INVALID_PARAMATER] The options.emojis parameter expected an object, but recieved ${typeof options}.`); if (typeof options.emojis.spades !== "string") throw new Error(`[INVALID_PARAMATER] The emojis.spades option expected a string, but recieved ${typeof options.emojis.spades}`); if (typeof options.emojis.hearts !== "string") throw new Error(`[INVALID_PARAMATER] The emojis.hearts option expected a string, but recieved ${typeof options.emojis.hearts}`); if (typeof options.emojis.diamonds !== "string") throw new Error(`[INVALID_PARAMATER] The emojis.diamonds option expected a string, but recieved ${typeof options.emojis.diamonds}`); if (typeof options.emojis.clubs !== "string") throw new Error(`[INVALID_PARAMATER] The emojis.clubs option expected a string, but recieved ${typeof options.emojis.clubs}`); if (options.normalEmbed === false && !options.normalEmbedContent) throw new Error("[MISSING_PARAMETER] The normalEmbedContent option was not provided, was null or undefined when normalEmbed was set to false."); if (options.normalEmbed === false && typeof options.normalEmbedContent !== "object") throw new Error("[INVALID_PARAMATER] The normalEmbedContent parameter provided is not valid."); let starterMessage; if (commandType === "interaction" && !message.deferred && !message.replied) { starterMessage = await message.deferReply(); } else if (commandType === "message") { starterMessage = await message.channel.send({ embeds: [{ title: "Oyun başlıyor.", description: "Oyun birazdan başlıyor, hazırlan!" }] }); }; let normalEmbedContent = options.normalEmbedContent ?? "None"; let transition = options.transition; let buttons = options.buttons; let doubledown = options.doubledown; let insurance = options.insurance; let split = options.split; let resultEmbed = options.resultEmbed; let normalEmbed = options.normalEmbed; let userId = message.member.id; let isSoft = false; let method = "None"; let copiedEmbed = { content: "", value: "" }; let DECK = [ { suit: 'clubs', rank: 'A', value: [1, 11], emoji: options.emojis.clubs }, { suit: 'clubs', rank: '2', value: 2, emoji: options.emojis.clubs }, { suit: 'clubs', rank: '3', value: 3, emoji: options.emojis.clubs }, { suit: 'clubs', rank: '4', value: 4, emoji: options.emojis.clubs }, { suit: 'clubs', rank: '5', value: 5, emoji: options.emojis.clubs }, { suit: 'clubs', rank: '6', value: 6, emoji: options.emojis.clubs }, { suit: 'clubs', rank: '7', value: 7, emoji: options.emojis.clubs }, { suit: 'clubs', rank: '8', value: 8, emoji: options.emojis.clubs }, { suit: 'clubs', rank: '9', value: 9, emoji: options.emojis.clubs }, { suit: 'clubs', rank: '10', value: 10, emoji: options.emojis.clubs }, { suit: 'clubs', rank: 'J', value: 10, emoji: options.emojis.clubs }, { suit: 'clubs', rank: 'Q', value: 10, emoji: options.emojis.clubs }, { suit: 'clubs', rank: 'K', value: 10, emoji: options.emojis.clubs }, { suit: 'diamonds', rank: 'A', value: [1, 11], emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: '2', value: 2, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: '3', value: 3, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: '4', value: 4, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: '5', value: 5, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: '6', value: 6, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: '7', value: 7, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: '8', value: 8, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: '9', value: 9, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: '10', value: 10, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: 'J', value: 10, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: 'Q', value: 10, emoji: options.emojis.diamonds }, { suit: 'diamonds', rank: 'K', value: 10, emoji: options.emojis.diamonds }, { suit: 'hearts', rank: 'A', value: [1, 11], emoji: options.emojis.hearts }, { suit: 'hearts', rank: '2', value: 2, emoji: options.emojis.hearts }, { suit: 'hearts', rank: '3', value: 3, emoji: options.emojis.hearts }, { suit: 'hearts', rank: '4', value: 4, emoji: options.emojis.hearts }, { suit: 'hearts', rank: '5', value: 5, emoji: options.emojis.hearts }, { suit: 'hearts', rank: '6', value: 6, emoji: options.emojis.hearts }, { suit: 'hearts', rank: '7', value: 7, emoji: options.emojis.hearts }, { suit: 'hearts', rank: '8', value: 8, emoji: options.emojis.hearts }, { suit: 'hearts', rank: '9', value: 9, emoji: options.emojis.hearts }, { suit: 'hearts', rank: '10', value: 10, emoji: options.emojis.hearts }, { suit: 'hearts', rank: 'J', value: 10, emoji: options.emojis.hearts }, { suit: 'hearts', rank: 'Q', value: 10, emoji: options.emojis.hearts }, { suit: 'hearts', rank: 'K', value: 10, emoji: options.emojis.hearts }, { suit: 'spades', rank: 'A', value: [1, 11], emoji: options.emojis.spades }, { suit: 'spades', rank: '2', value: 2, emoji: options.emojis.spades }, { suit: 'spades', rank: '3', value: 3, emoji: options.emojis.spades }, { suit: 'spades', rank: '4', value: 4, emoji: options.emojis.spades }, { suit: 'spades', rank: '5', value: 5, emoji: options.emojis.spades }, { suit: 'spades', rank: '6', value: 6, emoji: options.emojis.spades }, { suit: 'spades', rank: '7', value: 7, emoji: options.emojis.spades }, { suit: 'spades', rank: '8', value: 8, emoji: options.emojis.spades }, { suit: 'spades', rank: '9', value: 9, emoji: options.emojis.spades }, { suit: 'spades', rank: '10', value: 10, emoji: options.emojis.spades }, { suit: 'spades', rank: 'J', value: 10, emoji: options.emojis.spades }, { suit: 'spades', rank: 'Q', value: 10, emoji: options.emojis.spades }, { suit: 'spades', rank: 'K', value: 10, emoji: options.emojis.spades }, ]; let hitbtn = { label: "Kart Çek", style: 1, custom_id: "discord-blackjack-hitbtn", type: 2 }; let standbtn = { label: "Kart Alma", style: 1, custom_id: "discord-blackjack-standbtn", type: 2 }; let ddownbtn = { label: "İkiye Katla", style: 1, custom_id: "discord-blackjack-ddownbtn", type: 2 }; let splitbtn = { label: "Kartları Böl", style: 1, custom_id: "discord-blackjack-splitbtn", type: 2 }; let insbtn = { label: "Sigorta Al", style: 1, custom_id: "discord-blackjack-insbtn", type: 2 }; let noinsbtn = { label: "Sigorta Alma", style: 4, custom_id: "discord-blackjack-noinsbtn", type: 2 }; let row1 = { type: 1, components: [hitbtn, standbtn] }; shuffle(DECK); shuffle(DECK); shuffle(DECK); shuffle(DECK); shuffle(DECK); let currentDeck = DECK; let yourcards = [ currentDeck.pop(), currentDeck.pop() ]; let dealercards = [ currentDeck.pop(), currentDeck.pop() ]; let winEmbed = { title: "Kazandın!", color: 0x008800, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let loseEmbed = { title: "Kaybettin!", color: 0xFF0000, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let tieEmbed = { title: "Berabere kaldın!", color: 0xFFFF00, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let splitWinEmbed = { title: "Böldün ve iki eli de kazandın!", color: 0x008800, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let splitLoseEmbed = { title: "Böldün ve iki eli de kaybettin!", color: 0xFF0000, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let splitTieEmbed = { title: "Böldün ve iki elde de berabere kaldın!", color: 0xFFFF00, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let splitTieWinEmbed = { title: "Böldün: İlk el berabere, ikinci eli kazandın.", color: 0x008800, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let splitWinTieEmbed = { title: "Böldün: İlk eli kazandın, ikinci el berabere.", color: 0x008800, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let splitTieLoseEmbed = { title: "Böldün: İlk el berabere, ikinci eli kaybettin.", color: 0xFF0000, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let splitLoseTieEmbed = { title: "Böldün: İlk eli kaybettin, ikinci el berabere.", color: 0xFF0000, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let splitWinLoseEmbed = { title: "Böldün: İlk eli kazandın, ikinci eli kaybettin.", color: 0xFFFF00, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let splitLoseWinEmbed = { title: "Böldün: İlk eli kaybettin, ikinci eli kazandın.", color: 0xFFFF00, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let insWinEmbed = { title: "Kazandın! (sigorta ödedin)", color: 0x008800, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let insLoseEmbed = { title: "Kaybettin! (sigorta ödedin)", color: 0xFF0000, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let insTieEmbed = { title: "Berabere kaldın! (sigorta ödedin)", color: 0xFF0000, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let insPayEmbed = { title: "Sigorta Ödemesi!", color: 0x008800, description: "", fields: [], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let timeoutEmbed = { title: "Süre doldu!", color: 0xFF0000, description: "Yanıt vermeniz 30 saniyeden fazla sürdü. Süre doldu ve oyun iptal edildi.", fields: [], author: { name: message.member.user.tag, icon_url: message.member.displayAvatarURL() } } ; let cancelEmbed = { title: "Oyun iptal edildi!", color: 0xFF0000, description: "Devam eden Blackjack oyununuzu iptal etmeye karar verdiniz.", fields: [], author: { name: message.member.displayName, icon_url: message.member.displayAvatarURL() } }; let generalEmbed = normalEmbed === false ? options.normalEmbedContent : { title: "Blackjack", color: Math.floor(Math.random() * (0xffffff + 1)), fields: [{ name: "Senin elin", value: "", inline: true }, { name: `Satıcının eli`, value: "", inline: true }], author: { name: message.member.displayName, icon_url: message.member.user.displayAvatarURL() } }; let allFilter = ["h", "hit", "s", "stand", "cancel"]; if (yourcards[0].rank === yourcards[1].rank && yourcards[0].rank === "A") { yourcards[0].value = 11; yourcards[1].value = 1; isSoft = true; } else if (yourcards[0].rank === "A") { yourcards[0].value = 11; } else if (yourcards[1].rank === "A") { yourcards[1].value = 11; }; if (dealercards[0].rank === dealercards[1].rank && dealercards[0].rank === "A") { dealercards[0].value = 11; dealercards[1].value = 1; isSoft = true; } else if (dealercards[0].rank === "A") { dealercards[0].value = 11; } else if (dealercards[1].rank === "A") { dealercards[1].value = 11; }; if (yourcards.map(c => c.rank).includes("A")) isSoft = true; generalEmbed.fields[0].value = `Kartlar: ${yourcards.map(c => `[\`${c.emoji} ${c.rank}\`](https://daisybot.tech)`).join(" ")}\nToplam: ${yourcards.map(c => c.value).reduce((a, b) => b + a)}${isSoft ? "*" : ""}`; generalEmbed.fields[1].value = `Kartlar: [\`${dealercards[0].emoji} ${dealercards[0].rank}\`](https://daisybot.tech) \` ? \`\nToplam: \` ? \``; options.embed = generalEmbed; let yourvalue = yourcards.map(c => c.value).reduce((a, b) => b + a); let dealervalue = dealercards.map(c => c.value).reduce((a, b) => b + a); if (doubledown === true) { if (yourcards.map(a => a.value).reduce((a, b) => b + a) === 9 || (yourcards.map(a => a.value).reduce((a, b) => b+a) === 10 || yourcards.map(a => a.value).reduce((a, b) => b+a) === 11)) { row1.components.push(ddownbtn); allFilter.push("d"); allFilter.push("doubledown"); }; }; if (yourcards[0].rank === yourcards[1].rank && split === true) { row1.components.push(splitbtn); allFilter.push("split"); }; if (dealercards[0].rank === "A" && insurance === true) { if (yourvalue != 21) { row1.components = []; row1.components.push(insbtn); row1.components.push(noinsbtn); allFilter.push("i"); allFilter.push("insurance"); allFilter.push("ni"); allFilter.push("noinsurance"); }; }; if (yourvalue === 21 && dealervalue != 21) { if (options.resultEmbed === true) { winEmbed.description = "Blackjack ile kazandın."; winEmbed.fields.push({ name: "Senin elin", value: `Kartlar: [\`${yourcards[0].emoji} ${yourcards[0].rank}\`](https://daisybot.tech) [\`${yourcards[1].emoji} ${yourcards[1].rank}\`](https://daisybot.tech)\nToplam: ${yourvalue}` }); winEmbed.fields.push({ name: "Satıcının eli", value: `Kart: [\`${dealercards[0].emoji} ${dealercards[0].rank}\`](https://daisybot.tech) [\`${dealercards[1].emoji} ${dealercards[1].rank}\`](https://daisybot.tech)\nToplam: ${dealervalue}` }); commandType === "message" ? message.channel.send({ embeds: [winEmbed] }) : message.followUp({ embeds: [winEmbed] }); }; return { result: "BLACKJACK", method: "You won with blackjack.", ycard: yourcards, dcard: dealercards }; } else if (dealervalue === 21 && dealervalue == yourvalue) { if (options.resultEmbed === true) { tieEmbed.description = "Her iki taraftada blackjack vardı."; tieEmbed.fields.push({ name: "Senin elin", value: `Kartlar: [\`${yourcards[0].emoji} ${yourcards[0].rank}\`](https://daisybot.tech) [\`${yourcards[1].emoji} ${yourcards[1].rank}\`](https://daisybot.tech)\nToplam: ${yourvalue}` }); tieEmbed.fields.push({ name: "Satıcının eli", value: `Kartlar: [\`${dealercards[0].emoji} ${dealercards[0].rank}\`](https://daisybot.tech) [\`${dealercards[1].emoji} ${dealercards[1].rank}\`](https://daisybot.tech)\nToplam: ${dealervalue}` }); commandType === "message" ? message.channel.send({ embeds: [tieEmbed] }) : message.followUp({ embeds: [tieEmbed] }); }; return { result: "TIE", method: "You tied (both had blackjack).", ycard: yourcards, dcard: dealercards }; }; const editReply = async (msg, reply, commandType) => { if (commandType === "message") { return await msg.edit({ embeds: [reply], components: buttons ? [ row1 ] : [] }); } else { return await message.editReply({ embeds: [reply], components: buttons ? [ row1 ] : [] }); }; }; let currentMessage = await editReply(starterMessage, generalEmbed, commandType); let finalResult = await (options.buttons ? new Collect().buttonCollect(currentMessage, userId, yourcards, dealercards, currentDeck, options) : new Collect().messageCollect(currentMessage, userId, yourcards, dealercards, currentDeck, options, allFilter)) if (options.resultEmbed === true) { let resultingEmbed = { "WIN": winEmbed, "BLACKJACK": winEmbed, "LOSE": loseEmbed, "TIE": tieEmbed, "DOUBLE WIN": winEmbed, "DOUBLE LOSE": loseEmbed, "DOUBLE TIE": tieEmbed, "SPLIT WIN-LOSE": splitWinLoseEmbed, "SPLIT LOSE-WIN": splitLoseWinEmbed, "SPLIT TIE-TIE": splitTieEmbed, "SPLIT WIN-WIN": splitWinEmbed, "SPLIT LOSE-LOSE": splitLoseEmbed, "SPLIT TIE-WIN": splitTieWinEmbed, "SPLIT WIN-TIE": splitWinTieEmbed, "SPLIT TIE-LOSE": splitTieLoseEmbed, "SPLIT LOSE-TIE": splitLoseTieEmbed, "SPLIT BLACKJACK-WIN": splitWinEmbed, "SPLIT WIN-BLACKJACK": splitWinEmbed, "SPLIT BLACKJACK-LOSE": splitWinLoseEmbed, "SPLIT LOSE-BLACKJACK": splitLoseWinEmbed, "SPLIT BLACKJACK-BLACKJACK": splitWinEmbed, "SPLIT BLACKJACK-TIE": splitWinTieEmbed, "SPLIT TIE-BLACKJACK": splitTieWinEmbed, "SPLIT DOUBLE WIN-LOSE": splitWinLoseEmbed, "SPLIT DOUBLE LOSE-WIN": splitLoseWinEmbed, "SPLIT DOUBLE TIE-TIE": splitTieEmbed, "SPLIT DOUBLE WIN-WIN": splitWinEmbed, "SPLIT DOUBLE LOSE-LOSE": splitLoseEmbed, "SPLIT DOUBLE TIE-WIN": splitTieWinEmbed, "SPLIT DOUBLE WIN-TIE": splitWinTieEmbed, "SPLIT DOUBLE TIE-LOSE": splitTieLoseEmbed, "SPLIT DOUBLE LOSE-TIE": splitLoseTieEmbed, "SPLIT DOUBLE BLACKJACK-WIN": splitWinEmbed, "SPLIT DOUBLE WIN-BLACKJACK": splitWinEmbed, "SPLIT DOUBLE BLACKJACK-LOSE": splitWinLoseEmbed, "SPLIT DOUBLE LOSE-BLACKJACK": splitLoseWinEmbed, "SPLIT DOUBLE BLACKJACK-BLACKJACK": splitWinEmbed, "SPLIT DOUBLE BLACKJACK-TIE": splitWinTieEmbed, "SPLIT DOUBLE TIE-BLACKJACK": splitTieWinEmbed, "SPLIT WIN-DOUBLE LOSE": splitWinLoseEmbed, "SPLIT LOSE-DOUBLE WIN": splitLoseWinEmbed, "SPLIT TIE-DOUBLE TIE": splitTieEmbed, "SPLIT WIN-DOUBLE WIN": splitWinEmbed, "SPLIT LOSE-DOUBLE LOSE": splitLoseEmbed, "SPLIT TIE-DOUBLE WIN": splitTieWinEmbed, "SPLIT WIN-DOUBLE TIE": splitWinTieEmbed, "SPLIT TIE-DOUBLE LOSE": splitTieLoseEmbed, "SPLIT LOSE-DOUBLE TIE": splitLoseTieEmbed, "SPLIT BLACKJACK-DOUBLE WIN": splitWinEmbed, "SPLIT WIN-DOUBLE BLACKJACK": splitWinEmbed, "SPLIT BLACKJACK-DOUBLE LOSE": splitWinLoseEmbed, "SPLIT LOSE-DOUBLE BLACKJACK": splitLoseWinEmbed, "SPLIT BLACKJACK-DOUBLE BLACKJACK": splitWinEmbed, "SPLIT BLACKJACK-DOUBLE TIE": splitWinTieEmbed, "SPLIT TIE-DOUBLE BLACKJACK": splitTieWinEmbed, "SPLIT DOUBLE WIN-DOUBLE LOSE": splitWinLoseEmbed, "SPLIT DOUBLE LOSE-DOUBLE WIN": splitLoseWinEmbed, "SPLIT DOUBLE TIE-DOUBLE TIE": splitTieEmbed, "SPLIT DOUBLE WIN-DOUBLE WIN": splitWinEmbed, "SPLIT DOUBLE LOSE-DOUBLE LOSE": splitLoseEmbed, "SPLIT DOUBLE TIE-DOUBLE WIN": splitTieWinEmbed, "SPLIT DOUBLE WIN-DOUBLE TIE": splitWinTieEmbed, "SPLIT DOUBLE TIE-DOUBLE LOSE": splitTieLoseEmbed, "SPLIT DOUBLE LOSE-DOUBLE TIE": splitLoseTieEmbed, "SPLIT DOUBLE BLACKJACK-DOUBLE WIN": splitWinEmbed, "SPLIT DOUBLE WIN-DOUBLE BLACKJACK": splitWinEmbed, "SPLIT DOUBLE BLACKJACK-DOUBLE LOSE": splitWinLoseEmbed, "SPLIT DOUBLE LOSE-DOUBLE BLACKJACK": splitLoseWinEmbed, "SPLIT DOUBLE BLACKJACK-DOUBLE BLACKJACK": splitWinEmbed, "SPLIT DOUBLE BLACKJACK-DOUBLE TIE": splitWinTieEmbed, "SPLIT DOUBLE TIE-DOUBLE BLACKJACK": splitTieWinEmbed, "INSURANCE PAYOUT": insPayEmbed, "INSURANCE WIN": insWinEmbed, "INSURANCE LOSE": insLoseEmbed, "INSURANCE TIE": insTieEmbed, "CANCEL": cancelEmbed, "TIMEOUT": timeoutEmbed } let finalEmbed = resultingEmbed[finalResult.result] if (finalResult.method !== "None") { finalEmbed.description = finalResult.method } finalEmbed.fields.push({ name: `Senin elin`, value: `Kartlar: ${finalResult.ycard.map(c => `[\`${c.emoji} ${c.rank}\`](https://daisybot.tech)`).join(" ")}\nToplam: ${finalResult.ycard.map(card => card.value).reduce((a, b) => b+a)}`, inline: true }) if (finalResult.ycard2 != null) { finalEmbed.fields.push({ name: `İkinci elin`, value: `Kartlar: ${finalResult.ycard2.map(c => `[\`${c.emoji} ${c.rank}\`](https://daisybot.tech)`).join(" ")}\nToplam: ${finalResult.ycard2.map(card => card.value).reduce((a, b) => b+a)}`, inline: true }) } finalEmbed.fields.push({ name: `${message.client.user.username}'nin eli`, value: `Kartlar: ${finalResult.dcard.map(c => `[\`${c.emoji} ${c.rank}\`](https://daisybot.tech)`).join(" ")}\nToplam: ${finalResult.dcard.map(card => card.value).reduce((a, b) => b+a)}`, inline: true }) options.commandType === "message" ? message.channel.send({ embeds: [finalEmbed] }) : message.editReply({ embeds: [finalEmbed] }) } return finalResult; }