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
Well, as I stated earlier, a synenergy exists between loggers and preventers, but I intend to strenghten that synenergy in an optional way.
@Sanzennin
Hm, well that's interesting. I took note of his purple developer tag, but I didn't actually bother to check what plugins he made, so that's kind of ironic (lol).
It will be interesting to see how you decide to implement this pre-grief prevention (No pun intended), and how you integrate it with other plugins.
@Hoot215
@bigscary
Hoot, he probly is using Grief preventation, seen as its his plugin. Hes here most likely just to advertise. I am guessing he will next add SWatchdog to the list of plugins he tells people "not to use because..." on his plugin page. I dislike actions like that, so pardon me my slightly insulting tone.
As for having the players to wait for admins, well, think of this this way: Do you want to participate in what is going on with your server, or just lay back and let things happen?
I personally like being there for the player, gives better image for the server. Ofc, having an absolutely huge server would require automated tasks, but servers that huge are not really that common.
In upcoming SWatchdog versions, there are few surprice features as options. These will also allow preventing the griefs before they happen, but make it in a manner that doesn't overlap with the servers existing protection plugins. Rather, they would co-exist with certain amount of synenergy going between the plugins. As these features are not completely fleshed out yet, I will not reveal their exact functioning yet.
So while using SWatchdog, you can still use the plugins you mentioned earlyer, and swatchdog will render support as needed. And you won't end up with two plugins doing the same thing twice.
For example, our server is already using WorldGuard, and it is working well. We are also using SWatchdog, as these two plugins don't actually overlap in functionality. WorldGuard is preventer, SWatchdog is logger.
Both approaches have problems. Preventer only affects a specified area, the area immedietly outside is free game, and a griefer can build an 3 thick layer of obsidian and furnaces around it, spoiling the building that was protected. Then again, a logger can rollback griefs that happened anywhere, but not prevent them. So, don't you see synenergy already existing?
@bigscary
Just answering for Sanzennin, he may disagree with this, but I don't really think this is inside the goals of the plugin. Sure it's great to stop grief before it happens, but this plugin isn't designed to do that. It's designed to fix grief after it happens (and a whole bunch of other stuff, like detecting X-raying players). You should probably look at other plugins like Grief Prevention, as you mentioned, to do what you are suggesting. This is simply a logging plugin.
The problem with plugins like big brother and logblock that log changes and let admins roll those changes back is that players have to wait for admins to help them, and owners have to hire like a whole team of moderators to keep up with all the grief reports.
Are you planning any new features to actually stop grief before it happens, like Grief Prevention, Residence, WorldGuard, Precious Stones, Lockette and so on?
Hmm, have hit 1k total in downloads. Guess thats some sort of minor achievement, yay. :D
Next thing: Lets see if we can hit 1k downlaods on a single file. Halfway there with 0.99, maybe 1.00 will do the trick?
@Enockser
R1 was a while ago... Umm, lets see if I still have a version of that, I'll send it to you in private message.
EDIT: I guess I deleted it, why not to upgrade to R3 or R4? They're great :)
Is it possible to get the download for R.1?
Awesome plugin BTW!
@alexk252
Thanks for the suggestion, I will look into hooking with WorldEdit. If it can be done without wasting resources, I will definately make it happen. Though I will most likely set it at the bottom of the current work queue, with few more important features coming first. (rolling players, paging for sniffs, indexing)
@alexk252
Rolling back a specific player is on the To-Do list :)
As for the WorldEdit integration, I think that's an awesome idea. +1
Im struggling with the /wundo command Mabye you could hook this with world-edit so when you select an area you can use /wundo (radius) (playername) Example: Someone greifed in a popular area of the server and people have been building while he done it.When you roll-back the others builds will go aswell but if you use my suggestion only his/her's nasty work will be undone.His greif goes and nobody else build gets harmed.It would be much more simple than it is now !!! Just type in the radius and name and bam no more greif !! That would make this plugin MASSIVE success !!!
And AMAZING work with the sniff !!! I love it !!! I hate using MSQL and this is perfect !!! Im really liking your work !!! Keep it up !! Ima recommend this too others !!! Get back to me on my suggestions THANKS A MILLION !!!
@JaeinL
Glad you like it. Our server host doesn't offer SQL either, and I don't want to pay any extra just to log stuff, nor do I want the server to have a constant datastream over the internet to some external SQL host. Keeping the up-connection for players, less lag for them. :)
@Sanzennin
Oh sweet I can't wait. I'm actually going crazy about that feature. I tried LogBlock and Hawkeye and BigBrother but like the plugins are pretty broken or can't connect to MYSQL so when I came across Swatchdog I was so pleased.
@baemboo
Yeah, working on the plugin as much as I can along some other projects.
"Allow to rollback specific players. "
Hope this feature is implemented soon, im still using bigbrother dont know if itll survive 1.1-R5
@Hoot215
I'm already handling EntityChangeBlockEvent, its mostly sheep eating grass turning it to dirt. (It appears as (NPC) in the logs.)
Oh, blockGrowEvent? Sounds like a cool new stuff to add. :D
Nice job on the new version. Also, I'm not sure about this, but I would guess that EntityChangeBlockEvent is the one you should use for Enderman, most likely.
EDIT: Also apparently they're adding in a new BlockGrowEvent to the new RB as well. It seems to handle things like wheat, sugarcane, cacti, melons, pumpkins, etc. Just letting you know in case you wanted to implement that :)
Ok, author of PeX gave me an updated file to try out, didn't work but I sent him a throughout debug message, trying out several different permissions, nodes, commands and giving their debug messages. Ohwell, hope that'll help him update PeX.
@JaeinL
Thats listed under "Planned features">"Allow to rollback specific player" :)
I am working on it.
Hello, can you /wundo playername (time)? It'd be super useful if you can.