Create DiceObserver.py

Module rolls a die with variable number of sides, standard if no argument is given is 6 sides
This commit is contained in:
ThomasWeis
2022-04-20 15:35:39 +02:00
parent 95c1f93e5b
commit 6c924c13ab

View File

@@ -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)