Fix the vanish command for good.

This commit is contained in:
md_5 2012-06-11 09:17:19 +10:00
parent 40271f2ddf
commit 8cff4348a6
4 changed files with 22 additions and 17 deletions

View File

@ -269,8 +269,10 @@ public class Essentials extends JavaPlugin implements IEssentials
{ {
for (Player p : getServer().getOnlinePlayers()) for (Player p : getServer().getOnlinePlayers())
{ {
if (getUser(p).isVanished()) User user = getUser(p);
if (user.isVanished())
{ {
user.toggleVanished();
p.sendMessage(_("unvanishedReload")); p.sendMessage(_("unvanishedReload"));
} }
} }

View File

@ -116,7 +116,10 @@ public class EssentialsPlayerListener implements Listener
{ {
user.setGodModeEnabled(false); user.setGodModeEnabled(false);
} }
ess.getVanishedPlayers().remove(user.getName()); if (user.isVanished())
{
user.toggleVanished();
}
user.setLastLocation(); user.setLastLocation();
user.updateActivity(false); user.updateActivity(false);
user.dispose(); user.dispose();

View File

@ -642,11 +642,22 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
vanished = !vanished; vanished = !vanished;
if (vanished) if (vanished)
{ {
for (Player p : ess.getServer().getOnlinePlayers())
{
if (!ess.getUser(p).isAuthorized("essentials.vanish.see"))
{
p.hidePlayer(getBase());
}
}
setHidden(true); setHidden(true);
ess.getVanishedPlayers().add(getName()); ess.getVanishedPlayers().add(getName());
} }
else else
{ {
for (Player p : ess.getServer().getOnlinePlayers())
{
p.showPlayer(getBase());
}
setHidden(false); setHidden(false);
ess.getVanishedPlayers().remove(getName()); ess.getVanishedPlayers().remove(getName());
} }

View File

@ -16,25 +16,14 @@ public class Commandvanish extends EssentialsCommand
@Override @Override
protected void run(Server server, User user, String commandLabel, String[] args) throws Exception protected void run(Server server, User user, String commandLabel, String[] args) throws Exception
{ {
if (user.isVanished()) user.toggleVanished();
if (!user.isVanished())
{ {
for (Player p : server.getOnlinePlayers()) user.sendMessage(_("unvanished"));
{
p.showPlayer(user);
}
user.sendMessage(_("vanished"));
} }
else else
{ {
for (Player p : server.getOnlinePlayers()) user.sendMessage(_("vanished"));
{
if (!ess.getUser(p).isAuthorized("essentials.vanish.see"))
{
p.hidePlayer(user);
}
user.sendMessage(_("unvanished"));
}
} }
user.toggleVanished();
} }
} }