Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package lilian.xteam.listener;
- import java.util.HashMap;
- import lilian.xteam.Main;
- import lilian.xteam.utils.Utils;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Material;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.Action;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.scoreboard.Score;
- public class EnderPearlListener implements Listener {
- final HashMap<String, Long> cooldown = new HashMap<String, Long>();
- int countdown = 15; //This is how long(in secs) you want the countdown to be!
- private Main plugin; //Making it so we can access the scoreboard board and objective o
- public EnderPearlListener(Main Plugin) {
- this.plugin = plugin;
- }
- @EventHandler
- public void onclickeventtt(PlayerInteractEvent e) {
- Player p = e.getPlayer();
- final String s = p.getName();
- if (((e.getAction() == Action.RIGHT_CLICK_AIR) || (e.getAction() == Action.RIGHT_CLICK_BLOCK)) && e.getPlayer().getItemInHand().getType().equals(Material.ENDER_PEARL)) {
- Long useTime = cooldown.get(s);
- if(useTime != null) {
- final int time = 15;
- useTime = (System.currentTimeMillis() - useTime) / 1000;
- if(useTime < time) {
- e.setCancelled(true);
- Utils.send(p,"Tu dois encore attendre " + ChatColor.GOLD+(time - useTime) + ChatColor.DARK_GREEN+" secondes avant de pouvoir à nouveau utiliser une enderpearl.");
- return;
- }
- }
- p.setScoreboard(plugin.timerBoard); //Making it so the player can see the scoreboard
- Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
- @SuppressWarnings("deprecation")
- public void run() {
- countdown --; //Taking away 1 from countdown every 1 second
- final Score score = plugin.o.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + "Délai EnderPearl: ")); //Making a offline player called "Time:" with a green name and adding it to the scoreboard
- score.setScore(countdown); //Making it so after "Time:" it displays the int countdown(So how long it has left in seconds.)
- if(countdown == 0) { //If countdown == 0.
- plugin.getServer().getScheduler().cancelTasks(plugin); //Stopping it from running. You can also add another scoreboard to take over the timer one!
- }
- }
- }, 0L, 20L); //Repeating it every second
- }
- cooldown.put(s, System.currentTimeMillis());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement