diff --git a/Essentials/src/com/earth2me/essentials/Essentials.java b/Essentials/src/com/earth2me/essentials/Essentials.java index 13197aad7..efe9e44e1 100644 --- a/Essentials/src/com/earth2me/essentials/Essentials.java +++ b/Essentials/src/com/earth2me/essentials/Essentials.java @@ -270,8 +270,10 @@ public class Essentials extends JavaPlugin implements IEssentials { for (Player p : getServer().getOnlinePlayers()) { - if (getUser(p).isVanished()) + IUser user = getUser(p); + if (user.isVanished()) { + user.toggleVanished(); p.sendMessage(_("unvanishedReload")); } } @@ -339,7 +341,7 @@ public class Essentials extends JavaPlugin implements IEssentials { this.metrics = metrics; } - + @Override public IUser getUser(final Object base) { @@ -377,25 +379,25 @@ public class Essentials extends JavaPlugin implements IEssentials user = new User(base, this); } else - { + { //todo - fix this user.update(base); } return user; } - - /*@Override - public IUser getUser(final Player player) - { - return userMap.getUser(player); - } - @Override - public IUser getUser(final String playerName) - { - return userMap.getUser(playerName); - } -*/ + /*@Override + public IUser getUser(final Player player) + { + return userMap.getUser(player); + } + + @Override + public IUser getUser(final String playerName) + { + return userMap.getUser(playerName); + } + */ @Override public World getWorld(final String name) { diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java b/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java index ff4ca2ada..5eadcc286 100644 --- a/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java +++ b/Essentials/src/com/earth2me/essentials/commands/Commandvanish.java @@ -11,25 +11,14 @@ public class Commandvanish extends EssentialsCommand @Override protected void run(IUser user, String commandLabel, String[] args) throws Exception { + user.toggleVanished(); if (user.isVanished()) { - for (Player p : server.getOnlinePlayers()) - { - p.showPlayer(user); - } - user.sendMessage(_("vanished")); + user.sendMessage(_("unvanished")); } else { - for (Player p : server.getOnlinePlayers()) - { - if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(p)) - { - p.hidePlayer(user); - } - user.sendMessage(_("unvanished")); - } + user.sendMessage(_("unvanished")); } - user.toggleVanished(); } } diff --git a/Essentials/src/com/earth2me/essentials/listener/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/listener/EssentialsPlayerListener.java index 540a54b54..3702290ae 100644 --- a/Essentials/src/com/earth2me/essentials/listener/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/listener/EssentialsPlayerListener.java @@ -131,6 +131,10 @@ public class EssentialsPlayerListener implements Listener { user.setGodModeEnabled(false); } + if (user.isVanished()) + { + user.toggleVanished(); + } if (user.getData().getInventory() != null) { user.getInventory().setContents(user.getData().getInventory().getBukkitInventory()); diff --git a/Essentials/src/com/earth2me/essentials/user/User.java b/Essentials/src/com/earth2me/essentials/user/User.java index ba7cbc31c..8207285f7 100644 --- a/Essentials/src/com/earth2me/essentials/user/User.java +++ b/Essentials/src/com/earth2me/essentials/user/User.java @@ -29,7 +29,6 @@ import org.bukkit.inventory.ItemStack; public class User extends UserBase implements IUser { - private CommandSender replyTo = null; @Getter private transient IUser teleportRequester; @@ -50,7 +49,7 @@ public class User extends UserBase implements IUser private transient boolean vanished; @Getter @Setter - private boolean invSee = false; + private boolean invSee = false; private transient Location afkPosition; private static final Logger logger = Bukkit.getLogger(); private AtomicBoolean gotMailInfo = new AtomicBoolean(false); @@ -61,13 +60,12 @@ public class User extends UserBase implements IUser teleport = new Teleport(this, ess); } - public User(final OfflinePlayer offlinePlayer, final IEssentials ess) { super(offlinePlayer, ess); teleport = new Teleport(this, ess); - } - + } + public void example() { // Cleanup will call close at the end of the function @@ -82,7 +80,7 @@ public class User extends UserBase implements IUser user.acquireWriteLock(); user.getData().setMoney(10 + money); } - + @Override public void finishRead() { @@ -92,7 +90,7 @@ public class User extends UserBase implements IUser public void finishWrite() { } - + @Override public void update(final Player base) { @@ -524,7 +522,7 @@ public class User extends UserBase implements IUser public Location getAfkPosition() { return afkPosition; - } + } @Override public boolean isGodModeEnabled() @@ -674,8 +672,10 @@ public class User extends UserBase implements IUser spew = true; } } - else { - if (!overfilled.isEmpty()) { + else + { + if (!overfilled.isEmpty()) + { throw new ChargeException("Inventory full"); } } @@ -695,25 +695,29 @@ public class User extends UserBase implements IUser } return cost <= mon; } + @Override - public void updateMoneyCache(double userMoney) { - if (super.getMoney() != userMoney) { + public void updateMoneyCache(double userMoney) + { + if (super.getMoney() != userMoney) + { super.setMoney(userMoney); } } @Override - public boolean canAfford(double amount, boolean b) { + public boolean canAfford(double amount, boolean b) + { return true; - } + } private transient long teleportInvulnerabilityTimestamp = 0; - + public void enableInvulnerabilityAfterTeleport() { @Cleanup - final ISettings settings = ess.getSettings(); + final ISettings settings = ess.getSettings(); settings.acquireReadLock(); - + final long time = settings.getData().getGeneral().getTeleportInvulnerability(); if (time > 0) { @@ -730,21 +734,36 @@ public class User extends UserBase implements IUser teleportInvulnerabilityTimestamp = 0; } } + + @Override public boolean hasInvulnerabilityAfterTeleport() { return teleportInvulnerabilityTimestamp != 0 && teleportInvulnerabilityTimestamp >= System.currentTimeMillis(); } - + @Override public void toggleVanished() { vanished = !vanished; if (vanished) { + for (Player p : ess.getServer().getOnlinePlayers()) + { + if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(ess.getUser(p))) + { + p.hidePlayer(getBase()); + } + } + setHidden(true); ess.getVanishedPlayers().add(getName()); } else { + for (Player p : ess.getServer().getOnlinePlayers()) + { + p.showPlayer(getBase()); + } + setHidden(false); ess.getVanishedPlayers().remove(getName()); } }