package net.diamonddominion.esaych.unused; import java.util.HashMap; import java.util.Map; import net.diamonddominion.esaych.CustomPlugin; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerToggleSneakEvent; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; public class DrunkenWizard { private CustomPlugin plugin; private Map<Player, Integer> tasks = new HashMap<Player, Integer>(); private Map<Player, Long> timeout = new HashMap<Player, Long>(); public DrunkenWizard(CustomPlugin plugin) { this.plugin = plugin; } public void enable() { log("Enabled"); } private void attemptTeleport(final Player player) { player.addPotionEffect(new PotionEffect(PotionEffectType.CONFUSION, 20*10, 1000)); // player.addPotionEffect(new PotionEffect(PotionEffectType.NIGHT_VISION, 20*10, 50)); player.addPotionEffect(new PotionEffect(PotionEffectType.BLINDNESS, 20*10, 1)); int task = plugin.getServer().getScheduler().scheduleSyncDelayedTask(plugin, new Runnable() { @Override public void run() { tpPlayer(player); } }, 20*5); tasks.put(player, task); } private void cancelTeleport(Player player) { if (tasks.containsKey(player)) { Bukkit.getScheduler().cancelTask(tasks.get(player)); tasks.remove(player); } removeEffects(player); player.sendMessage(ChatColor.RED + "Keep sneaking to reach potion shop."); } private void tpPlayer(Player player) { for (int a = 0; a < 50; a++) player.getWorld().playEffect(player.getLocation(), Effect.MOBSPAWNER_FLAMES, 0); if (player.getLocation().getBlock().equals(new Location(Bukkit.getWorld("Survival"), 173, 64, 227).getBlock())) player.teleport(new Location(Bukkit.getWorld("Survival"), 179.5, 80, 227.5, player.getLocation().getYaw(), player.getLocation().getPitch())); else player.teleport(new Location(Bukkit.getWorld("Survival"), 173.5, 64, 227.5, player.getLocation().getYaw(), player.getLocation().getPitch())); for (int a = 0; a < 20; a++) player.getWorld().playEffect(player.getLocation(), Effect.MOBSPAWNER_FLAMES, 0); timeout.put(player, System.currentTimeMillis()/1000); removeEffects(player); } private void removeEffects(Player player) { player.removePotionEffect(PotionEffectType.CONFUSION); player.removePotionEffect(PotionEffectType.BLINDNESS); // player.removePotionEffect(PotionEffectType.NIGHT_VISION); } public void onPlayerSneaks(PlayerToggleSneakEvent e) { Player player = e.getPlayer(); if (player.getLocation().getBlock().equals(new Location(Bukkit.getWorld("Survival"), 179, 80, 227).getBlock()) || player.getLocation().getBlock().equals(new Location(Bukkit.getWorld("Survival"), 173, 64, 227).getBlock())) { if (timeout.containsKey(player)) { if (timeout.get(player) + 5 > System.currentTimeMillis()/1000) return; } if (e.isSneaking()) { attemptTeleport(player); } else { cancelTeleport(player); } } } public void log(String info) { plugin.getLogger().info("<DrunkenWizard> " + info); } }