Inactive [SEC] BigBrother 1.7.1: A Complete Griefer Logging + Rollback Package [531]

Discussion in 'Inactive/Unsupported Plugins' started by tkelly, Jan 5, 2011.

Thread Status:
Not open for further replies.
  1. Offline


    BigBrotherv1.7.1 #BigBrother

    What is BigBrother?
    BigBrother is a powerful weapon in the war against griefers, and this particular tool has the ability to log and rollback every individual change a griefer has done via a large, all-knowing database that logs every action a user has taken. It gives you the utilities to inspect the world around you and determine who made what change, so you can catch the griefer every time. You can go here for more information, but here's a few examples:
    1. Log players' block destruction, placement, chats, commands, and so much more
    2. When chests are destroyed, their contents are logged
    3. Log blocks destroyed by TNT and Creeper Explosions and Fires
    4. Inspect missing blocks, opened chests using a variety of tools
    5. Rollback all changes to exactly as they were
    6. Rollback by player, time, area, and block type
    I want a full list of what it logs.
    Okay. Here it goes:
    Broken blocks, placed blocks, destroyed signs' text, teleportation, changes in chest contents, commands, chats, disconnects, logins (with IP address), opening doors, pushing buttons, lever switches, created signs' text, leaf decay, TNT explosions, Creeper explosions, miscellaneous explosions, the opening of chests, burnt blocks, and lava flow.
    I'll admit, this list is pretty small (only 20 things). But with every update of BB, this list grows to allow you to log or not log anything you could want.

    That's a nice list, but what can I really do with BB?
    I'll give you a few scenarios in which BB can really come to the rescue.
    1. Complete Grief Rollback: A griefer, meanieguy, comes and starts griefing away when your admins are away. And when I say grief, I mean grief. He gets his hands on buckets of lava, TNT, and goes to town. By the time an admin gets back on, meanieguy and half of your town is gone. The admin can quickly and easily identify that meanieguy was the crook using /bb here or the SuperSticks. After that, all he has to do is issue the command: /bb rollback meanieguy, and everything is back to normal. Flows of lava is cleaned up, TNT explosions have been fixed, welcome signs are back with their sometimes-odd text, chests are back with their original contents, and your users are happy
    2. Specific Rollbacks: A couple of your (typically good) server members get a little carried away when making modifications to someone else's building. You don't want to rollback all their changes, but only in a particular area and within a certain period of time. You can just use: /bb rollback tw3dled3 tw3dledum t:1d5h r:20, and that will rollback just their changes, within a 20 block radius and within the past 1 days and 5 hours.
    3. Building Identification: Ever stumble across a building that is either so good or so bad that you have to know whose it was? By using /bb stick 1, you'll get a stick that will let you identify who placed or modifed which blocks. /bb stick 2 will give you a log that will let you inspect "air", water, and lava blocks (basically things that aren't rightclick-able).
    4. Creeper Rollbacks: Creepers are annoying for a two reasons: they kill you and they blow up your stuff. Thankfully, BigBrother can take care of reason 2. If a creeper blocks up the side of your building, you can quickly fix it by using /bb rollback Environment r:5. This will rollback any environmental changes within 5 blocks.
    *With the current version of BigBrother, you may have to do more work to rollback TNT, burnt blocks, and lava. Currently, these are logged as "Environment" (as it's difficult to match these actions up to a specific player). So rolling back meanieguy and Environment with a good time argument will easily take care of this.

    Hm, Okay. Where can I go to get more information?
    You can hop on over to BigBrother's github repository.
    There we have a wiki full of installation, troubleshooting, and command information; the full and bleeding edge source code; and an issue tracker to get your problems solved.

    Video Tutorial

    By Samkio.

    Changelog (open)

    BigBrother v1.7.1
    Released 16 Mar, 2011
    - Built with CB 531.
    - Fix for SQLite problem with (LIMIT)
    - Fix for people using non-permissions plugin
    - Initial table prefix support.

    BigBrother v1.7
    Released 13 Mar, 2011
    - Updated + Compiled for CB 527, Permissions 2.5.3, GroupManager 1.0+
    - Inserts into database are now (optionally) LOW_PRIORITY (thanks GpMidi!)
    - Sanitizes names before sending to DB (helps w/ name hack)
    - Logging of signs changed using the Mass Sign Hack (.eas)
    - Rollback by Tick (greatly reduces lag during rollbacks, customizable # of blocks/tick)
    - Threaded and cleaned up Cleansing (much faster, no lag).
    - Options to restrict # of entries removed each cleansing
    - Cleansing happens on a schedule
    - '/bb version' and '/bb update'. version: tells you the version of BB you're running. update: tells you if there is an update. (These also work in the console: 'bb version' and 'bb update')
    - Complete properties file change: + -> BigBrother.yml. (it will auto-convert)
    - Fix for broken bed logging
    - Fix for cancelled onEntityExplodes
    - Help support. View organized help w. '/help bb'- Auto-download of libraries is now optional
    - Temporarily turned off threading of /bb here and SuperSticks
    - Leaf Removal + Lava Flow defaulted to off
    - /bb log : Alias for /bb stick 2
    - A few other things...

    BigBrother v1.6.3
    Released 27 Feb, 2011
    - Fix for removal of Bukkit's onPlayerCommand
    - Command-logging fixed!
    - SuperStick threading
    - /bb here threading

    BigBrother v1.6.2
    Released 26 Feb, 2011
    - "Fixed" SQLite problem with database locking during datablock sending.
    - Fixed problem where it gives you sticks instead of proper item
    - Fixed but where Chest Logs end in "-"
    - Modified table schema to allow for longer chest logging.
    - Better error reporting when unable to create connection.
    - Extra Permissions check + better messaging
    - Initial Threading: Less lag when logging blocks and rolling back.

    BigBrother v1.6.1
    Released 23 Feb, 2011
    - "Fixed" SQLite problem with Cleansing
    - Fixed IndexOutOfBoundsException when timeCleanse setting was set to "0s"

    BigBrother v1.6
    Released 23 Feb, 2011
    - Multiworld support! Rolling back by radius will be limited to the world you're in. (All other rollbacks will still be universal)
    - Database cleansing on startup by age or number of records. Look in for these settings.
    - Initial On-demand cleansing. Using '/bb cleanse' (bb.admin.cleanse), it will invoke the cleansing under the settings you have. This will be built upon in upcoming updates.
    - Initial Lava Flow logging + rollback. Those ugly lava flows will be quickly removed. (Logs to "Environment" for now)
    - Sign creation text logging. Logs the text of signs when they build (in addition to destroy) signs
    - Performance enhancements from Oni and N3X15 builds
    - Player IP Logging on login (from Oni build) (can be turned off)
    - Better '/bb help'
    - No longer using the long, spammy constructor.
    - Fix for the not logging of broken blocks.

    BigBrother 1.5
    Jan 30 - (CraftBukkit #186)
    - Requires build #183 or higher
    - Logging/Rollback of blocks burnt by fire, initially to player "Environment". (fire = action #19)
    - Rollback confirmation if you're rolling back without a radius or time argument
    - Customize what the stick is (check "stickItem" in
    - "History Log" - /bb stick 2 - Gives you a log to place and gives you the history there.
    - SuperSticks will now supply you with the item they need.
    - More permission separation between info, rollbacks, and watching (check the OP for more info)
    - /bb stats gives you a few basic stats about BB
    - Memory free'ing after sending blocks (thanks to Zenexer for that)
    - Restores optionally restore fire blocks, default false (check restoreFire in

    BigBrother 1.4.3
    Jan 25 - (CraftBukkit #135)
    - All the updates from 1.4.2
    - Different management of connections

    BigBrother 1.4.2 (caused Conn. problems)
    Jan 24 - (CraftBukkit #135)
    - Removed annoying spam!
    - If connection can't be established from the start, BB tells you and shutsdown (rather than keeping on warning)
    - If connection fails in the middle of running the program, it's reset
    - Better handling of problems when saving to the database
    - Handling of data being too long
    - Right-clicking stuff with super stick doesn't interact with them

    BigBrother 1.4.1
    Jan 24 - (CraftBukkit #135)
    - Fixes internal client error with using just /bb

    BigBrother 1.4
    Jan 24 - (CraftBukkit #135)
    - Better connection management for SQLite and MySQL
    - Optional use of INNODB with MySQL
    - Fixes 'y' out of bounds error with MySQL
    - Creating Signs are now logged
    - Moved settings + data into plugins/BigBrother
    - Dependency downloader - Auto-Downloads SQLite and MySQL libraries into lib/ folder (thanks to Hidendra <3)
    - SuperSticks! - Support for many different types of sticks for searching an area
    - 'History Stick' - The first SuperStick, gives detailed history of a block
    - Radius Rollback - Specify the radius around you to rollback (using r: )
    - TNT/Creeper Logging - Log the blocks destroyed by TNT or creepers (for now logged as "Environment")
    - Leaf Decay -Logs leaves that decay so you can roll your trees back (for now logged as "Environment")
    - Flint+Steel logging
    - Opening chests - No chest modification though, the right hooks aren't in place
    - Destroying chests logging and rollback - If someone breaks your chest, roll them back and get all ur stuffs back

    See Older Ones Here...
  2. Offline



    flatFileLogs = true
    Makes flatfiles too? A option to use only flatfile would be nice.
    PedroN041 likes this.
  3. Offline


    Well, there are two types of flatfiles with this, both of which any server can use:
    - The text logs, which flatFileLogs = true activates
    - The SQLite database

    Trying to search and rollback from the text logs would be impractical (as I learned from hMod's BB :p). But I offer the logs as an extra thing for server admins if they prefer to look through that.

    The SQLite database is also a flatfile (as it's stored as bigbrother.db in the BigBrother/ directory). Every server can use this, as it can be used whether or not you have MySQL installed.

    Also, an update is up (same dl link) with a few fixes and additions. But you'll have to delete your bigbrother.db or drop the 'bbdata' table from your database (as the schema changed). BB can't log anything too vital yet, and this should be the final schema, so it shouldn't be a problem :)
  4. Offline


    Can you alter the /rollback command? Because LogBlock use the sam command, had little problems in hmod,
    or LogBlock has to alter it, if it will be ported to bukkit ;)

    Can you make /rollback <name> <time> ? /rollback user9 12 minutes.
    Or the amount of blocks or changes he made, /rollback user9 55 blocks.
    And an option to delete playerlogs after a time, or a day.

    On my hmod Server I use LogBlock to log all and BigBrother to look/watch at new members.
    Last Version works with v156.
  5. Offline


    Yea, I'm working on changing up the rollback command to allow for those.
    Such as:

    /bb rollback * t:1h2m - would rollback everyone's changes for the last 1 hour and 2 minutes
    /bb rollback tkelly Jobsti t:1d- would rollback just our changes for the last day
    /bb rollback tkelly b:55 - would rollback my last 55 blocks
    /bb rollback tkelly id:3 t:5d6h - would rollback all of my dirts placed during the last 5d6h.

    And for cleaning up, I'll probably put a setting into it where it'll auto-cleanse records older than X days.
    And also a command:

    /bb cleanse 4d12h - would delete all the records older than the given time

    Do you think those would be what you're looking for?
  6. Offline


    Yeah, sounds very good!
  7. Offline


    Glad to see that my idea has taken off for you tkelly. Thanks again for building it and glad it has made it here on bukkit
  8. Offline


    Big Update to 1.0 (not-pre) :)
    1. Rollback arguments a plenty. Rollback by time, blocktype, players
    2. Reporting of rollback details upon rollback.
    3. Player name matching
    4. Chunk loading when rolling back
    5. Logging of destroyed/placed blocks - Horray for events!
    6. Logging indirect destruction of blocks (torches, signs, doors, etc on other blocks)
    7. Logging of using buckets to place/pickup blocks
    This is now ready for use and fully functioning (aside from the fact there are no permission systems to restrict commands). Once that gets added, I'll update this (same with all the other stuff I have on my "What's Coming" list).

    Report any problems that you might have. :)
  9. Offline


    Will it have the same kind of "tools" like logblock has?
    Logblock has Adminium and the Wooden pickaxe as "log" tools.
    Rightclicking with a wooden pickaxe on a block shows u who placed/destroyed it
    Placing Adminium in a (for example) hole shows you the same information.

    I've used Logblock for a while and I found them really convenient instead of manually searching in the Flatfile/Mysqldb.
    If BigBrother already has a feature like that I'm sorry I couldnt find it in the description here.
  10. Offline


    This has the '/bb here' function (See Search Commands in OP).

    Let me know how that goes for you; I may add some sort of physical method for checking so that it's quicker than commands.
  11. Offline


    It doesn't seem to be recording placing or breaking blocks. Are there certain blocks it logs by default? I had it log everything when I used hMod.
  12. Offline


    This is exactly the sort of plugin I would use a DB for.. good job :)
  13. Offline


    @bradcland: No, it should log everything by default.
    Are you getting any errors to the console?
  14. Offline


    nope, I'm using SQLite. I place a couple of blocks, use /bb here 5, it says no modifactions were made in this area.
  15. Offline


    Hrm. So you made "mysql=false", right?
    Could you look through bigbrother.db for any rows where action=0 or 1 and PM me?
  16. Offline


    Huge array of issues incoming:
    1. Logging with SQL, No blocks for rollback & when you do: its only one or two, (had 12 users, 3 rollbacks).
    2. Logging to files when a block is destroyed / broken it says placedblock not broken or destroyed.
    3. The broken/placed or w/e block is shown as 0 instead of the actual block id.
    I have tons of logs to prove it :<
  17. I tried rolling back after a undo and it doesn't work
  18. Excellent Plugin, great for killing off those pesky griefers.
    Paul_VB likes this.
  19. Offline


    Update to 1.1 that should fix all of the problems that people have been having.
    - Different design to sending info to your logs and DB
    - Logs now show the type of block that's destroyed/placed/whatever.

    Let me know how this goes for you guys.
  20. can you also add what block is place?
  21. Offline


    It already logs what block is placed.

    However, there is one bug with CraftBukkit that when someone places a block on snow it reports the placed block as 0. I can't do anything about this now, but it will hopefully be fixed soon.
  22. Well were does it show that in mysql? Under type?
  23. Offline


    Yea, the type column.

    Also, a forewarning to anyone upgrading from an old version of 1.0: you should make sure that you have an 'id' column. If you don't have it, you'll have to drop the table before upgrading. If you don't, this'll cause problems later on when you're trying to search an area or rollback.
  24. Offline


    Will this plugin have some sort of Grief stick? i really want a plugin that i can use a tool to click on where i block was like a window. It then tells you would destroyed that block. But would this require logs. I think a Grief Stick would be a cool add on with this plugin
  25. Offline


    Uhm, you could use the iStick by nijikokun?
  26. Offline


    You can use '/bb here' do that. But I might add some sort of grief stick/physical way of checking too.

    I think he means like a way to check logs, not remove/add blocks.
  27. Offline


    A grief stick might be easier imo. what about auto logging ppl that join? cause if i have an open server i don't want to have to type EVERY person that joins.
  28. Offline


    Oh I see. Was kinda hard to tell what he was saying :p. Yeah, a physical way of checking blocks would be awesome.

    There's a setting for that, it's called autoWatch.
  29. Offline


    It already does auto-log! :D
    Once groups get added to Bukkit, you'll be able to restrict who gets auto-logged by group, but for now it's just everyone.

    And yea, I like the idea of an easy-to-use physical check, but I need to make sure I think it out and design it so it's easy to use.
  30. Offline


    No, sorry I completely mis-read what you was asking for :). iStick just removes blocks (Though it's going to have block placement later).
Thread Status:
Not open for further replies.

Share This Page