#!/usr/bin/env python3 import os import roll import discord from students import * bot = discord.Bot() def generate_student_roll_string(student_get): emojis = { 'R': '🟦', 'SR': '🟨', 'SSR': '🟪' } message = "" for i in range(len(student_get)): rate_up_message = "" if student_get[i]['pickup']: rate_up_message = " (Pick Up!)" message += f"{emojis[student_get[i]['rarity']]} {student_get[i]['name']}{rate_up_message}\n" return message def validate_banner_number(banner_number): banner_amount = len(CURRENT_BANNER) + 1 return banner_number <= banner_amount @bot.event async def on_ready(): print(f"{bot.user} is ready and online!") @bot.slash_command(name="banner-list", description="List current banners") async def banner_list(ctx: discord.ApplicationContext): message = """Available banners: 1. Standard """ for i in range(len(CURRENT_BANNER)): line = f"{i+1}. {CURRENT_BANNER[i]['SSR']}\n" message += line await ctx.respond(message) @bot.slash_command(name="single-pull", description="Single pull in a banner") async def single_pull(ctx: discord.ApplicationContext, banner_number: discord.Option(int)): if not validate_banner_number(banner_number): await ctx.respond("Please respond with a valid banner number, use /banner-list to see current banners") return student_get = [] if banner_number == 1: student_get = roll.regular() else: student_get = roll.rate_up(CURRENT_BANNER[banner_number-2]['SSR'], False, CURRENT_BANNER[banner_number-2]['SR']) await ctx.respond(generate_student_roll_string(student_get)) @bot.slash_command(name="multi-pull", description="Multi pull in a banner") async def multi_pull(ctx: discord.ApplicationContext, banner_number: discord.Option(int)): if not validate_banner_number(banner_number): await ctx.respond("Please respond with a valid banner number, use /banner-list to see current banners") return student_get = [] if banner_number == 1: student_get = roll.regular_multi() else: student_get = roll.rate_up_multi(CURRENT_BANNER[banner_number-2]['SSR'], CURRENT_BANNER[banner_number-2]['SR']) await ctx.respond(generate_student_roll_string(student_get)) if __name__ == '__main__': bot.run(os.environ.get("BOT_TOKEN"))