[SEC/ADMN] CoreProtect v2.0 - Fast Block Logging / Rollbacks / Now With Chest Rollbacks [BukkitDev]

Discussion in 'Archived: Plugin Releases' started by Intelli, Mar 9, 2012.

  1. Offline

    Yagman5000

    Just to clarify, if you were to roll-back lava/tnt damage, would it tell you who placed (or ignited, or both) or placed the lava? I'm pretty sure it lets you roll-back the damage, but does it tell you who? So you know who the griefer was? :p
     
  2. Offline

    bounceraff

    I get this over and over again every like 20 - 30 mins

    01:39:23 [SEVERE] Could not pass event BlockFromToEvent to CoreProtect
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:303)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:459)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:106)
    at net.minecraft.server.World.a(World.java:2409)
    at net.minecraft.server.World.doTick(World.java:1757)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:538)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Caused by: java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Unknown Source)
    at com.minerealm.core.CoreProtectionBlockListener.onBlockFromTo(CoreProt
    ectionBlockListener.java:394)
    at sun.reflect.GeneratedMethodAccessor3.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:301)
    ... 8 more
    01:39:23 [SEVERE] Could not pass event BlockFromToEvent to CoreProtect
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja
    va:303)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav
    a:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j
    ava:459)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:106)
    at net.minecraft.server.World.a(World.java:2409)
    at net.minecraft.server.World.doTick(World.java:1757)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:538)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Caused by: java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Unknown Source)
    at com.minerealm.core.CoreProtectionBlockListener.onBlockFromTo(CoreProt
    ectionBlockListener.java:394)
    at sun.reflect.GeneratedMethodAccessor3.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:301)
    ... 8 more
     
  3. Offline

    soulgriever

    does this work properly on tekkit 2.1.1 (craftbukkit 1.1R4)
     
  4. Offline

    Slaand

    2012-04-09 10:01:27 [SEVERE] Could not pass event BlockPistonExtendEvent to CoreProtect
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459)
    at net.minecraft.server.BlockPiston.g(BlockPiston.java:75)
    at net.minecraft.server.BlockPiston.doPhysics(BlockPiston.java:52)
    at net.minecraft.server.World.k(World.java:520)
    at net.minecraft.server.World.applyPhysics(World.java:500)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:53)
    at net.minecraft.server.BlockRedstoneWire.doPhysics(BlockRedstoneWire.java:295)
    at net.minecraft.server.World.k(World.java:520)
    at net.minecraft.server.World.applyPhysics(World.java:498)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:53)
    at net.minecraft.server.BlockRedstoneWire.doPhysics(BlockRedstoneWire.java:295)
    at net.minecraft.server.World.k(World.java:520)
    at net.minecraft.server.World.applyPhysics(World.java:500)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:53)
    at net.minecraft.server.BlockRedstoneWire.doPhysics(BlockRedstoneWire.java:295)
    at net.minecraft.server.World.k(World.java:520)
    at net.minecraft.server.World.applyPhysics(World.java:498)
    at net.minecraft.server.BlockRedstoneWire.g(BlockRedstoneWire.java:53)
    at net.minecraft.server.BlockRedstoneWire.doPhysics(BlockRedstoneWire.java:295)
    at net.minecraft.server.World.k(World.java:520)
    at net.minecraft.server.World.applyPhysics(World.java:495)
    at net.minecraft.server.World.update(World.java:461)
    at net.minecraft.server.World.setTypeIdAndData(World.java:445)
    at net.minecraft.server.BlockDiode.a(SourceFile:66)
    at net.minecraft.server.World.a(World.java:2409)
    at net.minecraft.server.World.doTick(World.java:1757)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:538)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Caused by: java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Unknown Source)
    at com.minerealm.core.CoreProtectionBlockListener.onBlockPistonExtend(CoreProtectionBlockListener.java:317)
    at sun.reflect.GeneratedMethodAccessor149.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.java:301)
    ... 30 more

    i have this errors 1000000 times in the night idk why
     
  5. Offline

    Intelli

    In general, most errors right can can be resolved by setting "pistons: false" in the configuration file.
     
  6. Offline

    CheesyWalnut

    if you click a block with the inspector does it inspect the block you clicked or the block on top of it? im confused
     
  7. Offline

    AlphaPrimeCW

    Sometimes when you try to rollback someone, the rollback freezes (error shown in console) and no further rollbacks are possible until you restart the plugin/server.
    message given "another rollback/restore is in progress"
    can you add a command to reload the plugin or make it so failed rollbacks are closed and other rollbacks are possible without restarting?
    BTW i am an admin on a server using this so i don't have access to the console to copy the error sorry.
     
  8. Offline

    jithins

    16:44:19 [SEVERE] Could not pass event BlockFromToEvent to CoreProtect
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:144)
    at net.minecraft.server.World.a(World.java:2409)
    at net.minecraft.server.World.doTick(World.java:1757)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:538)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Caused by: java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Unknown Source)
    at com.minerealm.core.CoreProtectionBlockListener.onBlockFromTo(CoreProtectionBlockListener.java:394)
    at sun.reflect.GeneratedMethodAccessor23.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.java:301)
    ... 8 more
    this is the error im getting and whn this happens the commands player use wont show up
    canu fix this or is it something i have to do
     
  9. Offline

    Intelli

    How to use the inspector.
    Once you have the inspector enabled ("/core inspect"), you can do the following:
    • Left-click a block to see who placed that block.
    • Left-click on top of a block to see what block was removed at that location.
    • Right-click (place) a block in a location to see what block was removed at that location.
    • Right-click (place) a block in another block to see who placed it. (ex: place dirt in water to see who placed the water)
    • Right-click on a door,button,lever,chest,etc, to see who last used it.

    So if you left click the side of a block, it'll tell you who placed that block.
    If you left click on top of a block, it'll check to see what block was removed on top of the block you clicked.
     
  10. Offline

    soulgriever

    Intelli is there a working version for 1.1 R4
     
  11. Offline

    CheesyWalnut

    is there a way to list the full history of a block?
     
  12. Offline

    Intelli

    Enable double-click in the configuration file.
     
    kahlilnc likes this.
  13. Offline

    Zediious

    This Plugin Has Saved Me! I Have Been Trying To Set Up MySQL For LogBlock For AGES Until I Found This. The Commands Are Easy to Use And Permissions Are Easier To Set Up! You Deserve These [diamond][diamond][diamond][diamond][diamond]
     
  14. Offline

    saucecode

    Hello, I've just had a problem with griefers on my own server, and I had this plugin running the whole time! It really does live up to its name, and is truly fast and efficient!
    A home disappeared, and was replaced with trees, so I just deleted the trees and used the rollback function, and the house was perfect. This plugin really lives up to the hype. Will be using this for a long time!
     
  15. Offline

    Don Redhorse

    with the latest api it should be possible to add this... requires quite some code though

    a) listen to inventory open event
    b) store inventory in memory
    c) listen to inventory closed event
    d) compare inventory with inventory in memory and log it.

    at least that would be the rough idea... don't know if it would work in code though as there is always bukkit and it's quirks..
     
  16. Offline

    but2002

    Intelli

    Improvement for storage using MySQL to make things much quicker and save a significant amount of space:
    [​IMG]

    Notice how you're storing the username for each edit? Well a much more efficient way would be to detect new players, and store them in a seperate table with a unique ID
    This is a page from Hawkeye's book
    [​IMG]

    Now here's another screenshot showing the actual storage table:
    [​IMG]

    Note that player_ids are stored instead of usernames. When there are thousands upon thousands of rows, this saves a SIGNIFICANT amount of space.
     
  17. Offline

    Intelli

    CoreProtect 1.34
    • Fixed it so invalid or corrupted data in rollbacks is ignored.
    • Made it so if someone breaks an air block (using hacks), the data is not logged.
    • Pistons pushing blocks in a loop (redstone circuits) will no longer eat up memory.
     
  18. Offline

    Yagman5000

    Can you make it so you can view block history? At least from different players? Like, I had a player who was griefed, and then he fixed it. When I went to inspect, it only showed his placements, not the dude that supposedly "griefed". So then there's no way for me to know and prove it.. : ( Could you make it so you can view block history? Would be GREATLY appreciated. Last action from such player is fine, don't need a full history. Just so I can see all the names :p
     
  19. Offline

    polo3400

    Can you consider changing the rollback params to p:[name] instead of u:[name] ? Its easier to type and other plugins like Hawkeye use it, lots of us are used to it.

    One other thing, seeing who took what out of chests; it would seal this plugin :)

    - I love it, please keep it alive! So so better than all the other plugins out there like this one!
     
  20. Offline

    Courtney

    First...
    I just wanted to comment letting you know how much I appreciate you making this plugin.
    This plugin is great and I hope you keep with it, glad I finally found a plugin to do what I needed.
    And the fact that it offers both Mysql and flat files is great, keep up the good work.


    Second I have a couple feature request...

    /co lookup <Number> <Username> -
    Would show the users last few actions depending on what number you entered.

    Also I saw this in Hawkeye..
    Rollback previews, that might be a nice feature.
     
  21. Offline

    Intelli

    Enable "double-click" in the configuration file.

    I'll probably add the option in an upcoming version. To note though, you don't even need to type "u:" - you can just type (for example) "/co rollback Notch t:1h".

    Definitely something I'll consider.
     
  22. Offline

    polo3400

    Thanks, and i didn't realize :') i don't understand how this double click thing works btw, I enabled it, but in the game, what do I do? Just double left click a block?
     
  23. Offline

    Intelli

    Yep
     
  24. Offline

    ImHackinBored

    Using 1.34 I keep getting...

    19:16:11 [SEVERE] Got an exception when breaking a block!
    19:16:11 [SEVERE] java.lang.NullPointerException
    19:16:11 [SEVERE] at com.minerealm.core.CoreProtectionFunctions.log_break(
    CoreProtectionFunctions.java:415)
    19:16:11 [SEVERE] at com.minerealm.core.CoreProtectionEntityListener$1Basi
    cThread.run(CoreProtectionEntityListener.java:54)
    19:16:11 [SEVERE] at java.lang.Thread.run(Unknown Source)

    This occurs roughly about every 10 seconds thus spamming a lot. It never use to do this.
     
  25. Offline

    IAnon

    I think I found my next Anti-Griefing Plugin :D
     
  26. Offline

    Intelli

    Thanks for the bug report. This should now be fixed in 1.35

    If you could confirm if it's fixed, that would be great, as I was unable to re-produce the issue in a test environment.
     
  27. Offline

    mazzizo

    Sorry if this has been asked or is clarified elsewhere, but I did not see it anywhere. Is it necessarily a bad thing to have this go through a MySQL database or does it make a difference? Any benefits/cons?

    Thanks!
     
  28. Offline

    Intelli

    Should be fine - MySQL is handy if you want to store data remotely.
    Currently, rollbacks when using MySQL will be noticeably slower. This is something we will hopefully resolve in a future version though.
     
  29. Offline

    mazzizo

    Thanks for the timely reply! I think I'll wait to see if ya'll will fix it at a later time then. If you do, I'll be moving to using it. :p
     
  30. Offline

    jfreeze256

    Hey folks! Here is a video tutorial of this plugin!

    Hopefully it's helpful :)
     

Share This Page