Report Handling System

Discussion in 'Spigot Plugin Development' started by CoderJohn, Jun 22, 2015.

  1. I am creating, more-so have created, a plugin that handles player reports and allows admins to see them. These plugins are already out there. So why did I make one? Improvements.
    Currently mine is called EZReport. However, after looking into the reports... there is already one named that. So one question I have for you guys is what should I name it?

    Before you start posting, let me tell you what makes mine different. For the sake of the unknown name of my plugin I will call it RepoSys.

    RepoSys is a report system in which the reports are held into two basic locations. You have your folder named "Reports" within the plugin, and you have a file called "ActiveReports" inside the folder.

    The folder holds the ActiveReports file, and a file for every player who has reported anything. The ActiveReports file holds a YML-based configuration that contains a link to all the active reports that have not yet been solved. It contains a key... the report id, and a value... the UUID of the reporting player.

    The ActiveReports file DOES NOT contain any actual report data. This is for faster reading of the file. Once a report has been generated the system checks to see if the user already has a report file for their UUID. If they do, the system simply stores the report into a YML configuration. With the Key being the corresponding report's id. The value is set to a group of data that holds information regarding the report.

    Now some features that my plugin has that many others do not are:
    /EZR clear [time_in_seconds]

    There is not much difference in the reports these generate other than /reportchat.
    ReportChat is a special feature that I like because instead of a player reporting a chat offense and admins having to look back into the logs for where it happened, RepoSys will store the last 20 chat messages into the report. A admin can then use /EZR read report_id to have the chat messages shown on their screen. This is a much more efficient way of finding abuse of chat. Admins will not have to sift through countless messages or go based off the reports sole-description.

    Currently, the priority of reports can be changed using /ezr priority [level]. This will allow them to show which reports are top priority and which ones can be delayed a little longer. In the config I will add a feature to set default priority levels of the different types of reports(chat, hack, grief, etc...).

    Another cool feature that has been implemented is /ezr clear [time_in_seconds]. I plan to change this command to take other inputs than seconds. Noone likes to calculate the seconds on the fly. This command will sift through all the reports and remove any report(active/inactive) from the corresponding file if it is older than the time specified. Do note, this command could be slow if there are many reports that have to be sifted through. It would help to clear old reports over time. However, some servers might want to keep there reports for future uses... Such as users who are just abusing the report system and slowing down admins with constant reports over nothing. I will probably add a setting to the config on whether or not to store completed reports. So that the system will know if admins want the report to simply disappear after it has been completed.

    For other questions on the report system post here... also if you have a cool idea for the name of my plugin, please post it here. Note, these are not ALL of the features implemented in my plugin. Once I have decided that it is far enough along to release I will include a documentation for it. Ideas/Suggestions are welcome. Thank you!
  2. You could call it iReports, but may have apple after you

    • Like Like x 1
    • Informative Informative x 1
  3. Thanks for the input, I may avoid that then haha.
  4. ReportsX

    Sorry xD I'm bad with names lol
    Although, that sounds like a very interesting plugin you got going on. Sounds like something that a lot of people would use (including myself).
    • Friendly Friendly x 1
  5. Thanks, stay tuned and I will let you know when it is released :p... I just want to be sure it is full functional and efficient before release. I'd hate to release it and it have bugs and it get a bad name from the get-go.
  6. ReporterRecorder

    • Optimistic Optimistic x 1
  7. Thanks for the input guys, what do you guys think of "Report-A-Player" R.A.P.
    Also, anyone interested... I am looking for a server that is willing to beta test it pre-release and provide comments/suggestions for the release version.
    #7 CoderJohn, Jun 23, 2015
    Last edited: Jun 23, 2015
  8. ActiveReports are now kept in Memory until they are solved or game closes. This way, they are faster access. I am also moving towards taking lines of code that are similar and moving them into one method to reduce file size after and before compilation. Will also make it easier to modify code in the future for updates.

    I'm still looking for a server to test it pre-release and give feedback on the plugin and what it should have implemented or changed.

    Some extra info on the plugin:
    Reports can only be modified/handled/removed after a admin claims said report. This way when the server owner goes back and looks at handled reports(if for some reason s/he decides to do so), s/he can see the report, the description, the location, etc... AND the admin who "handled" the report.

    In some servers Admins have friends and sometimes they may cover up for their friend. This way if a report was processed and a admin did try to cover for his friend, the report system will hold the record of them handling it.
    #8 CoderJohn, Jun 23, 2015
    Last edited: Jun 23, 2015
  9. Reportion

    lol i suck
    • Funny Funny x 2
  10. Newest update:
    Some changes in player sent messages.

    Some minor tweaks in code.

    Clear Command Overhaul
    If all reports in a file are removed, the file is deleted as well.
    If all number of reports removed equals number of total reports, then reset report ids. Basically if everything is removed the plugin's reports counter is reset as well

    List command now shows additional information on the listing such as:
    Is the report claimed?
    What kind of report is it?
    What is the report's priority?