- Баллы
- 61
- Имя в Minecraft
- MrJimmy_
Я хотел сделать так что бы если у игрока был Креатив то ивент onStoneBreak на него не действовал, я попытался это осуществить с помощью getGamemode и return,но ничего не работает.
Прошу помочь и по возможности скинуть код
Прошу помочь и по возможности скинуть код
Код:
HashMap<Location, Integer> m = new HashMap<Location, Integer>();
@EventHandler
public void onStoneBreak(BlockBreakEvent event) {
Player p = event.getPlayer();
Location a = event.getBlock().getLocation();
Block b = event.getBlock();
Material mat = b.getType();
List<Entity> entity = p.getNearbyEntities(30.0D, 30.0D, 30.0D);
Iterator var14 = entity.iterator();
String name = p.getCustomName() != null ? p.getCustomName() : p.getName();
switch (mat) {
case STONE:
if (m.containsKey(a)) {
int i = m.get(a);
int o = 10 - i;
if (i < 10) {
event.setCancelled(true);
m.put(a, i + 1);
p.sendMessage(ChatColor.GOLD + "Сломайте камень ещё " + ChatColor.AQUA + o + ChatColor.GOLD + " Раз что бы разрушить его!");
if(p.getGameMode() == GameMode.CREATIVE){
return;
}
} else {
m.put(a, 0);
p.sendMessage("Вы сломали камень!");
}
} else {
m.put(a, 1);
event.setCancelled(true);
}
break;
case IRON_ORE:
if (m.containsKey(a)) {
int i = m.get(a);
int o1 = 50 - i;
if (i < 50) {
event.setCancelled(true);
m.put(a, i + 1);
p.sendMessage(ChatColor.GOLD + "Сломайте железную руду ещё " + ChatColor.AQUA + o1 + ChatColor.GOLD + " Раз что бы разрушить её!");
if(p.getGameMode() == GameMode.CREATIVE){
return;
}
} else {
m.put(a, 0);
p.sendMessage("Железная руда сломалась(" + name + ")");
}
} else {
m.put(a, 1);
event.setCancelled(true);
}
break;
}
}
}