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 Mar 13, 2012Kudos for making this amazing plugin!
My only question is this: How would i go about undoing a huge section of lava that someone placed?
I have tried /wclean p:playername, /wclean b:lava, /wundo p:playername, but none of them are removing lava unless it is contained within 1 block.
Is there an easy way to get rid of massive amounts of placed lava?
Thanks!
-
View User Profile
-
Send Message
Posted Mar 12, 2012Aye, to confirm it was fixed fairly quickly when he come on.
Turns out that for whatever reason it generated a corrupt file for that world continuously, so we ended up copying a working one and renaming it to fix the problem. Had fun blowing up the world and undoing it afterwards!
He also explained a lot of things regarding the new update he worked on, and some more information on certain commands. Which I'm really grateful of. Great support, and a great plugin. :] Definitely something to admire nowadays.
So thank you once more, and hope to see you around!
-
View User Profile
-
Send Message
Posted Mar 12, 2012@silvh92
Hmm, I do not think any of those plugins should cause errors, we use most of them on our server too. Though, having the problem only occur in a single world would lead me to think that something interferes with that specific world...
If you create yet another world, would that bug? (Before going there, reload the plugins.)
It should not be the hardmode, as we have been using SWatchdog in Hardmode for quite some time. But maybe its the combination of hardmode with some other plugin, that interferes with the blocks.
EDIT: Well, going there, providing live support, solving the problem. Live support ftw!
-
View User Profile
-
Send Message
Posted Mar 12, 2012Interesting, anyway.. It only happens when a) A new WatchDog file is generated or b) I edit out the broken entries.
As for my setup(On a dedicated server, mind you):
Plugins:
There's never any issues in the console aside from when I use any restoration commands.
The util folder files all have one or sometimes two lines stating: "1=00:00/0/0/0000" without quotation marks. LastID files all say "0" without quotation marks.
There is no faulty config file laying around.
Worlds:
So that's a total of 11 worlds. (Although so far the only ones ever used are AceCard and NewServer, NewServer is the one that endlessly bugs out in the broke.NewServer.txt file. Everything else seems to be fine.)
Even after deleting the entire plugin(along with the folder(s) it creates) and rebooting the server with a fresh copy it keeps doing this.
If you want any additional information just ask. :]
EDIT: I just noticed a weird thing, the world I log into and break things in, had the first line generated as a blank, instead of the usual zero value. Perhaps this is part of the issue? It works fine when I switch to another map and decide to wreak havoc over there.
EDIT2: After some more fiddling, the issue ONLY happens in the world NewServer.. Renaming it and reconfiguring my plugins accordingly lead to nothing. It's strange, it only occurs in that specific world no matter what. The only thing that sets it apart from my other survival map that does work is that I have the game mode set to Hard though.
-
View User Profile
-
Send Message
Posted Mar 12, 2012@silvh92
Hmm, that is most odd. You're the first to ever report such an problem. There have been some others who have deleted the file midway, and that caused an single empty line at top, which generated the error, but never random empty lines...
Could you describe further what kind of setup do you have? Do you ever have "SWatchdog skipped record writing for some raisin" message pop up in the console? How many worlds, names of the worlds? and the files in the /swatchdog/util/ folder, especially the "lastID" files, any of those empty? also, do you have "config.faulty.txt"? (If you don't need it, delete it, I just fixed a bug that might not create a new working config if an old faulty already exists. This'll be in 1.06)
-
View User Profile
-
Send Message
Posted Mar 12, 2012@Sanzennin,
My server has undergone quite a few overhauls in terms of map loading and whatnot while Swatchdog was running, this could have corrupted the files. I'm glad it works now though. :] Actually had to use it just now because someone thought it fun to break my elevators.. Aherm.
And the option and command to run a check will be useful! Even though I already know what causes it, it never hurts to have something to counter it or find where it went wrong for you. :]
EDIT: After trying it out some, it just endlessly keeps bugging out like this. And refuses to ever function. I fix it, it bugs out two lines after. I fix it again, and before I can do anything it bugs again. I shut down the server and fix it, restart.. It bugs after I break anything. So I figure the files might be corrupt, and delete them entirely. Restart, they get generated but they still bug out right at the first line. I'm not generating any worlds, or doing anything aside from breaking blocks and placing them then trying to undo the damage done. :P
EDIT2: The first entry after doing anything with the file, e.g. having it generated, looked at or saved always generates a blank line it appears.
-
View User Profile
-
Send Message
Posted Mar 12, 2012@silvh92
Wait, 5-7 empty lines in one file? That definately shouldn't be... The _only_ things I know that may cause an empty line, is you creating a new map in the middle of the server running, or deleting the file while the server is running. This is odd, but I will add the integrity check as soon as possible, to help fix that kind of errors. (It must be enabled on options, or ran manually, since it might require some resources, so its not too good if swatchdog runs it while the server is running. I'll make the error message instruct how to run it.)
-
View User Profile
-
Send Message
Posted Mar 11, 2012Removing several broken records in all my files seems to have fixed it. I don't know what caused it to place empty lines, but it works again! It's a little fiddly finding 5-7 broken lines in a rather large file. But I got them all. Do you perhaps know what causes them to show up?
And I know about the radius, I'm just generally lazy and that was way out there on a blank map I made to test things out. :] So there was nothing there that could accidentally be reverted.
Anyhow, thank you for replying! The timespan wasn't too bad, considering the support you get from companies is usually much slower! :P
-Posted here instead of a PM for future reference-
-
View User Profile
-
Send Message
Posted Mar 11, 2012@silvh92
Well, the culprit is the blank line at the top (thats why it seems its not telling you the culprit at console, its printing an empty string), seems you might have deleted the file (or created new worlds) while the server was running, at some point. This is the most likely cause of a blank line. Remove the blank line, and you will get rid of the error. Oh, and that was some very throughout error reporting. Thank you for that!
Also, currently SWatchdog looks for the issue in several places, but, apparently, not in many enough. (It looks at the configuration file, makes sure all the index files, and everything exists.) I am going to add an "integrity check" that makes sure that these files contain the data they are supposed to, its just not ready yet. So, if the configuration file and everything else is OK, it says "everything seems to be OK"
@Hoot215
@Chaz42
Yes, allowing to bypass the radius limit with a permission is planned.
-
View User Profile
-
Send Message
Posted Mar 11, 2012@Chaz42
At the moment, no. However, you can increase the maximum radius in your config and then use a very large radius for /wundo. However, I think that rolling back for the entire world is planned.
-
View User Profile
-
Send Message
Posted Mar 11, 2012Is there some way I can easily just undo everything a player did (Breaking and building) in just one command?! like /wundo (Playername) and it rebuilds the broken blocks, and deletes the placed blocks. Instead of specifying a region, and time.
-
View User Profile
-
Send Message
Posted Mar 11, 2012Running into a bit of trouble here, every time any user logs in for the first time after wiping the information or installing the plugin it spams the console with the following information(This is me, in case anyone is wondering about Privacy, yada yada):
Now, I'd be fine if that actually fixed the issues, however after I tried breaking some sand in the dessert on purpose and did /wundo it gives me the following(I've made several attempts to be certain) without actually undoing anything(it just tells me it replaced 0 blocks in game, not that it encountered an issue):
Not very easy to understand what there's wrong if it doesn't tell me a thing, I tried setting the plugin as well as bukkit to allow read/writing but it makes no difference.
Here's what the file in question looks like, with a blank line at the top:
Am I doing something wrong here or not? I haven't changed anything in the settings and this is directly after installing it.
Apologies for the odd red squares, it keeps giving those for no reason.
EDIT: Aherm, wclean functions fine it appears. But the wundo and wredo seem to do absolutely nothing but causing the above issue.
EDIT2: Alright, figured it out. It all DOES work, just not on things that were never placed by players before.. So if I ravage the terrain around a user's house(assuming he never placed the ground blocks himself) and hit redo, the blocks will not be replaced. BUT if the user created the terrain himself, and THEN it gets destroyed it will be replaced. Is this a bug or intended behaviour? Because it's quite a bother when someone demolishes the terrain and you need to manually replace it.. Which is what the plugin should prevent.
EDIT3: A video which shows my issue in-game with me rambling trying to make up a comprehensible story: http://www.youtube.com/watch?v=jHNNzRGBTMk
And a picture of the console from every /Wundo I used. http://i1238.photobucket.com/albums/ff483/AwakenedSorrow/Wundo.png
-
View User Profile
-
Send Message
Posted Mar 10, 2012@ccman972
I think that I would disagree with you there. Firstly, this plugin is definitely not too complicated for a normal person to use. There is a lot of documentation about this plugin to help you do exactly what you want to. And secondly, as Sanzennin already said, a tool item/block would just waste resources. This plugin aims to be lightweight, that's the whole point of it. If you want something with a tool in it either wait for Sanzennin to add one (which is unlikely since again, it's a waste of resources), or just use some other plugin like LogBlock (which is definitely not lightweight).
-
View User Profile
-
Send Message
Posted Mar 10, 2012@ccman972
Because the plugin aims to keep resource usage at minimum, adding a tool that only works for few people, but activates everytime someone clicks something, to check if that person is one of those people, and then to check if he is holding the tool, doesn't really accomplish this. However, I am making a system that would allow the tool to be optional, and not enabling it in the config wouldn't cost resources.
Currently, if you use /sws l, its the same as hitting something with a stick in some other plugins, but doesn't tax your resources when not in use.
As for complexity, if you want to think it simple: You have SWatchdog.jar, you place it in the plugins folder. Restart server, it works. Use /swss l when you want to check something, /whelp <pg.> when you want to do something else. 2 commands to remember, really.
-
View User Profile
-
Send Message
Posted Mar 9, 2012@Sanzennin
A permissions bypass is actually a great idea. Inexperienced mods wouldn't accidentally cause unintentional changes (like destroying buildings), and admins/owners could have complete control without being limited by a maximum radius. +1
-
View User Profile
-
Send Message
Posted Mar 9, 2012@masterofninjas
@Hoot215
Well, I've considered adding a permission to bypass the radius limit. So the server owner, if he feels confident enough in not blowing everything up, may rollback the player, in the way Hoot described, without needing to change maxradius. So thats probably coming in some version soon...
-
View User Profile
-
Send Message
Posted Mar 9, 2012@masterofninjas
While that's a good idea, you could always just do:
while flying/standing at the very top of the world.
As long as you increased your MaximumRadius to X in the configuration file.
-
View User Profile
-
Send Message
Posted Mar 9, 2012I use this plugin alot just for rolling back ALL a players changes... Maybe add /wundo <PlayerName> all that would make my day :p Keep up the good work!
-
View User Profile
-
Send Message
Posted Mar 9, 2012@Enrux55
Glad you like it.
And even more improvements are under way. :)
-
View User Profile
-
Send Message
Posted Mar 9, 2012@wiinick
Hmm, seems I forgot to mention some configs on the "The Config file" information...
Splits is the amount of entries, in thousands, before the files get split.
There is also a bug I noticed that sometimes prints you more results than was necessary, when using /sniff broken under for example, near spawn. This will be fixed in 1.05
Also, the results are sorted from oldest to newest already. Do you mean you want newest to oldest?