Merge pull request #1 from ThomasWeis/main

Added modules to choose random numbers and letters
This commit is contained in:
BaerbelBox
2022-04-20 18:55:00 +02:00
committed by GitHub
3 changed files with 71 additions and 1 deletions

View File

@@ -6,7 +6,7 @@ from FaustBot.Modules import ActivityObserver, IdentNickServObserver, GiveCookie
UserList, WikiObserver, GiveDrinkObserver, GiveFoodObserver, ComicObserver, HelpObserver, \ UserList, WikiObserver, GiveDrinkObserver, GiveFoodObserver, ComicObserver, HelpObserver, \
IntroductionObserver, HangmanObserver, DuckObserver, AllSeenObserver, JokeObserver,TellObserver, WordRunObserver,\ IntroductionObserver, HangmanObserver, DuckObserver, AllSeenObserver, JokeObserver,TellObserver, WordRunObserver,\
GiveIceObserver, GiveDrinkToObserver, Greeter, MathRunObserver, PartyObserver, PrideObserver, SnacksObserver, \ GiveIceObserver, GiveDrinkToObserver, Greeter, MathRunObserver, PartyObserver, PrideObserver, SnacksObserver, \
BlockObserver BlockObserver, LetterObserver, DiceObserver
from FaustBot.Modules.CustomUserModules import GlossaryModule, ICDObserver, ModmailObserver from FaustBot.Modules.CustomUserModules import GlossaryModule, ICDObserver, ModmailObserver
from FaustBot.Modules.ModuleType import ModuleType from FaustBot.Modules.ModuleType import ModuleType
@@ -59,6 +59,8 @@ class FaustBot(object):
self.add_module(PrideObserver.PrideObserver()) self.add_module(PrideObserver.PrideObserver())
self.add_module(SnacksObserver.SnacksObserver()) self.add_module(SnacksObserver.SnacksObserver())
self.add_module(BlockObserver.BlockObserver()) self.add_module(BlockObserver.BlockObserver())
self.add_module(LetterObserver.LetterObserver())
self.add_module(DiceObserver.DiceObserver())
def run(self): def run(self):
self._setup() self._setup()
running = True running = True

View File

@@ -0,0 +1,42 @@
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)
if dice_sides == 0:
connection.send_back(data['nick'] + ' wirft einen 0-seitigen Würfel und bekommt Unendlich.', data)
return
elif dice_sides < 0:
connection.send_back(data['nick'] + ' wirft einen ' + str(dice_sides) + '-seitigen Würfel und nichts passiert.', data)
return
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)

View File

@@ -0,0 +1,26 @@
from FaustBot.Communication import Connection
from FaustBot.Modules.PrivMsgObserverPrototype import PrivMsgObserverPrototype
import random
class LetterObserver(PrivMsgObserverPrototype):
@staticmethod
def cmd():
return [".abc"]
@staticmethod
def help():
return ".abc - wählt einen zufälligen Buchstaben aus"
def update_on_priv_msg(self, data: dict, connection: Connection):
if data['message'].find('.abc') == -1:
return
alphabet = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z', 'ä', 'ö', 'ü']
#choose a random letter from alphabet list
letter = random.choice(alphabet).upper()
connection.send_back('Gewählter Buchstabe: ' + letter, data)