mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-14 02:24:16 +02:00
replace user.isHidden() with player.canSee()
This commit is contained in:
@@ -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
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -38,7 +38,7 @@ public interface IUser extends OfflinePlayer, CommandSender, IStorageObjectHolde
|
||||
|
||||
Location getHome(Location loc);
|
||||
|
||||
boolean isHidden();
|
||||
//boolean isHidden();
|
||||
|
||||
ITeleport getTeleport();
|
||||
|
||||
|
@@ -24,18 +24,30 @@ public interface IUserMap extends IReload
|
||||
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
|
||||
* @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;
|
||||
IUser matchUser(final String name, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException;
|
||||
|
||||
Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline);
|
||||
/**
|
||||
* 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);
|
||||
|
||||
|
@@ -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()));
|
||||
}
|
||||
user.updateActivity(false);
|
||||
}
|
||||
else
|
||||
{
|
||||
//user.sendMessage(_("markedAsAway"));
|
||||
if (!user.isHidden())
|
||||
{
|
||||
ess.broadcastMessage(user, _("userIsAway", user.getPlayer().getDisplayName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -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)));
|
||||
}
|
||||
}
|
||||
|
@@ -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))
|
||||
|
@@ -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])));
|
||||
|
@@ -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();
|
||||
|
@@ -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)
|
||||
|
@@ -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:
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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()));
|
||||
|
@@ -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"));
|
||||
|
@@ -7,8 +7,6 @@ import org.bukkit.Server;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
|
||||
|
||||
|
||||
public class Commandfly extends EssentialsCommand
|
||||
{
|
||||
@Override
|
||||
@@ -40,7 +38,7 @@ 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)
|
||||
{
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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);
|
||||
|
||||
|
@@ -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"))
|
||||
|
@@ -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"));
|
||||
|
@@ -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];
|
||||
|
@@ -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))
|
||||
{
|
||||
|
@@ -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)
|
||||
{
|
||||
|
@@ -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"));
|
||||
|
@@ -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);
|
||||
|
@@ -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());
|
||||
|
@@ -15,21 +15,24 @@ 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;
|
||||
}
|
||||
Player userPlayer = getPlayerOrNull(sender);
|
||||
if (userPlayer != null)
|
||||
{
|
||||
int playerHidden = 0;
|
||||
for (Player onlinePlayer : server.getOnlinePlayers())
|
||||
{
|
||||
if (ess.getUserMap().getUser(onlinePlayer).isHidden())
|
||||
if (!userPlayer.canSee(onlinePlayer))
|
||||
{
|
||||
playerHidden++;
|
||||
}
|
||||
}
|
||||
|
||||
String online;
|
||||
if (showhidden && playerHidden > 0)
|
||||
{
|
||||
online = _("listAmountHidden", server.getOnlinePlayers().length - playerHidden, playerHidden, server.getMaxPlayers());
|
||||
@@ -38,6 +41,12 @@ public class Commandlist extends EssentialsCommand
|
||||
{
|
||||
online = _("listAmount", server.getOnlinePlayers().length - playerHidden, server.getMaxPlayers());
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
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))
|
||||
{
|
||||
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))
|
||||
{
|
||||
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"));
|
||||
}
|
||||
|
@@ -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;
|
||||
|
@@ -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
|
||||
@@ -58,17 +58,22 @@ public class Commandmsg extends EssentialsCommand
|
||||
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"));
|
||||
}
|
||||
|
||||
final Player player = getPlayerOrNull(sender);
|
||||
if (isUser(sender))
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
for (IUser u : matchedPlayers)
|
||||
{
|
||||
if (u.isHidden())
|
||||
if (!player.canSee(u.getPlayer()))
|
||||
{
|
||||
i++;
|
||||
}
|
||||
@@ -77,11 +82,12 @@ public class Commandmsg extends EssentialsCommand
|
||||
{
|
||||
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;
|
||||
}
|
||||
|
@@ -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"));
|
||||
|
@@ -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)
|
||||
|
@@ -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"));
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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)
|
||||
|
@@ -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"));
|
||||
|
@@ -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)
|
||||
|
@@ -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))
|
||||
|
@@ -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())
|
||||
{
|
||||
|
@@ -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())
|
||||
{
|
||||
|
@@ -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()));
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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()));
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -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()));
|
||||
|
@@ -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"));
|
||||
|
@@ -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"));
|
||||
|
@@ -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();
|
||||
|
@@ -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)
|
||||
|
@@ -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"))
|
||||
|
@@ -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"));
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
41
Essentials/src/net/ess3/ranks/AbstractRanks.java
Normal file
41
Essentials/src/net/ess3/ranks/AbstractRanks.java
Normal file
@@ -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);
|
||||
}
|
@@ -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;
|
||||
@@ -23,9 +21,9 @@ public class GMGroups implements IRanks
|
||||
}
|
||||
|
||||
@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)
|
||||
protected String getRawChatFormat(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;
|
||||
}
|
||||
|
||||
private String getRawChatFormat(final IUser 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;
|
||||
|
@@ -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))
|
||||
{
|
||||
|
@@ -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))
|
||||
{
|
||||
|
@@ -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,12 +419,9 @@ 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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getAfkPosition()
|
||||
@@ -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());
|
||||
}
|
||||
}
|
||||
|
@@ -102,9 +102,20 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
|
||||
}
|
||||
|
||||
@Override
|
||||
public IUser matchUser(final String name, final boolean includeHidden, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException
|
||||
public IUser matchUser(final String name, final boolean includeOffline) throws TooManyMatchesException, PlayerNotFoundException
|
||||
{
|
||||
final Set<IUser> users = matchUsers(name, includeHidden, includeOffline);
|
||||
return matchUser(name, true, includeOffline, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
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, requester);
|
||||
if (users.isEmpty())
|
||||
{
|
||||
throw new PlayerNotFoundException();
|
||||
@@ -123,7 +134,18 @@ public class UserMap extends StorageObjectMap<IUser> implements IUserMap
|
||||
}
|
||||
|
||||
@Override
|
||||
public Set<IUser> matchUsers(final String name, final boolean includeHidden, final boolean includeOffline)
|
||||
public Set<IUser> matchUsers(final String name, final boolean includeOffline)
|
||||
{
|
||||
return matchUsers(name, true, includeOffline, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
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;
|
||||
|
@@ -55,13 +55,16 @@ public class KeywordReplacer implements IText
|
||||
}
|
||||
|
||||
int playerHidden = 0;
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
for (Player p : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
if (ess.getUserMap().getUser(p).isHidden())
|
||||
if (!p.canSee((Player)sender))
|
||||
{
|
||||
playerHidden++;
|
||||
}
|
||||
}
|
||||
}
|
||||
online = Integer.toString(ess.getServer().getOnlinePlayers().length - playerHidden);
|
||||
unique = Integer.toString(ess.getUserMap().getUniqueUsers());
|
||||
|
||||
@@ -77,9 +80,11 @@ public class KeywordReplacer implements IText
|
||||
worlds = worldsBuilder.toString();
|
||||
|
||||
final StringBuilder playerlistBuilder = new StringBuilder();
|
||||
if (sender instanceof Player)
|
||||
{
|
||||
for (Player p : ess.getServer().getOnlinePlayers())
|
||||
{
|
||||
if (ess.getUserMap().getUser(p).isHidden())
|
||||
if (!p.canSee((Player)sender))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -89,6 +94,7 @@ public class KeywordReplacer implements IText
|
||||
}
|
||||
playerlistBuilder.append(p.getDisplayName());
|
||||
}
|
||||
}
|
||||
playerlist = playerlistBuilder.toString();
|
||||
|
||||
final StringBuilder pluginlistBuilder = new StringBuilder();
|
||||
|
@@ -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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user