from nio import RoomMessageText, ReactionEvent
[docs]
class Listener:
def __init__(self, bot):
self._bot = bot
self._registry = []
self._startup_registry = []
[docs]
def on_custom_event(self, event):
def wrapper(func):
if [func, event] in self._registry:
func()
else:
self._registry.append([func, event])
return wrapper
[docs]
def on_message_event(self, func):
if [func, RoomMessageText] in self._registry:
func()
else:
self._registry.append([func, RoomMessageText])
[docs]
def on_reaction_event(self, func):
async def wrapper(room, event):
await func(room, event, event.key)
self._registry.append([wrapper, ReactionEvent])
[docs]
def on_startup(self, func):
if func in self._startup_registry:
func()
else:
self._startup_registry.append(func)