SWatchdog
SWatchdog is now Abandonware, how cool is that?
Version: 1.19
Tekkit version 1.13Tekkit - Optimized for Tekkit, not recording machines.
This plugin will record all the broken and placed blocks, with their subtypes, person who broke/placed them & time and date when this happened. Also options for chest access logging as well as animal slaughter logging. There is also functionality to rollback said actions, re-place broken blocks, remove placed blocks ect. Its aimed to be lightweight, since bigbrother, while good, lagged any server I could see it used on. And while there are other block-logging plugins, most of them had sides that didn't appeal to the servers (where I work) owner. Like require the admin to setup the SQL database, the plugin connects to an external database the whole time, or the plugin is way outdated. And other problems like that, so I made SWatchdog. To keep it simple and efficient. We've been using/testing SWatchdog for some time now, and it seems to be a success. No lag whatsoever.
How to reach me
If you have any questions what so ever, have any problems with SWatchdog or want to give feedback / make a suggestion, you can either:
Send me PM here. Thats the most certain way to reach me, since I'm checking my PM's here every once in a while. (Note, a PM at BukkitDev, not a convo at Bukkit.)
Or you can try to reach me at -Server not public yet- ( - or the website ) for the most immediate and clear conversation. ( 0Given that I am online. ^_^ )
Recent changes
- Full control of what you want to record. (Though I doubt anyone would want to log only decaying leaves, even that is possible.)
- Rollback specified players, or blocks, or specified blocks placed by specified players. In the specified area after specified time. Yes, you can now be just about as specific as you want.
- Added automated log-cleaning as an option
- Added a powerful tool for checking the files integrity, option to do this automatically on server restart (and plugin reload) and to repair it (automatically)
- Entering incorrect parameters for a command now automatically shows relevant help to that command.
- Added chest access -logging as an option. Its defaulted to false, so if you want it, just enable it in the config.
- Added chest access -logging results to /sniff look and /supersniff look
- Added /wutil repairintegrity to easily make sure everything is as it should be.
- Added a method to change configs ingame. Yay!
- Added the stick. As an option. You need to enable it and give yourself the perm.
- Rolling stuff back now recognizes failed rollbacks (0 blocks) and suggests what might've gone wrong. (Like giving too specific criteria for example.)
- Added animal slaughter logging
- option to preview rollback before rolling back.
- Improved /WTrack
- Optimized single block sniffing, now faster than ever.
- Optimized WXRay
- ADDED PlayerUndo /WUndoP and PlayerClean /WCleanP to easily rollback spesific players.
- Major optimization, commands run in threads now.
Please note
- Please use uptodate permission plugin. Outdated permission plugins may be unable to handle the latest bukkit permission format. So please make sure your permission plugin is updated to latest R#. If there is no update, just notify the author of the permission plugin to update.
Video Tutorials
These awesome videos came from InstitutionAwesome. Many thanks!
Config
Features
- Everything runs in threads for improved stability
- Option to preview rollbacks.
- Rollback areas on single players
- Records broken and placed blocks on the map
- Records exploded, burned and decayed blocks on the map
- Records water and lava
- Records players accessing chests
- Records endermen breaking blocks, blocks forming and spreading naturally, trees growing, ect.
- Config options for different kinds of events to log. Log what you want!
- Aims to be as light and nonlagging as possible
- Has a powerful indexing system, so it doesn't matter if you have 200 000 or 20 000 000 blocks recorded when you do rollbacks.
- Allows you to rollback ALL the actions of a specific player, with proper security clearance.
- Has automated log-cleaning, as well as manual. Both optional.
- Allows to rollback placed/broken blocks on specified area
- Allows you to rollback specified block type, placed/broken by specified player, on specified area.
- Allows to check single blocks or multiple blocks at a time
- Allows you to track activities of a specific player
- Allows you to check entries by a blocktype
- Allows you to estimate how well it is working on your server, this may also reflect lag caused by other plugins
- Allows to check % of valuable minerals mined by a person below 30Y
- Allows to check slaughtered animals.
- Records all your worlds, commands are relative to the world you are in.
- Failsafe. If SWatchdog encounters an error while running, it will attempt to fix most of the errors. If the error is severe, and it cannot fix it, it will disable it self. (If you find an error it doesn't understand, let me know. I will add it to the list)
- Option for automated log integrity check, and further option for automated log-repair, so even if you managed to blow up your database, it should be no problem.
Enabling wand
- Do /whelp 10 ingame, then follow the instructions. And yes, you can do everything from ingame.
Planned features
- Some sort of super-rollback feature to determine what an area looked like at given point in time, and then remake it
- Make WXRay better, show example locations ect
- Give an option to sort the results of sniffing to a file, so you can go through them (enterrandomamounthere) at a time.
- Add an option to notify admins when certain blocks are being placed.
- Add a thread for warning about possible xrayers
- Dragon egg teleport logging, as an option for creative servers.
- Logging only certain worlds
- WorldEdit logging. Purely as an option, disabled by default.
- Fixing few minor bugs in 1.18
- Suggestions?
Currently working on
- Option to warn when diamonds are being mined
- Option to warn when gold blocks are being mined.
Permissions & commands
Guide to time, rollbacks and some other examples
Can now be found here.
The config file
Installation
Place SWatchod.jar in plugins folder. Enjoy!
In case of a bug-attack
If you encounter a bug, unexpected behaviour or believe something is wrong, please:
- Look at console while running a command, if it fails to run it, it should report there with possibly the reason for what happened.
- Tell the contents of /plugins/swatchdog/ to me via PM or post a message below.
- Tell the latest ID from /plugins/swatchdog/util/ lastIDbroke.world and lastIDplaced.world (or the ID's for a different world, if thats where the problem occurs.)
- Describe your world, is it the default world? Whats its name?
- Post the content of config file, in the util folder
- SWatchdog version you are using, and bukkit version you are using. I have a deep interest in solving any and all bugs you might encounter, so please, just tell about them.
Known problems
- Doors do not rollback correctly. (Only the half that was broken/placed is rolled back.)
- /sniff look is not a waterproof command, so don't use it underwater.
Requirements
Please use the (craft)bukkit version mentioned in the file.
-
View User Profile
-
Send Message
Posted Aug 20, 2012@DemonPenguin
Ok. And on startup, what does integrity check tell you? Just "finished integrity checks."? And what is the size of your world.broke.txt and world.placed.txt?
Also, there is a very rare occasion of whitespaces being generated into logs, if your server crashed in a very unique way. (nobody has gotten that error, but I once witnessed some white spaces while doing extensive testing.) This shouldn't stop /sws l tho, but you can search for white spaces anyways.
-
View User Profile
-
Send Message
Posted Aug 20, 2012Yes that is also set to true.
-
View User Profile
-
Send Message
Posted Aug 19, 2012@DemonPenguin
Did you also enable integrityOnStart (thats what runs the checks. AutoRepair just repairs when checks find errors)
@alienelement
Oh, thanks. I might have forgotten that. I'll go check. :)
-
View User Profile
-
Send Message
Posted Aug 18, 2012Getting a NullPointerException in onChestAccess (line 25). Seems to be when you right-click air, so I'm guessing someone just forgot an "if ( !event.hasBlock() ) return;" :-)
-
View User Profile
-
Send Message
Posted Aug 18, 2012I'm getting this weird error when checking out some creative builds on my server.
"[INFO] [!] Watchdog failed to read the file"
In game everything works as normal except that there are no entries for that block/place. I also do not get any errors on startup. I tried restarting my server with the "repair files" set to true and that did not yield any results.
Any ideas?
-
View User Profile
-
Send Message
Posted Aug 18, 2012@Darklord9226
Can you give me the item ID/Name of the diamond chests? When you place a diamond chest, and then type /sws l while looking at it, what does it say? (Exact message please)
@domdomegg
Glad to hear that :)
-
View User Profile
-
Send Message
Posted Aug 18, 2012@Sanzennin Oh cool :D Thanks, it works great now, love the plugin, its like the same as LogBlock without the damn "Can't connect to MySQL" messages :D
-
View User Profile
-
Send Message
Posted Aug 17, 2012Hey Quick Question, is there a way to make the tekkit version log diamond chests? I could not figure this part out, I may be overlooking something. Thanks for your help in advance.
-
View User Profile
-
Send Message
Posted Aug 17, 2012@Sanzennin
I thought that the main reason that you created it was because of sand and gravel?
Anyway, I'll PM you about that. I still think that it's a bit of an issue, though I admit that there's probably not much that you can do about it.
-
View User Profile
-
Send Message
Posted Aug 17, 2012@domdomegg
Uhm, you really shouldn't use WatchPhysics. Its mainly for testing purposes. (Has nothing to do with gravel or sand as Hoot suggested.)
@Hoot215
Well, you could send me a PM with the details, but if I got you correctly, well... that is what the p:<PlayerNameExact> option is for. I've rolled back some place/break break griefs, and had no problems with that. Of course, depending on how large the grief is, you might want to consider just removing the few remaining blocks in creative mode...
But generally, if its place/break break, doing two commands:
1) /wundo p:GrieferName <args>
2) /wclean p:GrieferName <args>
in that order
should: 1) Fix any blocks they broke, including the ones they placed themselves.
2) Remove any blocks they placed, making sure the blocks being removed are of the same type they placed.
If that leaves holes in the walls, you could do 3) /wredo p:HouseOwnerName
but thats not usually necessary. Only if they destroyed and rebuilt a good portition of the house before they started break/placement griefing. (Seriously, who does that? :P And just do /wredo, fixes it.)
-
View User Profile
-
Send Message
Posted Aug 17, 2012@domdomegg
You've enabled WatchPhysics in the options. You probably don't want to do this, because it will basically make massive spam in the logs any time a block update happens (which is basically all of the time). The only real use for it the moment (as far as I know) is to revert sand and gravel falling, but I'm not even sure if that works. I'll have to test that.
@Sanzennin
I've been doing a bit of testing, and it seems like it's not possible to rollback when players use a bucket to place water or lava (I haven't tested filling the bucket yet). I've made sure that the log entry is there, but when I try to roll it back, it gives me confirmation for the name that I enter.
Also, there's another, somewhat more complex issue about the problem with individually rolling back block destruction and creation that I wanted to talk to you about. I won't go into a huge amount of detail, but basically what I'm trying to say is that if a griefer uses both break and place griefing, it can be difficult to rollback all of the damage, because if, say the griefer accidentally (or on purpose) replaces or destroys (when break or place griefing, respectively) a block, then that block can't really be rolled back when you roll everything back altogether. Maybe that wasn't very clear, but I hope you see what I mean, because this is somewhat of an exploit, and if griefers figure out how to utilize it, they could grief everything and you would really only be able to rollback half of the damage, unless you took the time to individually rollback each griefing "section" for break and place griefing (which could also be very difficult and time consuming if each of these sections were close together). Anyway, if that doesn't make any sense I can explain it in more detail if need be.
-
View User Profile
-
Send Message
Posted Aug 17, 2012For some reason, every time things get griefed, when I do /sws l it says (Physics) on everything… Any reason this is happening?
-
View User Profile
-
Send Message
Posted Aug 17, 2012@DuskShadowBrony
Thanks for the report. I know that this happens in some servers, only in certain locations and always the same blocks. Don't really know whats wrong with them, silly blocks.
-
View User Profile
-
Send Message
Posted Aug 16, 2012I love this plugin. Found so many griefers, and easy rollback. Except one problem: sometimes rollbacks don't roll back everything. A few blocks usually remain. Not really a problem, as the builders are happy to put the last few blocks back, but just reporting this.
-
View User Profile
-
Send Message
Posted Aug 15, 2012@El000n
Ah, its alright. :)
Well, if you trust your mods, giving the node Sanzennin.Watchdog.* is pretty OK.
It includes almost all the permission nodes used with SWatchdog. Only a few permissionnodes that could cause very serious harm for the server when used maliciously, are excluded.
There is more detail in here.
-
View User Profile
-
Send Message
Posted Aug 15, 2012Thx bro oh and what permission node do I need to put do that mods can have all Commands sorry I'm a noob :)
-
View User Profile
-
Send Message
Posted Aug 15, 2012@El000n
As the latest file suggests, this is upto date for 1.3.1
And you mean something like a radius sniff? There are a few ways to do this, you could do /sws rad for just quick 3x3x3 area around you (that shows both placed and broken records) or you could do more specific commands, like
/sws broken|placed radius <radius> <heigth>
For example: /sws broken radius 3 1 would inspect 3x3 area at your feet for broken records.
@storm345
Stairs shouldn't be ignored. Are you sure you included them in the area you were rolling back? Or did you specify any criteria that would exclude the stairs? (Like p:Mango if player Mango didn't break them, or b:OBSIDIAN since stairs =/= obsidian.)
And... what do you mean "trees are still there"?
-
View User Profile
-
Send Message
Posted Aug 15, 2012Great plugin but on rollback stairs get ignored! (They dont reappear after grief) And even though it logs them.. trees are still there.
-
View User Profile
-
Send Message
Posted Aug 14, 2012Ok 2 Questions 1: is this updated for 1.3.1 2: How do I instead of just doing /sniff l to look at one block how do I look at multiple blocks I have seen servers where they show screen shots and they went through the entire thing so eats the command thx
-
View User Profile
-
Send Message
Posted Aug 13, 2012@Ezimox1229
Uhm... I've actually used /core inspect as a mod on another server... That... lets not talk about that. :)
But yeah, at the moment left click (that you mine/cut wood/dig with) is for looking at destroyed logs, and right click (the one you place with) is for placed logs.