From 6c924c13abc8b7b10de397c443e1360da7901542 Mon Sep 17 00:00:00 2001 From: ThomasWeis Date: Wed, 20 Apr 2022 15:35:39 +0200 Subject: [PATCH] Create DiceObserver.py Module rolls a die with variable number of sides, standard if no argument is given is 6 sides --- FaustBot/Modules/DiceObserver.py | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 FaustBot/Modules/DiceObserver.py diff --git a/FaustBot/Modules/DiceObserver.py b/FaustBot/Modules/DiceObserver.py new file mode 100644 index 0000000..4d2963c --- /dev/null +++ b/FaustBot/Modules/DiceObserver.py @@ -0,0 +1,34 @@ +from FaustBot.Communication import Connection +from FaustBot.Modules.PrivMsgObserverPrototype import PrivMsgObserverPrototype + +import random + +class DiceObserver(PrivMsgObserverPrototype): + @staticmethod + def cmd(): + return [".zahl"] + + @staticmethod + def help(): + return ".zahl n - Wirft einen n-seitigen Würfel" + + def update_on_priv_msg(self, data: dict, connection: Connection): + if data['message'].find('.zahl') == -1: + return + + #roll a die with given number of sides, standard is 6 + dice_sides = 6 + + if len(data['message'].split(' ')) > 1: + found_at_index = data['message'].split(' ').index('.zahl') + if data['message'].split(' ')[-1] == '.zahl': + dice_sides = 6 + else: + dice_sides = (data['message'].split(' ')[found_at_index + 1]) + if dice_sides.isdigit(): + dice_sides = int(dice_sides) + else: + dice_sides = 6 + result = random.randint(1, dice_sides) + + connection.send_back(data['nick'] + ' wirft einen ' + str(dice_sides) + '-seitigen Würfel und bekommt ' + str(result), data) \ No newline at end of file