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