import discord import random import sys client = discord.Client() def succ(n): if n <= 6: return 'Miss :fire:' elif 7 <= n and n <= 9: return 'Partial success :person_shrugging:' else: return 'Total success :tada:' def roll(mod): values = [] for i in range(2): values.append(random.randint(1,6)) values.append(mod) result = sum(values) message = '{}'.format(values[0]) for value in values[1:]: message += '{:+}'.format(value) message += ' = **{}**\n**{}**'.format(result, succ(result)) return message @client.event async def on_ready(): print('logged in as {0.user}'.format(client), file=sys.stderr) await client.change_presence(activity=discord.Game('!n for 2d6+n')) @client.event async def on_message(message): if message.author == client.user: return if message.content.startswith('!'): try: mod=int(message.content.split()[0][1:]) except ValueError: print('error parsing message {0}'.format(message.content), file=sys.stderr) return await message.channel.send(roll(mod)) with open('token') as f: token = f.read().strip() client.run(token)