68 lines
2.4 KiB
Python
68 lines
2.4 KiB
Python
import discord, string, json
|
|
from discord.ext import commands
|
|
from discord_slash import cog_ext
|
|
|
|
from funcs import cap
|
|
from utils import Options
|
|
|
|
with open("resources/slashParameters.json", "r") as f:
|
|
params = json.load(f)
|
|
|
|
options = Options()
|
|
|
|
if options.testing:
|
|
for p in params:
|
|
params[p]["guild_ids"] = options.guildIds
|
|
|
|
class SwCog(commands.Cog):
|
|
|
|
def __init__(self,client):
|
|
"""Runs star wars commands."""
|
|
self.client = client
|
|
|
|
# Rolls star wars dice
|
|
@cog_ext.cog_slash(**params["starWarsRoll"])
|
|
async def starWarsRoll(self, ctx, dice = ""):
|
|
command = cap(dice)
|
|
newMessage = self.client.swroll.parseRoll("#"+str(ctx.author.id),command)
|
|
messageList = newMessage.split("\n")
|
|
await ctx.send(messageList[0])
|
|
if len(messageList) > 1:
|
|
for messageItem in messageList[1:]:
|
|
await ctx.channel.send(messageItem)
|
|
|
|
# Controls destiny points
|
|
@cog_ext.cog_slash(**params["starWarsDestiny"])
|
|
async def starWarsDestiny(self, ctx, parameters = ""):
|
|
newMessage = self.client.swdestiny.parseDestiny("#"+str(ctx.author.id),parameters)
|
|
messageList = newMessage.split("\n")
|
|
await ctx.send(messageList[0])
|
|
if len(messageList) > 1:
|
|
for messageItem in messageList[1:]:
|
|
await ctx.channel.send(messageItem)
|
|
|
|
# Rolls for critical injuries
|
|
@cog_ext.cog_slash(**params["starWarsCrit"])
|
|
async def starWarsCrit(self, ctx, severity : int = 0):
|
|
newMessage = self.client.swroll.critRoll(int(severity))
|
|
|
|
messageList = newMessage.split("\n")
|
|
await ctx.send(messageList[0])
|
|
if len(messageList) > 1:
|
|
for messageItem in messageList[1:]:
|
|
await ctx.channel.send(messageItem)
|
|
|
|
# Accesses and changes character sheet data with the parseChar function
|
|
# from funcs/swfuncs/swchar.py
|
|
@cog_ext.cog_slash(**params["starWarsCharacter"])
|
|
async def starWarsCharacter(self, ctx, parameters = ""):
|
|
command = string.capwords(parameters.replace("+","+ ").replace("-","- ").replace(",",", "))
|
|
title, desc = self.client.swchar.parseChar("#"+str(ctx.author.id),command)
|
|
if title != "":
|
|
em1 = discord.Embed(title = title, description = desc, colour=0xDEADBF)
|
|
await ctx.send(embed = em1)
|
|
else:
|
|
await ctx.send(desc)
|
|
|
|
def setup(client):
|
|
client.add_cog(SwCog(client)) |