From 610a068c9291450778ed8e07bcd7b9f522bf1509 Mon Sep 17 00:00:00 2001 From: Cal Date: Fri, 28 Jun 2024 17:19:22 -0600 Subject: [PATCH] move report message/target parsing into .parse --- .../base_systems/ingame_reports/reports.py | 28 +++++++++++++------ 1 file changed, 19 insertions(+), 9 deletions(-) diff --git a/evennia/contrib/base_systems/ingame_reports/reports.py b/evennia/contrib/base_systems/ingame_reports/reports.py index 85c8259ae0..f5fd5f0ade 100644 --- a/evennia/contrib/base_systems/ingame_reports/reports.py +++ b/evennia/contrib/base_systems/ingame_reports/reports.py @@ -154,6 +154,22 @@ class ReportCmdBase(_DEFAULT_COMMAND_CLASS): self.hub = hub return super().at_pre_cmd() + def parse(self): + """ + Parse the target and message out of the arguments. + + Override if you want different syntax, but make sure to assign `report_message` and `target_str`. + """ + # do the base MuxCommand parsing first + super().parse() + # split out the report message and target strings + if self.rhs: + self.report_message = self.rhs + self.target_str = self.lhs + else: + self.report_message = self.lhs + self.target_str = "" + def target_search(self, searchterm, **kwargs): """ Search for a target that matches the given search term. By default, does a normal search via the @@ -181,16 +197,10 @@ class ReportCmdBase(_DEFAULT_COMMAND_CLASS): if not self.args: self.msg("You must provide a message.") return - if self.rhs: - message = self.rhs - target_str = self.lhs - else: - message = self.lhs - target_str = "" target = None - if target_str: - target = self.target_search(target_str) + if self.target_str: + target = self.target_search(self.target_str) if not target: return elif self.require_target: @@ -202,7 +212,7 @@ class ReportCmdBase(_DEFAULT_COMMAND_CLASS): receivers.append(target) if self.create_report( - self.account, message, receivers=receivers, locks=self.report_locks, tags=["report"] + self.account, self.message, receivers=receivers, locks=self.report_locks, tags=["report"] ): # the report Msg was successfully created self.msg(self.success_msg)