GriefDetector
Koolsource presents: Grief & Cheat Detector --
Version 0.1
Koolsource Grief and Cheat Detector is a plugin that aims to make server management easier by automatically detecting suspicious activity that might indicate cheating or griefing activity and generating a report. The plugin includes a 'report' feature that allows users to issue a 'grief report' when they have been griefed. Players with permissions can then teleport to the location of these automatically and manually generated reports.
Description continues (long version):
This plugin was built out of the experience of admins on our minecraft server who were looking to automate their activities that lead to the catching of cheaters and griefers where possible. One such activity was following the mining behaviour of players to see if players are mining a suspicious amount of valuable ores quickly (particularly if they are doing so in the dark.) Another more obvious 'activity' is monitoring the chat for suspicious behaviour. The plugin is capable of scanning chat messages for key phrases that might indicate players are 'conspiring' to grief, or bragging about their hacks. We have found this to be particularly useful on our server for detecting people talking about griefing, or even having been griefed.
The most obvious source of detecting griefing is from our players themselves. As such, we have included a /report command that allows players to report griefing. All grief and cheat report locations, automated or otherwise, can be teleported to using the appropriate command.
Features:
This is our first version of the plugin, and we are looking for suggestions for other ways to detect griefing or cheating.
Alert admins and store logs of chat messages containing key phrases such as 'i can see through walls' (we have provided a 'default' list of phrases, this keyword/key phrase list can be modified at will) Detects suspicious mining of valuable ores (especially in the dark), stores a log and alerts staff with permissions. Ability to teleport to grief and cheat sites. Players can create reports when they have been griefed. (Stores their location for teleporting to)
Dependencies
A mySQL database. This is required to store grief and cheat reports. Future versions may support SQLite Permissions 3 (if not installed, plugin will default to allowing Ops use of the /show(grief/cheat), /tp(grief/cheat) and /del(cheat/grief) commands. All users will be able to use the /report command.
Configuration File
Quote from Configuration File:The initial run of the plugin will generate a 'GriefDetector' folder in the 'plugins' folder (if it does not exist.) The plugin will then disable itself to allow the user to add the essential SQL configuration options before running itself again.
SQL Settings:
Input the appropriate SQL values for the SQL username, password, database name and hostname. The plugin will use this database to store grief and cheat reports.
Mining Detection Settings:
Please read: The default settings (examples) can produce a high amount of false-positives on busy servers (eg. sometimes a high amount of valuble ore can be found in a cave in a very short time period), you should tinker with these settings as you see fit, and add as many extra detection rules as you like (for instance, a rule for diamond per 5 minutes [short burst], and another for diamond over an hour). Also, there's nothing stopping you from using a value other than an ore.
The 'mine detection exempt' section allows you to specify world names that the plugin should ignore how much players mine on (such as on creative worlds.) The default configuration file has examples of how to specify which ores the plugin should report suspicious activity for in the 'MINE_LIMITS' and 'MINE_IN_DARK_LIMITS' sections. These may be removed, or altered. 'MINE_LIMITS' concerns mining in any light level, 'MINE_IN_DARK_LIMITS' concerns only those ores mined in absolute darkness (a light level of 0).
'item_id'specifies an ID of an ore to watch for players mining suspicious amounts on. The appopriate value can be found in the 'Dec' column on this webpage: http://www.minecraftwiki.net/wiki/Data_values#Block_IDs_.28Minecraft_Beta.29.
'amount' specifies how many ores the player should be allowed to mine in the time-frame specified in 'time' before a report is issued, viewable via the /showcheats command.
'time'specifies the time-frame for the amount of ore to be mined. More specifically, after how many minutes the count of the amount of ores of this type should be reset for the player. This value must be greater than 0.
Report Time Limit:
- Throttles the amount of /report commands can be issued by players to the amount of seconds specified. Default is 1 /report command every 30 seconds.
Usage
'/report [message]' - This will create a grief report providing the message entered, along with the player's coordinates at the time of using command (which can be teleported to via the /tpg(rief) command
'/showgriefs [page no.]' (alias: /sg) - Will show a list of automatically generated grief reports, and manually generated reports (using /report) ordered by newest first. A page number can be provided optionally, eg. "/sg 3" would show page 3 of the grief reports.
'/showcheats [page no.]' (alias: /sc) - Will show a list of automatically generated Cheat reports. A page number can be provided optionally, eg. "/sc 4" would show page 4 of the cheat reports.
From the results of /showcheats and /showgriefs, each report begins with an ID number which can be used in the following commands:
'/delgrief [id number]' (alias: /delg) - Removes the report specified in "id number" permanently
'/delcheat [id number]' (alias: /delc) - Removes the report specified in "id number" permanently
'/tpgrief [id number]' (alias: /tpg) - Teleports the the world and coordinates of the grief report specified in "id number"
'/tpcheat [id number]' (alias: /tpc) - Teleports the the world and coordinates of the cheat report specified in "id number"
Keyword Files
The initial run of the plugin generates cheats.txt and griefs.txt in the plugins/GriefDetector folder. These may be modified, so long as each phrase is entered on a new line. Note: These files should not be opened in notepad, which messes up the formatting of the file. For windows users, we recommend wordpad.
Permissions Configuration
Note: This plugin uses Permissions 3. If this plugin is not installed, it will default to operator only.
Nodes:
Quote:griefdetector.viewgriefs griefdetector.tpgrief griefdetector.delgrief griefdetector.viewcheats griefdetector.tpcheat griefdetector.delcheat
Future Work
Detecting a player that, for example, breaks considerably more glass than they have placed Flood detection and automatic banning on flood Detection of speed hacks Separate command for showing grief/cheat related chat messages that were caught
Contact Us
IRC: server: ircd.jcink.com channel: #koolsource Website : http://www.koolsource.com E-mail: [email protected]
Created by Koolsource
Developers:
Happy0 ( http://koolsource.com/user/54-happy0/ )
Brad ( http://koolsource.com/user/6-brad/ )
with some help from:
paperbackdragon ( http://koolsource.com/user/122-paperbd/ )
Design input:
John ( http://koolsource.com/user/2-john/ )
Deano ( http://koolsource.com/user/1-deano/ )
Change Log:
Empty
If you want, I could also help.
@sht04052
If you would like to work on the project and get it up-to-speed please PM me and I'll add you to this project and give you credit for helping.
-John
For those who was using this plugin, I will try to update this plugins asap.
CraftBukkit 1.2.4-R1.0 has been released. An update any time soon? The description of the plugin interests me :)
Still no update? 1.2 Is stable for us. http://dl.bukkit.org/
@KoolSource
:/ We are running 1.2 and we use this plugin all the time, Please find it in your heart <3 :p
@rebel24
It is highly unlikely that we will be updating before a recommended build due to 1.2 being released.
However i am not the lead developer, you will have to wait until he gets back from work.
Thank you for using out plugin but please be patient, we have lots of work and very little staff.
Please update!
2012-02-29 20:51:03 [SEVERE] Error occurred while enabling GriefDetector v0.21 (Is it up to date?) java.lang.NoClassDefFoundError: org/bukkit/event/player/PlayerListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:791) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:41) at org.bukkit.plugin.java.JavaPluginLoader.getClassByName(JavaPluginLoader.java:239) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:37) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:29) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) at me.koolsource.GriefDetector.GriefDetector.registerEvents(GriefDetector.java:83) at me.koolsource.GriefDetector.GriefDetector.onEnable(GriefDetector.java:68) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:343) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:366) at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:317) at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:300) at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:378) at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:365) at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:196) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:429) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465) Caused by: java.lang.ClassNotFoundException: org.bukkit.event.player.PlayerListener at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:41) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:29) at java.lang.ClassLoader.loadClass(ClassLoader.java:423) at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ... 27 more
Boom :P
@rebel24
Can you provide me with the errors you are receiving. Our server has not yet updated to R5 so I am unable to officially test it.
-John
Can you please update for R5 ??
File updated, awaiting Bukkit approval.
@Thumbz707
I'll work on that right now.
Can we get a /delcheat all?
Nice! using it on My server! play.community-craft.com