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

    THEK

    I'm getting some more problems. I'm getting the "Queue Overloaded" even when the max time between transactions is set to 1.

    Secondly I'm getting the following error which I believe is crashing my server:
    Code:
    2011-05-01 23:58:03 [SEVERE] [LogBlock] SQL exception
    java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2570)
        at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:779)
        at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:622)
        at de.diddiz.LogBlock.LBPlayerListener.onPlayerJoin(LBPlayerListener.java:57)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:206)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:257)
        at net.minecraft.server.ServerConfigurationManager.a(ServerConfigurationManager.java:94)
        at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:95)
        at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:33)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:87)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:370)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:285)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    Any idea what this is?
     
  3. Offline

    DiddiZ

    set useBukkitScheduler to false and delay to 5.
     
  4. Offline

    THEK

    Thank you. I'll let you know the results :)
     
  5. Offline

    anon

    Is there any way to rollback a player with a space on their name?
     
  6. Offline

    CraftSwede

    I'm having some problems with normal players being able to use the "loggable super-pickaxe" to check logs. I have checked the permission nodes and everything seems fine in there too. So I don't quite understand how they are able to use it.
     
  7. Offline

    THEK

    Hiya,

    Sorry, still getting the following exception:
    Code:
    2011-05-02 02:12:36 [SEVERE] [LogBlock] SQL exception
    java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2570)
        at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:779)
        at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:622)
        at de.diddiz.LogBlock.LBPlayerListener.onPlayerJoin(LBPlayerListener.java:57)
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:206)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:59)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:257)
        at net.minecraft.server.ServerConfigurationManager.a(ServerConfigurationManager.java:94)
        at net.minecraft.server.NetLoginHandler.b(NetLoginHandler.java:95)
        at net.minecraft.server.NetLoginHandler.a(NetLoginHandler.java:33)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:87)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:370)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:285)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
     
  8. Offline

    user_44103

    Hello,
    if I try to rollback a tnt explosion, the plugin says, no changes found but 1 blacklist collisions. Anybody can help?
    I tried this
    /lb rollback player TNT 5 hours
    or the player who placed
    /lb rollback player Marcib***** 10 minutes
    both doenst work for rollback TNT.
    I think this isn't the right command.

    MFG
     
  9. Offline

    TehMushy

    Ah OK. Thanks, sorted it out just after you mentioned that. ;)
     
  10. Offline

    DiddiZ

    Don't think to. Don't even think that spaces in names are allowed anyway.
    You can open the lb-players table and remove the space, or replace witn a '_' and rollback as normal.
    Using the superpickaxe to view block history?
    There is something holding a write lock at the table. Maybe there was a mc server while the consumer was writing?
    Restart the mysql server.
    The blacklist collision is the tnt block. You are probably not logging tnt explosions. Make sure that you set logging.logTNTExplosions to true.
     
  11. Offline

    user_44103

    Thank you, that was the problem.

    MFG

    PS: sry for my bad eenglish
     
  12. Offline

    Shanie

    I am still getting this issue as well. Restarting the SQL server fixes the issue, but only temporarily. Any ideas? I have mine running through root user for testing purposes, and that doesn't even seem to help. I'm going to try setting Consumer Delay to 30 and see if that fixes it.
     
  13. Offline

    DiddiZ

    Released v0.15

    Added lava flow logging, more consumer configuration, improved rollback etc.

    Hm, reworked the connection pool, could work now.
     
  14. Offline

    Daniel Heppner

    Could someone tell me if this is faster or slower then BigBrother? I'm running a 12 person server on 250MB of ram and I need as much ram to spare as possible. Will this use less ram?
     
  15. Offline

    DiddiZ

    Definitely LogBlock, don't have exact data, but:
     
  16. Offline

    o0AzzA0o

    logblock is faster but i with testing with 40 players on line i suggest dropping the delay setting to a lower value then 6....... the reason for that .... for me at least is i dont get a build up queue which later can cause higher resource consumption and a delay in restarts while the queue emptys i have set my delay to 2 and since have not had any troubles with queue buildup.

    I think bb has something that lb could maybe pickup on and that is the command usage its allot to write out /lb rollback playerarea why not just /lb rollback exampleplayer r:30 t:40m its by far alot less confusing then /lb rollback playerarea exampleplayer 30 1 day

    for area rollbacks could just be /lb rollback r:40 t:1h

    probably would cause to much confusion to change it now.

    also id consider only keeping logs to 3 days the larger the database gets the slower the lookup times when doing search...... but almost 0 compared to bb with after logging for 5 days with bb the lookup time drasticly increases to something like 20 seconds for average /bb here


    edit: wow even more options now for how data is transferred to the database
    consumer:

    minCountPerRun: 100 amount of records stored in ram before lb will make transfer to database?
    delayBetweenRuns: 6 amount of seconds between checks for transfer? --id adjust that lower
    maxTimePerRun: 100 max amount of time allow for transfer per run? -- 100seconds seems to long
    maxCountPerRun: 1000 max amount of records allowed per transfer?
    takes around 10 seconds to clear 1000 records for me makes the maxtimeperrun value seem to be irrelevant since the time required to clear max records will always be less....
    useBukkitScheduler: true ???? use built in bukkit ticks? vs?

    ill figure out optimal settings for above after testing but i think that a little and often approach seems to make things run smoother
     
  17. Offline

    DiddiZ

    Well, I'm announcing the commands uppade for nearly 2 months now, but i will come :D
    Will allow flexible commands with the paramers:
    player - list of one or more players
    area - followed by the radius
    selection - the current worldedit selection
    block - list of block types to show
    created, destroyed - show only created or destroyed blocks
    time - like the current time format
    since - a date maybe "12.04.11"
    limit - how many rows to show
    world - will allow lookup, rollback commands from console
    asc, desc - change the order of displayed log

    Since I need to generate complex sql queries this alredy some time, but I'm maybe 3/4 way done. This is a spoiler to upcoming updates :D
    This will allow to bind queries to tools, need to confirm rollbacks, etc.
    Damn, forgot to explain the config :D

    delayBetweenRun - seconds between consumer runs.
    The consumer will run until the queue is empty or minCountPerRuns is reached. If queue isn't empty afterwards, and the consumer didn't use more then maxTimePerRun milliseconds, it will run until maxCountPerRun or maxTimePerRun.
    Complicated, I know.
    minCountPerRun is to force the consumer to work, even if there is high cpu load.
    On a system with high cpu load in can happen, that the consumer only processes 10 blocks per run, with would lead to an overloaded queue.
    maxTimePerRuns is there to ensure, that there will be also cpu time for the mc server.
    maxCountPerRun could be Integer.MAXVALUE, but it's not adviseable to flood the mysql server.
     
  18. Offline

    crazydog

    I can't check block histories with 0.15. Placing bedrock/right clicking with wood pick just does nothing ('cept place bedrock).
    0.14 still works just fine.
     
  19. Offline

    DiddiZ

    Did LB even run?
     
  20. Offline

    alrik94

    Code:
    2011-05-02 17:48:48 [SEVERE] [LogBlock] Error while fetching connection
    java.sql.SQLException: Access denied for user '(myusername)'@'(SQL server)' (using password: NO)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:931)
        at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4031)
        at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1296)
        at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2338)
        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.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.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 de.diddiz.util.ConnectionPool.getConnection(ConnectionPool.java:69)
        at de.diddiz.LogBlock.LogBlock.getConnection(LogBlock.java:532)
        at de.diddiz.LogBlock.LogBlock.onLoad(LogBlock.java:78)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:88)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:217)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:204)
        at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:144)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:259)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    2011-05-02 17:48:48 [SEVERE] [LogBlock] Exception while checking database connection
    java.lang.NullPointerException
        at de.diddiz.LogBlock.LogBlock.onLoad(LogBlock.java:79)
        at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:88)
        at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:217)
        at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:204)
        at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:144)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:259)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:394)
    I'm getting this error. I have no idea why it's doing this. I AM using a password in the config file. It says I am not...
     
  21. Offline

    DiddiZ

    Try recreating the config.
     
  22. Offline

    alrik94

    I figured it out. Recreating the config didn't work. I decided to use my website's SQL server as the main SQL server for my minecraft server. For some reason, Brohoster's MySQL doesn't seem to work for me. Thanks, though!
     
  23. Offline

    L24D

    Well crap... it still doesnt support SQLlite :(
    been waiting forever in hopes of having a good logging tool... Unless i missed some details, I must continue to wait :p. The one i have now doesn't log half of what goes on.. (Log, currently at v0.4). but it's the only one that uses SQLlite/flatfile. Please add support for it? My server is suffering terribly from it... *plays a tune on the world's smallest violin* :p. but seriously though, it would be awesome if you would do that though. :). Thanks!
     
  24. Offline

    FloydATC

    I can't roll back a player who has an underscore ("_") in his name. Is this a known problem? There's no error message but the plugin finds 0 changes. Checking with a bedrock confirms that the changes have been logged to that character.

    Another thing: v0.15 doesn't accept my MySQL username/password. Rolling back to v0.14 works. Tried deleting config.yml, restarting and re-editing, still no go. Had this problem before and the trick worked, now it doesn't.

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jul 18, 2016
  25. Offline

    DiddiZ

    Tested and found no problems with underscores. Did you miss the time?
    Hm, you are not alone with that. I've no clue what's going on there. I can't reproduce the problem, or even figure out what could cause the issue. Once I compared a working and a not working config file, and found no diffenrence ecept the order.
     
  26. Offline

    Greylocke

    When rolling back damage in a sandy area, the sand blocks would fall after being placed. It took some 'grooming' of the area to put back the original landscape. Is there any way to rollback sand & gravel without triggering their physics?
     
  27. Offline

    DiddiZ

    Well, I disabled physics updates on rollback, but this seems only to affect fluids. The easiest way to restore sand and gravel fields, would be WorldEdits' "//regen" command.
     
  28. Offline

    KingPin

    same issue here with mysql on .15, was working fine in .14 but wont accept creds on .15. is the DB name or the password hardcoded in the plugin somewhere by accident in .15?
     
  29. Offline

    DiddiZ

    No ... that would at least be an easy fix. v0.15 works for most people, I yet only heard of 4 with that problem. It's most likely a variant of the problem, that could be solved with recreating the config. I'm working on it, but don't really have a clue,
     
  30. Offline

    KingPin

    im on ubuntu 10.10 x64 using CB 755 (was on 740 before) if the info gives you any clues.
     
  31. Offline

    dirkson

Share This Page