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 11, 2012@Sanzennin
All I can say for the tool is to KISS. Even with a block vs a tool, make it act like a block. For instance, break a block with the tool to see that blocks history, or right click like you're placing a block to see the history for the area of the block you would've placed. Basically make it work like coreprotect's /core inspect, it's dead simple.
Thanks for the autopurge info.
-
View User Profile
-
Send Message
Posted Aug 11, 2012@Ezimox1229
Well, to be honest most of the users don't even consider donating. (Might be because unlike some plugins, I don't have big flashy neonsigns saying "Donate!" and I am not actively asking for it.) Just knowing that there are some honorable users who would donate if they could makes me reasonably happy already.
As for the tool, I guess I should make two improvements: Make it customizable, and have the "destroyed" function look up the block above the clicked block (since you can't hit air). How would you like that?
Oh, and yes, AutoPurgeDays to 30 would delete any logs older than 30 days.
-
View User Profile
-
Send Message
Posted Aug 10, 2012Can I make you happy WITHOUT money? Because I don't exactly have any. However, with 1.3 BOTH CoreProtect and LogBlock gave memory leaks to the point where we had to restart the server every 2 hours. Guess which plugin doesn't. Thank you. Only thing I have to say... make there be a tool and a block for the lookup item, and make them configurable. We already have like 5 plugins that use a stick, including MagicSpells, so i can't use the tool. Loving it so far though.
EDIT: If I set AutoPurgeDays to 30, then it'll always autodelete all logs older than 30 days right
-
View User Profile
-
Send Message
Posted Aug 10, 2012@kshade
Wait, 1GB is 21 739 130 log entries (blocks broken or placed)
20 GB is 434 782 608 log entries (blocks broken or placed)
Are you seriously suggesting that the players on your server break/place over 400 million blocks a day? EVEN if you had 400 players on your server all the time (How is that not a "larger server"?), they would need to be breaking over million blocks a day each, which is around 42 thousand blocks per hour, going down to around 700 blocks a minute, which is close to 12 blocks each second. On average. So... either you have a server where you got 4000 people doing nothing but mining/building nonstop (400*10 would get blocks per second to a value actually possible with MC)
Or you mistook GB for MB. 20 MB is way more likely (20MB is, as the matter in fact, close to nothing for a larger server. We are running a "larger server" and our HD can hold up to 500 GB.)
-
View User Profile
-
Send Message
Posted Aug 10, 2012Can't really recommend this for big servers, it generated about 20 GB per day on ours. That's just a bit much if you want to retain old logs for a week or two.
-
View User Profile
-
Send Message
Posted Aug 10, 2012Thanks for answer!
-
View User Profile
-
Send Message
Posted Aug 9, 2012working fine with 1.3.1 cb 2320+
thanks :)
-
View User Profile
-
Send Message
Posted Aug 9, 2012@Mayhem777
Yes, it should.
-
View User Profile
-
Send Message
Posted Aug 9, 2012Ok thanks ! if i use the 1.2.5 version and then update to 1.3.1 the db will still work?
-
View User Profile
-
Send Message
Posted Aug 8, 2012@Mayhem777
I have not tested it for 1.2.5, but there should not be any fundamental changes preventing it from working.
@ZuBrEiD
Uhm, are you sure that the block you clicked was placed on a block that was broken? I know, the left click should probably be changed a bit.
-
View User Profile
-
Send Message
Posted Aug 8, 2012hi i have a prob ... the leftclick for the stick is not working .... i have 1.3.1 R1.0
-
View User Profile
-
Send Message
Posted Aug 8, 2012I've a question, version 1.3.1 only forks for that, or i use it on 1.2.5 R4?
-
View User Profile
-
Send Message
Posted Aug 7, 2012@CVRipley
Thanks, I appriciate the effort you put in writing this feedback message!
Just a few thoughts of my own
As for #2, SWatchdog doesn't actually monkey around with dateranges for checking logs, you either check for last 100 000-200 000 entries, or you check them all. Indexing is for rollbacks, where you specify dateranges for whole another reasons.
And well, no matter if you use SQL or Flatfile, specifiying dateranges speeds things up.
Web interface will probably come with SQL databases
And well, we have a rather large server our selves. Changing the splits from 100 to 50 thousand might help. Oh and, unless your SQL database is handled by another server (well, alot of people have it that way, but some also store the database in their gaming server) in the end, the data must be saved in a disk. No matter if its flatfile or a databasefile, the bytes just don't vanish to another dimension.
I appriciate your feedback, keep it coming!
-
View User Profile
-
Send Message
Posted Aug 6, 2012I really like the direction this is going.
A few suggestions and feedback regarding this plugin.
I noticed there was the ability to have a tool (which i believe the default is the stick) I dont know or i dont think i can use a block as a tool (like /hawk tool ) i just really like being able to place a block and it telling me the information i want.
Second I see you are considering SQL in the future. This is pretty critical for larger servers like mine. The built in indexing is still nice for those who cant have SQL. Personally i dont like to monkey around with specifying date ranges just to speed up flatfile performance because 99% of the time i want to see every detail from day 1 every check anyway.
Third I would hopefully like to see a web interface in the future for searching logs. Ive considered making my own adaptation for logblock but i dont want to put effort into something that look like its dieing...
Fourth is performance :( Im sorry its a little slow. When i loaded this up everything from physics to redstone slowed to a crawl even with default settings. But like i said its probably because im a large server and my minecraft session does not like constant flatfile disk accesses and i dont trust minecraft to actually save the text files. (sometimes things like my world edit or residence database redstone chips database changes vanish for no reason i just think my minecraft is overburdened with text file changes and edits as it is)
Thank you and i will keep an eye on this exciting new tool.
-
View User Profile
-
Send Message
Posted Aug 6, 2012@Hangar
Added the missing entry, thanks for spotting that.
-
View User Profile
-
Send Message
Posted Aug 5, 2012Ok, I'll give it a try. Thanks for the response :)
Oh, I added a comment on the config page about a missing entry.
-
View User Profile
-
Send Message
Posted Aug 5, 2012@Hangar
Well, for commands such as /swss l, my debug server reads around 9 million entries per second. As for rollbacks, I have made a indexing system of my own, so it only goes through the logs after the
<<time>>you specified. (You usually don't need to rollback stuff thats way old. But even so, it shouldn't take too long.)@Mayhem777
And yeah, even though I got a perfectly fine flatfile thing going on, I'm planning on adding a SQL feature for the larger and richer servers (or just those lucky brds who get a SQL database for free)
@Enrux
How large is the logfile for the logs that aren't showing up? Does the console give any errors when you look at the logs? If you place a log in the specific world and look up the logs for it, still nothing?
-
View User Profile
-
Send Message
Posted Aug 4, 2012Awesome... at least a replace for hawkeye :D will make sql data bases? :D
-
View User Profile
-
Send Message
Posted Aug 3, 2012@Sanzennin
Same, doesn't show logs, shall I delete the log files ?
-
View User Profile
-
Send Message
Posted Aug 3, 2012Regarding performance, how does this perform once I get 10-20 million entries? I'm a complete packrat and I like to save every last thing. I'm also hesitant to let go of my mySQL blankey (*drool*), but this looks like an interesting replacement for HawkEye, which I'm a bit unsure of the future status of.
Thanks :)