Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package to.epac.factorycraft.CombinationHits.Events;
- import java.util.HashMap;
- import org.bukkit.Bukkit;
- 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.inventory.EquipmentSlot;
- import org.bukkit.plugin.Plugin;
- import to.epac.factorycraft.CombinationHits.CooldownHandler;
- import to.epac.factorycraft.CombinationHits.Main;
- import to.epac.factorycraft.CombinationHits.SkillsHandler;
- import to.epac.factorycraft.CombinationHits.Utils.ActionBar;
- import to.epac.factorycraft.CombinationHits.Utils.ConfigManager;
- import to.epac.factorycraft.CombinationHits.Utils.Utils;
- public class ClickHandler implements Listener {
- private static Plugin plugin = Main.instance;
- public static int schedulerId2 = 0;
- public static HashMap<Player, String> playerDB = new HashMap<Player, String>();
- public static HashMap<Player, String> playerDB2 = new HashMap<Player, String>();
- @EventHandler
- public void LeftClick(PlayerInteractEvent event) {
- Player p = (Player) event.getPlayer();
- if (!ConfigManager.isConfigFileValid()) return;
- if (p.getInventory().getItemInMainHand().getType() == Material.AIR) return;
- if (!(event.getHand().equals(EquipmentSlot.HAND))) return;
- String click = "";
- if (event.getAction() == Action.LEFT_CLICK_AIR || event.getAction() == Action.LEFT_CLICK_BLOCK) click = "L";
- else if (event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) click = "R";
- else return;
- if (Utils.hasSkillLore(p, playerDB)) {
- if (playerDB.get(p) != null) {
- String currentPhase = playerDB.get(p);
- playerDB.remove(p);
- playerDB.put(p, currentPhase + click);
- }
- else playerDB.put(p, "CombinationHits." + click);
- // Implement ActionBar when click here, playerDB2 should store those data
- // You can use %Right% %Left% and add new config section
- p.sendMessage("You have" + click + "clicked.");
- p.sendMessage(playerDB.get(p));
- if (HitsChecker.isHitValid(p, playerDB)) {
- Bukkit.broadcastMessage("Valid hits");
- SkillsHandler.castSkills(p, playerDB);
- }
- Bukkit.getServer().getScheduler().cancelTask(schedulerId2);
- schedulerId2 = Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() {
- @Override
- public void run() {
- // If player's cooldown time is set
- // Which means what player is in cooldown
- // He cant multiple casting skills
- if (CooldownHandler.cooldown <= 0) {
- playerDB.remove(p);
- ActionBar.sendActionBar(p, ConfigManager.getCombinationClearMessage());
- }
- }
- }, ConfigManager.getCombinationExpireTime());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement