Grief Prevention
AUTOMATICALLY PREVENTS ALL FORMS OF GRIEF, including build/break, theft, spam, fire, spawn camping, lava dumping, chat trolling, advertising and more, so you don't have to undo any damage after the fact. It even teaches players how to use it so you don't have to! No configuration or database required. Stop responding to grief and prevent it instead. Grief Prevention will solve your grief problems without requiring you to manage a roster of trained administrators, juggle 10 different anti-grief plugins, take away cool standard game features, publish a training manual / tutorial for players, or add explanatory signs to your world. You can also choose to integrate PvP elements into build design to finally get a PvP experience befitting a sandbox game about creative building.
Grief Prevention stops grief before it starts automatically without any effort from administrators, and with very little (self service) effort from players. Solve all your grief problems with a single download, no database, and no configuration step.
Got a question or found some random bug? Check the documentation!
Got a problem or bug you can reliably reproduce? Or a feature request? Report it on the issue tracker!
Also, you might be able to catch me/others on the #GriefPrevention IRC channel for help (please state your question and exercise patience if you use this option).
Downloads for older Minecraft Versions
You may also view recent update notes on Github
The Manual
Feature List
Yes, everything is customizable.
- No database or world backups required.
- Extremely efficient CPU / RAM usage.
- Land claims are easy to manage.
- Players create and manage their own land claims, so you don't have to do it for them.
- New players get automatic claims around their first chests so they're protected even if they don't know how to create land claims yet.
- Players who ask for help in chat get an instant link to a demonstration video.
- Resizing claims and creating new claims is done with ONLY the mouse, no slash commands (slash commands are also available).
- When a player appears to be building something nice outside his claim, he's warned and shown his claim boundaries.
- Claim boundaries are easy to see, and don't require any client-side mod installation.
- Extremely easy-to-remember, single-parameter slash commands for giving other players permissions.
- Claim subdivision and granular permissions are available to organize towns and cities. Watch this video.
- It's IMPOSSIBLE to grief a land claim. Watch this video.
- No building or breaking.
- No stealing from ANY containers.
- No sleeping in beds.
- No button/lever usage.
- No adjusting redstone repeaters or other configurable blocks.
- No pushing blocks in with pistons.
- No pulling blocks out with pistons.
- No TNT damage (including cannons).
- No creeper damage.
- No explosive damage from other plugins, like Extra Hard Mode or Magic Spells.
- No enderman/silverfish block changes.
- All doors may be automatically locked (optional, see config file).
- No killing or luring animals away.
- No stealing water (e.g. buckets).
- No trampling crops by players, animals, or monsters.
- No building overtop, all claims reach to the max build height.
- No placing or breaking paintings / item frames / armor stands, etc.
- Fluids will not flow into a claim from outside.
- No placing blocks via TNT/Sand/Gravel cannon.
- Pets and death loot are protected.
- Players can't pick up what another player dropped on death without permission.
- All types of pets are protected everywhere, even outside of land claims (can be configured per-world).
- Excellent anti-spam protection
- Warns, then mutes, then may kick or ban spammers (configurable - you choose).
- Most spammers get only one message out before they're muted.
- Blocks server advertising (IP addresses).
- Blocks repeat message spam.
- Blocks ASCII art (ex. Nyan Cats) spam.
- Blocks similar message spam.
- Blocks unreadable (gibberish) message spam.
- Blocks CAPS.
- Blocks macro spam (very different messages in quick succession).
- Blocks login/logout spam, even when the spammer has multiple accounts.
- Blocks death spam.
- Blocks bot team spam.
- Blocks slash command spam, including /tell, /emote, and any more you add.
- Wilderness Protection and Rollback
- Fire doesn't spread or destroy blocks.
- Creepers and other explosions don't destroy blocks above sea level.
- TNT doesn't destroy blocks above sea level.
- No planting trees on platforms in the sky ("tree grief").
- Instant, point and click nature restoration for not-claimed areas. Watch this video.
- Insanely easy and fast fixes for penises, swastikas, and anything else unsightly.
- Point at what you don't like and click, and it's fixed. Even from far away.
- Never accidentally changes blocks inside land claims.
- No need to investigate who built it, who broke it, or when they did it.
- Doesn't matter if the griefer built with "natural" blocks, it will still be fixed.
- No database.
- No backups.
- No chunk regeneration (it's dangerous for technical reasons).
- Fixes bad chunk generations, like floating islands. It will be better than new.
- Fills holes, even next to water to correct big spills.
- Smooths noisy terrain.
- No griefer construction is safe. If it's unnatural enough to be noticeable by players, it will be removed or filled-in.
- Land claims can't be used as a griefing tool.
- It's impossible to get a player "stuck" inside a land claim.
- Land claims beyond the first require a golden shovel.
- Minimum claim size prevents sprinkling small claims to annoy other players.
- Max claim allowance grows with time played on the server, and can't be cheated by idling.
- A simple administrative slash command will instantly remove all of a griefer's claims, no matter where they are.
- Catches clever griefers.
- Enhances the /ban command to ban ALL a griefer's accounts (not just his IP address).
- Logs sign placements.
- /SoftMute command to shut down chat trolls without them knowing they're beaten.
- Abridged chat logs make reviewing what happened while you were away super-quick and easy.
- Automatically mutes new-to-server players who use racial or homophobic slurs.
- PvP Protections.
- When PvP is off, no setting fire or dumping lava near other players.
- Absolutely bullet-proof anti-spawn-camping protection including bed respawns, which requires no configuration.
- No logging out, stashing items, or using plugin teleportation to escape combat.
- Optional siege mode, to answer players who hide in their claimed houses to avoid combat.
- Supports your server growth.
- Permit players to exchange server currency for claim blocks (requires configuration and other plugins).
- Grant claim blocks automatically for votes, donations, etc (console command provided, other plugins required).
Please Vote for Grief Prevention
I've also posted Grief Prevention on the Spigot site, where plugins are ranked based on reviews. If you love GP, please take a couple of minutes to give GP your rating and leave a short review. Better rating and positive reviews will help server owners who look for plugins on the Spigot site make the safe choice (GP) instead of downloading something sketchy or incomplete. :) Thanks so much for all your support!
http://www.spigotmc.org/resources/griefprevention.1884/
Got a question or found some random bug? Check the documentation!
Got a problem or bug you can reliably reproduce? Or a feature request? Report it on the issue tracker!
Also, you might be able to catch me/others on the #GriefPrevention IRC chat channel for help (please state your question and exercise patience if you use this option).
-
View User Profile
-
Send Message
Posted Oct 10, 2014Hello, i'm running 8.2.2 and scared to upgrade as I've been having nothing but trouble for past few days.
I upgraded to latest version of griefprevention following the performance upgrades however, wasn't away that the database would get switched over to UUID's (my mistkae) i then switched back to the older griefprevention and restored database (mysql) since then anyone making new claims it would have an error about the row not having the correct number of coloumns. so I just upgraded again to 8.2.2 and cut my losses on the UUIID switchover. However... it then said "failed to get UUID for 'playername'" converting claim to administrator claims. so now everyones claim is eithe rdeleted or admin claims. all claimblocks for people that they had before are also gone. which is minor as I'll just transfer over the claims but everytime I restart server now, I get the console flooded with messages about:
[13:42:22] [Server thread/INFO]: [GriefPrevention] Enabling GriefPrevention v8.2.2 [13:42:22] [Server thread/INFO]: GriefPrevention: Grief Prevention boot start. [13:42:22] [Server thread/INFO]: GriefPrevention: Finished loading configuration. [13:42:22] [Server thread/INFO]: GriefPrevention: This owner entry is not a UUID: playername. [13:42:22] [Server thread/INFO]: GriefPrevention: Converted land claim to administrative @ Location{world=CraftWorld{name=world},x=2988.0,y=48.0,z=-236.0,pitch=0.0,yaw=0.0} [13:42:22] [Server thread/INFO]: GriefPrevention: This owner entry is not a UUID: BuYa. [13:42:22] [Server thread/INFO]: GriefPrevention: Converted land claim to administrative @ Location{world=CraftWorld{name=world},x=-1439.0,y=54.0,z=1580.0,pitch=0.0,yaw=0.0}
and so on... is there anyway to fix this? :S
-
View User Profile
-
Send Message
Posted Oct 10, 2014@bigscary
Success!! Completed in just over 2 hours.
It still did not convert players beginning with an "_", but it appears to have worked for everything else. Now the true test, installing it on the actual server... will let you know how it goes.
EDIT: So far so good. Offline player /claims list is working fine for me. Everything seems good so far.
-
View User Profile
-
Send Message
Posted Oct 10, 2014@bigscary
Loaded up our server running v8.23 and it seems to boot at normal speed (6ish seconds to load claims)
We are however having an error running the /claimslist command on any offline player, which produces this error:
-
View User Profile
-
Send Message
Posted Oct 10, 2014Since Yesterday we got a very creepy problem with griefprevention:
You can claim or unclaim land, ca use a stick to see the claim woner, but it is NOT protected. everyone can build and destroy blocks there.
I am using the latest griefprevention, (tested 8.1.8, 8.2.2, 8.2.3) and i really dont know whats the problem there. there are no errors in the console.
I am Using Spigot #1649 with patch.
The really scary thing is, it has been working, but suddenly it stopped... Does someone else have this problem too?
-
View User Profile
-
Send Message
Posted Oct 9, 20148.2.3 Updates
-
View User Profile
-
Send Message
Posted Oct 9, 2014@dutcholdskool
Thanks for the thanks! =D Please sing the praises of GP in your favorite server administration forum.
@dutchrastacraft
Yep, I've started using VirtualVM. Very handy, and very free. By combining its data with the timings reports you've been giving me from your server, I've been very effective at gradually streamlining the most CPU-intensive parts of the plugin.
@Ceees2
I think it might have taken longer because unlike 8.2.2, this version doesn't stop converting early, leaving many players unconverted (and their land claims administrative). Very glad to hear it's working well for you now! I think I'm finally converging on a strategy which will work for everyone.
@erik1988
Alright, I see your points! I will probably eventually do those things, but I think they'd be pretty low on the todo list (no offense intended - I just have bugs to fix, and other features to add which would benefit more servers). I plan to open up the ticketing pretty soon, maybe even next week - hold onto those asks until then? :)
-
View User Profile
-
Send Message
Posted Oct 9, 2014@bigscary
Creeperheal disable drops from explosions, so thats not a problem. This was possible with the beta version of GP and it worked very well, we loved it on the server. Maybe another option would be that I have to add the whole line i the config myself? so its not generated when you generate the config but we just have to add a line that says "allowclaimexplotions:true" or something? This makes things allot of fun because you can actually breach into peoples houses with some explosions. See here for a demonstration: https://www.youtube.com/watch?v=5kYk9WmgTRQ
Also the fact that one is safe from creepers makes it kind of to easy. I like that fact that you can by accident blow up your wall, and that your house is crowded with monsters, util its rebuild by creeperheal.
The placement of blocks in other peoples claims is related to the ting above, since I want people to place TNT.
About the commands, I think this depends on what server you are running but it could defiantly provide some interesting game changes. maybe not the most needed feature, but I think interesting things can come out of it. But if you could deactivate commands for people that lacks certain trust you could for instance block "/sethome". Its a problem that some people sometimes think its funny to "set home" in other peoples houses, so that they can come in and kill them easy later.
-
View User Profile
-
Send Message
Posted Oct 9, 2014Thanks, for the all the updates. Last update fixed all my problems with bonus claim blocks after converting my backup again with version 8.2.2. The conversion took longer than 8.2 though. But that doesn't matter.
-
View User Profile
-
Send Message
Posted Oct 9, 2014@bigscary
I just want to say thank you for your great work.
-
View User Profile
-
Send Message
Posted Oct 9, 2014@delsolsi213
I don't quite understand your question. Monsters are never protected inside land claims. Animals are protected, but you can allow other players to hunt animals in your land claim with /containertrust public (although this also grants access to chests and other containers).
@Lostwave
I'm surprised (maybe appalled) that Location.getChunk() actually loads the chunk. I will update today to eliminate calls to getChunk() where I can. Also I think I can safely allow those underscore/dollar files to be processed, so I will try that.
Also, you're the man for helping me with this. Thanks plenty. =D
@erik1988
You can use /claimexplosions to temporarily allow explosions in land claims, for example for TNT mining. I don't plan to allow explosions inside land claims in general (even by config), mostly because griefers could then abuse that to steal blocks and items from chests (by baiting creepers over to a player's house). Does creeperheal somehow prevent this monster-baiting (haha) abuse?
I do plan to do something LIKE this in the future, to allow for farming with /containertrust. I'm not sure I want to do exactly that, since the only way to prevent grief then is to install specific other plugins. I worry that server owners will toggle the option on without fully understanding the repercussions.
Can you help me understand the commands limiting thing? Maybe with some specific examples? What's the benefit of forcing players outside to use those commands? Note that during PvP combat (and siege, if enabled), GP already blocks teleportation.
Still holding-out on the tickets - I'm not convinced everyone is off those nasty beta versions yet.
@mirolm
I don't plan to add any new storage options. Two is already almost more than I can afford to support. So much testing, so many nuanced bugs... :(
-
View User Profile
-
Send Message
Posted Oct 9, 2014Im loving all the updates and work put into this. Will you open up the ticket system soon? I have some suggestions.
- allow explosions on claims. some of us already uses plugins like creeperheal so we don't mind the explosions, actually it just makes things more interesting.
- Allow placement of certain blocks on other peoples claims (specified in config). I want to be able to place and ignite tnt on other peoples claims, this makes an interesting pvp aspect, where people can break inn. Again, by using creeperheal its not a problem.
- Possibility to disable commands inside claims (specified in config). Sometimes you want to force people outside their safe house to do commands, like home or spawn.
Great plugin!
-
View User Profile
-
Send Message
Posted Oct 9, 2014@bigscary
EDIT: I just want to mention, I am not running this on my actual server. I made a copy of my worlds and a copy of the grief prevention folder. The only plugins I am running are GP, Multiverse-Core and Vault. Until this works all the way, I am using a copy. That could possibly cause some of these issues.
Getting closer. It has been running for 3.5 hours. Got through all the names, now its converting. Renamed all the files.
One issue, I have a 19 players whose names begin with underscore.
FlatFileDataStore skips these on line 140. if(currentFilename.startsWith("$") || currentFilename.startsWith("_")) continue;
So they get changed to administrative claims.
I also got a couple of errors like this:
Then, it ran out of heap space and crashed. I have 10g assigned to my server, which should be plenty.
---- Minecraft Crash Report ---- // I let you down. Sorry :( Time: 10/9/14 11:37 AM Description: Ticking entity java.lang.OutOfMemoryError: GC overhead limit exceeded at java.util.Arrays.copyOf(Unknown Source) at sun.misc.Resource.getBytes(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at net.minecraft.server.v1_7_R3.EntityItem.h(EntityItem.java:109) at net.minecraft.server.v1_7_R3.World.entityJoinedWorld(World.java:1421) at net.minecraft.server.v1_7_R3.World.playerJoinedWorld(World.java:1402) at net.minecraft.server.v1_7_R3.World.tickEntities(World.java:1290) at net.minecraft.server.v1_7_R3.WorldServer.tickEntities(WorldServer.java:481) at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:649) at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469) at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) A detailed walkthrough of the error, its code path and all known details is as follows: --------------------------------------------------------------------------------------- -- Head -- Stacktrace: at java.util.Arrays.copyOf(Unknown Source) at sun.misc.Resource.getBytes(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at net.minecraft.server.v1_7_R3.EntityItem.h(EntityItem.java:109) at net.minecraft.server.v1_7_R3.World.entityJoinedWorld(World.java:1421) at net.minecraft.server.v1_7_R3.World.playerJoinedWorld(World.java:1402) -- Entity being ticked -- Details: Entity Type: Item (net.minecraft.server.v1_7_R3.EntityItem) Entity ID: 69 Entity Name: item.item.egg Entity's Exact location: -54.08, 69.13, -1185.88 Entity's Block location: World: (-55,69,-1186), Chunk: (at 9,4,14 in -4,-75; contains blocks -64,0,-1200 to -49,255,-1185), Region: (-1,-3; contains chunks -32,-96 to -1,-65, blocks -512,0,-1536 to -1,255,-1025) Entity's Momentum: -0.00, -0.00, 0.00 Stacktrace: at net.minecraft.server.v1_7_R3.World.tickEntities(World.java:1290) at net.minecraft.server.v1_7_R3.WorldServer.tickEntities(WorldServer.java:481) -- Affected level -- Details: Level name: Westeros All players: 0 total; [] Chunk stats: ServerChunkCache: 31173 Drop: 0 Level seed: -1853584323 Level generator: ID 00 - default, ver 1. Features enabled: true Level generator options: Level spawn location: World: (27,181,-1164), Chunk: (at 11,11,4 in 1,-73; contains blocks 16,0,-1168 to 31,255,-1153), Region: (0,-3; contains chunks 0,-96 to 31,-65, blocks 0,0,-1536 to 511,255,-1025) Level time: 367667700 game time, 332148757 day time Level dimension: 0 Level storage version: 0x04ABD - Anvil Level weather: Rain time: 12826 (now: true), thunder time: 14222 (now: true) Level game mode: Game mode: survival (ID 0). Hardcore: false. Cheats: false Stacktrace: at net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:649) at net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260) at net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558) at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469) at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) -- System Details -- Details: Minecraft Version: 1.7.9 Operating System: Windows 8 (amd64) version 6.2 Java Version: 1.7.0_07, Oracle Corporation Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation Memory: 1208762224 bytes (1152 MB) / 9544400896 bytes (9102 MB) up to 9544400896 bytes (9102 MB) JVM Flags: 2 total; -Xms2G -Xmx10G AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used IntCache: cache: 0, tcache: 0, allocated: 12, tallocated: 94 CraftBukkit Information: Running: CraftBukkit version git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks (MC: 1.7.9) (Implementing API version 1.7.9-R0.2) true Plugins: { Vault v1.4.1-b436 net.milkbowl.vault.Vault [cereal, Sleaker, mung3r], Multiverse-Core v2.5-b691 com.onarandombox.MultiverseCore.MultiverseCore [Rigby, fernferret, lithium3141, main--], GriefPrevention v8.2.2 me.ryanhamshire.GriefPrevention.GriefPrevention [],} Warnings: DEFAULT Threads: { RUNNABLE DestroyJavaVM: [], RUNNABLE pool-3-thread-3: [java.lang.System.arraycopy(Native Method), java.nio.HeapByteBuffer.compact(Unknown Source), sun.nio.cs.StreamDecoder.readBytes(Unknown Source), sun.nio.cs.StreamDecoder.implRead(Unknown Source), sun.nio.cs.StreamDecoder.read(Unknown Source), java.io.InputStreamReader.read(Unknown Source), java.io.BufferedReader.fill(Unknown Source), java.io.BufferedReader.readLine(Unknown Source), java.io.BufferedReader.readLine(Unknown Source), net.milkbowl.vault.Vault.updateCheck(Vault.java:586), net.milkbowl.vault.Vault$1$1.run(Vault.java:175), org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftTask.run(CraftTask.java:53), org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53), java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source), java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source), java.lang.Thread.run(Unknown Source)], TIMED_WAITING Server Infinisleeper: [java.lang.Thread.sleep(Native Method), net.minecraft.server.v1_7_R3.ThreadSleepForever.run(SourceFile:65)], WAITING Thread-5: [sun.misc.Unsafe.park(Native Method), java.util.concurrent.locks.LockSupport.park(Unknown Source), java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source), java.util.concurrent.LinkedBlockingQueue.take(Unknown Source), net.minecraft.util.com.mojang.util.QueueLogAppender.getNextLogEvent(QueueLogAppender.java:73), org.bukkit.craftbukkit.v1_7_R3.util.TerminalConsoleWriterThread.run(TerminalConsoleWriterThread.java:25), java.lang.Thread.run(Unknown Source)], RUNNABLE Netty IO #0: [sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method), sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(Unknown Source), sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(Unknown Source), sun.nio.ch.WindowsSelectorImpl.doSelect(Unknown Source), sun.nio.ch.SelectorImpl.lockAndDoSelect(Unknown Source), sun.nio.ch.SelectorImpl.select(Unknown Source), net.minecraft.util.io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:591), net.minecraft.util.io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:301), net.minecraft.util.io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101), java.lang.Thread.run(Unknown Source)], TIMED_WAITING pool-3-thread-1: [sun.misc.Unsafe.park(Native Method), java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source), java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source), java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source), java.util.concurrent.SynchronousQueue.poll(Unknown Source), java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source), java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source), java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source), java.lang.Thread.run(Unknown Source)], RUNNABLE Query Listener #1: [java.net.DualStackPlainDatagramSocketImpl.socketReceiveOrPeekData(Native Method), java.net.DualStackPlainDatagramSocketImpl.receive0(Unknown Source), java.net.AbstractPlainDatagramSocketImpl.receive(Unknown Source), java.net.DatagramSocket.receive(Unknown Source), net.minecraft.server.v1_7_R3.RemoteStatusListener.run(SourceFile:256), java.lang.Thread.run(Unknown Source)], WAITING Snooper Timer: [java.lang.Object.wait(Native Method), java.lang.Object.wait(Object.java:503), java.util.TimerThread.mainLoop(Unknown Source), java.util.TimerThread.run(Unknown Source)], TIMED_WAITING Keep-Alive-Timer: [java.lang.Thread.sleep(Native Method), sun.net.www.http.KeepAliveCache.run(Unknown Source), java.lang.Thread.run(Unknown Source)], WAITING Java2D Disposer: [java.lang.Object.wait(Native Method), java.lang.ref.ReferenceQueue.remove(Unknown Source), java.lang.ref.ReferenceQueue.remove(Unknown Source), sun.java2d.Disposer.run(Unknown Source), java.lang.Thread.run(Unknown Source)], RUNNABLE Server thread: [java.lang.Thread.dumpThreads(Native Method), java.lang.Thread.getAllStackTraces(Unknown Source), org.bukkit.craftbukkit.v1_7_R3.CraftCrashReport.call(CraftCrashReport.java:28), net.minecraft.server.v1_7_R3.CrashReportSystemDetails.a(SourceFile:74), net.minecraft.server.v1_7_R3.CrashReport.h(CrashReport.java:45), net.minecraft.server.v1_7_R3.CrashReport.<init>(CrashReport.java:33), net.minecraft.server.v1_7_R3.CrashReport.a(CrashReport.java:230), net.minecraft.server.v1_7_R3.World.tickEntities(World.java:1292), net.minecraft.server.v1_7_R3.WorldServer.tickEntities(WorldServer.java:481), net.minecraft.server.v1_7_R3.MinecraftServer.v(MinecraftServer.java:649), net.minecraft.server.v1_7_R3.DedicatedServer.v(DedicatedServer.java:260), net.minecraft.server.v1_7_R3.MinecraftServer.u(MinecraftServer.java:558), net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:469), net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628)], RUNNABLE pool-3-thread-2: [java.net.DualStackPlainSocketImpl.connect0(Native Method), java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source), java.net.AbstractPlainSocketImpl.doConnect(Unknown Source), java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source), java.net.AbstractPlainSocketImpl.connect(Unknown Source), java.net.PlainSocketImpl.connect(Unknown Source), java.net.SocksSocketImpl.connect(Unknown Source), java.net.Socket.connect(Unknown Source), java.net.Socket.connect(Unknown Source), sun.net.NetworkClient.doConnect(Unknown Source), sun.net.www.http.HttpClient.openServer(Unknown Source), sun.net.www.http.HttpClient.openServer(Unknown Source), sun.net.www.http.HttpClient.<init>(Unknown Source), sun.net.www.http.HttpClient.New(Unknown Source), sun.net.www.http.HttpClient.New(Unknown Source), sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source), sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source), sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source), sun.net.www.protocol.http.HttpURLConnection.getOutputStream(Unknown Source), net.milkbowl.vault.Metrics.postPlugin(Metrics.java:501), net.milkbowl.vault.Metrics.access$400(Metrics.java:63), net.milkbowl.vault.Metrics$4.run(Metrics.java:275), org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftTask.run(CraftTask.java:53), org.bukkit.craftbukkit.v1_7_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53), java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source), java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source), java.lang.Thread.run(Unknown Source)], WAITING Finalizer: [java.lang.Object.wait(Native Method), java.lang.ref.ReferenceQueue.remove(Unknown Source), java.lang.ref.ReferenceQueue.remove(Unknown Source), java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)], RUNNABLE Attach Listener: [], WAITING Reference Handler: [java.lang.Object.wait(Native Method), java.lang.Object.wait(Object.java:503), java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)], RUNNABLE Signal Dispatcher: [], RUNNABLE Server console handler: [org.fusesource.jansi.internal.Kernel32._getch(Native Method), org.fusesource.jansi.internal.WindowsSupport.readByte(WindowsSupport.java:46), org.bukkit.craftbukkit.libs.jline.WindowsTerminal.readByte(WindowsTerminal.java:184), org.bukkit.craftbukkit.libs.jline.WindowsTerminal.access$000(WindowsTerminal.java:53), org.bukkit.craftbukkit.libs.jline.WindowsTerminal$1.read(WindowsTerminal.java:151), java.io.FilterInputStream.read(Unknown Source), org.bukkit.craftbukkit.libs.jline.console.ConsoleReader$1.read(ConsoleReader.java:167), org.bukkit.craftbukkit.libs.jline.internal.InputStreamReader.read(InputStreamReader.java:267), org.bukkit.craftbukkit.libs.jline.internal.InputStreamReader.read(InputStreamReader.java:204), org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.readCharacter(ConsoleReader.java:995), org.bukkit.craftbukkit.libs.jline.console.ConsoleReader.readLine(ConsoleReader.java:1167), net.minecraft.server.v1_7_R3.ThreadCommandReader.run(ThreadCommandReader.java:32)],} Recent tasks from -29-1{Multiverse-Core:org.mcstats.multiverse.Metrics$1@31,Vault:net.milkbowl.vault.Metrics$4@31,Vault:net.milkbowl.vault.Vault$1$1@31,} Profiler Position: N/A (disabled) Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used Player Count: 0 / 300; [] Is Modded: Definitely; Server brand changed to 'CraftBukkit' Type: Dedicated Server (map_server.txt)-
View User Profile
-
Send Message
Posted Oct 9, 2014@bigscary
do you have any plans to implement sqlite database store too. i do not know if it will be better than flat file store in speed. if there is no such drawback i will gladly switch to it.
-
View User Profile
-
Send Message
Posted Oct 8, 2014@bigscary
are you ever going to bring back the option to enable players to hurt mobs inside claims? i kinda liked to allow them to.
-
View User Profile
-
Send Message
Posted Oct 8, 20148.2.2 Updates
@TWSSYesterday
Which video are you referring to? Please provide a link?
@Lostwave
Major rework on UUID migration today. Please try again, I hope you'll have a much better result. Thanks for hanging in there with me - your investigation into the failure on your server was VERY eye opening to me. I had no idea that could even happen, and I think I have accounted for it in today's version.
@mcly
Not sure I understand - it's not a real user, so there's no player data file for it. (Or if there is, it isn't used.) Help me understand what you want to do?
@SPellegrom
Great! Thanks for sharing the good news. :)
@Ceees2
I don't think that would work - your old data would be in playername format, but the new code is looking for UUIDs. If you want to rerun the conversion again, I think the only way is to revert to your backup (keeping none of the new GP data) and then using today's 8.2.2 version. This will cause the migration to start over (it's much faster now) and I think do a much better job overall.
-
View User Profile
-
Send Message
Posted Oct 8, 2014@bigscary
Version 8.2.1 fixed the negative claimblocks for us, indeed. Thanks :)
-
View User Profile
-
Send Message
Posted Oct 8, 2014I updated to the latest version and got all players converted to UUID. I want to backup "an administrator" username, how can I find it?
-
View User Profile
-
Send Message
Posted Oct 8, 2014@bigscary
The player was processed, the UUID file is created, but the player name file is still there. I am online mode Bukkit 1.7.9. I used the log to figure out the UUID. There are about 40k player files.
(I put the 4 asterisks in for user privacy) I also went here to double check:
which returns:
Both files exist. The UUID file doesn't seem correct however as I mentioned in my previous post.
There are no files with double underscore.
Also in the my last post, notice the last on date, its 365 days ago also, like another user mentioned. Maybe that will help.
I guess don't worry about it for now. Lets see if your other changes solve anything.
-
View User Profile
-
Send Message
Posted Oct 8, 2014@bigscary
The PlayerData map contains 11433 files at the moment, after conversion. Before converting I had version beta version 282, and converted the files with version 8.2. And yes, right after someone reported his buildings reset, I set it to zero.
Is it possible to overwrite data from a back-up into the new data?
-
View User Profile
-
Send Message
Posted Oct 8, 2014@GodsDead
I haven't checked on those, it's the first time I've heard of them. Since siege blocks don't revert anymore, I'm betting the second one is 100% fixed. I will add the first to my testing todo list.
@Lostwave
I'm with you on hating this UUID thing. It's a train wreck for me.
It's not usual to still have the old file. If the player was processed at all, then EITHER the file was renamed to UUID (on success) or renamed to <double-underscore><playername> on failure to resolve the player's UUID with Mojang.
How did you determine those two files are for the same player? Also I forget - you're running in online mode, right? Not offline or Bungee?
This UUID mess is tops on my list right now. I hope to work it out today.
@Ceees2
The 365 days thing sounds familiar, that's a clue for me. Is your server new after GP started using UUIDs, or did you upgrade to GP with UUID after using an older version of GP? About how many player data files do you have (or rows for players in your DB)? Assuming that "GP thinks player logged in last a year ago" is widespread in your data, I think you should update your "all claims expiration" to 0 (meaning disabled) for the forseeable future, OR restore a GP data backup and use a non-UUID version of GP while you wait for me to release the next version with more UUID migration fixes (so you can migrate again, hopefully without this issue).