Wyrażenia event.setCancelled(true) i event.setResult(Result.DENY) są w tym przypadku równoznaczne. https://hub.spigotmc.org/stash/projects/SPIGOT/repos/bukkit/browse/src/main/java/org/bukkit/event/inventory/InventoryInteractEvent.java#74-76
final int TPS = 20;
final int N_EXECUTIONS = 15;
Bukkit.getScheduler().runTaskTimer(this, new Runnable() {
int timer;
boolean setup2;
@Override
public void run() {
if (setup2)
setup2();
else
setup1();
if (++timer >= N_EXECUTIONS) {
timer = 0;
setup2 = !setup2;
}
}
}, 0, TPS * 2);
Nie jest to najładniejszy kod, ale robi dokładnie to co chciałeś.
Jeśli nie chcesz, żeby nick był case sensitive, to sprowadź go do małych liter w każdym miejscu, w którym się pojawia (polecenia, eventy).
nick.toLowerCase(Locale.ENGLISH)
PS. Nie wiem co w tym pluginie świetnego, najprostszy możliwy + nie używa UUID.
Na wersjach 1.7-1.8 (z protocol hackiem):
((CraftPlayer) player).getHandle().playerConnection.networkManager.getVersion()
Na późniejszych wersjach najlepiej nasłuchiwać pakietu Handshake i samodzielnie przechować wartość wersji.