Created
December 25, 2012 16:55
-
-
Save mbax/4374179 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.aholacraft.lololmaker.aholavanish; | |
import java.util.HashSet; | |
import org.bukkit.ChatColor; | |
import org.bukkit.Server; | |
import org.bukkit.command.Command; | |
import org.bukkit.command.CommandSender; | |
import org.bukkit.entity.Player; | |
import org.bukkit.event.EventHandler; | |
import org.bukkit.event.Listener; | |
import org.bukkit.event.player.PlayerJoinEvent; | |
import org.bukkit.event.player.PlayerQuitEvent; | |
import org.bukkit.plugin.PluginManager; | |
import org.bukkit.plugin.java.JavaPlugin; | |
public class AholaVanish extends JavaPlugin | |
implements Listener | |
{ | |
private final HashSet<String> vanished = new HashSet(); | |
public static final String VANISH_PERM = "aholavanish.vanish"; | |
public void onEnable() | |
{ | |
getServer().getPluginManager().registerEvents(this, this); | |
} | |
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) | |
{ | |
if (args.length == 0) { | |
if (!(sender instanceof Player)) { | |
sender.sendMessage(new StringBuilder().append(ChatColor.DARK_RED).append("Can't vanish if not a player!").toString()); | |
return true; | |
} | |
if (!sender.hasPermission("aholavanish.vanish")) { | |
sender.sendMessage(new StringBuilder().append(ChatColor.DARK_RED).append("You don't have permission to use AholaVanish!").toString()); | |
return true; | |
} | |
boolean vanishing = true; | |
String bit; | |
if (this.vanished.contains(sender.getName())) { | |
vanishing = false; | |
this.vanished.remove(sender.getName()); | |
String bit = "unvanished"; | |
sender.sendMessage(new StringBuilder().append(ChatColor.DARK_GREEN).append("You have unvanished!").toString()); | |
} else { | |
this.vanished.add(sender.getName()); | |
bit = "vanished"; | |
sender.sendMessage(new StringBuilder().append(ChatColor.DARK_GREEN).append("You have vanished!").toString()); | |
} | |
Player player = (Player)sender; | |
for (Player plr : getServer().getOnlinePlayers()) { | |
if ((vanishing) && (!plr.hasPermission("aholavanish.vanish"))) | |
plr.hidePlayer(player); | |
else if ((!vanishing) && (!plr.canSee(player))) { | |
plr.showPlayer(player); | |
} | |
} | |
getServer().broadcast(new StringBuilder().append(ChatColor.AQUA).append(player.getName()).append(" has ").append(bit).toString(), "aholavanish.vanish"); | |
} else if (args[0].equalsIgnoreCase("list")) { | |
if (((sender instanceof Player)) && (!sender.hasPermission("aholavanish.vanish"))) { | |
sender.sendMessage(new StringBuilder().append(ChatColor.DARK_RED).append("You don't have permission to use AholaVanish!").toString()); | |
return true; | |
} | |
StringBuilder list = new StringBuilder(); | |
list.append(ChatColor.AQUA); | |
list.append("Vanished ("); | |
list.append(this.vanished.size()); | |
list.append("): "); | |
for (String name : this.vanished) { | |
list.append(name); | |
list.append(", "); | |
} | |
list.setLength(list.length() - 2); | |
sender.sendMessage(list.toString()); | |
} | |
return true; | |
} | |
@EventHandler | |
public void onJoin(PlayerJoinEvent event) { | |
if ((!event.getPlayer().hasPermission("aholavanish.vanish")) && (this.vanished.size() > 0)) { | |
Player player = event.getPlayer(); | |
for (Player plr : getServer().getOnlinePlayers()) | |
if (this.vanished.contains(plr.getName())) | |
player.hidePlayer(plr); | |
} | |
} | |
@EventHandler | |
public void onQuit(PlayerQuitEvent event) | |
{ | |
if (this.vanished.contains(event.getPlayer().getName())) { | |
Player player = event.getPlayer(); | |
this.vanished.remove(event.getPlayer().getName()); | |
for (Player plr : getServer().getOnlinePlayers()) | |
if ((plr != null) && (!plr.canSee(event.getPlayer()))) | |
plr.showPlayer(player); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment