1
0
mirror of https://github.com/essentials/Essentials.git synced 2025-08-19 13:01:20 +02:00

Fix vanish

This commit is contained in:
ementalo
2012-06-18 12:52:36 +01:00
parent 8bdcec9072
commit 16f9163c45
4 changed files with 61 additions and 47 deletions

View File

@@ -270,8 +270,10 @@ public class Essentials extends JavaPlugin implements IEssentials
{ {
for (Player p : getServer().getOnlinePlayers()) for (Player p : getServer().getOnlinePlayers())
{ {
if (getUser(p).isVanished()) IUser user = getUser(p);
if (user.isVanished())
{ {
user.toggleVanished();
p.sendMessage(_("unvanishedReload")); p.sendMessage(_("unvanishedReload"));
} }
} }
@@ -385,17 +387,17 @@ public class Essentials extends JavaPlugin implements IEssentials
} }
/*@Override /*@Override
public IUser getUser(final Player player) public IUser getUser(final Player player)
{ {
return userMap.getUser(player); return userMap.getUser(player);
} }
@Override @Override
public IUser getUser(final String playerName) public IUser getUser(final String playerName)
{ {
return userMap.getUser(playerName); return userMap.getUser(playerName);
} }
*/ */
@Override @Override
public World getWorld(final String name) public World getWorld(final String name)
{ {

View File

@@ -11,25 +11,14 @@ public class Commandvanish extends EssentialsCommand
@Override @Override
protected void run(IUser user, String commandLabel, String[] args) throws Exception protected void run(IUser user, String commandLabel, String[] args) throws Exception
{ {
user.toggleVanished();
if (user.isVanished()) 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(_("unvanished"));
{
if (!Permissions.VANISH_SEE_OTHERS.isAuthorized(p))
{
p.hidePlayer(user);
}
user.sendMessage(_("unvanished"));
}
} }
user.toggleVanished();
} }
} }

View File

@@ -131,6 +131,10 @@ public class EssentialsPlayerListener implements Listener
{ {
user.setGodModeEnabled(false); user.setGodModeEnabled(false);
} }
if (user.isVanished())
{
user.toggleVanished();
}
if (user.getData().getInventory() != null) if (user.getData().getInventory() != null)
{ {
user.getInventory().setContents(user.getData().getInventory().getBukkitInventory()); user.getInventory().setContents(user.getData().getInventory().getBukkitInventory());

View File

@@ -29,7 +29,6 @@ import org.bukkit.inventory.ItemStack;
public class User extends UserBase implements IUser public class User extends UserBase implements IUser
{ {
private CommandSender replyTo = null; private CommandSender replyTo = null;
@Getter @Getter
private transient IUser teleportRequester; private transient IUser teleportRequester;
@@ -50,7 +49,7 @@ public class User extends UserBase implements IUser
private transient boolean vanished; private transient boolean vanished;
@Getter @Getter
@Setter @Setter
private boolean invSee = false; private boolean invSee = false;
private transient Location afkPosition; private transient Location afkPosition;
private static final Logger logger = Bukkit.getLogger(); private static final Logger logger = Bukkit.getLogger();
private AtomicBoolean gotMailInfo = new AtomicBoolean(false); private AtomicBoolean gotMailInfo = new AtomicBoolean(false);
@@ -61,7 +60,6 @@ public class User extends UserBase implements IUser
teleport = new Teleport(this, ess); teleport = new Teleport(this, ess);
} }
public User(final OfflinePlayer offlinePlayer, final IEssentials ess) public User(final OfflinePlayer offlinePlayer, final IEssentials ess)
{ {
super(offlinePlayer, ess); super(offlinePlayer, ess);
@@ -674,8 +672,10 @@ public class User extends UserBase implements IUser
spew = true; spew = true;
} }
} }
else { else
if (!overfilled.isEmpty()) { {
if (!overfilled.isEmpty())
{
throw new ChargeException("Inventory full"); throw new ChargeException("Inventory full");
} }
} }
@@ -695,15 +695,19 @@ public class User extends UserBase implements IUser
} }
return cost <= mon; return cost <= mon;
} }
@Override @Override
public void updateMoneyCache(double userMoney) { public void updateMoneyCache(double userMoney)
if (super.getMoney() != userMoney) { {
if (super.getMoney() != userMoney)
{
super.setMoney(userMoney); super.setMoney(userMoney);
} }
} }
@Override @Override
public boolean canAfford(double amount, boolean b) { public boolean canAfford(double amount, boolean b)
{
return true; return true;
} }
private transient long teleportInvulnerabilityTimestamp = 0; private transient long teleportInvulnerabilityTimestamp = 0;
@@ -711,7 +715,7 @@ public class User extends UserBase implements IUser
public void enableInvulnerabilityAfterTeleport() public void enableInvulnerabilityAfterTeleport()
{ {
@Cleanup @Cleanup
final ISettings settings = ess.getSettings(); final ISettings settings = ess.getSettings();
settings.acquireReadLock(); settings.acquireReadLock();
final long time = settings.getData().getGeneral().getTeleportInvulnerability(); final long time = settings.getData().getGeneral().getTeleportInvulnerability();
@@ -730,6 +734,8 @@ public class User extends UserBase implements IUser
teleportInvulnerabilityTimestamp = 0; teleportInvulnerabilityTimestamp = 0;
} }
} }
@Override
public boolean hasInvulnerabilityAfterTeleport() public boolean hasInvulnerabilityAfterTeleport()
{ {
return teleportInvulnerabilityTimestamp != 0 && teleportInvulnerabilityTimestamp >= System.currentTimeMillis(); return teleportInvulnerabilityTimestamp != 0 && teleportInvulnerabilityTimestamp >= System.currentTimeMillis();
@@ -741,10 +747,23 @@ public class User extends UserBase implements IUser
vanished = !vanished; vanished = !vanished;
if (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()); ess.getVanishedPlayers().add(getName());
} }
else else
{ {
for (Player p : ess.getServer().getOnlinePlayers())
{
p.showPlayer(getBase());
}
setHidden(false);
ess.getVanishedPlayers().remove(getName()); ess.getVanishedPlayers().remove(getName());
} }
} }