[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. Hey Intelli, any possible way to have the information that the data is logged to be compress half the size or more? Flat Files / MySQL took up about 12 to 15Gb in a matter of a couple of days. Anyway to reduce the files?
     
  2. Offline

    Intelli

    Try disabling liquid tracking, as a single bucket can create thousands of water "blocks".
     
  3. Offline

    polo3400

    Any eta on that update?
     
  4. Offline

    Intelli

    CoreProtect Version 1.40
    • Made it so colour codes on signs are logged properly and signs are rolled back properly with coloured text.
    • Improved speed of rollbacks/restores when rolling back old data.
    • Fixed it so modified servers can't corrupt logged sign text data.
    • Modified it so all error messages print out more information in the console.
    • Fixed it so the plugin no longer crashes the server when sand/gravel fall into the void.
    • Added fix for errors occasionally showing when endermen picked up blocks.
    • Fixed error spam showing when attempting to run commands via the console.
    • Added ability to create a blacklist of users to not log data for.

    Extra Details
    One of the new features is that if someone does (for example) "/co rollback <user> t:1y", or any other large time amount, but the player has only been only joined the server 15 minutes ago, rather than scanning through 1 years worth of block data, it'll see that it only needs to scan through the last 15 minutes of data and not 1 year of data. This makes things much more efficient - especially for people who don't use the commands properly.

    Additionally, users can now create a "blacklist.txt" file in the CoreData folder, with a list of users to not log data for (one name per line). This is especially useful for Tekkit servers.
     
    kahlilnc likes this.
  5. Offline

    Otoris

    Any chance for chest inventory rollback? Maybe even who took what from said chest log? :D
     
  6. Offline

    Gilatar

    Just had a major griefer destroy most of my server. This baby fixed in a matter of seconds. Thanks Intelli for making an awesome plugin!
     
  7. Offline

    lord_jacob

    Looks Awesome!!
    Ill try it out now!
     
  8. Offline

    owenftw

    Thanks for the new update with logging the colour on signs :)
     
  9. Offline

    Intelli

    CoreProtect v1.41 is now available.

    I unfortunately still had some code in 1.4 that I used for testing colour codes on signs, which results in the first line of logged text being pink if you roll it back. This is now fixed in 1.41
     
    kahlilnc likes this.
  10. Offline

    shaPP

    I have an problem using it with mysql logging. When i start server it blocking at: 00:43:57 [INFO] [CoreProtect] Enabling CoreProtect v1.41, nothing else after. Is connected to database, i have plugins tables here but it still don't work. (sorry for bad eng :-s)
     
  11. Offline

    Nentify

    This seems like a very good plugin, are you able to rollback selected regions with it via WorldEdit?

    This is what I use most and prefer to use for rollbacks.

    EDIT: Also, does it have a web interface like HawkEye? This is one of my favourite features in HawkEye, especially for things like IP checks and all-time block breaks/places and ease of searching through logs.
     
  12. Offline

    Com_Wiz

    man, your amazing. This plugin is EPIC!!!! Thank you soo much for making it and please DON'T discontinue it plzzzzz!!!!
     
  13. Offline

    Profjb

    Dude this PLUGIN is amasing. I was looking for a good tekkit server rollback. and log This is the best ive ever seen I was using swatchdog before. Now instead i trust this plugin so much ive deleted it for full and forever am using this. It remindes me of bigbrother in the old days. Thank you very much for this plugin Profjb, pround server owner. :D
     
  14. Offline

    owenftw

    wait.. what does the restore command even do.

    I tryed to restore somebodys stuff because it said {Player has placed Sign} but there was no sign there so I tryed the restore command and it just said 0 blocks changed.
    I even set the time and radius over double then it should be.

    Then I rollbacked something and did the the restore and that worked.
    Can you only restore after you have done a rollback?
    because am thinking along the lines of the logblock feature.
     
  15. Offline

    SuperPyroManiac

    Is there ANY way you could make it use a specific toolblock and show all edits without double clicking? I hate the lookup mode toggle, I find it stupid and less efficient.
     
  16. Offline

    Intelli

    Everyone, thanks for the feedback.


    Yep, restore is ultimately to undo rollbacks.
    In the event that something is messed up, you "can" do what you said and rollback and then restore a user, but that generally shouldn't be necessary.
     
    owenftw likes this.
  17. Offline

    nicquehen

    Does core protect log the "item-pickup" and the "item-drop" (like death drop)?
     
  18. Offline

    trout1212

    tekkit support?
     
  19. Offline

    deathwhitch

    My rollbacks no longer work after updating to this version. I can still see who destroyed blocks and use the rollback command. It goes through the motions like normal, but it always says 0 blocks changed. I am not sure why. It was working before and all I updated was to the newest recommended build of craftbukkit and then this. is there a way to fix it?
     
  20. Offline

    grid21

    Ok I'm using a dynmap and coreprotect gets this error when I use the two together

    2012-06-04 15:35:32 [SEVERE] Could not pass event BlockFromToEvent to CoreProtect
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304)
    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.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:92)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:92)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.BlockStationary.i(BlockStationary.java:32)
    at net.minecraft.server.BlockStationary.doPhysics(BlockStationary.java:24)
    at net.minecraft.server.World.k(World.java:518)
    at net.minecraft.server.World.applyPhysics(World.java:493)
    at net.minecraft.server.World.update(World.java:459)
    at net.minecraft.server.World.setData(World.java:405)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:91)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:119)
    at net.minecraft.server.World.c(World.java:1067)
    at net.minecraft.server.BlockFlowing.onPlace(BlockFlowing.java:308)
    at net.minecraft.server.Chunk.a(Chunk.java:417)
    at net.minecraft.server.World.setRawTypeIdAndData(World.java:344)
    at net.minecraft.server.World.setTypeIdAndData(World.java:443)
    at net.minecraft.server.BlockFlowing.flow(BlockFlowing.java:169)
    at net.minecraft.server.BlockFlowing.a(BlockFlowing.java:148)
    at net.minecraft.server.WorldGenLiquids.a(SourceFile:36)
    at net.minecraft.server.BiomeDecorator.a(SourceFile:215)
    at net.minecraft.server.BiomeDecorator.a(SourceFile:27)
    at net.minecraft.server.BiomeBase.a(SourceFile:215)
    at net.minecraft.server.ChunkProviderGenerate.getChunkAt(SourceFile:460)
    at org.bukkit.craftbukkit.generator.NormalChunkGenerator.getChunkAt(NormalChunkGenerator.java:49)
    at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:176)
    at net.minecraft.server.Chunk.a(Chunk.java:790)
    at net.minecraft.server.ChunkProviderServer.getChunkAt(ChunkProviderServer.java:107)
    at net.minecraft.server.PlayerInstance.<init>(PlayerInstance.java:26)
    at net.minecraft.server.PlayerManager.a(PlayerManager.java:60)
    at net.minecraft.server.PlayerManager.movePlayer(PlayerManager.java:156)
    at net.minecraft.server.ServerConfigurationManager.d(ServerConfigurationManager.java:169)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:412)
    at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
    at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
    at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:567)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:459)
    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 a.a.a.b.a(CoreProtectionBlockListener.java:391)
    at sun.reflect.GeneratedMethodAccessor71.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:302)
    ... 122 more

    Can you work on it and make it work with dynmaps?
     
  21. Offline

    Shtatic

    We are having the same problem that deathwhitch has. Everything was working fine until the update. Now we can do everything but rollback. The command works though it always says 0 blocks were changed no matter what.
     
  22. Offline

    deathwhitch

    I use dynmap and i dont get this error, only issue I have is rollbacks not working. I don't think its releated to dynmap. Maybe try reinstalling or restoring your dynmap to default config settings
     
  23. Offline

    grid21

    I get this error when I go to load a new part of the map. Maybe I should try loading more of the map and then reinstall CoreProtect. Would that be a good idea?
     
  24. Offline

    jackzilla

    I just tried using this plugin. I love it, but i noticed one issue with it. I doesn't log any blocks placed/broken from World Edit. So there is absolutely no way to rollback those blocks.

    Is there any way to fix this?
     
  25. Offline

    deathwhitch

    Use world edits //undo command

    Yeah I did do that, I did the full render command back before I started using core protect so that may fix it
     
  26. Offline

    jackzilla

    I'm aware of that command, but I was trying to rollback something another player who already logged off had done with world edit. There was no way for me to undo it.
     
  27. Offline

    deathwhitch

    I have no idea, Ive never actually tried to rollback a world edit mistake. Id play around with it right now to find out for you but my rollback command wont roll anything back at all. If i knew where to download the previous version of the plugin I'd do that at this point
     
  28. Offline

    grid21

    Ok I'll try it and see what happens! Thanks man!
     
  29. Offline

    Intelli

    Out of memory. If you're manually managing memory, make sure you aren't setting all your system memory for use with minecraft. For example, if you have 8GB of memory, you shouldn't set it to let Minecraft use more than 6-7GB.
     
  30. Offline

    grid21

    Ok my memory is set like this. My memory for Minecraft is 1G and my server is set to -Xmx1.5GB for high and -Xms800MB for low. I really think that something is wrong with your plugin if it glitches out using dynmap. The memory has nothing to do with it. Correct me if I'm wrong.
     

Share This Page