AutoMod
Description
This plugin attempts to do the work of the server admins and moderators automatically allowing them more time to play the game and protecting the server when no staff can be online. Like all of my plugins this was made for use of my public server, and is being release as it seems that there is nothing else that does this.
When a player joins they are watched for a while, more details of what is watched is given below but put basically their play style is analysed to see if it matches that of the common greifer. If they are found to be in violation of one or more of the checks the build permissions are removed, this means that they cannot break or place blocks or in fact interact with anything. It's possible that legit players will be detected, to prevent this being too much of a pain for new players they are offered the chance to use the /build command to ask for their permissions back, this allows the other users on the server to vote if they think the user should have their permissions back. A 100% yes vote means that all of the checks are reset. Permissions can be used to create a trusted group of players that are watched and who can vote.
Bug Reports / Suggestions
If you find a bug, encounter a problem or have a suggestion, please fill out a ticket via the Tickets link above. I do not have the time to read through the comments section, any comment that fits the previous three categories will be ignored.
Does it Work ?
The short answer is that it works on the dumb people, and they happen to be the most irritating. Anyone that has the sense to look a the plugin list will know they just have to dig a large amount of dirt to avoid being detected. Others may try to use alternate account after working out that can break a few blocks per account, hopefully they will get bored.
Checks
Block Types
The main check that is performed is related to the blocks that the player breaks, if they break any unnatural blocks before they become trusted they are given a block place violation. More than 8 of these violations means that they blocked. It's likely that any block that is not generated naturally in the world will be part of a building.
LogBlock
This goes with the above, if the players breaks more than 8 blocks that were placed by another player before becoming trusted they get blocked.
NoCheat
If the player appears to be using some of the common hacks included in griefing clients when breaking a block they are instantly blocked. Data from the plugin NoCheat is used for this check.
Chest Access
If the players removes items from a chest before they are trusted they are blocked.
Permissions
automod.watch.all - Players with this permissions will have all of the available checks performed. Defaults to false.
automod.watch.build - Players with this permission will have the type of blocks that they break analysed. Defaults to false.
automod.watch.logblock - Players with this permission will have the owner of the blocks they break checked. Defaults to false.
automod.watch.nocheat - Players with this permission will have their data from NoCheat analysed. Defaults to false.
automod.watch.chests - Players with this permission will have their chest access watched, if they take items from chests too early on they are blocked. Defaults to false.
automod.admin.vote - Players with this permission will be given the opportunity to vote to give a player their build permission back. (recommended for members or trusted players) Defaults to ops only.
automod.admin.data - Players with this permission can use the /data command to view the data that caused the player to be blocked. This should be given to the players with the vote permission and also defaults to ops only.
automod.admin.lists.all - Allows the player to modify all lists, defaults to ops only.
automod.admin.lists.blocked - Allows the player to modify the blocked player list, defaults to false as it's covered by the above.
automod.admin.lists.trusted - Allows the player to modify the trusted player list, defaults to false as it's covered by the above.
Commands
/build - Used by players to ask for their permissions back.
/vote - Used by trusted players to vote, usage information given in game.
/data - Shows the data that caused the given player to be blocked, useful when voting.
/list - Used to add or remove players from the trusted or blocked list.
/trustallplayers - Adds all players that have ever been on the server to the trusted list, can be useful if you have an established and trusted player base already.
Contributing
Contributions to the project are very much welcome, if you have a feature that you want implemented and know a nice way to do it then consider forking the repo and submitting a pull request. These will be accepted as long as the following simple guidelines are followed.
- Do not edit the structure of the pom.xml file, feel free to add a dependency if you need it but the formatting and structure should not be changed.
- If you are exposing a new API method, add a JavaDoc comment to it, but don't over-comment internal code.
- Follow the existing code style, don't antagonise over every space though !
All dependencies that are used are now available from a public Maven repo, so you don't have to worry about building several other projects just to add a simple change any more.
Source Code
Dev Builds
Changes Since Last Release
Download
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk.
http://bukkit.jacekk.co.uk:8000/job/AutoMod/
Sounds really interesting, but two Questions: 1) Is it right, that no checks are performed by default and i can enable only the checks i like certain groups?
2) What does "monitored for a while" mean? Is it time or action based?
no problem :) I am patient.
@Ettrayu
Done :) sorry it took so long :(
This would give the server a more of a democratic system. Instead of having to make a group of trusted players who may or may not be on all the time.
@Ettrayu
I would, but why are people that are being checked even able to vote. I just mean, those groups don't go together. Voting is meant to be done by trusted people, and the checks are meant to be done on untrusted people.
Would you consider making people on blocked list unable to vote?
<<reply 768347="">>
Ah it could be that the GUI is sending the /list command to get the list of players ? I guess it doesn't matter ;)
Should have done a little more troubleshooting myself before mentioning it. Here's what I was talking about though.
I removed all the other plugins and tried it like that, and then tried launching the server without BukkitGUI. It's something with BukkitGUI doing it, works perfectly fine if I just launch the server through craftbukkit. Not a big deal as it doesn't send anything in game, just the server console in GUI spams that every time someone enters or leaves, heh
<<reply 767296="">>
Thanks :D LogBlock does not add that much any more since it tracks the blocks internally now, but I would recommend getting NoCheat since a lot of people love to try and fly when nobody is looking. I'll be adding support for NoCheat+ soon too :)
There is no code at all in the plugin that would announce commands like that so it probably it somethign else. If you could give an example of the output (screenshot ideally) I can check though.
Digging the mod, even without the other plugins it works with, very handy. Is it normal for it to report automod usage and examples to the server every time someone logs in? No errors, other than the warnings that the soft depend isn't there so all checks aren't working, it just reports the commands every time a player enters.
Same thing as soon as the server comes up. ...could be related to my motd plugin now that I'm thinking about it. I'll test that later.
I couldn't get "/list blocked clear" working.
Yes, that would be great.
About to try out the new version now.
<<reply 749318="">>
You would have to review each case on the blocked list anyway and they should be removed from the list when they are banned. A clear command should be easy to add though so I don't see why not :)
I could colour code the named in the block list, red for offline and green for online. Sound good ?
<<reply 749423="">>
Not in the latest version :)
Also automod thinks snow is a unnatural block
Thanks for the information.
Is it possible to have a command to clear the list? It makes it hard to go through deleting name by name while online. I would rather not stop the server to delete the names of the blocked-players.txt list.
Have the list show which players are online? or what time they had their permissions removed?
<<reply 748867="">>
Thanks :D
Very neat concept. Will have to test this one out.
<<reply 744090="">>
Thanks :D
Blocks that the player has placed should now be checked with the latest version, this data is not kept across server restarts though so that might be what you saw happen.
/list will stay as /list since the other plugins use it incorrectly in my opinion. I use /list to manage the lists that the plugin uses, other plugins use it to show a list of online players. My use seems more fitting. You can use /who or /online in place of /list.
Config is coming :D
Fantastic plugin. We've caught so many people early on. Using unnatural block check and lb check.
Few issues.
Chest checked will remove build permissions for people if they take items from their own chest.
/list is a common command with essentials, any way to use change it to something else?
I'm looking forward to being able to configure voting percentages.
thanks.
<<reply 738095="">>
Haha, no problem. Thanks for the actually useful feedback :D