def RuleSec(name): name = CommsManager.paramHandler(name) value = requests.get( 'https://www.dnd5eapi.co/api/rule-sections/{}'.format(name)) value = json.loads(value.text) length = 5000 rounds = math.ceil(len(value['desc']) / length) counter = 0 embeds = [] if('error' not in value): while(rounds > counter): embed = discord.Embed( title='Damage Type Information - {}'.format(value['name']), colour=discord.Colour.red() ) temp = counter + 1 embed = GeneralHandler.Desc_Handler( embed, value['desc'][counter*length:temp*length], name) embeds.append(embed) counter = counter + 1 return embeds else: embed = CommsManager.failedRequest(name) return [embed]
def IndexSpell(name): name = CommsManager.paramHandler(name) value = requests.get( 'https://www.dnd5eapi.co/api/spells/') # Needs to use one or the other sometimes, -annoying # value = eval(value.text) value = json.loads(value.text) # CommsManager.jsonHandler(value) # Actual Call of discord if('error' not in value): embed = discord.Embed( title='Spells - {}'.format(name), colour=discord.Colour.red() ) embed.add_field(name='Entries Found', value=value['count'], inline=False) embed = GeneralHandler.index_Handler2( embed, value['results'], name) embed.timestamp = datetime.utcnow() embed.set_footer(text='MattMaster Bots: Dnd') else: embed = CommsManager.failedRequest(name) return embed
def GeneralSpell(name): name = CommsManager.paramHandler(name) value = requests.get( 'https://www.dnd5eapi.co/api/spells/{}'.format(name)) value = json.loads(value.text) if('error' not in value): embed = discord.Embed( title='Spell Information - {}'.format(value['name']), colour=discord.Colour.red() ) embed.add_field( name='Level - $Spell/Level {value}', value=value['level'], inline=False) embed.add_field(name='Name', value=value['name'], inline=False) embed = GeneralHandler.Desc_Handler(embed, RaceHandler.DescHandler( value['desc']), name) if('higher_level' in value): embed.add_field(name='Increased Level', value=RaceHandler.DescHandler( value['higher_level']), inline=False) if('damage' in value): embed.add_field(name='Damage', value=SpellsHandler.damageHandler( value['damage']['damage_at_slot_level']), inline=False) embed.add_field( name='Damage Type', value=value['damage']['damage_type']['name'], inline=False) embed.add_field(name='Range', value=value['range'], inline=False) embed.add_field(name='Components', value=value['components'], inline=False) if('material' in value): embed.add_field(name='Material', value=value['material'], inline=False) embed.add_field( name='Ritual?', value=value['ritual'], inline=False) embed.add_field(name='Duration', value=value['duration'], inline=False) embed.add_field(name='Concentration', value=value['concentration'], inline=False) embed.add_field(name='Casting Time', value=value['casting_time'], inline=False) embed.add_field( name='School - $Spell/School {value}', value=value['school']['name'], inline=False) embed.add_field( name='Classes - $Class {value}', value=SpellsHandler.spellHandler(value['classes']), inline=False) embed.add_field(name='Subclasses', value=SpellsHandler.spellHandler( value['subclasses']), inline=False) embed.timestamp = datetime.utcnow() embed.set_footer(text='MattMaster Bots: Dnd') else: embed = CommsManager.failedRequest(name) return embed
def GeneralSchool(name): name = CommsManager.paramHandler(name) value = requests.get( 'https://www.dnd5eapi.co/api/magic-schools/{}'.format(name)) value = json.loads(value.text) if ('error' not in value): embed = discord.Embed(title='Magic School Information - {}'.format( value['name']), colour=discord.Colour.red()) embed.add_field(name='Name', value=value['name'], inline=False) embed = GeneralHandler.Desc_Handler(embed, value['desc'], name) else: embed = CommsManager.failedRequest(name) return embed
def AbilityScoresIndex(name): name = CommsManager.paramHandler(name) value = requests.get('https://www.dnd5eapi.co/api/ability-scores/') value = eval(value.text) if ('error' not in value): embed = discord.Embed(title='Ability Score Index ', colour=discord.Colour.red()) embed.add_field(name='Entries Found', value=value['count'], inline=False) embed.add_field(name='Results', value=GeneralHandler.indexHandler( value['results']), inline=False) embed.timestamp = datetime.utcnow() embed.set_footer(text='MattMaster Bots: Dnd') else: embed = CommsManager.failedRequest(name) return embed
def GeneralSubClass(name): name = CommsManager.paramHandler(name) value = requests.get( 'https://www.dnd5eapi.co/api/subclasses/{}'.format(name)) value = eval(value.text) if ('error' not in value): embed = discord.Embed(title='Class Information - {}'.format( value['name']), colour=discord.Colour.red()) embed.add_field(name='Parent Class - $Class {value}', value=value['class']['name'], inline=False) embed.add_field(name='Name', value=value['name'], inline=False) embed.add_field(name='Flavor Text', value=value['subclass_flavor'], inline=False) embed.add_field(name='Description', value=RaceHandler.DescHandler(value['desc']), inline=False) embed.timestamp = datetime.utcnow() embed.set_footer(text='MattMaster Bots: Dnd') if ('spells' in value): embed2 = discord.Embed( title='Spell Information - {} - $Spell {}'.format( value['name'], '{value}'), colour=discord.Colour.red()) embed2 = GeneralHandler.SubClassSpellHandler2( embed2, value['spells'], name) embed2.timestamp = datetime.utcnow() embed2.set_footer(text='MattMaster Bots: Dnd') return [embed, embed2] else: return [embed] else: embed = CommsManager.failedRequest(name) return [embed]
def GeneralMonster(name): name = CommsManager.paramHandler(name) value = requests.get( 'https://www.dnd5eapi.co/api/monsters/{}'.format(name)) value = json.loads(value.text) if ('error' not in value): embed = discord.Embed(title='Monster Information - {}'.format( value['name']), colour=discord.Colour.red()) embed.add_field(name='Name', value=value['name'], inline=False) embed.add_field(name='Size', value=value['size'], inline=False) embed.add_field(name='Type', value=value['type'], inline=False) embed.add_field(name='Subtype', value=value['subtype'], inline=False) embed.add_field(name='Alignment', value=value['alignment'], inline=False) embed.add_field(name='AC', value=value['armor_class'], inline=False) embed.add_field(name='HP', value=value['hit_points'], inline=False) embed.add_field(name='Hit Die', value=value['hit_dice'], inline=False) embed.add_field(name='Speed', value=monster.moveHandler(value['speed']), inline=False) embed.add_field(name='Ability Scores - $AbilityScore {name}', value='STR: ' + str(value['strength']) + ', DEX: ' + str(value['dexterity']) + ', CON: ' + str(value['constitution']) + ', INT: ' + str(value['intelligence']) + ', WIS: ' + str(value['wisdom']) + ', CHA: ' + str(value['charisma']), inline=False) embed.add_field(name='Proficiencies', value=monster.profHandler(value['proficiencies']), inline=False) embed.add_field( name='DMG Vulnerabilities - $Mechanic/DamageType {value}', value=monster.arrayhandle(value['damage_vulnerabilities']), inline=False) embed.add_field( name='DMG Resistances - $Mechanic/DamageType {value}', value=monster.arrayhandle(value['damage_resistances']), inline=False) embed.add_field( name='DMG Immunities - $Mechanic/DamageType {value}', value=monster.arrayhandle(value['damage_immunities']), inline=False) embed.add_field( name='Condition Immunities - $Mechanic/Condition {name}', value=RaceHandler.proficienciesHandler( value['condition_immunities']), inline=False) embed.add_field(name='Senses', value=monster.sensesHandler(value['senses']), inline=False) embed.add_field(name='Languages - $Language {name}', value=GeneralHandler.emptyHandler( value['languages']), inline=False) embed.add_field(name='CR', value=value['challenge_rating'], inline=False) if ('special_abilities' in value): print(value['special_abilities']) counter = math.ceil( len(monster.specialHandler(value['special_abilities'])) / 1024) counter2 = 0 while (counter > counter2): if (counter2 == 0): temp = counter2 + 1 embed.add_field( name='Specail Abilities', value=monster.specialHandler( value['special_abilities'])[counter2 * 1000:temp * 1000], inline=False) else: temp = counter2 + 1 embed.add_field( name='Cont...', value=monster.specialHandler( value['special_abilities'])[counter2 * 1000:temp * 1000], inline=False) counter2 = counter2 + 1 if ('actions' in value): print(value['actions']) counter = math.ceil( len(monster.attackHandler(value['actions'])) / 1024) counter2 = 0 while (counter > counter2): if (counter2 == 0): temp = counter2 + 1 embed.add_field( name='Actions', value=monster.attackHandler( value['actions'])[counter2 * 1000:temp * 1000], inline=False) else: temp = counter2 + 1 embed.add_field( name='Cont...', value=monster.attackHandler( value['actions'])[counter2 * 1000:temp * 1000], inline=False) counter2 = counter2 + 1 if ('legendary_actions' in value): print(value['legendary_actions']) counter = math.ceil( len(monster.specialHandler(value['legendary_actions'])) / 1024) counter2 = 0 while (counter > counter2): if (counter2 == 0): temp = counter2 + 1 embed.add_field( name='legendary_actions', value=monster.specialHandler( value['legendary_actions'])[counter2 * 1000:temp * 1000], inline=False) else: temp = counter2 + 1 embed.add_field( name='Cont...', value=monster.specialHandler( value['legendary_actions'])[counter2 * 1000:temp * 1000], inline=False) counter2 = counter2 + 1 embed.timestamp = datetime.utcnow() embed.set_footer(text='MattMaster Bots: Dnd') return embed else: embed = CommsManager.failedRequest(name) return embed
def MagicItem(name): name = CommsManager.paramHandler(name) value = requests.get( 'https://www.dnd5eapi.co/api/magic-items/{}'.format(name)) value = eval(value.text) embed = discord.Embed(title='Magic Item Information - {}'.format(name), colour=discord.Colour.red()) if ('error' not in value): if (value['equipment_category']['name'] == 'Weapon'): if ('desc' in value): embed.add_field(name='Equipment Category', value=value['equipment_category']['name'], inline=False) embed = GeneralHandler.Desc_Handler( embed, RaceHandler.DescHandler(value['desc']), name) else: embed.add_field(name='Equipment Category', value=value['equipment_category']['name'], inline=False) embed.add_field(name='Weapon Category', value=value['weapon_category'], inline=False) embed.add_field(name='Range', value=start_equip.rangeHandler( value['range']), inline=False) embed.add_field(name='Category', value=value['equipment_category']['name'], inline=False) embed.add_field(name='Cost', value=str(value['cost']['unit']) + ': ' + str(value['cost']['quantity']), inline=False) embed.add_field(name='Damage', value=start_equip.damageHandler( value['damage']), inline=False) if (value['equipment_category']['name'] == 'Wondrous Item'): embed.add_field(name='Type', value=value['equipment_category']['name'], inline=False) embed = GeneralHandler.Desc_Handler( embed, RaceHandler.DescHandler(value['desc']), name) if (value['equipment_category']['name'] == 'Armor'): embed.add_field(name='Equipment Category', value=value['equipment_category']['name'], inline=False) embed.add_field(name='Equipment Description', value=RaceHandler.DescHandler(value['desc']), inline=False) if (value['equipment_category']['name'] == 'Ammunition'): embed.add_field(name='Equipment Category', value=value['equipment_category']['name'], inline=False) embed.add_field(name='Equipment Description', value=RaceHandler.DescHandler(value['desc']), inline=False) if (value['equipment_category']['name'] == 'Adventuring Gear'): embed.add_field(name='Equipment Category', value=value['equipment_category']['name'], inline=False) embed.add_field(name='Gear Category', value=value['gear_category']['name'], inline=False) embed.add_field(name='Cost', value=str(value['cost']['unit']) + ': ' + str(value['cost']['quantity']), inline=False) if (value['equipment_category']['name'] == 'Potion'): embed.add_field(name='Type', value=value['equipment_category']['name'], inline=False) embed = GeneralHandler.Desc_Handler( embed, RaceHandler.DescHandler(value['desc']), name) if (value['equipment_category']['name'] == 'Wand'): embed.add_field(name='Equipment Category', value=value['equipment_category']['name'], inline=False) embed = GeneralHandler.Desc_Handler( embed, RaceHandler.DescHandler(value['desc']), name) if ('contents' in value): embed.add_field(name='Contents', value=start_equip.contentHandler( value['contents']), inline=False) else: embed = CommsManager.failedRequest(name) return embed