from discord.ext import commands import core_utils import discord import os import random import tarkov if os.getenv("DRAGON_ENV") == "prod": channel_id = 1097567909640929340 else: channel_id = 932476007439552522 class Tarkov(commands.Cog): def __init__(self, bot): self.bot: commands.Bot = bot tarkov = discord.SlashCommandGroup("tarkov", "Tarkov related commands") @tarkov.command( guild_ids=core_utils.my_guilds, name="traders", description="Time until trader resets", ) async def trader_resets(self, ctx: commands.Context): import requests from datetime import datetime from datetime import timezone await ctx.defer() # Define the target date and time embed = discord.Embed( description="-------", color=discord.Color.blue(), type="rich" ) embed.set_author(name="Trader Reset Times") embed.set_thumbnail(url="https://i.ytimg.com/vi/8He5q7qOzNw/maxresdefault.jpg") times = requests.get( "https://tarkovbot.eu/tools/pve/trader-resets/gettimes" ).json() for time in times: target_time = datetime.fromisoformat( time["resetTime"].replace("000Z", "+00:00") ) # Get the current time in UTC current_time = datetime.now(timezone.utc) # Calculate the difference time_difference = target_time - current_time # Convert the difference to minutes minutes_until = time_difference.total_seconds() / 60 embed.add_field( name=time["name"], value=f"{minutes_until:.2f} minutes", inline=True, ) await ctx.send_followup(embed=embed) @tarkov.command( guild_ids=core_utils.my_guilds, name="lottery", description="Loadout lottery", ) async def make_loadout(self, ctx: commands.Context): weapons = tarkov.request_wiki("Weapons", "Weapons") armors = tarkov.request_wiki("Armor_vests", "Armor vests") helmet = tarkov.request_wiki("Headwear", "Headwear") tarkov.request_wiki("Chest_rigs", "Chest rigs") backpacks = tarkov.request_wiki("Backpacks", "Backpacks") gun_mods_trader_level = [ "Use it as it comes from a trader", tarkov.allowed_level_roll(), ] tarkov.allowed_level_roll() embed = discord.Embed( title="🎲🎰 Loadout Lottery 🎰🎲", description="Your loadout sir", color=discord.Color.red(), type="rich", ) embed.set_thumbnail(url="https://i.ytimg.com/vi/8He5q7qOzNw/maxresdefault.jpg") embed.add_field( name="Armor", inline=False, value=random.choice(armors), ) # if "plate carrier" in armors.lower(): # message += f"\nChest rig: {random.choice(chest_rigs)}" # embed.add_field( # name="Armor Trader Level", # inline=False, # value=armor_trader_level, # ) embed.add_field( name="Weapon", inline=False, value=random.choice(weapons), ) embed.add_field( name="Ammo Trader level", inline=False, value=tarkov.allowed_level_roll() + ", " + f"{str(random.randint(1,5))} magazines", ) embed.add_field( name="Gun mods trader level", inline=False, value=random.choice(gun_mods_trader_level), ) embed.add_field( name="Helmet", inline=False, value=random.choice(helmet), ) embed.add_field( name="Backpack", inline=False, value=random.choice(backpacks), ) embed.add_field(name="Ears", inline=False, value=tarkov.allowed_level_roll()) embed.add_field( name="Throwables", inline=False, value=tarkov.allowed_level_roll() ) embed.add_field(name="Meds", inline=False, value=tarkov.allowed_level_roll()) await ctx.defer() await ctx.send_followup(embed=embed) def setup(bot): bot.add_cog(Tarkov(bot))