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/
You're a machine, wide_load. Pumping out releases about as fast as I can post bug reports :P
Thanks for the dedication to what looks like it will be a great plugin. Already catching players stealing, whom I just wouldn't have noticed normally.
Thanks! :D
But, unfortunately I had issues. Posted a couple of tickets for you ;)
<<reply 729459="">>
All suggestions implemented :D Thanks for being helpful :D
<<reply 729459="">>
I don't think there is a way to detect players being banned with commandbook, at the moment it only uses MineBans. Actually I could do it using a command listener makes a note for later.
Yeah that was the problem with it, people would not check and would just vote yes or no for no reason. I guess it was quite a good system in principle, and providing more information might help. I'll give it a go ;)
Like I said, hopefully this weekend. There are a few other things that need my attention but this has been on my todo list for a while now.
@wide_load
Okay, I'll open the ticket later today.
I did ban the 3 players on the list using CommandBook, but they were not removed from the builddeniedlist; if that's what you were suggesting would happen?
Aww, I did like the voting aspect of it. One of my trusted players (who had the vote permissions) said he didn't like it because he couldn't judge whether they were griefers or not. There wasn't enough information available. Maybe it would work better if it said "stole from wide_load's chest at 976, 64, 238" and "removed wide_load's blocks (sandstone, wood) at 578,68,164", or maybe even just give them a command to be able to do a query on logblock to show their block change history for those Automod has flagged.
I saw the voting as a good way of giving donators a sense of power in protecting the server, without giving them power to abuse. So I would very much like to see it back in.
I've removed Automod for now, when do you think your new version will be ready?
<<reply 728821="">>
I have made some massive improvements to this but not quite finished ready for a release yet. I removed the whole voting system since I found that people would just vote yes without really thinking about it.
Can you post the error (pastebin please) or even better file a proper ticked on GitHub :) Like I said though I have made some massive internal changes so chancer are I fixed it already. I hope to get the new version done this weekend, I have exams at the moment which is what caused the delay :(
The builddeniedlist command will show reasons for each player and maybe a summary of the data (ie what they took from a chest). The idea was that you would either ban the player or removed them from the denied list, so I don't see why the list would ever fill up ?
/untrustplayer seems like an obvious addition :) For reference you can use /setbuild <player_name> no since it makes no sense for a player to be on both lists they will be removed from the trusted list when you use this command.
When a player gets their build rights back everything is reset for them, to trust them you have to use /trustplayer or they have to pass the checks.
Thanks for making a useful comment !!
Good feedback is good :D
@rourke750
I am also getting this error, minus the spout related lines. (I've checked it, the lines are the same) I do not have Spout installed.
@wide_load
It seemed to work earlier on, without issue. Detected and blocked some players. I've only noticed this a few hours later.
Also, a couple of requests: The second player to be blocked on my server was a friend of another player, whose build rights were removed for removing items from his firend's chest. A mistake I could later fix, but it would be good to be able to find out why their build rights were removed. I checked logblock initially, and only saw them destroy a chest, replace it and then create a chest next to it (making a double chest). So I was a little lost as to why it had happened. We worked it out, though. Also, only one player online at the time had vote rights, and he tried to vote but automod told him there was no vote called. The blocked player apparently tried to do /build, but nothing happened. Also claimed to not be told to do /build, only did so when the other player told him to try it. I couldn't verify this myself, so I don't know if it was down to user error or no, just reporting it.
I would like to be able to check up on players that have had their build rights removed, the /builddeniedlist is useful for that at the moment, i can see all 3 players who have had their build rights removed today - but i imagine over time, it will get much less useful as it fills up. Would it be possible to specify a time, perhaps? Or even better, have a command for all blocked players who haven't been checked, with a command to mark them as checked. Then if I, or an admin, looks over the list, they can mark them all as checked so the next admin doesn't redo their work. That would be great :D
For testing, I wanted to remove my trusted player status so i could check the voting worked, but the only way I could see to do it was to remove my name from the file, and reboot the server (or reload, but that's messy). Could there be a /untrustplayer command? Would be useful to have.
A question, also: what happens when a player is voted back into their build rights? are they then marked as trusted, or does the watching continue?
Thanks. I know you've said you only develop this for yourself, but I would definitely appreciate it if you liked the above ideas and would implement them. Also, brilliant if you could track down the error above ;)
Thanks again, this genuinely looks to be a really useful plugin.
<<reply 667085="">>
i did now on a friends server he is saying same problem.
@rourke750
No. Which version ? Maybe try without Spout installed ?
Anyone else get this error?
a:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi stener.java:30) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:459) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager .java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175 ) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :129) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :169) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at uk.co.jacekk.bukkit.automod.tracker.PlayerViolationTracker.addBlockEv ent(PlayerViolationTracker.java:49) at uk.co.jacekk.bukkit.automod.listener.BlockViolationListener.onblockBr eak(BlockViolationListener.java:192) at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:301) ... 15 more 11:37:50 [SEVERE] Could not pass event BlockBreakEvent to AutoMod org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi stener.java:30) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:459) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager .java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175 ) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :129) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :169) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at uk.co.jacekk.bukkit.automod.tracker.PlayerViolationTracker.addBlockEv ent(PlayerViolationTracker.java:49) at uk.co.jacekk.bukkit.automod.listener.BlockViolationListener.onBlockBr eak(BlockViolationListener.java:99) at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:301) ... 15 more 11:37:52 [SEVERE] Could not pass event BlockBreakEvent to AutoMod org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi stener.java:30) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:459) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager .java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175 ) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :129) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :169) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at uk.co.jacekk.bukkit.automod.tracker.PlayerViolationTracker.addBlockEv ent(PlayerViolationTracker.java:49) at uk.co.jacekk.bukkit.automod.listener.BlockViolationListener.onblockBr eak(BlockViolationListener.java:192) at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:301) ... 15 more 11:37:52 [SEVERE] Could not pass event BlockBreakEvent to AutoMod org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi stener.java:30) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:459) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager .java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175 ) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :129) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :169) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at uk.co.jacekk.bukkit.automod.tracker.PlayerViolationTracker.addBlockEv ent(PlayerViolationTracker.java:49) at uk.co.jacekk.bukkit.automod.listener.BlockViolationListener.onBlockBr eak(BlockViolationListener.java:99) at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:301) ... 15 more 11:37:54 [SEVERE] Could not pass event BlockBreakEvent to AutoMod org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi stener.java:30) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:459) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager .java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175 ) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :129) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :169) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at uk.co.jacekk.bukkit.automod.tracker.PlayerViolationTracker.addBlockEv ent(PlayerViolationTracker.java:49) at uk.co.jacekk.bukkit.automod.listener.BlockViolationListener.onblockBr eak(BlockViolationListener.java:192) at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:301) ... 15 more 11:37:54 [SEVERE] Could not pass event BlockBreakEvent to AutoMod org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi stener.java:30) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:459) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager .java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175 ) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :129) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :169) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at uk.co.jacekk.bukkit.automod.tracker.PlayerViolationTracker.addBlockEv ent(PlayerViolationTracker.java:49) at uk.co.jacekk.bukkit.automod.listener.BlockViolationListener.onBlockBr eak(BlockViolationListener.java:99) at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:301) ... 15 more 11:37:55 [SEVERE] Could not pass event BlockBreakEvent to AutoMod org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi stener.java:30) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:459) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager .java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175 ) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :129) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :169) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at uk.co.jacekk.bukkit.automod.tracker.PlayerViolationTracker.addBlockEv ent(PlayerViolationTracker.java:49) at uk.co.jacekk.bukkit.automod.listener.BlockViolationListener.onblockBr eak(BlockViolationListener.java:192) at sun.reflect.GeneratedMethodAccessor307.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:301) ... 15 more 11:37:55 [SEVERE] Could not pass event BlockBreakEvent to AutoMod org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:303) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredLi stener.java:30) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:459) at net.minecraft.server.ItemInWorldManager.breakBlock(ItemInWorldManager .java:220) at net.minecraft.server.ItemInWorldManager.a(ItemInWorldManager.java:175 ) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:540) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :129) at net.minecraft.server.Packet14BlockDig.handle(SourceFile:43) at net.minecraft.server.NetworkManager.b(NetworkManager.java:229) at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113) at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java :169) at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:7 8) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at uk.co.jacekk.bukkit.automod.tracker.PlayerViolationTracker.addBlockEv ent(PlayerViolationTracker.java:49) at uk.co.jacekk.bukkit.automod.listener.BlockViolationListener.onBlockBr eak(BlockViolationListener.java:99) at sun.reflect.GeneratedMethodAccessor308.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:301) ... 15 more
@LouisWoo
It's also a bit too strict by default. This will always support what ever I use on my server since I just made this for personal use really. That will be NoCheat only for a good while.
Just curious, are you going to patch this to recognize and use any of the alternate plugins based on NoCheat, since the developer has said he is quitting? From what I can see, NoCheatPlus is basically identical so far except the developer changed classnames from NoCheat -> NoCheatPlus.
anyone using on a 1.2.4 server? wanted to see if it was working well.
@EvHub
Config is basically done via permissions. If you use a plugin that supports per-world permission you can do everything you asked about :)
A config file will be added soon though, you will be able to control the various limits such as how many blocks a player has to place before they become trusted and various things like that.
Looks great! Just a few requests: 1. Configurable checks, as in the ability to turn some checks completely off with a config. 2. Multi world support, as in the ability to turn all checks off in specific worlds, such as a pvp world, with a config. Just some suggestions, I hope you implement them.
@SYkO_Reaper117
1. They also become trusted automatically after a while. 2. Yes. 3. No. 4. No, if I start adding support for other plugins it will just become too big and bloated. the un-trusted period is very short though so you should be okay without this.
@CoolOppo
Turns out the ticket tracker was disabled, fixed now.
Can you fill out a ticket though, I need to know your version numbers.
@xXSshadowXx
I get what looks like the same error, and there is no tickets section @wide_load.
Here's mine: http://pastebin.com/7G4NzwGK
@wide_load
I do not see a link for Tickets?