Inactive [SEC/ADMN/EDIT] SWatchdog v1.14 - Log and rollback griefs[1.2.5-R4]

Discussion in 'Inactive/Unsupported Plugins' started by Sanzennin, Feb 6, 2012.

  1. Offline


    Version: v1.14

    This plugin will record all the broken and placed blocks, with their subtypes, person who broke/placed them & time and date when this happened.
    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 (thus causing extra lag), 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.

    To enable the Wand, use /whelp 10 ingame.


    Place SWatchdog.jar into the plugins folder. Enjoy!

    • Make more configurable options
    • Allow worldediting features to go downwards as an option
    • Make it better.

    Version 1.05-1.085
    • Oh yeah, changelog...
    • Added a bunch of /wutil features to help you fix any problems you might have.
    • Added automated integrity check and repair as an option
    • Made a bunch of useful features
    • really should remember to update the changelog...
    Version 1.04
    • Added /whelp to help the admins and mods use the commands, incase they forget how or just plain don't know yet.
    • Giving wrong amount of arguments now promps to use /whelp, instead of printing a whole bunch of commands to your screen. That was annoying.
    • Fixed a rare bug that sometimes cleaned your index files. If this happened to you, just delete it, and a new index file will be created. (Having your index empty isn't any big problem, but proper indexing speeds things up.)
    • Minor enchantments to the code.
    Show Spoiler

    Version 1.03
    • added /wstat with a bunch of useful information
    version 1.02
    • Minor fixes.
    • Indexing now saves a bunch of your time while rollbackking.
    Version 1.00
    • You can now rollback specified players
    • You can now rollback specified blocks
    • Fixed something-not-quite-a-bug-but-it-works-better-now with WClean
    Version 0.99

    • Added EVEN more config options
    • Added indexing. That doesn't do anything yet tho.
    Version 0.98

    • Added more config options
    • Added optional listeners to several different type of blockactions
    • Check Bukkit page for details.
    Version 0.95
    • Slimmed down the code for the new world sorting
    • Added feature: /wxray <player> <time> (Where time is seperate parameters, hour minute (optional: day month year))
    • Now records trees and the person who planted them
    • Records enderman breaking blocks
    • Records block spread and form.
    Version 0.94
    • Fixed the bug where all the worlds would be written to the same file.
    • Fixed the bug where the rollback features would read wrong world
    • Added support for worlds out of the vanilla scope
    Version 0.93
    • Rollback features now accept less time-related parameters.
    Version 0.92
    • When using rollback features, it now tells you when it is done. (That is, about instantly.)
    Version 0.91
    • Added /sniff broken|placed radius <radius> <height> that gives you the history of the given place, as per requested.
    • When using rollback features, the stairs face the direction they were facing.
    Version 0.90
    • Now records explosion damage
    • Now records decayed leaves
    • Now records burned blocks
    Version 0.85
    • Added /wredo and /wclean
    • fixed supersniff not going through the entire archive
    • fixed subtype-issues.
    Version 0.81
    • Stopped exlusive beta and released for general public
    OldsCraft, nh_99, EdwinB97 and 2 others like this.
  2. Offline


    ok, can you give me a command sheet or something, i like your idea better thank log block and simpler
    but how about using a stick and finding out what happend to the place with right clicking and stuff? i really like your idea :D one thing you are missing, the instruction how to use it is not there and not clear.
    EDIT: i found the commands, it still would be nicer if you put the commands on the thread or tell people to go to the devbukkit for commands
  3. Offline


    Well, there is now a link to the BukkitDev page, which also contains the latest file, 0.95
  4. Very nice, Since i'm using a paid vps i can't use logblock (set it up) because of mysql being such a pain. This is very helpful thankyou.
  5. Offline


    Oh, glad you like it. I will be updating this frequently.
    kahlilnc likes this.
  6. Offline


  7. Offline


    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)
    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 :D
  8. Offline


    Glad ya like it. The /wundo with player option is coming soon, its actually mentioned in planned features in BukkitDev page. (Sorry, I've forgotten to update these forums a bit, seen as all the talk seems to happen at BukkitDev.)

    But yes, also I'm planning a paging system for sniffing, so you wont get a huge load of stuff, as well as indexing is just about ready. (Thats invisible for you, but it would speed up looking/undoing when you got several million entries in logs. Well, its recommended you clean the logs every once in a while.)
  9. Offline


    Any ETA when the player function will be available?

    Great work so far :D
  10. Offline


    Just finished it around... 10 minutes ago? Must've been right before you posted :p
    legoben1998 likes this.
  11. Offline


    So much easier than the alternatives, and it rolls back! Well done!
  12. Offline


    Thanks, I am always working to make it better. :)
    joshwenke likes this.
  13. Offline


    how to use this?

    im hoping to get this for my server, and 1 of my friends greif, and im hoping to undo what he did

    o and also, is this updated to v1.1 of mc?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 23, 2016
  14. Offline


  15. Offline


  16. Offline


    Is it possible to get the download for R.1?
  17. Offline


    Is it /rollback <name> <time>??? :p
  18. Offline


    Depending on what you want to rollback, and in what kind of area, its:

    /wundo (for undoing broken blocks)
    /wredo (for re-creating placed blocks)
    /wclean (for removing griefs, like obsidian here and there.)

    The command would be:
    /wundo (p:playername) (b:blocktype) radius height hour minute [day month year]

    () = optional
    [] = optional, but must be in the mentioned order

    The parameters are same for /wredo and /wclean

    And sorry, it seems I have misplaced the older files. So it doesn't exist anymore. It didn't have half the features the current one has, either. So you're better off with just updating your bukkit, if anyhow possible. :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 23, 2016
  19. Offline


    No, that's not possible.

    All I need is to find out who destroyed the blocks.
  20. Offline


    Uhm... well, I am not sure, but you could try and see if this works, its just about the earliest I can find.

    Type in /watchdog in chat to see if it loads up.

    Attached Files:

  21. Offline


    thanks for the awesome anti-griefing plugin! I am having troubles installing the plugin on my craftbukkit server
    can you give me any tips?
  22. Offline


    That is odd, you basically just put it in the plugins folder. What version of SWatchdog are you trying to instal, and what is your craftbukkit version?
  23. Offline


    verison 1.0 swatchdog to bukkit 1.0.1 R1

    actually nevermind i downloaded craftbukkit 1.1 R4 and it works! thanks for the AWESOME plugin!!! :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
    Last edited by a moderator: May 23, 2016
  24. Offline


    Ah yes, since 1.0 is for R4.

    Glad you like it :)
  25. Offline


    Is this already updated for 1.2 via the preview?
    It'd be supernice to know. :)
  26. Offline


    I haven't tested with 1.2, but its more likely that its upto bukkit, not MC version for my plugin to be incompatible.

    However, as soon as 1.2 hits, I'll update within a day. Or thats my goal anyways, can't help it if I get ran over by a truck or something. :oops:
  27. Offline


    Well, still waiting for valid bukkit version for MC 1.2. (The ones at jenkins return null at my console for some reason? Can't make a server with them at all.)
  28. Offline


    Nice plugin it helps me alot but the roll back feature dosnt seem to be very user friendly, any chance of a update for the new bukkit version?
    Thanks :)
  29. Offline


    Oh, what kind of trouble are you having with it?
    It would help if you described what sort of functionality did you want to add for it?
    Or do you just need better documentation for the commands? There is a short guide with examples here.

    Basically, you can just type /<command> (additional argument) <radius around you> <height from your feet up, '-' for down> <<time>>

    All the swatchdog commands that require <<time>> do as follows (3 arguments are optional, but everything must be in this order):
    <hours> <minutes> (opt: days, if none, defaults to current day) (opt: month, if not, defaults to this month) (opt: year, if not, defaults to this year)

    The time specifies the point in time after whcih you want the changes to be affected. Like, you build a house 2 days ago, someone blows it up 1 days ago, you type in the yesterdays date for /wundo. Use /sniff to get the time when the actions were done and take maybe few minutes off to make sure you get every block, incase the griefing happened over a few minutes period.

    /wxray is the only exception, where not entering time at all, it will default to (the whole archive), otherways it follows the standard <<time>>

    as for (additional argument), there are two, and you can use both in any order:
    p:playerNamEexact for only affecting the specified player
    b:BlockTypeExact for only affecting the specified blocktype.

    Well, I agree, it can seem like alot to grasp, but our mods actually learned it in few minutes. Well, most of them anyways. :)
  30. 2012-03-05 16:41:26 [INFO] <Admin semirotta> but right now there is none to ask
    2012-03-05 16:41:33 [INFO] Madcats [/] logged in with entity id 141589 at ([Semicraft] -397.3125, 58.0, 1038.34375)
    2012-03-05 16:41:34 [INFO] [!] Watchdog Failed to create new file 'broke.Semicraft.txt'
    2012-03-05 16:41:34 [INFO] [!] This is bad. Attempting to fix, or closing down.
    2012-03-05 16:41:34 [SEVERE] Could not pass event PlayerJoinEvent to SWatchdog
    at org.bukkit.plugin.RegisteredListener.callEvent(
    at org.bukkit.plugin.SimplePluginManager.callEvent(
    at net.minecraft.server.ServerConfigurationManager.c(
    at net.minecraft.server.NetLoginHandler.b(
    at net.minecraft.server.NetLoginHandler.a(
    at net.minecraft.server.Packet1Login.handle(SourceFile:68)
    at net.minecraft.server.NetworkManager.b(
    at net.minecraft.server.NetLoginHandler.a(
    at net.minecraft.server.NetworkListenThread.a(
    at net.minecraft.server.MinecraftServer.w(
    Caused by: java.lang.NullPointerException
    at me.Sanzennin.SWatchdog.Splitter.onPlayerJoin(
    at sun.reflect.GeneratedMethodAccessor201.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    ... 12 more

Share This Page