# Reporting

Staff++ implemented a new reporting system. The new system is a bit different from the old Staff+ reporting system. We now support reporting online and offline players. Reporting events can be send to discord using the Staff++ Discord Integration plugin. Below I will explain how to set up and use the reporting system.

## Configuration

The configuration is pretty self-explanatory. Make sure you have this section inside your configuration file and enable the reporting module by setting `enabled` to `true`

```yaml
# No permission required for regular users, requires "permissions.report" permission for moderator commands.
reports-module:
  # Whether or not the plugin will use "/report" features.
  enabled: true

  # The sound that is played to staff when someone is reported.
  # Set to "NONE" to disable.
  sound: ORB_PICKUP

  # The cooldown, in seconds, for using "/report".
  # This is disabled for players with the "permissions.report" permission.
  cooldown: 10

  # Whether or not the player that reported another player will be visible in GUIs.
  show-reporter: true

  # Whether or not a staff member must provide a reason when resolving/rejecting a report
  closing-reason-enabled: true
  
  # Types of reports. When configured the reporter will see a UI where he must choose the type
  report-types: []
  
  reporter-notifications:
      # The reporter will be notified the moment he comes online that he has reports OPEN or IN_PROGRESS
      notify-on-join: true
      # Enable status change notifications. Whenever a staff member changes the status to one of the specified statuses, the reporter will be notified (if he is online).
      # Statuses must be semi-colon separated
      status-change-notifications: IN_PROGRESS;RESOLVED;REJECTED
```

## Report commands

#### players

* `/reportplayer [playerName] [message]` Report a specific player.
* `/report [message]` Report something but don't link a specific player to it.
* `/my-reports` Open the GUI to show the reports you created.

#### staff members

* `/reports` Used to manage reports. You can list or clear all the reports of a player
* `/manage-reports` Open the manage reports GUI.
* `/find-reports` [Search reports](https://wiki.staffplusplus.org/master/features/reporting/finding-reports) by different criteria

## Report permissions

#### Player permissions

Following permissions are used to allow players creating reports

* `staff.report` Permission to create a report
* `staff.report.view-my-reports` Permission to open the my-reports GUI
* `staff.report.bypass` Permission to bypass getting reported

#### Staff permissions

* `staff.reports.manage.view` Permission to view all reports. If a staff member does not have this perm, he won't be able to manage reports
* `staff.reports.manage.delete` Permission to permanently delete reports
* `staff.reports.manage.accept` Permission to accept reports
* `staff.reports.manage.resolve` Permission to resolve reports
* `staff.reports.manage.close` Permission to close reports
* `staff.reports.manage.reject` Permission to reject reports
* `staff.reports.manage.teleport` Permission to teleport to a report creation location
* `staff.reports.manage.reopen-other` Permission to un-assign other staff members from their reports
* `staff.report.update.notifications` Permission for receiving notifications when a report is accepted/deleted/closed

## Report lifecycle

### OPEN

When a report first gets created it get the status `OPEN`, open reports can be picked up by any staff member with the correct permission.

### IN\_PROGRESS

After a staff member picks up a report it gets placed into the status `IN_PROGRESS`. When one member of staff picks up a report no other member can handle this report. The staff member who picks up the report gets assigned to the report. He can un-assign himself from the report through the GUI. If he un-assigns himself someone else can pick up the report again. \
Staff members with the `staff.reports.manage.reopen-other` can also un-assign other staff members from their reports.

### RESOLVED

A staff member can manage reports assigned to him. If he deems the report to be completely handled he can resolve the report. When a report is resolved, other staff members can view it in the closed reports GUI.

### REJECTED

A staff member can manage reports assigned to him. If he deems the report to be incorrect, or spam, or just not enough information he can reject the report. When a report is rejected, other staff members can view it in the closed reports GUI.

## Screenshots

![manage reports](https://292687455-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MPQohtcLxhXAvpSXOMt%2F-MU5Pd6d84aPo8viUKMc%2F-MU5QM2xdQq4HSfBHu4A%2Fmanage_reports.png?alt=media\&token=6a34b26d-d674-43d9-9ca1-7c1f824185a6)

![Unresolved reports GUI](https://292687455-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MPQohtcLxhXAvpSXOMt%2F-MU5Pd6d84aPo8viUKMc%2F-MU5QQXlCPUqZq8PjqMp%2Funresolved_reports.png?alt=media\&token=ca6b4a42-c1ae-4512-b7d8-5da49685e1ed)

![Manage a report](https://292687455-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MPQohtcLxhXAvpSXOMt%2F-MU5Pd6d84aPo8viUKMc%2F-MU5QV6NpTs5UwXwuvOH%2Fmanage_report.png?alt=media\&token=77a459a1-d0c8-4902-99f2-28982ac2eda3)
