package net.diamonddominion.esaych.global; import java.util.ArrayList; import java.util.Set; import net.diamonddominion.esaych.CustomPlugin; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.Chunk; import org.bukkit.Effect; import org.bukkit.Location; import org.bukkit.Material; import org.bukkit.block.Block; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.potion.PotionEffect; import org.bukkit.potion.PotionEffectType; import com.massivecraft.factions.entity.BoardColls; import com.massivecraft.factions.entity.Faction; import com.massivecraft.factions.entity.FactionColls; import com.massivecraft.mcore.ps.PS; public class BeastSprint { private CustomPlugin plugin; public BeastSprint(CustomPlugin plugin) { this.plugin = plugin; } public void enable() { if (plugin.getServer().getPluginManager().getPlugin("Factions") != null) { factionsEnabled = true; Faction faction = FactionColls.get().getForWorld("Survival").getByName("SafeZone"); Set<PS> chunks_ps = BoardColls.get().getChunks(faction); for (PS ps : chunks_ps) { safezone.add(ps.asBukkitChunk()); } } Player insanity = Bukkit.getPlayer("InsanityGaz"); if (insanity != null) disabledSprint.add(insanity); log("Enabled"); } private ArrayList<Player> disabledSprint = new ArrayList<Player>(); boolean factionsEnabled = false; private ArrayList<Chunk> safezone = new ArrayList<Chunk>(); public boolean onCommand(CommandSender sender) { if (sender instanceof Player) { Player player = (Player) sender; // if (!player.hasPermission("beastsprint.can")) { // player.sendMessage(ChatColor.GREEN + "You can't use beast sprint"); // return true; // } if (disabledSprint.contains(player)) { player.sendMessage(ChatColor.GREEN + "Beast Sprint enabled."); disabledSprint.remove(player); } else { player.sendMessage(ChatColor.GREEN + "Beast Sprint disabled."); disabledSprint.add(player); } } return true; } @SuppressWarnings("deprecation") public void onPlayerMoveEvent(PlayerMoveEvent event) { final Player player = event.getPlayer(); Location loc = player.getLocation(); Block glass = player.getLocation().add(0,-2,0).getBlock(); //(factionsEnabled && safezone.contains(loc.getChunk())) if ((player.hasPermission("beastsprint.can") || (glass.getType().equals(Material.GLASS) && glass.getData() == (byte)2) || loc.getWorld().getName().equals("Build")) && !disabledSprint.contains(player)) { if (player.isSprinting()) { if ((player.hasPermission("beastsprint.can"))) player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 200, 10)); else player.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 200, 5)); player.getWorld().playEffect(loc, Effect.MOBSPAWNER_FLAMES, 1, 50); } else { player.removePotionEffect(PotionEffectType.SPEED); } } } public void log(String info) { plugin.getLogger().info("<BeastSprint> " + info); } }