Notice: Acquized is leaving the Spigot community, due to this he has handed the project over to me. The current version has a few bugs, though still more than usable. I'm currently in the process of version 2.0.
ProjectRetile
The new, modern & hackable BungeeCord Report Plugin
ProjectRetile is the new, modern & hackable report plugin for Minecraft BungeeCord networks. It allows the server owners to keep track of rule breakers and courage the users to report them. Besides that, every Report against reported users will be logged to prevent staff/player abuse.ProjectRetile
The new, modern & hackable BungeeCord Report Plugin
ProjectRetile was previously known as UltimateReport and is a fully recoded plugin. No bugs / unwanted features of the old UltimateReport versions are included into this plugin.
Features
- SQLite (Filesystem) and MySQL support
- Easy to use for both users and staff
- Automatic uuid resolving using http://mcapi.ca/ (Online/Async) or BungeeCord (Offline/Sync)
- Toggleable receiving of report messages
- Clickable Gui's for better user handeling
- Blacklist
- 100% customize- and hackable
- Logging of every action taken using reports
- Offline reports
- Error preventing (Users reporting themself, etc.)
- Cooldown
- Configurable command aliases and messages
- Async update & UUID requests (Online) and MySQL connection Pooling
- Offline reporting
- Multi language (English, German, French etc.)
- /reportinfo <Token>
- Shows Information about a Report.
- projectretile.commands.reportinfo
- /listreports
- Lists all Reports in a Gui. Clicking on a Player Skull teleports you to the Server of the reported User.
- projectretile.commands.listreports
- /waitingqueue
- Shows a list of Reports that have been submited while no staff was online. Once executing this command will clear the Queue and add them as normal, seen reports.
- projectretile.commands.queue
- /report <Victim> <Reason> [...]
- Submites a Report. If staff is online, they will receive a Message. If not, the report will be added to the Waiting Queue.
- projectretile.commands.report
- /retile [Debug, Reload]
- General Command used for managing the Plugin.
- projectretile.general
- projectretile.general.debug
- projectretile.general.reload
- /retile dump
- Creates a dump report on hastebin about the plugin, server, machine, config, plugins, database and cache
- Notice: This command gives out the hashing of all of your plugins, the complete plugin cache and the backend ip of your servers. Never share this dump publicly.
- A dump will look like this: http://hastebin.com/ikinakivos
- projectretile.general.dump
- /togglereports
- Toggles if a Staff Member is receiving Notifications.
- projectretile.commands.togglereports
- None
- Allows submiting Reports containing Blacklisted Words.
- projectretile.blacklist.bypass
- None
- Marks a Player as staff member. If online and receiving notifications, the Player will recive Report Notifications.
- projectretile.report.receive
- None
- Shows a Message if new Reports have been submited while no staff member was online.
- projectretile.report.receive.offline
- Download the plugin using the download button on top of this page
- Drag & Drop the plugin into your BungeeCord plugins folder
- Download and install BungeeUtil
- Start the proxy
- (Optional) Fill in MySQL Informations into the database.yml if you want to use MySQL
- Enjoy a working report plugin
Code:
# Configuration file for Project Retile
[General]
# Put in here a prefix. This prefix will be infront of every message.
prefix = "&c> &7"
# Put in here a two character long string with a language code
# ProjectRetile will then search for a file named "messages_<code>.properties" in the "locale" directory.
# If Retile doesn't finds the file, errors will occur.
locale = "en"
# Should BungeeCord be used for UUID resolving?
# This may be not safe as some hacked clients can fake their UUID
# This is automaticly enabled for offline mode networks
usebungeecordforuuid = false
# How long should be the cooldown for the /report command? This is calculated in seconds.
cooldown = 60
# Should the report notification be clickable?
# A click on that notification sends the clicker to the victim's server
clickablemessages = true
# Put in here a java.text.SimpleDateFormat time and date pattern
# This specifies how the date will be displayed in the click gui's.
# You can find a list of patterns here: https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
dateformat = "dd.MM.yyyy hh:mm:ss a"
# Should the updater be enabled? The updater checks for a update every hour.
updater = true
# Don't change this value unless you want to reset the config
revision = 1
[Pools]
# How many connections should be keept alive when idling?
minpoolidlesize = 5
# How many connections should be max. openend?
maxpoolsize = 20
# How long should we try to connect to a database? Set higher if the a error occurs when connecting
timeout = 5000
# Put in the [] a list of aliases. These aliases need to be prefixed and suffixed with ""
# The key (before the =) is the /<key> command
[Aliases]
report = [ "r", "ticket", "reportuser" ]
listreports = [ "reports", "lr" ]
togglereports = [ "toggle", "tr" ]
reportinfo = [ "inforeport", "ir", "ri", "info" ]
waitingqueue = [ "queue", "listqueue" ]
Messages File
The Messages Files are stored in a sub-directory in the Plugin Folder named locale. For it to work, it requires a File named messages_<locale>.properties in this directory. <locale> means your Locale Shortcode set in the config.yml File.
You can view all available Locales here: https://github.com/Tom7653/ProjectRetile/tree/master/src/main/resources/messages
Feel free to contribute a translated File in your language.
Database
Code:
# Database file for Project Retile
[Database]
# Put in here the database type that should be used
# Supported: "SQLite", "MySQL" (case-sensitive)
type = "SQLite"
[Database.MySQL]
adress = "127.0.0.1"
port = 3307
database = "ProjectRetile"
username = "root"
password = "passw0rd"
[Database.SQLite]
file = "database.db"
Blacklist File
Code:
# Blacklist file for Project Retile
blacklist = [
"shit",
"fuck",
"damn",
"bitch",
"crap",
"piss",
"dick",
"darn",
"pussy",
"cock",
"fag",
"faggot",
"asshole",
"bastard",
"slut",
"douche"
]
FAQ
Q: When I start the plugin, there is a "java.lang.UnsupportedClassVersionError" in Console!
A: This Plugin requires Java 8. Please consider updating your Java to fix various security issues and to get this plugin working.
Q: I change value in config/database config/blacklist but it doesn't applies ingame!
A: Toml will fallback to the default configuration if the file contains errors. Please check your file with a Toml checker or send me a private message.
Life Circle
The Plugin's current released version will be supported until a newer version gets released on GitHub or the latest update is older than 12 months.
API
The Plugin contains a public API accessable by any BungeeCord Plugin. Access it using:
Java:
ProjectRetile.getInstance().getApi()
License
The Project is licensed under the Apache License v2. You can view the complete License in the LICENSE.txt File in the Main Root of the GitHub Repo.
Issues
If you have a issue, question or can't get the plugin working, feel free to open a Issue on GitHub. I will not accept any issues or questions in the Review Section / Discussion Section / Private Messages.
Please keep in mind that negative Reviews just demotivate me and won't get your Bug fixed / Feature implemented. Open instead a Issue Request on GitHub.
Links
GitHub: https://github.com/Tom7653ProjectRetile
JavaDocs: https://Tom7653.github.io/ProjectRetile
Releases: https://github.com/Tom7653/ProjectRetile/releases
Gitter Chat: https://gitter.im/Tom7653ProjectRetile
- Add Bukkit support - BungeeCord support will stay (For that reason also only a minor increment of the version, not a major: http://semver.org/)
- https://github.com/Tom7653/ProjectRetile/tree/v1.1.0