From 68ac5d76ee44a3a8b2d98d60004a6ace5861ef72 Mon Sep 17 00:00:00 2001 From: Alex Orid Date: Sat, 17 Oct 2020 03:36:54 -0400 Subject: [PATCH] Message Sending --- commands/implemented/command_roll_discord.py | 72 ++++++++++++++++++++ discord_script.py | 6 ++ 2 files changed, 78 insertions(+) create mode 100644 commands/implemented/command_roll_discord.py diff --git a/commands/implemented/command_roll_discord.py b/commands/implemented/command_roll_discord.py new file mode 100644 index 0000000..b517b2d --- /dev/null +++ b/commands/implemented/command_roll_discord.py @@ -0,0 +1,72 @@ +from abc import ABCMeta + +from discord import message + +from commands.command_base import AbstractCommand + +import random + +import discord +import discord.message +import discord.channel + +class CommandRoll(AbstractCommand, metaclass=ABCMeta): + """ + this is the roll command. + """ + command = "!roll" + + def __init__(self): + super().__init__(CommandRoll.command, n_args=1, command_type=AbstractCommand.CommandType.DISCORD) + + def do_command(self, bot, discord_message: discord.Message): + print("!roll Detected") + #twitch_message.chat.send("test acknowledged") + + diceRoll: str = "" + discord_message.channel.send("Rolling Dice...") + print("Rolling Dice...") + + temp_preParsedMessage = discord_message.content.split("+") + + tempParsedMessage = temp_preParsedMessage[0].split(" ") + temp_dice_stmt: str = tempParsedMessage[1] + parsedMessage = temp_dice_stmt.lower().split("d") + + loopBool: bool = False + if parsedMessage[0] != "": + loopBool = True + if loopBool == True: + if int(parsedMessage[0]) == 1: + loopBool = False + + # If roll is in xdx+x format + if loopBool == True: + rolls: list = [] + for x in range(int(parsedMessage[0])): + rolls.append(random.randint(1, int(parsedMessage[1]))) + + rollTotal = 0 + for roll in rolls: + rollTotal = rollTotal + roll + diceRoll = diceRoll + str(roll) + ", " + diceRoll = diceRoll[:-2] # This removes the last two characters in the string + + if len(temp_preParsedMessage) == 2: + diceRoll = diceRoll + " + " + temp_preParsedMessage[1] + " = " + str( + rollTotal + int(temp_preParsedMessage[1])) + else: + diceRoll = diceRoll + " = " + str(rollTotal) + # If roll is in dx+x format + if loopBool == False: + roll: int = random.randint(1, int(parsedMessage[1])) + + if len(temp_preParsedMessage) == 2: + diceRoll = str(roll) + " + " + temp_preParsedMessage[1] + " = " + str( + roll + int(temp_preParsedMessage[1])) + else: + diceRoll = str(roll) + + diceRoll = "@" + message.author.display_name + " rolled: " + diceRoll + print(diceRoll) + discord_message.channel.send(diceRoll) \ No newline at end of file diff --git a/discord_script.py b/discord_script.py index eba8333..bcddc24 100644 --- a/discord_script.py +++ b/discord_script.py @@ -2,6 +2,7 @@ import random import re from discord import message +from discord.client import Client import config as config import db @@ -35,6 +36,11 @@ class Discord_Module(discord.Client): #print(str(message.id)) #Channel ID #print(str(message.channel.id)) + if message.content == "//test": + await message.channel.send('test response') + + def do_command(self): + pass