50 lines
1.2 KiB
Python
50 lines
1.2 KiB
Python
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)
|