From 10a83bd2faa914f186d549cebb5f57b0552e493d Mon Sep 17 00:00:00 2001 From: gumi Date: Wed, 8 Jul 2020 16:25:02 +0000 Subject: never clear the invisible/hidden gm status --- src/map/atcommand.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/map/atcommand.cpp') diff --git a/src/map/atcommand.cpp b/src/map/atcommand.cpp index 3058584..459672d 100644 --- a/src/map/atcommand.cpp +++ b/src/map/atcommand.cpp @@ -337,6 +337,31 @@ bool is_atcommand(Session *s, dumb_ptr sd, } } +bool can_use_atcommand(dumb_ptr sd, ZString message) +{ + nullpo_retr(false, sd); + + if (!message.startswith('@')) + return false; + + XString command; + ZString arg; + asplit(message, &command, &arg); + + GmLevel gmlvl = pc_isGM(sd); + + if (battle_config.atcommand_gm_only != 0 && !gmlvl) + return false; // level 0 commands are disabled + + Option> info_ = atcommand(command); + P info = TRY_UNWRAP(info_, + { + return false; // command not found + }); + + return gmlvl.satisfies(info->level); +} + Option> atcommand(XString cmd) { if (cmd.startswith('@')) -- cgit v1.2.3-60-g2f50