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.
@Hoot215
Thanks for answerign while I was gone.
@diskman2000
Yeah, as Hoot said, you need to enter a height after the radius. (That is because it will better help shape the area the way its actually needed to be shaped.)
So its /wundo p:playernameexact 50 10 0 0 0 0 0 for _ALL_ the player has done 50 radius around you, 10 blocks from your feet up. (Or you can fly up, and do 50 -260 to get the whole area.)
@Mekadrom
I'm going to look into hooking to world edit, depending on how efficiently this can be done, I might add it as an option. Don't want to make swatchdog depend on worldedit tho.
@Brock_Blocking
The permissions should default OP, when you are using the commands, does it say you do not have the permissions?
@Brock_Blocking
I'm not 100% positive about this, but it should work perfectly as OP. I play as OP all the time on my server and don't have any permissions, and it works fine for me. However, you could always use the default permissions.yml file to set the permissions as op manually if it's not working for you.
Does this require permissions? Can't seem to get a logreport as OP.
@Sanzennin
Cool, I knew I was messing something up. :P Is there any chance you will make this use Worldedit or would that be not up to your quota on "Lag-free"?
@diskman2000
I think you forgot the height parameter.
@Sanzennin
I installed Swatchdog a few days ago so it SHOULD be logging all the changes. When I do a /sniff rad it gives me the player name and times etc..
So, to do a RADIUS around ME regardless of ANY TIME at all, I can use...
/wundo p:player 50 0 0 0 0 That will undo the players changes from all times in a radius around me??
I dont care about times.. I just want radius. I used radius in BigBrother all the time.. Seem to work best for me as I know the exact player who did it. :)
I tried it again and it still doesn't do anything..
I typed /sniff rad and I got the player name, times and locations..
I typed /wundo p:player(exactly) 50 0 0 0 0
I assumed this will undo ALL blox removed and placed by p:player within 50 blox from the start of the plugin (3 days ago) correct?!?
@diskman2000
Did the grief happen today? If not, you need to add the day, if it was last month, the month also. If it was last year, specify the year too.
e.g. today is the 6th day, if I want to rollback something that happened yesterday, I'd use /wundo p:playernameexact 50 50 0 0 5
You are right that 0 0 is anytime, but it is "anytime today". 0 0 0 would be "anytime this month" and 0 0 0 0 "anytime this year" 0 0 0 0 0 "anytime"
also, make sure that p:playername is p:playernameexact
And, if there is still nothing happening, make sure that record exist for the said event by sniffing around. Like, if you installed the plugin just few moments after the griefing happened, well, nothing that can be done about it.
Ok.. I have tried to figure this plugin out for a day now.
How the HECK do you roll back!??!?!?!?!
I have a player who removed stretches of a town including the ground..
I have tried
/wundo p:playername 50 50 0 0
I assume its playername radius 50 from where I am, 50 UP from my feet, any time (0 0).
It doesn't roll anything back. Says Undo replaced 0 blocks..
Help?
@Mekadrom
seems you are forgetting the radius and height. Also, you do not need to type the whole time, if you're just dealing with today, you can leave 5 3 2012 out. So: /wundo p:playernameexact radius height hour minute
Lets say that "ThisGuy" broke a large tower, lets say the tower was around 10x10x100, yesterday at 15:39:
/wundo p:ThisGuy 5 (you are standing in the middle of the tower, so that makes it 11x11) 100 (this is from your feet up, so stand at the bottom of the tower, in the middle) 15 (thats hours) 30 (so you get the whole grief) 4 (since thats yesterday)
Or, same scenario, but there was a dozen people, and there is nothing else nearby that might be damaged, you can leave the p:ThisGuy out, to affect everyone.
Hope this helps, there are more examples at http://dev.bukkit.org/server-mods/swatchdog/pages/guide-to-rollbacks-and-some-other-examples/
I'm still confuse about the /wundo thing and /wredo, I type /wundo p:playersname 14 52 5 3 2012, because that's what it says when you type something wrong. Am I missing something completely obvious here?
@mrcheesete0
Yes, this is already in todo. Listed as "wand tool"
I will make it optional, since while its pretty cool to have, it doesn't quite follow my principle of "as lagfree as possible." as a wand has some excess weight to it. Meanwhile, please use /sws l, as this is basically the same, except for the need to type.
Thanks for your input. :)
If you were to add in a simple stick-lookup type functionality such as http://dev.bukkit.org/server-mods/log/ provided, this would be absolutely amazing!
@Mekadrom
Its actually tested on a few servers, and it is currently working with 1.2.3
I should probly mention it somewhere.
I really can't wait for the 1.2.3 release of this. No need for a MySQL server, which is the best.
I <3 Swatchdog.
@HoboRabies
Ugh, yeah, when updating to 1.2.3, WG didn't catch up at first, and bunch of our cities got burned too. SWatchdog was used to save the day here too.
Thanks, this worked just as we wanted it to!
@HoboRabies
That is because for burning damage, the p: would be p:(Burned), as this is the culprit who destroyed the blocks. (You can read this from sniff.) If you don't enter p: at all, you should be fine, though typing p:(Burned) should also work. Also, isntead of 24, enter 0 for midnight.
Hey. On my server, we are able to detect if blocks were burned, but we can't figure out how to roll the damage back. /wundo is not working (at least the way we tried it). The command we used was /wundo p:name 50 50 24 0. The burned blocks didn't get fixed. If there is something we are doing wrong, please tell us how to do it right.
@Hoot215
Well, I will consider it.