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
Cool beans. I'll install it now.
Reason: There's one public place I loosened the GriefPrevention protections on: the spleef arena's field. One of my donators flew in there and messed it all up. It was only snow, but it would be great to find out who did it without sacrificing performance.
@twisted067
@Hoot215
Well, as you are trying to avoid lag, inventory logging is not such a good idea in the first place. Everyone is constantly accessing their inventory, and its 40 slots. I haven't checked lately, but the reason I originally didn't add inventory logging is because its 40 slots and when it changes, the only way to get the items added or removed from an inventory (player or chest) is to compare the new and the old inventories. And that is not cheap. Of course, that could've changed...
Anyways, I'm thinking of adding it, but its not the top priority at the moment.
Neither is enchanting nor anvil actions. They're cool, but not exactly vital, so they got a lower priority at the moment.
@twisted067
Sanzennin is the developer of this plugin, not me. I'm just the tester and ticket manager. I can't answer for Sanzennin, but I think some of those might be implemented eventually.
@Hoot215
I'm toying with the idea of putting a full logging plugin on my server, we've always avoided it cause it usually creates lag. This one looks promising, but I want those features I talked about. Are you going to add those features? And if so, do you you have a time frame of when these would be added?
@twisted067
What (out of what you said) is logged:
What (out of what you said) is not logged (at this time):
You can't configure exactly what's logged for each player right now. Everything configured is logged for all players. However, everything that can be logged can also be disabled.
I got a question about this: "Allows you to track activities of a specific player " What activities are logged? I would like to see inventory logging, whats been taken from the creative window and placed in the the inventory, chest-access logging, anvil logging, block place logging, enchantment logging...all these just for specific players..also can everything be disabled except specific player logging? I've been searching high and low for a plugin that lets me see what specific players do, not server-wide, I've found a few but they don't have all the features I want, or just don't work right
@LeeTheENTP
In general, this is one of the most lightweight logging plugins out there (coming from personal experience).
How resource-intensive is this? If it's not too bad, I'll use it once I upgrade my server.
Thanks for the reply and help :) Enjoy your vacation
@elliot4959
Hmm, on recent swatchdog version (1.17) I was changing the location of many functions, the stick might still point to the old locations. I'll fix this when I get back from my little vacation. Meanwhile, use /sws l ^^
Got an error:
02:24:21 [SEVERE] Could not pass event PlayerInteractEvent to SWatchdog v1.18
org.bukkit.event.EventException
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:427)
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
a:62)
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j
ava:477)
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
ava:462)
at org.bukkit.craftbukkit.v1_4_6.event.CraftEventFactory.callPlayerInter
actEvent(CraftEventFactory.java:178
at net.minecraft.server.v1_4_6.PlayerInteractManager.interact(PlayerInte
ractManager.java:376
at net.minecraft.server.v1_4_6.PlayerConnection.a(PlayerConnection.java:
657)
at net.minecraft.server.v1_4_6.Packet15Place.handle(SourceFile:58)
at net.minecraft.server.v1_4_6.NetworkManager.b(NetworkManager.java:290)
at net.minecraft.server.v1_4_6.PlayerConnection.d(PlayerConnection.java:
112)
at net.minecraft.server.v1_4_6.ServerConnection.b(SourceFile:39)
at net.minecraft.server.v1_4_6.DedicatedServerConnection.b(SourceFile:30
)
at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:59
8)
at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:22
4)
at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:49
4)
at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java:
427)
at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:84
9)
Caused by: java.lang.NullPointerException
at me.Sanzennin.SWatchdog.WatcherToolUse.onStickUse(WatcherToolUse.java:
43)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
va:425)
... 16 more
latest ID from /plugins/swatchdog/util/ lastIDbroke.world 0
lastIDplaced.world 0
Default, normal world server loaded with, called World. Made a few changed, most recent was the placing of a wool block
Swatchdog version: v1.18
CraftBukkit version: 1.4.6-R0.1
I got this error after trying to use the stick tool. I followed instructions to enable ig carefully, uncluding reload
Sorry for the length
Thanks for the great plugin!
@Hoot215
i believe im using the same, but i rebooted the server again and it seems to be working now.
@muggerfugger
Can you please post the version numbers of both Craftbukkit and SWatchdog and also post the error messages you're getting? I'm running SWatchdog 1.18 on 1.4.6-R0.1 and it seems to be working perfectly.
update coming soon? i just get internal server errors in 1.4.6
thanks
Update coming, fixing two fairly small typo's in the code preventing the correct usage of commands /sws rad (didn't work at all.) and /swss rad (Worked, but not fully.)
(Submitted the file, Just got to wait till it's approved by Bukkit.)
@InsaneBrain86
I visisted Muggerfugger's server, and it's just /sws rad not working. Other commands should work, including /swss rad. And this is a problem introduced in the latest SWatchdog version, and is being fixed. (Expect update later this week.)
Are you sure that commands such as /sws l do not yield anything? (To test it, break and place a block your self.)
@Sanzennin:
I Have the same problem muggerfugger has. Everything is logged correctly but not shown ingame. I tested /supersniff and /sniff in different areas and with different radius, no logs are shown. /wutil repairIntegrity did not change anything. It worked well some time ago, but I donĀ“t know when the problems started.
Any idea how i can solve this? Thanks
@muggerfugger
Yeah, I'll come take a look asap. I got time 4 hours from now, to 12 hours from now. (And even more time tomorrow.) PM me your server IP.
EDIT: Ok, found the problem, making changes.
@Sanzennin
im not sure when the problems started. i never really needed to use it before. but lately alot of new players are on.
everything is updated. using cb 1.5.6 beta
even the log files say its recently updated, but still when i do sniff l it doesnt display any history most of the time.
here are links to some logs so you can see:
Maybe i'm doing something wrong. Maybe i can provide you access o my server CP and FTP to see if i messed something up when you have some time.
http://www.owhatever.com/temp/placed.world.1.txt http://www.owhatever.com/temp/placed.world.2.txt