MyWarp does everything you mentioned and even more. Disclaimer: I am the author.
The problem I saw is that you introduced the Statement in a way where you (normally) want to use a PreparedStatement. However you did not give any...
First, you are using JDBC witch is a library (that comes bundled with bukkit witch is, again, a library). Second, you absolutely want to use a...
There is the normal PlayerChatEvent. As xTrollxDudex said, the code you posted is not threadsafe for multiple reasons including bukkit-api usage...
You might be able to do so with an absurd amount of reflection, but I highly doubt that it will ever run near-stable (Thread.sleep() would lower...
The wiki is pretty clear: "The Bukkit API, with the exception of the scheduler package, is not thread safe nor guaranteed to be thread safe." That...
Why do you think that calling non-threadsafe methods out of an async event might be a good idea?!
Absolutely. It is a lot simpler to read and less messy to begin with, but the main difference is that your solution needs to do things within Java...
Yes, it is. Line 14 is pretty clear, you tell the database to update the token of the record in question with the new, initially given token. What...
Bukkit bundles Guava, so you can just do the whole thing in two lines: valueComparator =Ordering.natural().onResultOf(Functions.forMap(map)); map...
Java has a build in API for localizations, Resource Bundles. The system is extremely flexible and automatically cached, but a bit more difficult...
I hope you do not mind if I push this. I really like the idea here. Bukkit's current multi threading API is just a pain to work with if things...
I actually prefer @zml2008's version as it can be used for multiple listings. Usage is as simple as this: Collection<Object> collection;...
You need to replace the value before writing it to the file. That is actually pretty basic: String str = "&7Hello, my name is %Player."; str =...
I would suggest reusing the random once it is created. Creating a new instance every time calling the method is not only unneeded, its also a...
MyWarp might be worth a try.
And why would you want to have multiple instances if your main plugin class? Bukkit plugins are essentially Singletons, there is not really a...
Theoretically you could use NMS code and do what CaptainBern suggested manually. But I do not see any reason why you want to implement an...
Use getType() witch returns a Material. Materials can and should be used everywhere where you used the ID before.
e.setJoinMessage("");
Separate names with a comma.