discord_bot/commands/economy/Fish.js

77 lines
2.9 KiB
JavaScript
Raw Normal View History

const fishes = require('../../JSON/fishes.json');
let db = require('quick.db');
const ms = require("parse-ms");
const { randomRange } = require('../../functions');
const { MessageEmbed } = require('discord.js');
module.exports = {
name: 'fish',
aliases: ['catchfish'],
category: 'economy',
description: 'Fangen Sie einen Fisch aus einem riesigen Ozean',
usage: '[list | rewards] (optional)',
acessableby: 'everyone'
,
run: async (bot, message, args) => {
let user = message.author;
let bal = db.fetch(`money_${user.id}`)
let fish = await db.fetch(`fish_${user.id}`)
if (!args[0]) {
if (bal === null) bal = 0;
if (fish == null) fish = 0;
const fishID = Math.floor(Math.random() * 10) + 1;
let rarity;
if (fishID < 5) rarity = 'junk';
else if (fishID < 8) rarity = 'common';
else if (fishID < 9) rarity = 'uncommon';
else if (fishID < 10) rarity = 'rare';
else rarity = 'legendary';
const fishh = fishes[rarity];
const worth = randomRange(fishh.min, fishh.max);
let timeout = 1800000;
let fishtime = await db.fetch(`fishtime_${user.id}`);
if (fishtime !== null && timeout - (Date.now() - fishtime) > 0) {
let time = ms(timeout - (Date.now() - fishtime));
let timeEmbed = new MessageEmbed()
.setColor("GREEN")
.setDescription(`❌ Du hast kürzlich eine Schnur ausgeworfen\n\nIn ${time.minutes}m ${time.seconds}s erneut gefischt`);
return message.channel.send(timeEmbed)
}
let embed = new MessageEmbed()
.setColor('GREEN')
.setDescription(`**🎣 Du wirfst deine Angel aus und fängst ein ${fishh.symbol}, ich wette, es würde ungefähr ${worth}** kosten!`)
message.channel.send(embed);
db.add(`money_${user.id}`, worth);
db.add(`fish_${user.id}`, 1);
db.set(`fishtime_${user.id}`, Date.now())
}
if (args[0] === 'list' || args[0] === 'rewards') {
let lEmbed = new MessageEmbed()
.setColor('GREEN')
.setTitle(`Liste der Fischnamen und Belohnungen, die Sie erhalten können`)
.setDescription(`
\`\`\`🔧Junk :: Max. Belohnung: 5, Min. Belohnung: 1
🐟Common :: Max. Belohnung: 25, Min. Belohnung: 10
🐠Uncommon :: Max. Belohnung: 50, Min. Belohnung: 18
🦑Rare :: Max. Belohnung: 75, Min. Belohnung: 30
🐋Legendary :: Maximale Belohnung: 100, minimale Belohnung: 50\`\`\`
**Alle Belohnungen sind zufällig von max/min**
`)
.setFooter(message.guild.name, message.guild.iconURL())
return message.channel.send(lEmbed);
}
}
}