Allow adding perform.py commands through chat and add !performexecute, to
execute all perform commands post-connect
This commit is contained in:
parent
210125d90b
commit
81e9548827
1 changed files with 28 additions and 6 deletions
|
@ -1,13 +1,35 @@
|
|||
from src import EventManager, ModuleManager, utils
|
||||
|
||||
class Module(ModuleManager.BaseModule):
|
||||
@utils.hook("received.001", priority=EventManager.PRIORITY_URGENT)
|
||||
def on_connect(self, event):
|
||||
commands = event["server"].get_setting("perform", [])
|
||||
def _execute(self, server):
|
||||
commands = server.get_setting("perform", [])
|
||||
for i, command in enumerate(commands):
|
||||
command = command.split("%%")
|
||||
for j, part in enumerate(command[:]):
|
||||
command[j] = part.replace("%nick%", event["server"
|
||||
].nickname)
|
||||
command[j] = part.replace("%nick%", server.nickname)
|
||||
command = "%".join(command)
|
||||
event["server"].send(utils.irc.parse_line(command))
|
||||
server.send(utils.irc.parse_line(command))
|
||||
|
||||
@utils.hook("received.001", priority=EventManager.PRIORITY_URGENT)
|
||||
def on_connect(self, event):
|
||||
self._execute(event["server"])
|
||||
|
||||
@utils.hook("received.command.performadd", min_args=1)
|
||||
def perform_add(self, event):
|
||||
"""
|
||||
:help: Add command to be executed on connect
|
||||
:usage: <raw command>
|
||||
:permission: perform
|
||||
"""
|
||||
perform = event["server"].get_setting("perform", [])
|
||||
perform.append(event["args"])
|
||||
event["server"].set_setting("perform", perform)
|
||||
event["stdout"].write("Added command")
|
||||
|
||||
@utils.hook("received.command.performexecute")
|
||||
def perform_execute(self, event):
|
||||
"""
|
||||
:help: Execute all saved commands
|
||||
:permission: perform
|
||||
"""
|
||||
self._execute(event["server"])
|
||||
|
|
Loading…
Reference in a new issue