summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsnowleo <schneeleo@gmail.com>2012-10-14 00:35:24 +0200
committersnowleo <schneeleo@gmail.com>2012-10-14 00:35:24 +0200
commit9ca4f53c1aad758a5183b0b54e64d8f6993b73ea (patch)
tree56ef2f1c005b42a1b5aeec2169c7c02a5a3cebf7
parenteca8b54ef595e543c5ba9a94cc1b62e0c62a64d4 (diff)
downloadEssentials-9ca4f53c1aad758a5183b0b54e64d8f6993b73ea.tar
Essentials-9ca4f53c1aad758a5183b0b54e64d8f6993b73ea.tar.gz
Essentials-9ca4f53c1aad758a5183b0b54e64d8f6993b73ea.tar.lz
Essentials-9ca4f53c1aad758a5183b0b54e64d8f6993b73ea.tar.xz
Essentials-9ca4f53c1aad758a5183b0b54e64d8f6993b73ea.zip
replace user.isHidden() with player.canSee()
-rw-r--r--Essentials/src/net/ess3/Essentials.java11
-rw-r--r--Essentials/src/net/ess3/api/IRanks.java23
-rw-r--r--Essentials/src/net/ess3/api/IUser.java2
-rw-r--r--Essentials/src/net/ess3/api/IUserMap.java28
-rw-r--r--Essentials/src/net/ess3/commands/Commandafk.java12
-rw-r--r--Essentials/src/net/ess3/commands/Commandbalance.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandban.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandburn.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandclearinventory.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commanddelhome.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandeco.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandenderchest.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandexp.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandext.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandfeed.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandfly.java8
-rw-r--r--Essentials/src/net/ess3/commands/Commandgamemode.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandgetpos.java6
-rw-r--r--Essentials/src/net/ess3/commands/Commandgive.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandgod.java8
-rw-r--r--Essentials/src/net/ess3/commands/Commandheal.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandhome.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandignore.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandinvsee.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandkick.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandkill.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandlightning.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandlist.java61
-rw-r--r--Essentials/src/net/ess3/commands/Commandmail.java6
-rw-r--r--Essentials/src/net/ess3/commands/Commandmsg.java28
-rw-r--r--Essentials/src/net/ess3/commands/Commandmute.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandnear.java8
-rw-r--r--Essentials/src/net/ess3/commands/Commandnick.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandpay.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandrealname.java3
-rw-r--r--Essentials/src/net/ess3/commands/Commandseen.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandspawn.java4
-rw-r--r--Essentials/src/net/ess3/commands/Commandsudo.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtempban.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtogglejail.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtp.java6
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpa.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpaall.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpahere.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpall.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtphere.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpo.java9
-rw-r--r--Essentials/src/net/ess3/commands/Commandtpohere.java10
-rw-r--r--Essentials/src/net/ess3/commands/Commandunban.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandunbanip.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandunlimited.java2
-rw-r--r--Essentials/src/net/ess3/commands/Commandwarp.java10
-rw-r--r--Essentials/src/net/ess3/commands/Commandwhois.java2
-rw-r--r--Essentials/src/net/ess3/commands/EssentialsCommand.java7
-rw-r--r--Essentials/src/net/ess3/ranks/AbstractRanks.java41
-rw-r--r--Essentials/src/net/ess3/ranks/GMGroups.java58
-rw-r--r--Essentials/src/net/ess3/ranks/RanksStorage.java45
-rw-r--r--Essentials/src/net/ess3/ranks/VaultGroups.java56
-rw-r--r--Essentials/src/net/ess3/user/User.java15
-rw-r--r--Essentials/src/net/ess3/user/UserMap.java38
-rw-r--r--Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java32
-rw-r--r--EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java15
62 files changed, 341 insertions, 287 deletions
diff --git a/Essentials/src/net/ess3/Essentials.java b/Essentials/src/net/ess3/Essentials.java
index c0203f9dc..ff1273c83 100644
--- a/Essentials/src/net/ess3/Essentials.java
+++ b/Essentials/src/net/ess3/Essentials.java
@@ -242,20 +242,19 @@ public class Essentials implements IEssentials
{
return getServer().broadcastMessage(message);
}
- if (sender.isHidden())
- {
- return 0;
- }
+ Player userPlayer = sender.getPlayer();
+ int delivered = 0;
for (Player player : getServer().getOnlinePlayers())
{
final IUser user = getUserMap().getUser(player);
- if (!user.isIgnoringPlayer(sender))
+ if (!user.isIgnoringPlayer(sender) && player.canSee(userPlayer))
{
player.sendMessage(message);
+ delivered++;
}
}
- return getServer().getOnlinePlayers().length;
+ return delivered;
}
@Override
diff --git a/Essentials/src/net/ess3/api/IRanks.java b/Essentials/src/net/ess3/api/IRanks.java
index 4785bbb70..d3c68bf43 100644
--- a/Essentials/src/net/ess3/api/IRanks.java
+++ b/Essentials/src/net/ess3/api/IRanks.java
@@ -1,25 +1,28 @@
package net.ess3.api;
import java.text.MessageFormat;
+import org.bukkit.command.CommandSender;
-
+/**
+ * CommandSender object can be either IUser or Player
+ */
public interface IRanks
{
- String getMainGroup(IUser player);
+ String getMainGroup(CommandSender player);
- boolean inGroup(IUser player, String groupname);
+ boolean inGroup(CommandSender player, String groupname);
- double getHealCooldown(IUser player);
+ double getHealCooldown(CommandSender player);
- double getTeleportCooldown(IUser player);
+ double getTeleportCooldown(CommandSender player);
- double getTeleportDelay(IUser player);
+ double getTeleportDelay(CommandSender player);
- String getPrefix(IUser player);
+ String getPrefix(CommandSender player);
- String getSuffix(IUser player);
+ String getSuffix(CommandSender player);
- int getHomeLimit(IUser player);
+ int getHomeLimit(CommandSender player);
- MessageFormat getChatFormat(IUser player);
+ MessageFormat getChatFormat(CommandSender player);
}
diff --git a/Essentials/src/net/ess3/api/IUser.java b/Essentials/src/net/ess3/api/IUser.java
index 0b6995fa4..ddfe2b76d 100644
--- a/Essentials/src/net/ess3/api/IUser.java
+++ b/Essentials/src/net/ess3/api/IUser.java
@@ -38,7 +38,7 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
Location getHome(Location loc);
- boolean isHidden();
+ //boolean isHidden();
ITeleport getTeleport();
diff --git a/Essentials/src/net/ess3/api/IUserMap.java b/Essentials/src/net/ess3/api/IUserMap.java
index 9ce81f03b..0a027e5ae 100644
--- a/Essentials/src/net/ess3/api/IUserMap.java
+++ b/Essentials/src/net/ess3/api/IUserMap.java
@@ -22,20 +22,32 @@ public interface IUserMap extends IReload
int getUniqueUsers();
File getUserFile(final String name) throws InvalidNameException;
-
+
/**
- * This method never returns null.
- *
+ * This method never returns null and includes hidden players.
+ *
* @param name
- * @param includeHidden
* @param includeOffline
- * @return
+ * @return
* @throws TooManyMatchesException if more than one player is found matching the name
* @throws PlayerNotFoundException if the player matching the name is not found
*/
- IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException;
-
- Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline);
+ IUser matchUser(final String name, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException;
+
+ /**
+ * This method never returns null and is for online players only.
+ *
+ * @param name
+ * @param requester Can be null, if the requester is the console
+ * @return
+ * @throws TooManyMatchesException if more than one player is found matching the name
+ * @throws PlayerNotFoundException if the player matching the name is not found
+ */
+ IUser matchUserExcludingHidden(final String name, final Player requester) throws TooManyMatchesException, PlayerNotFoundException;
+
+ Set<IUser> matchUsers(final String name, final boolean includeOffline);
+
+ Set<IUser> matchUsersExcludingHidden(final String name, final Player requester);
public void addPrejoinedPlayer(Player player);
diff --git a/Essentials/src/net/ess3/commands/Commandafk.java b/Essentials/src/net/ess3/commands/Commandafk.java
index 3f15469cc..b535cf5e2 100644
--- a/Essentials/src/net/ess3/commands/Commandafk.java
+++ b/Essentials/src/net/ess3/commands/Commandafk.java
@@ -12,7 +12,7 @@ public class Commandafk extends EssentialsCommand
{
if (args.length > 0 && Permissions.AFK_OTHERS.isAuthorized(user))
{
- IUser afkUser = ess.getUserMap().matchUser(args[0], false, false);
+ IUser afkUser = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
if (afkUser != null)
{
toggleAfk(afkUser);
@@ -30,19 +30,13 @@ public class Commandafk extends EssentialsCommand
if (!user.toggleAfk())
{
//user.sendMessage(_("markedAsNotAway"));
- if (!user.isHidden())
- {
- ess.broadcastMessage(user, _("userIsNotAway", user.getPlayer().getDisplayName()));
- }
+ ess.broadcastMessage(user, _("userIsNotAway", user.getPlayer().getDisplayName()));
user.updateActivity(false);
}
else
{
//user.sendMessage(_("markedAsAway"));
- if (!user.isHidden())
- {
- ess.broadcastMessage(user, _("userIsAway", user.getPlayer().getDisplayName()));
- }
+ ess.broadcastMessage(user, _("userIsAway", user.getPlayer().getDisplayName()));
}
}
}
diff --git a/Essentials/src/net/ess3/commands/Commandbalance.java b/Essentials/src/net/ess3/commands/Commandbalance.java
index 4b7b302e1..6c7bd941a 100644
--- a/Essentials/src/net/ess3/commands/Commandbalance.java
+++ b/Essentials/src/net/ess3/commands/Commandbalance.java
@@ -16,7 +16,7 @@ public class Commandbalance extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- sender.sendMessage(_("balance", FormatUtil.displayCurrency(ess.getUserMap().matchUser(args[0], true, true).getMoney(), ess)));
+ sender.sendMessage(_("balance", FormatUtil.displayCurrency(ess.getUserMap().matchUser(args[0], true).getMoney(), ess)));
}
@Override
@@ -25,7 +25,7 @@ public class Commandbalance extends EssentialsCommand
final double bal = (args.length < 1
|| !Permissions.BALANCE_OTHERS.isAuthorized(user)
? user
- : ess.getUserMap().matchUser(args[0], true, true)).getMoney();
+ : ess.getUserMap().matchUser(args[0], true)).getMoney();
user.sendMessage(_("balance", FormatUtil.displayCurrency(bal, ess)));
}
}
diff --git a/Essentials/src/net/ess3/commands/Commandban.java b/Essentials/src/net/ess3/commands/Commandban.java
index a6a517fa8..efe8ea5b9 100644
--- a/Essentials/src/net/ess3/commands/Commandban.java
+++ b/Essentials/src/net/ess3/commands/Commandban.java
@@ -18,7 +18,7 @@ public class Commandban extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final IUser user = ess.getUserMap().matchUser(args[0], false, true);
+ final IUser user = ess.getUserMap().matchUser(args[0], true);
if (!user.isOnline())
{
if (sender instanceof Player && Permissions.BAN_OFFLINE.isAuthorized(user))
diff --git a/Essentials/src/net/ess3/commands/Commandburn.java b/Essentials/src/net/ess3/commands/Commandburn.java
index 512399739..7a3e508d7 100644
--- a/Essentials/src/net/ess3/commands/Commandburn.java
+++ b/Essentials/src/net/ess3/commands/Commandburn.java
@@ -15,7 +15,7 @@ public class Commandburn extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- for (IUser p : ess.getUserMap().matchUsers(args[0], false, false))
+ for (IUser p : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{
p.getPlayer().setFireTicks(Integer.parseInt(args[1]) * 20);
sender.sendMessage(_("burnMsg", p.getPlayer().getDisplayName(), Integer.parseInt(args[1])));
diff --git a/Essentials/src/net/ess3/commands/Commandclearinventory.java b/Essentials/src/net/ess3/commands/Commandclearinventory.java
index f7740c96c..4374914f0 100644
--- a/Essentials/src/net/ess3/commands/Commandclearinventory.java
+++ b/Essentials/src/net/ess3/commands/Commandclearinventory.java
@@ -15,7 +15,7 @@ public class Commandclearinventory extends EssentialsCommand
{
if (args.length > 0 && Permissions.CLEARINVENTORY_OTHERS.isAuthorized(user))
{
- IUser p = ess.getUserMap().matchUser(args[0], false, false);
+ IUser p = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(user));
if (p != null)
{
p.getPlayer().getInventory().clear();
diff --git a/Essentials/src/net/ess3/commands/Commanddelhome.java b/Essentials/src/net/ess3/commands/Commanddelhome.java
index 2bebe25a8..f0b54cd27 100644
--- a/Essentials/src/net/ess3/commands/Commanddelhome.java
+++ b/Essentials/src/net/ess3/commands/Commanddelhome.java
@@ -34,7 +34,7 @@ public class Commanddelhome extends EssentialsCommand
if (expandedArg.length > 1 && (user == null || Permissions.DELHOME_OTHERS.isAuthorized(user)))
{
- user = ess.getUserMap().matchUser(expandedArg[1], false, true);
+ user = ess.getUserMap().matchUser(expandedArg[1], true);
name = expandedArg[1];
}
else if (user == null)
diff --git a/Essentials/src/net/ess3/commands/Commandeco.java b/Essentials/src/net/ess3/commands/Commandeco.java
index f5bc325c0..8dbb7ada4 100644
--- a/Essentials/src/net/ess3/commands/Commandeco.java
+++ b/Essentials/src/net/ess3/commands/Commandeco.java
@@ -82,7 +82,7 @@ public class Commandeco extends EssentialsCommand
}
else
{
- final IUser player = ess.getUserMap().matchUser(args[1], true, true);
+ final IUser player = ess.getUserMap().matchUser(args[1], true);
switch (cmd)
{
case GIVE:
diff --git a/Essentials/src/net/ess3/commands/Commandenderchest.java b/Essentials/src/net/ess3/commands/Commandenderchest.java
index 54214f812..942894840 100644
--- a/Essentials/src/net/ess3/commands/Commandenderchest.java
+++ b/Essentials/src/net/ess3/commands/Commandenderchest.java
@@ -12,7 +12,7 @@ public class Commandenderchest extends EssentialsCommand
{
if (args.length > 0 && Permissions.ENDERCHEST_OTHERS.isAuthorized(user))
{
- final IUser invUser = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser invUser = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
user.getPlayer().openInventory(invUser.getPlayer().getEnderChest());
user.setEnderSee(true);
}
diff --git a/Essentials/src/net/ess3/commands/Commandexp.java b/Essentials/src/net/ess3/commands/Commandexp.java
index 072434550..74751e531 100644
--- a/Essentials/src/net/ess3/commands/Commandexp.java
+++ b/Essentials/src/net/ess3/commands/Commandexp.java
@@ -87,7 +87,7 @@ public class Commandexp extends EssentialsCommand
private void showMatch(final CommandSender sender, final String match) throws NotEnoughArgumentsException
{
boolean foundUser = false;
- for (IUser matchPlayer : ess.getUserMap().matchUsers(match, false, false))
+ for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(match, getPlayerOrNull(sender)))
{
foundUser = true;
showExp(sender, matchPlayer);
@@ -101,7 +101,7 @@ public class Commandexp extends EssentialsCommand
private void expMatch(final CommandSender sender, final String match, final String amount, final boolean toggle) throws NotEnoughArgumentsException
{
boolean foundUser = false;
- for (IUser matchPlayer : ess.getUserMap().matchUsers(match, false, false))
+ for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(match, getPlayerOrNull(sender)))
{
setExp(sender, matchPlayer, amount, toggle);
foundUser = true;
diff --git a/Essentials/src/net/ess3/commands/Commandext.java b/Essentials/src/net/ess3/commands/Commandext.java
index 7fc130416..39dc82938 100644
--- a/Essentials/src/net/ess3/commands/Commandext.java
+++ b/Essentials/src/net/ess3/commands/Commandext.java
@@ -33,7 +33,7 @@ public class Commandext extends EssentialsCommand
private void extinguishPlayers(final CommandSender sender, final String name) throws Exception
{
- for (IUser matchPlayer : ess.getUserMap().matchUsers(name, false, false))
+ for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(name, getPlayerOrNull(sender)))
{
matchPlayer.getPlayer().setFireTicks(0);
sender.sendMessage(_("extinguishOthers", matchPlayer.getPlayer().getDisplayName()));
diff --git a/Essentials/src/net/ess3/commands/Commandfeed.java b/Essentials/src/net/ess3/commands/Commandfeed.java
index d58f14fa3..4f3719ca5 100644
--- a/Essentials/src/net/ess3/commands/Commandfeed.java
+++ b/Essentials/src/net/ess3/commands/Commandfeed.java
@@ -26,7 +26,7 @@ public class Commandfeed extends EssentialsCommand
private void feedOtherPlayers(final CommandSender sender, final String name)
{
- final Set<IUser> users = ess.getUserMap().matchUsers(name, false, false);
+ final Set<IUser> users = ess.getUserMap().matchUsersExcludingHidden(name, getPlayerOrNull(sender));
if (users.isEmpty())
{
sender.sendMessage(_("playerNotFound"));
diff --git a/Essentials/src/net/ess3/commands/Commandfly.java b/Essentials/src/net/ess3/commands/Commandfly.java
index 881fecc30..10025cc12 100644
--- a/Essentials/src/net/ess3/commands/Commandfly.java
+++ b/Essentials/src/net/ess3/commands/Commandfly.java
@@ -7,8 +7,6 @@ import org.bukkit.Server;
import org.bukkit.command.CommandSender;
-
-
public class Commandfly extends EssentialsCommand
{
@Override
@@ -40,8 +38,8 @@ public class Commandfly extends EssentialsCommand
private void flyOtherPlayers(final Server server, final CommandSender sender, final String[] args)
{
- for (IUser matchPlayer : ess.getUserMap().matchUsers(args[0],false,false))
- {
+ for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
+ {
if (args.length > 1)
{
if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))
@@ -57,7 +55,7 @@ public class Commandfly extends EssentialsCommand
{
matchPlayer.getPlayer().setAllowFlight(!matchPlayer.getPlayer().getAllowFlight());
}
-
+
if (!matchPlayer.getPlayer().getAllowFlight())
{
matchPlayer.getPlayer().setFlying(false);
diff --git a/Essentials/src/net/ess3/commands/Commandgamemode.java b/Essentials/src/net/ess3/commands/Commandgamemode.java
index eb74b6c33..92cad1787 100644
--- a/Essentials/src/net/ess3/commands/Commandgamemode.java
+++ b/Essentials/src/net/ess3/commands/Commandgamemode.java
@@ -36,7 +36,7 @@ public class Commandgamemode extends EssentialsCommand
private void gamemodeOtherPlayers(final CommandSender sender, final String args[])
{
- for (IUser player : ess.getUserMap().matchUsers(args[0], false, false))
+ for (IUser player : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{
if (args.length > 1)
{
diff --git a/Essentials/src/net/ess3/commands/Commandgetpos.java b/Essentials/src/net/ess3/commands/Commandgetpos.java
index 7b2dd2e68..96873186e 100644
--- a/Essentials/src/net/ess3/commands/Commandgetpos.java
+++ b/Essentials/src/net/ess3/commands/Commandgetpos.java
@@ -15,8 +15,8 @@ public class Commandgetpos extends EssentialsCommand
if (args.length > 0 && Permissions.GETPOS_OTHERS.isAuthorized(user))
{
//todo permissions
- final IUser otherUser = ess.getUserMap().matchUser(args[0], false, false);
- if (!otherUser.isHidden() || Permissions.LIST_HIDDEN.isAuthorized(user))
+ final IUser otherUser = ess.getUserMap().matchUser(args[0], false);
+ if (user.getPlayer().canSee(otherUser.getPlayer()) || Permissions.LIST_HIDDEN.isAuthorized(user))
{
outputPosition(user, otherUser.getPlayer().getLocation(), user.getPlayer().getLocation());
return;
@@ -33,7 +33,7 @@ public class Commandgetpos extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final IUser user = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser user = ess.getUserMap().matchUser(args[0], false);
outputPosition(sender, user.getPlayer().getLocation(), null);
}
diff --git a/Essentials/src/net/ess3/commands/Commandgive.java b/Essentials/src/net/ess3/commands/Commandgive.java
index 803680c53..416886ee6 100644
--- a/Essentials/src/net/ess3/commands/Commandgive.java
+++ b/Essentials/src/net/ess3/commands/Commandgive.java
@@ -21,7 +21,7 @@ public class Commandgive extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final IUser giveTo = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser giveTo = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender));
final ItemStack stack = ess.getItemDb().get(args[1], giveTo);
diff --git a/Essentials/src/net/ess3/commands/Commandgod.java b/Essentials/src/net/ess3/commands/Commandgod.java
index 11daf7321..97cbdad56 100644
--- a/Essentials/src/net/ess3/commands/Commandgod.java
+++ b/Essentials/src/net/ess3/commands/Commandgod.java
@@ -6,7 +6,6 @@ import net.ess3.permissions.Permissions;
import org.bukkit.command.CommandSender;
-
public class Commandgod extends EssentialsCommand
{
@Override
@@ -35,13 +34,8 @@ public class Commandgod extends EssentialsCommand
private void godOtherPlayers(final CommandSender sender, final String[] args)
{
- for (IUser player : ess.getUserMap().matchUsers(args[0], false, true))
+ for (IUser player : ess.getUserMap().matchUsers(args[0], true))
{
- if (player.isHidden())
- {
- continue;
- }
-
if (args.length > 1)
{
if (args[1].contains("on") || args[1].contains("ena") || args[1].equalsIgnoreCase("1"))
diff --git a/Essentials/src/net/ess3/commands/Commandheal.java b/Essentials/src/net/ess3/commands/Commandheal.java
index 5159da699..fd02a0201 100644
--- a/Essentials/src/net/ess3/commands/Commandheal.java
+++ b/Essentials/src/net/ess3/commands/Commandheal.java
@@ -43,7 +43,7 @@ public class Commandheal extends EssentialsCommand
private void healOtherPlayers(final CommandSender sender, final String name)
{
- final Set<IUser> users = ess.getUserMap().matchUsers(name, false, false);
+ final Set<IUser> users = ess.getUserMap().matchUsersExcludingHidden(name, getPlayerOrNull(sender));
if (users.isEmpty())
{
sender.sendMessage(_("playerNotFound"));
diff --git a/Essentials/src/net/ess3/commands/Commandhome.java b/Essentials/src/net/ess3/commands/Commandhome.java
index 247ecd2db..936a2f4a5 100644
--- a/Essentials/src/net/ess3/commands/Commandhome.java
+++ b/Essentials/src/net/ess3/commands/Commandhome.java
@@ -31,7 +31,7 @@ public class Commandhome extends EssentialsCommand
}
else
{
- player = ess.getUserMap().matchUser(nameParts[0], false, true);
+ player = ess.getUserMap().matchUser(nameParts[0], true);
if (nameParts.length > 1)
{
homeName = nameParts[1];
diff --git a/Essentials/src/net/ess3/commands/Commandignore.java b/Essentials/src/net/ess3/commands/Commandignore.java
index bc9dbd283..d0efc48c6 100644
--- a/Essentials/src/net/ess3/commands/Commandignore.java
+++ b/Essentials/src/net/ess3/commands/Commandignore.java
@@ -13,7 +13,7 @@ public class Commandignore extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- IUser player = ess.getUserMap().matchUser(args[0], false, false);
+ IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
if (user.isIgnoringPlayer(player))
{
diff --git a/Essentials/src/net/ess3/commands/Commandinvsee.java b/Essentials/src/net/ess3/commands/Commandinvsee.java
index 64e52e55d..7a81b36fb 100644
--- a/Essentials/src/net/ess3/commands/Commandinvsee.java
+++ b/Essentials/src/net/ess3/commands/Commandinvsee.java
@@ -21,7 +21,7 @@ public class Commandinvsee extends EssentialsCommand
IUser invUser = user;
if (args.length == 1)
{
- invUser = ess.getUserMap().matchUser(args[0], false, false);
+ invUser = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
}
if (invUser == user && user.getData().getInventory() != null)
{
diff --git a/Essentials/src/net/ess3/commands/Commandkick.java b/Essentials/src/net/ess3/commands/Commandkick.java
index ed3965794..a61e58af7 100644
--- a/Essentials/src/net/ess3/commands/Commandkick.java
+++ b/Essentials/src/net/ess3/commands/Commandkick.java
@@ -18,7 +18,7 @@ public class Commandkick extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final IUser user = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser user = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender));
if (Permissions.KICK_EXEMPT.isAuthorized(user))
{
throw new Exception(_("kickExempt"));
diff --git a/Essentials/src/net/ess3/commands/Commandkill.java b/Essentials/src/net/ess3/commands/Commandkill.java
index a098f8096..3b0c958f8 100644
--- a/Essentials/src/net/ess3/commands/Commandkill.java
+++ b/Essentials/src/net/ess3/commands/Commandkill.java
@@ -16,7 +16,7 @@ public class Commandkill extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- for (IUser matchPlayer : ess.getUserMap().matchUsers(args[0], false, false))
+ for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{
final EntityDamageEvent ede = new EntityDamageEvent(matchPlayer.getPlayer(), sender instanceof IUser && sender.getName().equals(matchPlayer.getName()) ? EntityDamageEvent.DamageCause.SUICIDE : EntityDamageEvent.DamageCause.CUSTOM, Short.MAX_VALUE);
server.getPluginManager().callEvent(ede);
diff --git a/Essentials/src/net/ess3/commands/Commandlightning.java b/Essentials/src/net/ess3/commands/Commandlightning.java
index a3cbf8038..ffaa05b98 100644
--- a/Essentials/src/net/ess3/commands/Commandlightning.java
+++ b/Essentials/src/net/ess3/commands/Commandlightning.java
@@ -25,7 +25,7 @@ public class Commandlightning extends EssentialsCommand
return;
}
- if (ess.getUserMap().matchUsers(args[0], false, false).isEmpty())
+ if (ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)).isEmpty())
{
throw new Exception(_("playerNotFound"));
}
@@ -42,7 +42,7 @@ public class Commandlightning extends EssentialsCommand
}
}
- for (IUser matchPlayer : ess.getUserMap().matchUsers(args[0], false, false))
+ for (IUser matchPlayer : ess.getUserMap().matchUsersExcludingHidden(args[0], getPlayerOrNull(sender)))
{
sender.sendMessage(_("lightningUse", matchPlayer.getPlayer().getDisplayName()));
final LightningStrike strike = matchPlayer.getPlayer().getWorld().strikeLightningEffect(matchPlayer.getPlayer().getLocation());
diff --git a/Essentials/src/net/ess3/commands/Commandlist.java b/Essentials/src/net/ess3/commands/Commandlist.java
index c04418a3b..e5376c0df 100644
--- a/Essentials/src/net/ess3/commands/Commandlist.java
+++ b/Essentials/src/net/ess3/commands/Commandlist.java
@@ -15,29 +15,38 @@ public class Commandlist extends EssentialsCommand
@Override
protected void run(final CommandSender sender, final String commandLabel, final String[] args) throws Exception
{
+ String online;
boolean showhidden = false;
if (Permissions.LIST_HIDDEN.isAuthorized(sender))
{
showhidden = true;
}
- int playerHidden = 0;
- for (Player onlinePlayer : server.getOnlinePlayers())
+ Player userPlayer = getPlayerOrNull(sender);
+ if (userPlayer != null)
{
- if (ess.getUserMap().getUser(onlinePlayer).isHidden())
+ int playerHidden = 0;
+ for (Player onlinePlayer : server.getOnlinePlayers())
{
- playerHidden++;
+ if (!userPlayer.canSee(onlinePlayer))
+ {
+ playerHidden++;
+ }
}
- }
- String online;
- if (showhidden && playerHidden > 0)
- {
- online = _("listAmountHidden", server.getOnlinePlayers().length - playerHidden, playerHidden, server.getMaxPlayers());
+ if (showhidden && playerHidden > 0)
+ {
+ online = _("listAmountHidden", server.getOnlinePlayers().length - playerHidden, playerHidden, server.getMaxPlayers());
+ }
+ else
+ {
+ online = _("listAmount", server.getOnlinePlayers().length - playerHidden, server.getMaxPlayers());
+ }
}
else
{
- online = _("listAmount", server.getOnlinePlayers().length - playerHidden, server.getMaxPlayers());
+ online = _("listAmount", server.getOnlinePlayers().length, server.getMaxPlayers());
}
+
sender.sendMessage(online);
ISettings settings = ess.getSettings();
@@ -47,21 +56,26 @@ public class Commandlist extends EssentialsCommand
if (sortListByGroups)
{
Map<String, List<IUser>> sort = new HashMap<String, List<IUser>>();
+ Set<String> hiddenPlayers = new HashSet<String>();
for (Player onlinePlayer : server.getOnlinePlayers())
{
- final IUser player = getUser(onlinePlayer);
- if (player.isHidden() && !showhidden)
+ if (userPlayer != null
+ && !userPlayer.canSee(onlinePlayer))
{
- continue;
+ hiddenPlayers.add(onlinePlayer.getName());
+ if (!showhidden)
+ {
+ continue;
+ }
}
- final String group = ess.getRanks().getMainGroup(player);
+ final String group = ess.getRanks().getMainGroup(onlinePlayer);
List<IUser> list = sort.get(group);
if (list == null)
{
list = new ArrayList<IUser>();
sort.put(group, list);
}
- list.add(player);
+ list.add(getUser(onlinePlayer));
}
final String[] groups = sort.keySet().toArray(new String[0]);
Arrays.sort(groups, String.CASE_INSENSITIVE_ORDER);
@@ -88,7 +102,7 @@ public class Commandlist extends EssentialsCommand
groupString.append(_("listAfkTag"));
}
- if (user.isHidden())
+ if (hiddenPlayers.contains(user.getName()))
{
groupString.append(_("listHiddenTag"));
}
@@ -102,14 +116,19 @@ public class Commandlist extends EssentialsCommand
else
{
final List<IUser> users = new ArrayList<IUser>();
+ Set<String> hiddenPlayers = new HashSet<String>();
for (Player onlinePlayer : server.getOnlinePlayers())
{
- final IUser player = getUser(onlinePlayer);
- if (player.isHidden() && !showhidden)
+ if (userPlayer != null
+ && !userPlayer.canSee(onlinePlayer))
{
- continue;
+ hiddenPlayers.add(onlinePlayer.getName());
+ if (!showhidden)
+ {
+ continue;
+ }
}
- users.add(player);
+ users.add(getUser(onlinePlayer));
}
Collections.sort(users);
@@ -132,7 +151,7 @@ public class Commandlist extends EssentialsCommand
onlineUsers.append(_("listAfkTag"));
}
- if (user.isHidden())
+ if (hiddenPlayers.contains(user.getName()))
{
onlineUsers.append(_("listHiddenTag"));
}
diff --git a/Essentials/src/net/ess3/commands/Commandmail.java b/Essentials/src/net/ess3/commands/Commandmail.java
index 3ee10cccb..6a510ae1e 100644
--- a/Essentials/src/net/ess3/commands/Commandmail.java
+++ b/Essentials/src/net/ess3/commands/Commandmail.java
@@ -37,7 +37,7 @@ public class Commandmail extends EssentialsCommand
throw new Exception(_("noPerm", "essentials.mail.send"));
}
- IUser u = ess.getUserMap().matchUser(args[1], true, true);
+ IUser u = ess.getUserMap().matchUser(args[1], true);
if (u == null)
{
throw new Exception(_("playerNeverOnServer", args[1]));
@@ -83,7 +83,7 @@ public class Commandmail extends EssentialsCommand
}
else if (args.length >= 3 && "send".equalsIgnoreCase(args[0]))
{
- IUser u = ess.getUserMap().matchUser(args[1], true, true);
+ IUser u = ess.getUserMap().matchUser(args[1], true);
u.addMail("Server: " + getFinalArg(args, 2));
sender.sendMessage(_("mailSent"));
return;
@@ -95,7 +95,7 @@ public class Commandmail extends EssentialsCommand
else if (args.length >= 2)
{
//allow sending from console without "send" argument, since it's the only thing the console can do
- IUser u = ess.getUserMap().matchUser(args[0], true, true);
+ IUser u = ess.getUserMap().matchUser(args[0], true);
u.addMail("Server: " + getFinalArg(args, 1));
sender.sendMessage(_("mailSent"));
return;
diff --git a/Essentials/src/net/ess3/commands/Commandmsg.java b/Essentials/src/net/ess3/commands/Commandmsg.java
index dcc76c185..aa54a4840 100644
--- a/Essentials/src/net/ess3/commands/Commandmsg.java
+++ b/Essentials/src/net/ess3/commands/Commandmsg.java
@@ -8,7 +8,7 @@ import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import net.ess3.utils.FormatUtil;
import org.bukkit.command.CommandSender;
-
+import org.bukkit.entity.Player;
public class Commandmsg extends EssentialsCommand
@@ -57,31 +57,37 @@ public class Commandmsg extends EssentialsCommand
Console.getConsoleReplyTo().setReplyTo(sender);
return;
}
+
- final Set<IUser> matchedPlayers = ess.getUserMap().matchUsers(args[0], true, false);
+ final Set<IUser> matchedPlayers = ess.getUserMap().matchUsers(args[0], false);
if (matchedPlayers.isEmpty())
{
throw new Exception(_("playerNotFound"));
}
- int i = 0;
- for (IUser u : matchedPlayers)
+ final Player player = getPlayerOrNull(sender);
+ if (isUser(sender))
{
- if (u.isHidden())
+ int i = 0;
+
+ for (IUser u : matchedPlayers)
{
- i++;
+ if (!player.canSee(u.getPlayer()))
+ {
+ i++;
+ }
+ }
+ if (i == matchedPlayers.size())
+ {
+ throw new Exception(_("playerNotFound"));
}
- }
- if (i == matchedPlayers.size())
- {
- throw new Exception(_("playerNotFound"));
}
for (IUser matchedPlayer : matchedPlayers)
{
sender.sendMessage(_("msgFormat", translatedMe, matchedPlayer.getPlayer().getDisplayName(), message));
- if (isUser(sender) && (matchedPlayer.isIgnoringPlayer(getUser(sender)) || matchedPlayer.isHidden()))
+ if (isUser(sender) && (matchedPlayer.isIgnoringPlayer(getUser(sender)) || !player.canSee(matchedPlayer.getPlayer())))
{
continue;
}
diff --git a/Essentials/src/net/ess3/commands/Commandmute.java b/Essentials/src/net/ess3/commands/Commandmute.java
index 5cbba493b..8e23855d4 100644
--- a/Essentials/src/net/ess3/commands/Commandmute.java
+++ b/Essentials/src/net/ess3/commands/Commandmute.java
@@ -18,7 +18,7 @@ public class Commandmute extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final IUser player = ess.getUserMap().matchUser(args[0], false, true);
+ final IUser player = ess.getUserMap().matchUser(args[0], true);
if (!player.getData().isMuted() && Permissions.MUTE_EXEMPT.isAuthorized(player))
{
throw new Exception(_("muteExempt"));
diff --git a/Essentials/src/net/ess3/commands/Commandnear.java b/Essentials/src/net/ess3/commands/Commandnear.java
index d8c313012..f41c99907 100644
--- a/Essentials/src/net/ess3/commands/Commandnear.java
+++ b/Essentials/src/net/ess3/commands/Commandnear.java
@@ -22,7 +22,7 @@ public class Commandnear extends EssentialsCommand
{
try
{
- otherUser = ess.getUserMap().matchUser(args[0], false, false);
+ otherUser = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
}
catch (Exception ex)
{
@@ -62,7 +62,7 @@ public class Commandnear extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final IUser otherUser = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser otherUser = ess.getUserMap().matchUser(args[0], false);
long radius = 200;
if (args.length > 1)
{
@@ -83,11 +83,11 @@ public class Commandnear extends EssentialsCommand
final World world = loc.getWorld();
final StringBuilder output = new StringBuilder();
final long radiusSquared = radius * radius;
+ Player userPlayer = user.getPlayer();
for (Player onlinePlayer : server.getOnlinePlayers())
{
- final IUser player = getUser(onlinePlayer);
- if (!player.equals(user) && !player.isHidden())
+ if (!onlinePlayer.getName().equals(user.getName()) && userPlayer.canSee(onlinePlayer))
{
final Location playerLoc = onlinePlayer.getLocation();
if (playerLoc.getWorld() != world)
diff --git a/Essentials/src/net/ess3/commands/Commandnick.java b/Essentials/src/net/ess3/commands/Commandnick.java
index 86cc8113e..7a152052a 100644
--- a/Essentials/src/net/ess3/commands/Commandnick.java
+++ b/Essentials/src/net/ess3/commands/Commandnick.java
@@ -31,7 +31,7 @@ public class Commandnick extends EssentialsCommand
{
throw new Exception(_("nickOthersPermission"));
}
- setNickname(ess.getUserMap().matchUser(args[0], false, false), formatNickname(user, args[1]));
+ setNickname(ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer()), formatNickname(user, args[1]));
user.sendMessage(_("nickChanged"));
return;
}
@@ -56,7 +56,7 @@ public class Commandnick extends EssentialsCommand
}
else
{
- setNickname(ess.getUserMap().matchUser(args[0], false, false), formatNickname(null, args[1]));
+ setNickname(ess.getUserMap().matchUser(args[0], false), formatNickname(null, args[1]));
}
sender.sendMessage(_("nickChanged"));
}
diff --git a/Essentials/src/net/ess3/commands/Commandpay.java b/Essentials/src/net/ess3/commands/Commandpay.java
index 9143d5fd8..ff7e1ef12 100644
--- a/Essentials/src/net/ess3/commands/Commandpay.java
+++ b/Essentials/src/net/ess3/commands/Commandpay.java
@@ -23,7 +23,7 @@ public class Commandpay extends EssentialsCommand
}
boolean foundUser = false;
- for (IUser u : ess.getUserMap().matchUsers(args[0], false, true))
+ for (IUser u : ess.getUserMap().matchUsers(args[0], true))
{
user.payUser(u, amount);
Trade.log("Command", "Pay", "Player", user.getName(), new Trade(amount, ess), u.getName(), new Trade(amount, ess), user.getPlayer().getLocation(), ess);
diff --git a/Essentials/src/net/ess3/commands/Commandrealname.java b/Essentials/src/net/ess3/commands/Commandrealname.java
index 40c6b3003..b1372bd19 100644
--- a/Essentials/src/net/ess3/commands/Commandrealname.java
+++ b/Essentials/src/net/ess3/commands/Commandrealname.java
@@ -20,10 +20,11 @@ public class Commandrealname extends EssentialsCommand
}
final ISettings settings = ess.getSettings();
final String whois = args[0].toLowerCase(Locale.ENGLISH);
+ Player player = sender instanceof IUser ? ((IUser)sender).getPlayer() : null;
for (Player onlinePlayer : server.getOnlinePlayers())
{
final IUser u = ess.getUserMap().getUser(onlinePlayer);
- if (u.isHidden())
+ if (player != null && !player.canSee(onlinePlayer))
{
continue;
}
diff --git a/Essentials/src/net/ess3/commands/Commandseen.java b/Essentials/src/net/ess3/commands/Commandseen.java
index 4cc3ba1eb..121b5e735 100644
--- a/Essentials/src/net/ess3/commands/Commandseen.java
+++ b/Essentials/src/net/ess3/commands/Commandseen.java
@@ -30,7 +30,7 @@ public class Commandseen extends EssentialsCommand
}
try
{
- IUser u = ess.getUserMap().matchUser(args[0], false, false);
+ IUser u = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender));
sender.sendMessage(_("seenOnline", u.getPlayer().getDisplayName(), DateUtil.formatDateDiff(u.getTimestamp(TimestampType.LOGIN))));
}
catch (PlayerNotFoundException e)
diff --git a/Essentials/src/net/ess3/commands/Commandspawn.java b/Essentials/src/net/ess3/commands/Commandspawn.java
index 9a0625a6c..2504a1576 100644
--- a/Essentials/src/net/ess3/commands/Commandspawn.java
+++ b/Essentials/src/net/ess3/commands/Commandspawn.java
@@ -18,7 +18,7 @@ public class Commandspawn extends EssentialsCommand
charge.isAffordableFor(user);
if (args.length > 0 && Permissions.SPAWN_OTHERS.isAuthorized(user))
{
- final IUser otherUser = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser otherUser = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
respawn(otherUser, null);
if (!otherUser.equals(user))
{
@@ -39,7 +39,7 @@ public class Commandspawn extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final IUser user = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser user = ess.getUserMap().matchUser(args[0], false);
respawn(user, null);
user.sendMessage(_("teleportAtoB", user.getPlayer().getDisplayName(), "spawn"));
sender.sendMessage(_("teleporting"));
diff --git a/Essentials/src/net/ess3/commands/Commandsudo.java b/Essentials/src/net/ess3/commands/Commandsudo.java
index 58279c9ef..3193122fb 100644
--- a/Essentials/src/net/ess3/commands/Commandsudo.java
+++ b/Essentials/src/net/ess3/commands/Commandsudo.java
@@ -17,7 +17,7 @@ public class Commandsudo extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final IUser user = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser user = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender));
final String command = args[1];
final String[] arguments = new String[args.length - 2];
if (arguments.length > 0)
diff --git a/Essentials/src/net/ess3/commands/Commandtempban.java b/Essentials/src/net/ess3/commands/Commandtempban.java
index a687cbb0d..ef21375ab 100644
--- a/Essentials/src/net/ess3/commands/Commandtempban.java
+++ b/Essentials/src/net/ess3/commands/Commandtempban.java
@@ -19,7 +19,7 @@ public class Commandtempban extends EssentialsCommand
{
throw new NotEnoughArgumentsException();
}
- final IUser user = ess.getUserMap().matchUser(args[0], false, true);
+ final IUser user = ess.getUserMap().matchUser(args[0], true);
if (!user.isOnline())
{
if (Permissions.TEMPBAN_OFFLINE.isAuthorized(sender))
diff --git a/Essentials/src/net/ess3/commands/Commandtogglejail.java b/Essentials/src/net/ess3/commands/Commandtogglejail.java
index cf033aa12..667a4a551 100644
--- a/Essentials/src/net/ess3/commands/Commandtogglejail.java
+++ b/Essentials/src/net/ess3/commands/Commandtogglejail.java
@@ -18,7 +18,7 @@ public class Commandtogglejail extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final IUser player = ess.getUserMap().matchUser(args[0], false, true);
+ final IUser player = ess.getUserMap().matchUser(args[0], true);
if (args.length >= 2 && !player.getData().isJailed())
{
diff --git a/Essentials/src/net/ess3/commands/Commandtp.java b/Essentials/src/net/ess3/commands/Commandtp.java
index 5a3acb3bc..66aa5d604 100644
--- a/Essentials/src/net/ess3/commands/Commandtp.java
+++ b/Essentials/src/net/ess3/commands/Commandtp.java
@@ -22,7 +22,7 @@ public class Commandtp extends EssentialsCommand
throw new NotEnoughArgumentsException();
case 1:
- final IUser player = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
if (!player.getData().isTeleportEnabled())
{
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName()));
@@ -45,9 +45,9 @@ public class Commandtp extends EssentialsCommand
}
user.sendMessage(_("teleporting"));
- final IUser target = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser target = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
- final IUser toPlayer = ess.getUserMap().matchUser(args[1], false, false);
+ final IUser toPlayer = ess.getUserMap().matchUserExcludingHidden(args[1], user.getPlayer());
if (!target.getData().isTeleportEnabled())
{
diff --git a/Essentials/src/net/ess3/commands/Commandtpa.java b/Essentials/src/net/ess3/commands/Commandtpa.java
index 214a07f44..9e585abf9 100644
--- a/Essentials/src/net/ess3/commands/Commandtpa.java
+++ b/Essentials/src/net/ess3/commands/Commandtpa.java
@@ -17,7 +17,7 @@ public class Commandtpa extends EssentialsCommand
}
- IUser player = ess.getUserMap().matchUser(args[0], false, false);
+ IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
if (!player.getData().isTeleportEnabled())
{
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName()));
diff --git a/Essentials/src/net/ess3/commands/Commandtpaall.java b/Essentials/src/net/ess3/commands/Commandtpaall.java
index 6629a4929..633027620 100644
--- a/Essentials/src/net/ess3/commands/Commandtpaall.java
+++ b/Essentials/src/net/ess3/commands/Commandtpaall.java
@@ -23,7 +23,7 @@ public class Commandtpaall extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final IUser player = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender));
teleportAAllPlayers(sender, player);
}
diff --git a/Essentials/src/net/ess3/commands/Commandtpahere.java b/Essentials/src/net/ess3/commands/Commandtpahere.java
index 00cc6171d..ad876e996 100644
--- a/Essentials/src/net/ess3/commands/Commandtpahere.java
+++ b/Essentials/src/net/ess3/commands/Commandtpahere.java
@@ -17,7 +17,7 @@ public class Commandtpahere extends EssentialsCommand
}
- final IUser player = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
if (!player.getData().isTeleportEnabled())
{
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName()));
diff --git a/Essentials/src/net/ess3/commands/Commandtpall.java b/Essentials/src/net/ess3/commands/Commandtpall.java
index fc07a1610..5fbafad81 100644
--- a/Essentials/src/net/ess3/commands/Commandtpall.java
+++ b/Essentials/src/net/ess3/commands/Commandtpall.java
@@ -24,7 +24,7 @@ public class Commandtpall extends EssentialsCommand
throw new NotEnoughArgumentsException();
}
- final IUser player = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], getPlayerOrNull(sender));
teleportAllPlayers(sender, player);
}
diff --git a/Essentials/src/net/ess3/commands/Commandtphere.java b/Essentials/src/net/ess3/commands/Commandtphere.java
index a47f28edd..525591e9b 100644
--- a/Essentials/src/net/ess3/commands/Commandtphere.java
+++ b/Essentials/src/net/ess3/commands/Commandtphere.java
@@ -11,7 +11,7 @@ public class Commandtphere extends EssentialsCommand
@Override
public void run(final IUser user, final String commandLabel, final String[] args) throws Exception
{
- final IUser player = ess.getUserMap().matchUser(args[0], false, false);
+ final IUser player = ess.getUserMap().matchUserExcludingHidden(args[0], user.getPlayer());
if (!player.getData().isTeleportEnabled())
{
throw new Exception(_("teleportDisabled", player.getPlayer().getDisplayName()));
diff --git a/Essentials/src/net/ess3/commands/Commandtpo.java b/Essentials/src/net/ess3/commands/Commandtpo.java
index ae6a9d5c4..0ca3df387 100644
--- a/Essentials/src/net/ess3/commands/Commandtpo.java
+++ b/Essentials/src/net/ess3/commands/Commandtpo.java
@@ -17,15 +17,10 @@ public class Commandtpo extends EssentialsCommand
}
//Just basically the old tp command
- final IUser player = ess.getUserMap().matchUser(args[0], false, true);
- // Check if user is offline
- if (!player.isOnline())
- {
- throw new NoSuchFieldException(_("playerNotFound"));
- }
+ final IUser player = ess.getUserMap().matchUser(args[0], false);
// Verify permission
- if (!player.isHidden() || Permissions.TELEPORT_HIDDEN.isAuthorized(user))
+ if (user.getPlayer().canSee(player.getPlayer()) || Permissions.TELEPORT_HIDDEN.isAuthorized(user))
{
user.getTeleport().now(player.getPlayer(), false, TeleportCause.COMMAND);
user.sendMessage(_("teleporting"));
diff --git a/Essentials/src/net/ess3/commands/Commandtpohere.java b/Essentials/src/net/ess3/commands/Commandtpohere.java
index 7bf25dac7..db6adfdab 100644
--- a/Essentials/src/net/ess3/commands/Commandtpohere.java
+++ b/Essentials/src/net/ess3/commands/Commandtpohere.java
@@ -18,13 +18,7 @@ public class Commandtpohere extends EssentialsCommand
}
//Just basically the old tphere command
- final IUser player = ess.getUserMap().matchUser(args[0], false, true);
-
- // Check if user is offline
- if (!player.isOnline())
- {
- throw new NoSuchFieldException(_("playerNotFound"));
- }
+ final IUser player = ess.getUserMap().matchUser(args[0], false);
ISettings settings = ess.getSettings();
//todo - common method
@@ -36,7 +30,7 @@ public class Commandtpohere extends EssentialsCommand
// Verify permission
- if (!player.isHidden() || Permissions.TELEPORT_HIDDEN.isAuthorized(user))
+ if (user.getPlayer().canSee(player.getPlayer()) || Permissions.TELEPORT_HIDDEN.isAuthorized(user))
{
player.getTeleport().now(user.getPlayer(), false, TeleportCause.COMMAND);
user.sendMessage(_("teleporting"));
diff --git a/Essentials/src/net/ess3/commands/Commandunban.java b/Essentials/src/net/ess3/commands/Commandunban.java
index 5693454ad..d6a6d3b12 100644
--- a/Essentials/src/net/ess3/commands/Commandunban.java
+++ b/Essentials/src/net/ess3/commands/Commandunban.java
@@ -16,7 +16,7 @@ public class Commandunban extends EssentialsCommand
}
- final IUser player = ess.getUserMap().matchUser(args[0], false, true);
+ final IUser player = ess.getUserMap().matchUser(args[0], true);
player.getData().setBan(null);
player.setBanned(false);
player.queueSave();
diff --git a/Essentials/src/net/ess3/commands/Commandunbanip.java b/Essentials/src/net/ess3/commands/Commandunbanip.java
index 1fd07f09b..325edea64 100644
--- a/Essentials/src/net/ess3/commands/Commandunbanip.java
+++ b/Essentials/src/net/ess3/commands/Commandunbanip.java
@@ -16,7 +16,7 @@ public class Commandunbanip extends EssentialsCommand
}
try
{
- final IUser user = ess.getUserMap().matchUser(args[0], false, true);
+ final IUser user = ess.getUserMap().matchUser(args[0], true);
ess.getServer().unbanIP(user.getData().getIpAddress());
}
catch (Exception ex)
diff --git a/Essentials/src/net/ess3/commands/Commandunlimited.java b/Essentials/src/net/ess3/commands/Commandunlimited.java
index 91483a62a..db6d17f66 100644
--- a/Essentials/src/net/ess3/commands/Commandunlimited.java
+++ b/Essentials/src/net/ess3/commands/Commandunlimited.java
@@ -25,7 +25,7 @@ public class Commandunlimited extends EssentialsCommand
if (args.length > 1 && Permissions.UNLIMITED_OTHERS.isAuthorized(user))
{
- target = ess.getUserMap().matchUser(args[1], false, false);
+ target = ess.getUserMap().matchUserExcludingHidden(args[1], user.getPlayer());
}
if (args[0].equalsIgnoreCase("list"))
diff --git a/Essentials/src/net/ess3/commands/Commandwarp.java b/Essentials/src/net/ess3/commands/Commandwarp.java
index 9e08f849f..ed862171d 100644
--- a/Essentials/src/net/ess3/commands/Commandwarp.java
+++ b/Essentials/src/net/ess3/commands/Commandwarp.java
@@ -35,10 +35,10 @@ public class Commandwarp extends EssentialsCommand
IUser otherUser = null;
if (args.length == 2 && Permissions.WARP_OTHERS.isAuthorized(user))
{
- otherUser = ess.getUserMap().matchUser(args[1],Permissions.WARP_HIDDEN.isAuthorized(user), false);
- if (otherUser == null)
- {
- throw new Exception(_("playerNotFound"));
+ if (Permissions.WARP_HIDDEN.isAuthorized(user)) {
+ otherUser = ess.getUserMap().matchUser(args[1], false);
+ } else {
+ otherUser = ess.getUserMap().matchUserExcludingHidden(args[1], user.getPlayer());
}
warpUser(otherUser, args[0]);
throw new NoChargeException();
@@ -56,7 +56,7 @@ public class Commandwarp extends EssentialsCommand
warpList(sender, args);
throw new NoChargeException();
}
- IUser otherUser = ess.getUserMap().matchUser(args[1],Permissions.WARP_HIDDEN.isAuthorized(sender), false);
+ IUser otherUser = ess.getUserMap().matchUser(args[1], false);
if (otherUser == null)
{
throw new Exception(_("playerNotFound"));
diff --git a/Essentials/src/net/ess3/commands/Commandwhois.java b/Essentials/src/net/ess3/commands/Commandwhois.java
index f93a047bd..38ed8fd2e 100644
--- a/Essentials/src/net/ess3/commands/Commandwhois.java
+++ b/Essentials/src/net/ess3/commands/Commandwhois.java
@@ -43,7 +43,7 @@ public class Commandwhois extends EssentialsCommand
{
final IUser user = ess.getUserMap().getUser(onlinePlayer);
- if (user.isHidden() && !showhidden)
+ if (sender instanceof IUser && ((IUser)sender).getPlayer().canSee(onlinePlayer) && !showhidden)
{
continue;
}
diff --git a/Essentials/src/net/ess3/commands/EssentialsCommand.java b/Essentials/src/net/ess3/commands/EssentialsCommand.java
index fb7c407b8..7b9c0c1f9 100644
--- a/Essentials/src/net/ess3/commands/EssentialsCommand.java
+++ b/Essentials/src/net/ess3/commands/EssentialsCommand.java
@@ -161,4 +161,11 @@ public abstract class EssentialsCommand extends AbstractSuperpermsPermission imp
}
throw new IllegalArgumentException();
}
+
+ protected Player getPlayerOrNull(CommandSender sender) {
+ if (sender instanceof IUser) {
+ return ((IUser)sender).getPlayer();
+ }
+ return null;
+ }
}
diff --git a/Essentials/src/net/ess3/ranks/AbstractRanks.java b/Essentials/src/net/ess3/ranks/AbstractRanks.java
new file mode 100644
index 000000000..a0ea29c62
--- /dev/null
+++ b/Essentials/src/net/ess3/ranks/AbstractRanks.java
@@ -0,0 +1,41 @@
+package net.ess3.ranks;
+
+import java.text.MessageFormat;
+import net.ess3.api.IUser;
+import net.ess3.utils.FormatUtil;
+import org.bukkit.command.CommandSender;
+import org.bukkit.entity.Player;
+
+
+public abstract class AbstractRanks
+{
+ protected Player getPlayer(CommandSender sender)
+ {
+ if (sender instanceof IUser)
+ {
+ return ((IUser)sender).getPlayer();
+ }
+ if (sender instanceof Player)
+ {
+ return (Player)sender;
+ }
+ throw new IllegalArgumentException();
+ }
+
+ //TODO: Reimplement caching
+ public MessageFormat getChatFormat(final CommandSender player)
+ {
+ String format = getRawChatFormat(player);
+ format = FormatUtil.replaceFormat(format);
+ format = format.replace("{DISPLAYNAME}", "%1$s");
+ format = format.replace("{GROUP}", "{0}");
+ format = format.replace("{MESSAGE}", "%2$s");
+ format = format.replace("{WORLDNAME}", "{1}");
+ format = format.replace("{SHORTWORLDNAME}", "{2}");
+ format = format.replaceAll("\\{(\\D*)\\}", "\\[$1\\]");
+ MessageFormat mFormat = new MessageFormat(format);
+ return mFormat;
+ }
+
+ protected abstract String getRawChatFormat(final CommandSender sender);
+}
diff --git a/Essentials/src/net/ess3/ranks/GMGroups.java b/Essentials/src/net/ess3/ranks/GMGroups.java
index 3e12476f1..4d2a278d9 100644
--- a/Essentials/src/net/ess3/ranks/GMGroups.java
+++ b/Essentials/src/net/ess3/ranks/GMGroups.java
@@ -1,17 +1,15 @@
package net.ess3.ranks;
-import java.text.MessageFormat;
import net.ess3.api.IEssentials;
import net.ess3.api.IRanks;
import net.ess3.api.ISettings;
-import net.ess3.api.IUser;
-import net.ess3.utils.FormatUtil;
import org.anjocaido.groupmanager.GroupManager;
import org.anjocaido.groupmanager.permissions.AnjoPermissionsHandler;
+import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;
-public class GMGroups implements IRanks
+public class GMGroups extends AbstractRanks implements IRanks
{
private final transient IEssentials ess;
private final transient GroupManager groupManager;
@@ -21,11 +19,11 @@ public class GMGroups implements IRanks
this.ess = ess;
this.groupManager = (GroupManager)groupManager;
}
-
+
@Override
- public double getHealCooldown(IUser player)
+ public double getHealCooldown(CommandSender player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player));
if (handler == null)
{
return 0;
@@ -34,9 +32,9 @@ public class GMGroups implements IRanks
}
@Override
- public double getTeleportCooldown(IUser player)
+ public double getTeleportCooldown(CommandSender player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player));
if (handler == null)
{
return 0;
@@ -45,9 +43,9 @@ public class GMGroups implements IRanks
}
@Override
- public double getTeleportDelay(IUser player)
+ public double getTeleportDelay(CommandSender player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player));
if (handler == null)
{
return 0;
@@ -56,9 +54,9 @@ public class GMGroups implements IRanks
}
@Override
- public String getPrefix(IUser player)
+ public String getPrefix(CommandSender player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player));
if (handler == null)
{
return null;
@@ -67,9 +65,9 @@ public class GMGroups implements IRanks
}
@Override
- public String getSuffix(IUser player)
+ public String getSuffix(CommandSender player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player));
if (handler == null)
{
return null;
@@ -78,9 +76,9 @@ public class GMGroups implements IRanks
}
@Override
- public int getHomeLimit(IUser player)
+ public int getHomeLimit(CommandSender player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player));
if (handler == null)
{
return 0;
@@ -89,23 +87,9 @@ public class GMGroups implements IRanks
}
@Override
- public MessageFormat getChatFormat(final IUser player)
- {
- String format = getRawChatFormat(player);
- format = FormatUtil.replaceFormat(format);
- format = format.replace("{DISPLAYNAME}", "%1$s");
- format = format.replace("{GROUP}", "{0}");
- format = format.replace("{MESSAGE}", "%2$s");
- format = format.replace("{WORLDNAME}", "{1}");
- format = format.replace("{SHORTWORLDNAME}", "{2}");
- format = format.replaceAll("\\{(\\D*)\\}", "\\[$1\\]");
- MessageFormat mFormat = new MessageFormat(format);
- return mFormat;
- }
-
- private String getRawChatFormat(final IUser player)
+ protected String getRawChatFormat(final CommandSender player)
{
- AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer());
+ AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player));
if (handler != null)
{
String chatformat = handler.getPermissionString(player.getName(), "chatformat");
@@ -120,9 +104,9 @@ public class GMGroups implements IRanks
}
@Override
- public String getMainGroup(IUser player)
+ public String getMainGroup(CommandSender player)
{
- final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getPlayer());
+ final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player));
if (handler == null)
{
return null;
@@ -131,9 +115,9 @@ public class GMGroups implements IRanks
}
@Override
- public boolean inGroup(IUser player, String groupname)
+ public boolean inGroup(CommandSender player, String groupname)
{
- final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(player.getName());
+ final AnjoPermissionsHandler handler = groupManager.getWorldsHolder().getWorldPermissions(getPlayer(player));
if (handler == null)
{
return false;
diff --git a/Essentials/src/net/ess3/ranks/RanksStorage.java b/Essentials/src/net/ess3/ranks/RanksStorage.java
index 325d35b18..d5763687b 100644
--- a/Essentials/src/net/ess3/ranks/RanksStorage.java
+++ b/Essentials/src/net/ess3/ranks/RanksStorage.java
@@ -10,14 +10,21 @@ import java.util.Map.Entry;
import net.ess3.api.IEssentials;
import net.ess3.api.IRanks;
import net.ess3.api.ISettings;
-import net.ess3.api.IUser;
import net.ess3.permissions.Permissions;
import net.ess3.storage.AsyncStorageObjectHolder;
-import net.ess3.utils.FormatUtil;
+import org.bukkit.command.CommandSender;
public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRanks
{
+ private AbstractRanks abstractRanks = new AbstractRanks() {
+ @Override
+ protected String getRawChatFormat(CommandSender sender)
+ {
+ return RanksStorage.this.getRawChatFormat(sender);
+ }
+ };
+
@Override
public void finishRead()
{
@@ -34,7 +41,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
onReload();
}
- public Collection<Entry<String, RankOptions>> getGroups(final IUser player)
+ public Collection<Entry<String, RankOptions>> getGroups(final CommandSender player)
{
final Map<String, RankOptions> groups = getData().getRanks();
if (groups == null || groups.isEmpty())
@@ -56,7 +63,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
}
@Override
- public double getHealCooldown(final IUser player)
+ public double getHealCooldown(final CommandSender player)
{
for (Entry<String, RankOptions> groupOptions : getGroups(player))
{
@@ -69,7 +76,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
}
@Override
- public double getTeleportCooldown(final IUser player)
+ public double getTeleportCooldown(final CommandSender player)
{
for (Entry<String, RankOptions> groupOptions : getGroups(player))
{
@@ -82,7 +89,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
}
@Override
- public double getTeleportDelay(final IUser player)
+ public double getTeleportDelay(final CommandSender player)
{
for (Entry<String, RankOptions> groupOptions : getGroups(player))
{
@@ -95,7 +102,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
}
@Override
- public String getPrefix(final IUser player)
+ public String getPrefix(final CommandSender player)
{
for (Entry<String, RankOptions> groupOptions : getGroups(player))
{
@@ -108,7 +115,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
}
@Override
- public String getSuffix(final IUser player)
+ public String getSuffix(final CommandSender player)
{
for (Entry<String, RankOptions> groupOptions : getGroups(player))
{
@@ -121,7 +128,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
}
@Override
- public int getHomeLimit(final IUser player)
+ public int getHomeLimit(final CommandSender player)
{
for (Entry<String, RankOptions> groupOptions : getGroups(player))
{
@@ -133,23 +140,13 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
return 0;
}
- //TODO: Reimplement caching
@Override
- public MessageFormat getChatFormat(final IUser player)
+ public MessageFormat getChatFormat(final CommandSender player)
{
- String format = getRawChatFormat(player);
- format = FormatUtil.replaceFormat(format);
- format = format.replace("{DISPLAYNAME}", "%1$s");
- format = format.replace("{GROUP}", "{0}");
- format = format.replace("{MESSAGE}", "%2$s");
- format = format.replace("{WORLDNAME}", "{1}");
- format = format.replace("{SHORTWORLDNAME}", "{2}");
- format = format.replaceAll("\\{(\\D*)\\}", "\\[$1\\]");
- MessageFormat mFormat = new MessageFormat(format);
- return mFormat;
+ return abstractRanks.getChatFormat(player);
}
- private String getRawChatFormat(final IUser player)
+ private String getRawChatFormat(final CommandSender player)
{
for (Entry<String, RankOptions> groupOptions : getGroups(player))
{
@@ -164,7 +161,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
}
@Override
- public boolean inGroup(IUser player, String groupname)
+ public boolean inGroup(CommandSender player, String groupname)
{
for (Entry<String, RankOptions> groupOptions : getGroups(player))
{
@@ -177,7 +174,7 @@ public class RanksStorage extends AsyncStorageObjectHolder<Ranks> implements IRa
}
@Override
- public String getMainGroup(IUser player)
+ public String getMainGroup(CommandSender player)
{
for (Entry<String, RankOptions> groupOptions : getGroups(player))
{
diff --git a/Essentials/src/net/ess3/ranks/VaultGroups.java b/Essentials/src/net/ess3/ranks/VaultGroups.java
index 1f5788183..c4dfd062d 100644
--- a/Essentials/src/net/ess3/ranks/VaultGroups.java
+++ b/Essentials/src/net/ess3/ranks/VaultGroups.java
@@ -1,16 +1,14 @@
package net.ess3.ranks;
-import java.text.MessageFormat;
import net.ess3.api.IEssentials;
import net.ess3.api.IRanks;
import net.ess3.api.ISettings;
-import net.ess3.api.IUser;
-import net.ess3.utils.FormatUtil;
import net.milkbowl.vault.chat.Chat;
+import org.bukkit.command.CommandSender;
import org.bukkit.plugin.RegisteredServiceProvider;
-public class VaultGroups implements IRanks
+public class VaultGroups extends AbstractRanks implements IRanks
{
private final IEssentials ess;
@@ -25,66 +23,52 @@ public class VaultGroups implements IRanks
}
@Override
- public double getHealCooldown(IUser player)
+ public double getHealCooldown(CommandSender player)
{
Chat chat = getServiceProvider(Chat.class);
- return chat.getPlayerInfoDouble(player.getPlayer(), "healcooldown", 0);
+ return chat.getPlayerInfoDouble(getPlayer(player), "healcooldown", 0);
}
@Override
- public double getTeleportCooldown(IUser player)
+ public double getTeleportCooldown(CommandSender player)
{
Chat chat = getServiceProvider(Chat.class);
- return chat.getPlayerInfoDouble(player.getPlayer(), "teleportcooldown", 0);
+ return chat.getPlayerInfoDouble(getPlayer(player), "teleportcooldown", 0);
}
@Override
- public double getTeleportDelay(IUser player)
+ public double getTeleportDelay(CommandSender player)
{
Chat chat = getServiceProvider(Chat.class);
- return chat.getPlayerInfoDouble(player.getPlayer(), "teleportdelay", 0);
+ return chat.getPlayerInfoDouble(getPlayer(player), "teleportdelay", 0);
}
@Override
- public String getPrefix(IUser player)
+ public String getPrefix(CommandSender player)
{
Chat chat = getServiceProvider(Chat.class);
- return chat.getPlayerPrefix(player.getPlayer());
+ return chat.getPlayerPrefix(getPlayer(player));
}
@Override
- public String getSuffix(IUser player)
+ public String getSuffix(CommandSender player)
{
Chat chat = getServiceProvider(Chat.class);
- return chat.getPlayerSuffix(player.getPlayer());
+ return chat.getPlayerSuffix(getPlayer(player));
}
@Override
- public int getHomeLimit(IUser player)
+ public int getHomeLimit(CommandSender player)
{
Chat chat = getServiceProvider(Chat.class);
- return chat.getPlayerInfoInteger(player.getPlayer(), "homes", 0);
+ return chat.getPlayerInfoInteger(getPlayer(player), "homes", 0);
}
@Override
- public MessageFormat getChatFormat(final IUser player)
- {
- String format = getRawChatFormat(player);
- format = FormatUtil.replaceFormat(format);
- format = format.replace("{DISPLAYNAME}", "%1$s");
- format = format.replace("{GROUP}", "{0}");
- format = format.replace("{MESSAGE}", "%2$s");
- format = format.replace("{WORLDNAME}", "{1}");
- format = format.replace("{SHORTWORLDNAME}", "{2}");
- format = format.replaceAll("\\{(\\D*)\\}", "\\[$1\\]");
- MessageFormat mFormat = new MessageFormat(format);
- return mFormat;
- }
-
- private String getRawChatFormat(final IUser player)
+ protected String getRawChatFormat(final CommandSender player)
{
Chat chat = getServiceProvider(Chat.class);
- String chatformat = chat.getPlayerInfoString(player.getPlayer(), "chatformat", "");
+ String chatformat = chat.getPlayerInfoString(getPlayer(player), "chatformat", "");
if (chatformat != null && !chatformat.isEmpty())
{
return chatformat;
@@ -95,17 +79,17 @@ public class VaultGroups implements IRanks
}
@Override
- public String getMainGroup(IUser player)
+ public String getMainGroup(CommandSender player)
{
Chat chat = getServiceProvider(Chat.class);
- return chat.getPrimaryGroup(player.getPlayer().getPlayer());
+ return chat.getPrimaryGroup(getPlayer(player));
}
@Override
- public boolean inGroup(IUser player, String groupname)
+ public boolean inGroup(CommandSender player, String groupname)
{
Chat chat = getServiceProvider(Chat.class);
- for (String group : chat.getPlayerGroups(player.getPlayer()))
+ for (String group : chat.getPlayerGroups(getPlayer(player)))
{
if (group.equalsIgnoreCase(groupname))
{
diff --git a/Essentials/src/net/ess3/user/User.java b/Essentials/src/net/ess3/user/User.java
index 7593b9c6a..8e98bcaa3 100644
--- a/Essentials/src/net/ess3/user/User.java
+++ b/Essentials/src/net/ess3/user/User.java
@@ -39,9 +39,9 @@ public class User extends UserBase implements IUser
@Setter
private transient long lastOnlineActivity;
private transient long lastActivity = System.currentTimeMillis();
- @Getter
+ /*@Getter
@Setter
- private boolean hidden = false;
+ private boolean hidden = false;*/
@Getter
private transient boolean vanished;
@Getter
@@ -383,7 +383,7 @@ public class User extends UserBase implements IUser
{
getData().setAfk(false);
queueSave();
- if (broadcast && !hidden)
+ if (broadcast)
{
ess.broadcastMessage(this, _("userIsNotAway", getPlayer().getDisplayName()));
}
@@ -397,7 +397,7 @@ public class User extends UserBase implements IUser
final ISettings settings = ess.getSettings();
final long autoafkkick = settings.getData().getCommands().getAfk().getAutoAFKKick();
if (autoafkkick > 0 && lastActivity > 0 && (lastActivity + (autoafkkick * 1000)) < System.currentTimeMillis()
- && !hidden
+ //&& !hidden
&& !Permissions.KICK_EXEMPT.isAuthorized(this)
&& !Permissions.AFK_KICKEXEMPT.isAuthorized(this))
{
@@ -419,10 +419,7 @@ public class User extends UserBase implements IUser
if (!getData().isAfk() && autoafk > 0 && lastActivity + autoafk * 1000 < System.currentTimeMillis() && Permissions.AFK.isAuthorized(this))
{
setAfk(true);
- if (!hidden)
- {
- ess.broadcastMessage(this, _("userIsAway", getPlayer().getDisplayName()));
- }
+ ess.broadcastMessage(this, _("userIsAway", getPlayer().getDisplayName()));
}
}
@@ -642,7 +639,6 @@ public class User extends UserBase implements IUser
p.hidePlayer(getPlayer());
}
}
- setHidden(true);
ess.getVanishedPlayers().add(getName());
}
else
@@ -651,7 +647,6 @@ public class User extends UserBase implements IUser
{
p.showPlayer(getPlayer());
}
- setHidden(false);
ess.getVanishedPlayers().remove(getName());
}
}
diff --git a/Essentials/src/net/ess3/user/UserMap.java b/Essentials/src/net/ess3/user/UserMap.java
index 815fad8f6..57ef75daf 100644
--- a/Essentials/src/net/ess3/user/UserMap.java
+++ b/Essentials/src/net/ess3/user/UserMap.java
@@ -100,11 +100,22 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
{
return getObject(player.getName());
}
-
+
+ @Override
+ public IUser matchUser(final String name, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException
+ {
+ return matchUser(name, true, includeOffline, null);
+ }
+
@Override
- public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException
+ public IUser matchUserExcludingHidden(final String name, final Player requester) throws TooManyMatchesException, PlayerNotFoundException
+ {
+ return matchUser(name, false, false, requester);
+ }
+
+ public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline, final Player requester) throws TooManyMatchesException, PlayerNotFoundException
{
- final Set<IUser> users = matchUsers(name, includeHidden, includeOffline);
+ final Set<IUser> users = matchUsers(name, includeHidden, includeOffline, requester);
if (users.isEmpty())
{
throw new PlayerNotFoundException();
@@ -121,9 +132,20 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
}
}
}
+
+ @Override
+ public Set<IUser> matchUsers(final String name, final boolean includeOffline)
+ {
+ return matchUsers(name, true, includeOffline, null);
+ }
@Override
- public Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline)
+ public Set<IUser> matchUsersExcludingHidden(final String name, final Player requester)
+ {
+ return matchUsers(name, false, false, requester);
+ }
+
+ public Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline, final Player requester)
{
final String colorlessName = FormatUtil.stripColor(name);
final String[] search = colorlessName.split(",");
@@ -151,7 +173,7 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
for (Player player : ess.getServer().getOnlinePlayers())
{
if (player.getName().equalsIgnoreCase(searchString)
- && (includeHidden || includeOffline || !getUser(player).isHidden()))
+ && (includeHidden || includeOffline || requester == null || requester.canSee(player)))
{
match = player;
break;
@@ -173,7 +195,7 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
final String nickname = getUser(player).getData().getNickname();
if (nickname != null && !nickname.isEmpty()
&& nickname.equalsIgnoreCase(searchString)
- && (includeHidden || includeOffline || !getUser(player).isHidden()))
+ && (includeHidden || includeOffline || requester == null || requester.canSee(player)))
{
if (multimatching || multisearch)
{
@@ -213,7 +235,7 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
for (Player player : ess.getServer().getOnlinePlayers())
{
if (player.getName().toLowerCase(Locale.ENGLISH).startsWith(searchString)
- && (includeHidden || includeOffline || !getUser(player).isHidden()))
+ && (includeHidden || includeOffline || requester == null || requester.canSee(player)))
{
result.add(getUser(player));
break;
@@ -221,7 +243,7 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
final String nickname = getUser(player).getData().getNickname();
if (nickname != null && !nickname.isEmpty()
&& nickname.toLowerCase(Locale.ENGLISH).startsWith(searchString)
- && (includeHidden || includeOffline || !getUser(player).isHidden()))
+ && (includeHidden || includeOffline || requester == null || requester.canSee(player)))
{
result.add(getUser(player));
break;
diff --git a/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java b/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java
index 0a9180966..5ef5578bb 100644
--- a/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java
+++ b/Essentials/src/net/ess3/utils/textreader/KeywordReplacer.java
@@ -19,7 +19,7 @@ public class KeywordReplacer implements IText
private final transient IText input;
private final transient List<String> replaced;
private final transient IEssentials ess;
-
+
public KeywordReplacer(final IText input, final CommandSender sender, final IEssentials ess)
{
this.input = input;
@@ -27,7 +27,7 @@ public class KeywordReplacer implements IText
this.ess = ess;
replaceKeywords(sender);
}
-
+
private void replaceKeywords(final CommandSender sender)
{
String displayName, ipAddress, balance, mails, world;
@@ -55,11 +55,14 @@ public class KeywordReplacer implements IText
}
int playerHidden = 0;
- for (Player p : ess.getServer().getOnlinePlayers())
+ if (sender instanceof Player)
{
- if (ess.getUserMap().getUser(p).isHidden())
+ for (Player p : ess.getServer().getOnlinePlayers())
{
- playerHidden++;
+ if (!p.canSee((Player)sender))
+ {
+ playerHidden++;
+ }
}
}
online = Integer.toString(ess.getServer().getOnlinePlayers().length - playerHidden);
@@ -77,17 +80,20 @@ public class KeywordReplacer implements IText
worlds = worldsBuilder.toString();
final StringBuilder playerlistBuilder = new StringBuilder();
- for (Player p : ess.getServer().getOnlinePlayers())
+ if (sender instanceof Player)
{
- if (ess.getUserMap().getUser(p).isHidden())
- {
- continue;
- }
- if (playerlistBuilder.length() > 0)
+ for (Player p : ess.getServer().getOnlinePlayers())
{
- playerlistBuilder.append(", ");
+ if (!p.canSee((Player)sender))
+ {
+ continue;
+ }
+ if (playerlistBuilder.length() > 0)
+ {
+ playerlistBuilder.append(", ");
+ }
+ playerlistBuilder.append(p.getDisplayName());
}
- playerlistBuilder.append(p.getDisplayName());
}
playerlist = playerlistBuilder.toString();
diff --git a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java
index e7b3fe85e..d899ed972 100644
--- a/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java
+++ b/EssentialsGeoIP/src/net/ess3/geoip/EssentialsGeoIPPlayerListener.java
@@ -45,8 +45,7 @@ public class EssentialsGeoIPPlayerListener implements Listener, IReload
@EventHandler(priority = EventPriority.MONITOR)
public void onPlayerJoin(final PlayerJoinEvent event)
{
- final IUser u = ess.getUserMap().getUser(event.getPlayer());
- if (Permissions.GEOIP_HIDE.isAuthorized(u))
+ if (Permissions.GEOIP_HIDE.isAuthorized(event.getPlayer()))
{
return;
}
@@ -81,17 +80,21 @@ public class EssentialsGeoIPPlayerListener implements Listener, IReload
}
if (config.getData().isShowOnWhois())
{
+ final IUser u = ess.getUserMap().getUser(event.getPlayer());
u.getData().setGeolocation(builder.toString());
u.queueSave();
}
- if (config.getData().isShowOnLogin() && !u.isHidden())
+ if (config.getData().isShowOnLogin())
{
for (Player player : event.getPlayer().getServer().getOnlinePlayers())
{
- final IUser user = ess.getUserMap().getUser(player);
- if (Permissions.GEOIP_SHOW.isAuthorized(user))
+ if (!player.canSee(event.getPlayer()))
{
- user.sendMessage(_("geoipJoinFormat", user.getPlayer().getDisplayName(), builder.toString()));
+ continue;
+ }
+ if (Permissions.GEOIP_SHOW.isAuthorized(player))
+ {
+ player.sendMessage(_("geoipJoinFormat", player.getDisplayName(), builder.toString()));
}
}
}