In-Game Reporting System¶
+This contrib provides an in-game reports system, handling bug reports, player reports, and idea submissions by default. It also supports adding your own types of reports, or removing any of the default report types.
+Each type of report has its own command for submitting new reports, and an admin command is also provided for managing the reports through a menu.
+Installation¶
+To install the reports contrib, just add the provided cmdset to your default AccountCmdSet:
+# in commands/default_cmdset.py
+
+from evennia.contrib.base_systems.ingame_reports import ReportsCmdSet
+
+class AccountCmdSet(default_cmds.AccountCmdSet):
+ # ...
+
+ def at_cmdset_creation(self):
+ # ...
+ self.add(ReportsCmdSet)
+The contrib also has two optional settings: INGAME_REPORT_TYPES and INGAME_REPORT_STATUS_TAGS.
The INGAME_REPORT_TYPES setting is covered in detail in the section “Adding new types of reports”.
The INGAME_REPORT_STATUS_TAGS setting is covered in the section “Managing reports”.
Usage¶
+By default, the following report types are available:
+-
+
Bugs: Report bugs encountered during gameplay.
+Ideas: Submit suggestions for game improvement.
+Players: Report inappropriate player behavior.
+
Players can submit new reports through the command for each report type, and staff are given access to a report-management command and menu.
+Submitting reports¶
+Players can submit reports using the following commands:
+-
+
bug <text>- Files a bug report. An optional target can be included -bug <target> = <text>- making it easier for devs/builders to track down issues.
+report <player> = <text>- Reports a player for inappropriate or rule-breaking behavior. Requires a target to be provided - it searches among accounts by default.
+idea <text>- Submits a general suggestion, with no target. It also has an alias ofideaswhich allows you to view all of your submitted ideas.
+
Managing reports¶
+The manage reports command allows staff to review and manage the various types of reports by launching a management menu.
This command will dynamically add aliases to itself based on the types of reports available, with each command string launching a menu for that particular report type. The aliases are built on the pattern manage <report type>s - by default, this means it makes manage bugs, manage players, and manage ideas available along with the default manage reports, and that e.g. manage bugs will launch the management menu for bug-type reports.
Aside from reading over existing reports, the menu allows you to change the status of any given report. By default, the contrib includes two different status tags: in progress and closed.
++Note: A report is created with no status tags, which is considered “open”
+
If you want a different set of statuses for your reports, you can define the INGAME_REPORT_STATUS_TAGS to your list of statuses.
Example
+# in server/conf/settings.py
+
+# this will allow for the statuses of 'in progress', 'rejected', and 'completed', without the contrib-default of 'closed'
+INGAME_REPORT_STATUS_TAGS = ('in progress', 'rejected', 'completed')
+Adding new types of reports¶
+The contrib is designed to make adding new types of reports to the system as simple as possible, requiring only two steps:
+-
+
Update your settings file to include an
INGAME_REPORT_TYPESsetting.
+Create and add a new
ReportCmdto your command set.
+
Update your settings¶
+The contrib optionally references INGAME_REPORT_TYPES in your settings.py to see which types of reports can be managed. If you want to change the available report types, you’ll need to define this setting.
# in server/conf/settings.py
+
+# this will include the contrib's report types as well as a custom 'complaint' report type
+INGAME_REPORT_TYPES = ('bugs', 'ideas', 'players', 'complaints')
+You can also use this setting to remove any of the contrib’s report types - the contrib will respect this setting when building its cmdset with no additional steps.
+# in server/conf/settings.py
+
+# this redefines the setting to not include 'ideas', so the ideas command and reports won't be available
+INGAME_REPORT_TYPES = ('bugs', 'players')
+Create a new ReportCmd¶
+ReportCmdBase is a parent command class which comes with the main functionality for submitting reports. Creating a new reporting command is as simple as inheriting from this class and defining a couple of class attributes.
-
+
key- This is the same as for any other command, setting the command’s usable key. It also acts as the report type if that isn’t explicitly set.
+report_type- The type of report this command is for (e.g.player). You only need to set it if you want a different string from the key.
+report_locks- The locks you want applied to the created reports. Defaults to"read:pperm(Admin)"
+success_msg- The string which is sent to players after submitting a report of this type. Defaults to"Your report has been filed."
+require_target: Set toTrueif your report type requires a target (e.g. player reports).
+
++Note: The contrib’s own commands -
+CmdBug,CmdIdea, andCmdReport- are implemented the same way, so you can review them as examples.
Example:
+from evennia.contrib.base_systems.ingame_reports.reports import ReportCmdBase
+
+class CmdCustomReport(ReportCmdBase):
+ """
+ file a custom report
+
+ Usage:
+ customreport <message>
+
+ This is a custom report type.
+ """
+
+ key = "customreport"
+ report_type = "custom"
+ success_message = "You have successfully filed a custom report."
+Add this new command to your default cmdset to enable filing your new report type.
++
This document page is generated from evennia/contrib/base_systems/ingame_reports/README.md. Changes to this
+file will be overwritten, so edit that file rather than this one.
+