Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Map<String, Long> тебе поможетИ так есть код
@EventHandler
public void EatMushroom(PlayerInteractEvent e){
Action a = e.getAction();
if (a == Action.RIGHT_CLICK_BLOCK || a == Action.RIGHT_CLICK_AIR){
Player p = e.getPlayer();
ItemStack item = p.getInventory().getItemInHand();
if(item.getType() == Material.BROWN_MUSHROOM && p.getFoodLevel() != 20){
p.setFoodLevel(p.getFoodLevel() + 1);
item.setAmount(item.getAmount() - 1);
p.playSound(p.getLocation(), Sound.ENTITY_PLAYER_BURP, 1, 3);
}
}
}
Этот код позволяет как-бы съесть гриб, но я хочу, чтобы игроки не могли просто зажимать ПКМ и восстанавливать себе голод полностью. Для этого мне нужна пауза, но я не знаю как это реализовать. (пробовал через шедулер, но ничего путного не вышло)
(и не спрашивайте зачем мне нужно реализовать поедание грибов)
public HashMap<String, Long> cooldowns = new HashMap<String, Long>();
public boolean isCooldown(int cooldownTime , Player player) {
if(cooldowns.containsKey(player.getName())) {
long secondsLeft = ((cooldowns.get(player.getName())/1000)+cooldownTime) - (System.currentTimeMillis()/1000);
if(secondsLeft>0) {
return true;
}
}
cooldowns.put(player.getName(), System.currentTimeMillis());
return false;
}
}
А что это? Как это работает? Куда это нужно вписать?
public HashMap<String, Long> cooldowns = new HashMap<String, Long>();
if (!isCooldown(int cooldownTime , Player player)){
тут твой код если нет кд
}
Да, давай повесим сервер на время паузы...Thread.sleep();
пожалуйста, используй асинхронный рунейбл.Да, давай повесим сервер на время паузы...