Here is a list of things that you can and can't do in Bukkit. Basically the community guide to thread and plugin safety. The list is pretty small, but I am hoping you can expand it. What not to do Kick player async (including chat!) Teleport player on join Kick player on join Thread Safe Methods Bukkit.getServer() CommandSender.sendMessage() Entity.getEntityId() Entity.getUniqueId() BukkitScheduler.* Server.getBukkitVersion() Server.getPlayers() World.getUID() World.getMaxHeight() World.getSeed()
What's the problem with kicking a player on join? A bunch of servers do that, and doesn't the default minecraft server whitelist?