I would recommend that anyone who wants to do this just use ProtocolLib + PacketWrapper. WrapperPlayerServerNamedEntitySpawn offers a method...
Not sure about your spawning problem, but just a heads up, you don't need to cast your objects in order to access methods. For instance, at one...
I think that's actually one place that Singletons are often mis-used. Most utilities classes should utilize static methods rather then defaulting...
Errr, Listeners & Arenas aren't usually good candidates for the Singleton pattern. There isn't much use for accessing a listener instance usually,...
Instead of having a Map for each individual attribute that you want to save about a player, why not create a PlayerData object that holds all of...
You might want to look into using JSON, as it is basically designed to do what you're doing, but much cleaner/better.
Although I can appreciate a good tutorial, I was a tad disappointed you didn't talk about saving/loading arena data to file, creating an interface...
String.valueOf(seconds) = seconds.toString() = seconds + "string"
new BukkitRunnable() { int seconds = 5; public void run() { player.sendMessage(seconds + " seconds until...
Looks good, only thing I would change is instead of using a String for your switch case, just use a character like 'm' since you are only using...
What AmShaegar said, or, just put public void onPlayerJoin(org.bukkit.event.player.PlayerJoinEvent event){
Try cleaning and rebuilding your project.
How does that make any sense at all? If anything, it's helping to protect your employers. If an employer hires you to write a plugin, then they...
I think to imply that the only reason to obfuscate your plugins is to hide stolen code or inhibit other innocent programmers from learning is a...
Is there ever going to be the possibility of people being able to upload their plugin un-obfuscated, but check a box so that when an approver is...
Separate names with a comma.