Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: This feature may not be available in some browsers.
public class CustomTimer extends BukkitRunnable {
@Override
public void run() {
for(UUID uuid : класс.map.keySet()) {
int time = класс.map.get(uuid);
if(time == 0) {
класс.map.remove(uuid);
} else {
класс.map.put(uuid, time-1);
}
}
}
}
да.он будет из кеша удалять, после истечения времени??
как сделать ссылку на время
int cd = map.get(p.getUniqueId());
он будет из кеша удалять
public class Handler implements Listener{
public static HashMap<UUID, Integer> map = new HashMap<>();
@EventHandler
public void use(PlayerInteractEvent e) {
Player p = e.getPlayer();
if(e.getAction() == Action.RIGHT_CLICK_AIR) {
if (p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equals(ChatColor.DARK_AQUA +"Muramasa")) {
if(map.containsKey(p.getUniqueId())) {
int cd = map.get(p.getUniqueId());
p.sendMessage("Вы не можете делать это ещё "+cd+" сек!");}
else
p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,3 ,40));
p.playSound(p.getLocation(), Sound.ENTITY_FIREWORK_LAUNCH, 10, 3);
map.put(p.getUniqueId(),5);
}
}
}
}
Да, это он.
Java:if(map.containsKey(p.getUniqueId())) { //Код, если содержится в хеше int cd = map.get(p.getUniqueId()); p.sendMessage("Вы не можете делать это ещё "+cd+" сек!"); }
if(map.containsKey(p.getUniqueId())) {
int cd = map.get(p.getUniqueId());
p.sendMessage("Вы не можете делать это ещё "+cd+" сек!");}
} else {
p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,3 ,40));
p.playSound(p.getLocation(), Sound.ENTITY_FIREWORK_LAUNCH, 10, 3);
map.put(p.getUniqueId(),5);
}
public class CooldownManager {
private final Map<UUID, Integer> cooldowns = new HashMap();
public void setCooldown(UUID player, int time) {
if (time < 1) {
this.cooldowns.remove(player);
} else {
this.cooldowns.put(player, time);
}
}
public int getCooldown(UUID player) {
return this.cooldowns.getOrDefault(player, 0);
}
}
private final CooldownManager cm = new CooldownManager();
public void coolMethod(Player player) {
int timeLeft = this.cm.getCooldown(player.getUniqueId());
if (timeLeft == 0) {
this.cm.setCooldown(player.getUniqueId(), Config.cooldown);
(new BukkitRunnable() {
public void run() {
int timeLeft = this.cm.getCooldown(player.getUniqueId());
CooldownManager var10000 = this.cm;
UUID var10001 = player.getUniqueId();
--timeLeft;
var10000.setCooldown(var10001, timeLeft);
if (timeLeft == 0) {
this.cancel();
}
}
}).runTaskTimer(plugin, 20L, 20L);
} else {
player.sendMessage("падаждите");
}
}
public class Handler implements Listener{
public static HashMap<UUID, Integer> map = new HashMap<>();
@EventHandler
public void use(PlayerInteractEvent e) {
Player p = e.getPlayer();
if(e.getAction() == Action.RIGHT_CLICK_AIR) {
if (p.getInventory().getItemInMainHand() == null) return;
p.sendMessage("1");
if (!p.getInventory().getItemInMainHand().hasItemMeta()) return;
p.sendMessage("2");
if (p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equals(ChatColor.DARK_AQUA +"Muramasa")) {
p.sendMessage("3");
if(map.containsKey(p.getUniqueId())) {
if(map.containsKey(p.getUniqueId())) {
int cd = map.get(p.getUniqueId());
p.sendMessage("Вы не можете делать это ещё "+cd+" сек!");}
} else {
p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED,3 ,40));
p.playSound(p.getLocation(), Sound.ENTITY_FIREWORK_LAUNCH, 10, 3);
map.put(p.getUniqueId(),5);
}
}
}
}
}
-------------- Timer
package newea.main;
import java.util.UUID;
import org.bukkit.scheduler.BukkitRunnable;
public class Timer extends BukkitRunnable {
@Override
public void run() {
for(UUID uuid : Handler.map.keySet()) {
int time = Handler.map.get(uuid);
if(time == 0) {
Handler.map.remove(uuid);
} else {
Handler.map.put(uuid, time-1);
}
}
}
}
-----------Main
@Override
public void onEnable() {
new Timer().runTaskTimer(this, 20, 20);//понятия не имею, что эта команда делает
-----------Handler
public class Handler implements Listener{
public static HashMap<UUID, Integer> map = new HashMap<>();
@EventHandler
public void use(PlayerInteractEvent e) {
Player p = e.getPlayer();
if(e.getAction() == Action.RIGHT_CLICK_AIR) {
if (p.getInventory().getItemInMainHand() == null) return;//проверка обьекта
if (!p.getInventory().getItemInMainHand().hasItemMeta()) return;//проверка обьекта
if (p.getInventory().getItemInMainHand().getItemMeta().getDisplayName().equals("НАЗВАНЕ ПРЕДМЕТА"))//проверка обьекта
{
if(map.containsKey(p.getUniqueId())) {
if(map.containsKey(p.getUniqueId())) {
int cd = map.get(p.getUniqueId());
p.sendMessage("Вы не можете делать это ещё "+cd+" сек!");}//сооб об ошибке
} else {
p.add// сюда ваше условие
map.put(p.getUniqueId(),3);//время в сек
}}}}
---------------------Timer
import java.util.UUID;
import org.bukkit.scheduler.BukkitRunnable;
public class Timer extends BukkitRunnable {
@Override
public void run() {
for(UUID uuid : Handler.map.keySet()) {
int time = Handler.map.get(uuid);
if(time == 0) {
Handler.map.remove(uuid);
} else {
Handler.map.put(uuid, time-1);//установка времени
}
}
}
}
new Timer().runTaskTimer(this, 20, 20);
- создает анонимный экземпляр класса и запускает метод runTaskTimer ¯\_(ツ)_/¯Bukkit.getScheduler().runTaskTimerAsynchronously(this, fireworkCoolDownMap::clear, 0L, c.getFireWorkCoolDown()*20L);
Мы используем основные cookies для обеспечения работы этого сайта, а также дополнительные cookies для обеспечения максимального удобства пользователя.
Посмотрите дополнительную информацию и настройте свои предпочтения