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.
<<reply 531339="">>
Thanks. Also please check my edit, as I reported a bug.
@Hoot215
They just hold the information for the next ID. In simple and reliable form. Since you deleted all the logs, they started again at 0. (I think you deleted the util folder too.
So everything should be in order. Once you get a split file, supersniff will work again... (I should really fix it so you don't have to have an archive... I guess I got > where I should have >=... Gotta check that
<<reply 531313="">>
I don't have any split logs yet, because I deleted all my previous logs. However, I'm sure that I had at least 2 or 3 (Split logs) before I deleted them, and the files still showed 0 as the ID. I'm not really sure what the point of those files is anyway?
EDIT: Also I found another bug. This plugin will rollback TNT if you do "/wundo" and there is TNT in the logs. This can be disastrous because then if the redstone gets rolled back as well, it can activate the TNT immediately again. I think there should be a blacklist or something in the config to prevent certain blocks from being rolled back (Such as fire, TNT, lava, etc.).
@Hoot215
Depends, whats the last broke.world.<number>.txt ya got? (If you don't have any, its good.) Those values should reflect that... (And on a side note, if you don't have an archive, supersniff doesn't necesarely work... I should probly fix that, thought in that case, /sniff shows everything there is to know.)
<<reply 531270="">>
Command: /supersniff broken under (Or ANY /supersniff command)
lastIDbroke.world.txt: 0
lastIDplaced.world.txt: 0
Bug?
@Hoot215
Hmm, whats the exact command you typed? (Supersniff is working for me.) Also, what is the ID in the util folder for the broken/placed in world?
<<reply 531212="">>
Okay, that fixes the error with the radius commands (I fixed the empty line), but "/supersniff" still doesn't work at all.
EDIT: There's also no errors in the console.
@xdeathoreox
Well, partly my fault, I should've documented it better. Hope it works for now tho :)
@Hoot215
Oh, you might've deleted the files while running? Checkt the first line of each file, see if its empty...
@Sanzennin
Oh...feet up. Wow, I'm stupid.
Hm... I think I've found a bit of a bug. When I use "/sniff broken feet", it will correctly show all the block breaks I've made there. However, when I use "/supersniff broken feet", it will not show anything at all. In fact, "/supersniff" doesn't really seem to work at all for me. I'll do some more testing now...
EDIT: I think I've confirmed this. I've deleted all my logs, and tried it again. "/supersniff" still didn't work.
EDIT 2: I can't seem to get radius to work either. "/sniff broken under" works fine, but "/sniff broken radius 10 10" doesn't work at all (For both "/sniff" and "/supersniff").
EDIT 3: Aha! Found errors in the console:
On join:
[!] Watchdog failed to split a broke.world.txt, retrying soon, but you might want to do it manually.
On command (One that doesn't work):
[!] Watchdog failed to read the file
@xdeathoreox
Ok, yes, the sniff command is from your feet up, so you have to land. I'll make an option for downwards sweeping in future version.
As for your suggestion, it seems reasonable. Thought probably a radius like 3 3, so just go nexto something and /sniff radius (and thats it) I'll add it to todo
EDIT: As for the tree problem, I have both naturally grown and bonemealgrown trees now, and no errors... Could you tell me what bukkit and swatchdog version you are using? (I'm quessing swatchdog 0.95, but bukkit?)
I think it worked before but didn't at the same time. If you are flying (creative mod) and you do the sniff command, it will ignore it and show nothing. But if you land, and do it again, it will work.
Suggestion: a default /sniff command. Like, let's say I'm to lazy to type radius 12 12. So instead, I can just type /sniff broken or placed and by default, it will search a 12x12 radius. If possible, an option in config file for a default value.
@Hoot215
Oooh, thats a fancy idea to go around tool requiring resources to be wasted. I'll try and see what I can do
Edit I am also testing natural growth atm.
<<reply 531139="">>
No problem. Also, I would assume that it is natural growth, because I just tested bonemeal and it works perfectly (No errors, and logs under my name). Testing natural growth will take a bit longer, however.
EDIT: Also, feature request I just thought of: Make another option for /sniff or /supersniff called "view" or something, to check the block that you are looking at. That'd be very handy if you could implement that, please.
@Hoot215
Handling my errors for me? :D
Awesome, thank you. :D
Thought nothing is set in stone... I might make a version that has chest logging, and keep it separate from the lighter version with no chestlogging. Depending on how bukkit gets updates related to chestlogging. (Or maybe spout.)
@re4397
Hmm, that is odd... So, you're saying you don't have "Watchdog skipped a blockplacement event..." as an error?
Is it grown with bonemeal, or naturally?
I think I might've found the cause, but I just need to know that first.
<<reply 531095="">>
It might help if you posted your versions of SWatchdog and CraftBukkit. You need 1.1-R3 for it to work properly. It seems like a tree growing error from the new update which implemented tree logging, most likely. Also, update to 1.1-R3 if you haven't already.
<<reply 531048="">>
Unfortunately, I'm fairly sure chest support will never be implemented. It's just too resource intensive (As stated by Sanzennin), and this is supposed to be a lightweight plugin. I suggest you use a plugin to protect chests (Like Lockette or LWC), or just tell the players to place a block above their chests (As Sanzennin said).
please see the error that I am getting: http://pastebin.com/BNbhWVFf