Inactive [INFO/ADMIN] LogBlock v1.54 - Enderdragon Logging! Tree Grow Logging! [1.4.5]

Discussion in 'Inactive/Unsupported Plugins' started by DiddiZ, Feb 15, 2011.

  1. Offline

    DiddiZ

    Version: 1.50​
    [​IMG]
    [​IMG]
    Find and Backroll those Damn Griefers
    LogBlock release are on DevBukkit:
    http://dev.bukkit.org/server-mods/logblock/

    LogBlock dev builds:
    http://ci.kitteh.org/job/LogBlock/

    Please read the installation guide

    I won't port LogBlock myself to mcAPI. Source code is available, so it shouldn't be to difficult for someone else to do it, also I'm still here. so I can answer questions. If there is more than one willing, that's up to you to handle that.




    The reasons I take this step, are the usual: I quit playing Minecraft about 5 months ago and lastly I was struggling to keep up with updates. The developement of Guardian made slow progress, so I fear it won't be ready to fully replace LB in time.


    Download latest dev build: Jenkins
    View the source code: GitHub
    Table of contents:
    1. Description
    2. Features
    3. Why to use LogBlock
    4. Example command
    5. Older versions
    6. Change log
    7. Todo list / feature requests
    8. Permission nodes
    9. Plugins supporting this
    10. Support the dev
    11. How to post error messages
    12. Advertizing
    Description:

    LogBlock logs block changes into a MySQL database. Block changes can be placed or destroyed block, explosions, burned blocks, sign text changes, chest access, leaves decay etc.
    It can be used as griefer identification tool, to find out who build a particular building, or even roll back changes by certain players. Other purposes can be e.g: Undoing of forest fires
    All additional features are optional, to keep the database as short as possible. All database actions run in their own threads to avoid server lags.
    The use of permissions plugin (or any clone) is possible, but not necessary.
    Uses Spout for chest logging (but it's fully optional, and there is no need for the client mod at all).

    Features:
    • Logging for block placing, block braking, fire, explosions, leaves decay, signtexts, lava flow and chest content
    • Very mighty commands system, not only allowing to rollback and redo, but also to tp to blockchanges, delete log ingame etc. Full list of commands.
    • Many parameters for lookup/rollback/redo/tp/clearlog commands: Block changes of one ore more player, in a specific area, in a world edit selection, specific block types only, block changes older or newer that a specific date, destroyed/created block only, in a different world and combinations of all these parameters. Full list of parameters.
    • Rebuilding map after importing a backup (/lb redo)
    • Last parameter to use the parameters of the last command
    • Quick ingame lookup of block history a wood pickaxe or a bedrock block.
    • All commands accessible from console (exept tools :D)
    • Custom queries for tools.
    • Different tool modes (lookup, rollback, redo, writelogfile and clearlog)
    • Saves block data like wool color, log type, torch adjustment, etc
    • Multiworld and multiserver support (some servers sharing the same database)
    • BigBrother log import
    • Loggable super pickaxe plugin (not to confuse with WorldEdit's super pickaxe)
    • API
    • Webstats
    Why to use LogBlock:

    Example commands: (thanks to tha d0ctor, read more about commands here)

    /lb rollback player fire since 1d3h – rolls back fire 1 day 3 hours
    /lb rollback player fire since 1d3h area 15 – rolls back fire 1 day 3 hours within a radius of 15 blocks

    /lb rollback player thad0ctor since 1h - rolls back thad0ctor 1 hour
    /lb rollback player thad0ctor since 1d area 5 – rolls back thad0ctor actions for the last day within 5 blocks
    /lb rollback area 10 since 1h30m - rolls back all modifications within 10 blocks since the list 1 hours and 30 mins
    /lb rollback area 10 before 06.11.2011 - roll back all changes in an area of 1o before June 11th, 2011
    /lb rollback player thad0ctor since 05:36:00 - roll back all changes of thad0ctor since 05:36 (server time)


    Download, Command, Configuration and Details:
    [​IMG]http://diddiz.insane-architects.net/logblock.php

    Changelog:
    -> Full changelog
    • LogBlock v1.50 # 81 (Dez. 13, 2011)
      Works with CraftBukkit 1.0.1-R1
      • Feature: /lb me shows the total block count
      • Feature: Chest logging without spout
      • Feature: Enderdragon logging
      • Feature: Logging for tree and mushroom grow (thanks to MD5 for the api)
      • Fix: Area param works again with default radius
      • Fix: Rollbacks got slowed down a bit to avoid rare server crashes
      • Fix: If mysql username, password or database only consist of unquoted numbers, LB will read them now
      • Config: World configs changed totally, some names changed and all logging options are now in an own section
    • LogBlock v1.41 #63 (Nov. 15, 2011)
      Works with CraftBukkit recommended build #1337
      • Fix: Players with spawnTools permission are no longer allowed to spawn all tools.
      • Fix: Added a check to avoid "The permission xy is already defined!" errors
    • LogBlock v1.40 #60 (Nov. 09, 2011)
      Works with CraftBukkit recommended build #1337
      • Feature: Custom auto ClearLog
      • Feature: Reduced error spam. Instead of like 40 line of error code, there is now just a warning stating the MySQL con
      • Feature: The queue will now be dumped after 10 tries even when the MySQL server is connected
      • Feature: Custom material names, allows naming custom blocks
      • Feature: LogBlock will now respond to messages when started without MySQL connection
      • Fix: Log import runs now async
      • Fix: Log import errors won't crash the server
      • Fix: Console commands work again
      • Fix: You can now use upper case letter in tool names (I don't know why you even should, but ...)
      • Config: Added clearlog.auto, clearlog.enableAutoClearlog in main config. Added materials.yml. Removed clearlog.keepLogDays
      • Permissions: Added 'logblock.spawnTools'
    • LogBlock v1.32 (Oct. 04, 2011)
      Works with CraftBukkit recommended build #1240
      • Feature: Player info logging: firstLogin, lastLogin, onlinetime, ip. No ingame lookup yet.
      • Feature: /lb queuesize to see the current queue size
      • Fix: Door logging logs now also fence gates
      • Fix: Bukkit api break in CB #1191
      • Fix: time restriction works now as intended. Thanks to xrobau
      • Fix: Players with insufficient permissions can't smuggle bedrock from one world to another
      • Config: Added logPlayerInfo
    • LogBlock v1.30 (Sep. 22, 2011)
      Works with CraftBukkit recommended build #1185
      • Feature: Chat lookup /lb chat player diddiz search +admin +sucks +dicks (more info)
      • Feature: Door logging
      • Feature: Dynamic tools, define your own tools
      • Feature: Use since and before to define a timespan
      • Feature: Enderman logging
      • Feature: cake logging (who ate it)
      • Config: Added logEndermen, logCakes and logDoors to world config and moved the tool section in main config.
      • Permissions: logblock.tool changed to logblock.tools.tool and
        logblock.toolblock to logblock.tools.toolblock.
    Todo List:

    https://github.com/LogBlock/LogBlock/issues

    Permission Nodes:
    https://github.com/LogBlock/LogBlock/wiki/Permissions

    Plugins supporting Logblock:
    List (open)

    When you want to appear your plugin here, tell me about



    Support the developer (that's me :D):
    If you want to support me writing plugins or want to thank me for the plugin/support, you can: Suggest features I missed, report bugs (best with fix :D), donate via PayPal, flattr my plugins, gift me The Witcher 2 (thanks to newyoukdaily), 2x 1GB DDR1 modules (thanks to HonestFlames), or send me the inner life of a laptop or netbook with a broken display (need it to build a model aircraft, so there is no need for parts like display and keyboard).

    [​IMG]


    How to post error messages:


    I won't aswer questions to general MySQL setup/installation/what is MySQL (there are lots of good tutorials out there, use google)
    Please read the installation guide before asking a question about installation problems.
    Please read the FAQ before posting a error report. It may be solved there.
    In case of rollback or lookup problems: Type /lb savequeue and try again (when it's fixed then, it was a consumer problem, see FAQ)
    When you post error messages, it's important to paste the whole stack trace!

    Advertizing:
    Newyorkdailys Plugin Support Buisness (open)
    Still can't get LogBlock working, or any other plugin? Are you getting errors in your console and cant figure out why? Newyorkdaily offers Basic/Advanced Plugin support.
    • General/Advanced troubleshooting: FREE!
    • Plugin Installations: 1-2 Plugins - FREE!
    • 3 or More Plugins - $2
    Click on the link below to connect to him now!
    http://wbe001.mibbit.com/?settings=7cb4fd3cdd72754df475fb92a0b65f6c&server=irc.Mibbit.Net&channel=#CBPluginSupport


    There is a LogBlock irc channel: #logblock at irc.esper.net.
    You can ask me on skype. My name is 'hawky.diddiz'.
     
  2. Offline

    DiddiZ

    It's the same
     
  3. Offline

    rakiru

    Why does every one use YAML? I'd never used it before bukkit came out and only heard it mentioned in passing. Oh well, at least there actually is a standard format though.

    I can't wait for WorldEdit to hit version 4.2.

    How do you do the cuboid support? Is there a way in WorldEdit, or do you just have to check for it the same is does?

    Oh, and thanks again or this brilliant plugin. It makes my life so much easier. I can actually play on my server now instead of searching though logs for what seems like hours on end.
     
  4. Offline

    Spazmic

    Yes if you want to experience traumatic lag test bigbrother. I had it before, it was always taking 5-10 minutes to start the server because BB was taking 90% of my quad-core CPU to reach the database. And sometimes it wouldn't even reach it...
     
  5. Offline

    DiddiZ

    Bukkit provides yaml for default config file. I also never used it before (or even heard of it), and don't like syntax (it's error-prone), but there you are. It's default. And nonetheless yaml provides a good array support and it's even clearer than xml.
    I can hook into WE to get the selection. Saves me some code and WE provides also the client side addon, so it's also clearer for the user.
    Thanks :D
     
  6. Offline

    rakiru

    Ah cool, I might look into that for a little personal project then. And yes, the client side addon can be a great help.

    One small issue I've found with this (probably more of a bukkit issue) is that it doesn't log when cakes are places, which I'm assuming is because they are items rather than blocks until you do so.

    This. BB takes up an insane amount of resources. So much so infact, I didn't even bother putting it on my main server and went straight to LogBlock. LogBlock is also updated more.
     
  7. Offline

    DiddiZ

    Yup, this is fixed in CB #559.
     
  8. Offline

    errdivideby0

    Is there anyway to use this plugin without mysql databases?
     
  9. Offline

    rakiru

    If you're wanting a flatfile or SQLite based system, then you're out of luck. The performance hits from either of those would most likely render your server unplayable (basing this on the fact that you cannot install MySQL).
     
  10. Offline

    TheShadow777

    i have no laggs but thanks for the info :)
     
  11. Offline

    blackmist

    I've seen Bigbrother and this plugin but....
    How is this different from BigBrother?
    Whats the selling point of this plugin that makes people wanna use this plugin instead of Bigbrother?
     
  12. Offline

    DiddiZ

    I think the most important differences are less crashs and less ram/cpu/db usage.

    I see logging for superpickaxe coming. If WE will use the instaBreak fuction introduced with CB #561, I can monitor this and even log.
     
  13. Offline

    Madmonkey

    DiddiZ im using multiverse but i put the world name in the config but when i use bedrock/wooden pick it just said world isn't logged
    the only world it can log is the default world
     
  14. Offline

    DiddiZ

    Hm, tested multiverse and found it working, so it's propably your config. Please post your worldNames, worldTables and the folder names where these worlds are located.
     
  15. Offline

    rakiru

    Oh good. I came on here to say that beds weren't either, but I'm guessing that was fixed at the same time?

    And glad to hear there's an instaBreak function in bukkit now. If WorldEdit uses it, then this plugin will be complete imo. The only other thing I need then is for WorldEdit to log the coordinates along with the commands.

    Edit: I've just realised that dispensers etc aren't treated in the same way as chests. Is this a bukkit thing, or just not something you've added? I'm not requesting this feature or anything, but just thought I should mention it.
     
  16. Offline

    DiddiZ

    That would be good, since I've v0.9, and don't want to go to v1.0 without a sicnificant resaon :D
    Same like furnaces, I forgot it :D. Anyway, I've to rewrite many hooks, bukkit changed them again (why, bukki, why?), this will be added together with support of multiple blocks taking object like doors and beds.
     
  17. Offline

    rakiru

    I gave up writing plugins for the time being because of the constant changes. It doesn't help when I'm relativly new to java. lol

    Performance problem: Any time I do a big roolback (1500-2000+ blocks or so), I get this:
    Code:
    [SEVERE] [LogBlock Rollback] java.lang.NullPointerException
     
  18. Offline

    DiddiZ

    This means that for some reasone one block wasn't available for rollback. The rollback should continue.
     
  19. Offline

    rakiru

    The console gets spammed by this message though, but the rollback completed message still shows up in my client, but the server has frozen by then and everyone time's out until i restart it.
     
  20. Offline

    DiddiZ

    Ah, uh
    That's only known for rollbacks over 25k blocks.
    It looks like rollbacks overcharge the server, I'm still searching for a solution.

    Released v0.9d
    Finally fixed rollbacks (big thanks to Edward Hand). Rolled back a million blocks without any problem.
    Rollbacks are now way faster (1.12 mio blocks in 19 sec insteed of 3 hours).
    Renamed "/lb rollback cuboid" (this was lame, besides) to "/lb rollback selection).
    Added WE support. I like the client mod, makes selecting a lot easier.

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

    Taco

    It appears that your website is down, can you post another download source?
     
  22. Offline

    DiddiZ

  23. Offline

    Insidiea

    Im getting this error, it was working fine an hour ago
    [LogBlock] SQL exception
    com.mysql.jdbc.MysqlDataTruncation: Data truncation: Out of range value for column 'x' at row 1
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
    at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
    at de.diddiz.LogBlock.LogBlock$Consumer.run(LogBlock.java:576)
    at java.lang.Thread.run(Unknown Source)

    Does it have somthing to do with your website?
     
  24. Offline

    DiddiZ

    Oh, no.
    You've probably a large map? Larger than a radius of 32767?

    If so, there are two easy fixes:
    Either you limit you map to a radius of 32k blocks, or you change the data types of the colums x and z from smallint to medium int, which allows you a radius of 8,388,607 blocks.
     
  25. Offline

    Insidiea

    Can i change to large int :D

    Oh and also, how do i list the worlds to log?

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

    DiddiZ

    More than int isn't supported.
    Default, every row needs 22 bytes.
    If you cange x and z to medium, the row will need 24 bytes and with int 26 bytes.
    This should result in a 9% rsp. 18% larger database.
    worldNames in config
     
  27. Offline

    bLazem

    Im getting this error when peeps building on my secondary map.

    Code:
    12:28:46 [SEVERE] [LogBlock] SQL exception
    com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'playerid' in 'field list'
            at sun.reflect.GeneratedConstructorAccessor69.newInstance(Unknown Source)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
            at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
            at com.mysql.jdbc.Util.getInstance(Util.java:381)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
            at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
            at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
            at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
            at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
            at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542)
            at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734)
            at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2019)
            at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1937)
            at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1922)
            at de.diddiz.LogBlock.LogBlock$Consumer.run(LogBlock.java:576)
            at java.lang.Thread.run(Thread.java:662)
    
    also LB not working on saiod map altho it is listed as a world to log in config
     
  28. Offline

    DiddiZ

    You need to run the sql tables updates from vo.7
    Code:
    INSERT IGNORE INTO `players` (`playername`)
    SELECT DISTINCT `player`
    FROM `%table%`;
    
    ALTER TABLE `%table%` ADD `playerid` SMALLINT UNSIGNED NOT NULL DEFAULT '0' AFTER `player`;
    
    UPDATE `%table%` INNER JOIN `players` ON `%table%`.`player` = `players`.`playername`
    SET `%table%`.`playerid` = `players`.`playerid`;
    ALTER TABLE `%table%` DROP `player`;
    Or simply drop the tables.
     
  29. Offline

    bLazem

    Which is easiest / quickest / best??
     
  30. Offline

    DiddiZ

    To trop the tables (only the ones for the for your second world) would be the easiest and quickest.
    But it's way better to keep your log (my opinion). You don't need to download anything, just execute the sql code posted above (Replece %table% with the table name of your second map, specified under worldTables.
     
  31. Offline

    swedish2011

    Code:
    2011-03-26 22:21:49 [SEVERE] [LogBlock] SQL exception
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
    
    The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:346)
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2334)
        at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2371)
        at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2163)
        at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:794)
        at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
        at sun.reflect.GeneratedConstructorAccessor17.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
        at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:378)
        at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at bootswithdefer.JDCBPool.ConnectionService.getConnection(ConnectionService.java:73)
        at bootswithdefer.JDCBPool.JDCConnectionDriver.connect(JDCConnectionDriver.java:41)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at de.diddiz.LogBlock.LogBlock.getConnection(LogBlock.java:292)
        at de.diddiz.LogBlock.LogBlock.access$2(LogBlock.java:289)
        at de.diddiz.LogBlock.LogBlock$Consumer.run(LogBlock.java:593)
        at java.lang.Thread.run(Unknown Source)
    Caused by: java.net.ConnectException: Connection timed out: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(Unknown Source)
        at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
        at java.net.PlainSocketImpl.connect(Unknown Source)
        at java.net.SocksSocketImpl.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.connect(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at java.net.Socket.<init>(Unknown Source)
        at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.java:254)
        at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:295)
        ... 21 more
    2011-03-26 22:21:49 [SEVERE] Exception in thread "Thread-290"
    2011-03-26 22:21:49 [SEVERE] java.lang.NullPointerException
    2011-03-26 22:21:49 [SEVERE]    at de.diddiz.LogBlock.LogBlock$Consumer.run(LogBlock.java:594)
    2011-03-26 22:21:49 [SEVERE]    at java.lang.Thread.run(Unknown Source)
    ? :O
     

Share This Page