2019-05-25 21:40:06 +01:00
|
|
|
#--depends-on commands
|
|
|
|
|
2018-10-03 13:22:37 +01:00
|
|
|
from src import ModuleManager, utils
|
2016-04-18 16:50:19 +01:00
|
|
|
|
2018-11-10 22:32:44 +00:00
|
|
|
LOWHIGH = {
|
|
|
|
"low": "v",
|
|
|
|
"high": "o"
|
|
|
|
}
|
2019-06-28 23:16:05 +01:00
|
|
|
|
|
|
|
@utils.export("channelset", utils.Setting("mode-low",
|
|
|
|
"Set which channel mode is considered to be 'low' access", example="v"))
|
|
|
|
@utils.export("channelset", utils.Setting("mode-high",
|
|
|
|
"Set which channel mode is considered to be 'high' access", example="o"))
|
2018-09-26 18:27:17 +01:00
|
|
|
class Module(ModuleManager.BaseModule):
|
2019-06-18 07:59:53 +01:00
|
|
|
def _check_command(self, event, channel, require_mode):
|
2018-09-30 17:29:09 +01:00
|
|
|
if event["is_channel"] and require_mode:
|
2018-11-10 22:32:44 +00:00
|
|
|
if require_mode.lower() in LOWHIGH:
|
|
|
|
require_mode = event["target"].get_setting(
|
|
|
|
"mode-%s" % require_mode.lower(),
|
|
|
|
LOWHIGH[require_mode.lower()])
|
|
|
|
|
2018-07-02 16:15:26 +01:00
|
|
|
if not event["target"].mode_or_above(event["user"],
|
2018-09-30 20:53:36 +01:00
|
|
|
require_mode):
|
2016-04-18 16:50:19 +01:00
|
|
|
return "You do not have permission to do this"
|
2019-01-28 23:29:52 +00:00
|
|
|
else:
|
|
|
|
return utils.consts.PERMISSION_FORCE_SUCCESS
|
2019-06-14 11:42:12 +01:00
|
|
|
|
|
|
|
@utils.hook("preprocess.command")
|
|
|
|
def preprocess_command(self, event):
|
|
|
|
require_mode = event["hook"].get_kwarg("require_mode")
|
|
|
|
if not require_mode == None:
|
2019-06-18 07:59:53 +01:00
|
|
|
return self._check_command(event, event["target"], require_mode)
|
2019-06-14 11:42:12 +01:00
|
|
|
|
|
|
|
@utils.hook("check.command.channel-mode")
|
|
|
|
def check_command(self, event):
|
2019-06-18 07:59:53 +01:00
|
|
|
target = event["target"]
|
|
|
|
mode = event["request_args"][0]
|
|
|
|
if len(event["request_args"]) > 1:
|
|
|
|
target = event["request_args"][0]
|
|
|
|
mode = event["request_args"][1]
|
|
|
|
|
|
|
|
return self._check_command(event, target, mode)
|