mirror of
https://github.com/essentials/Essentials.git
synced 2025-08-09 16:17:37 +02:00
rework /seen to be a little stricter on argument matching.
This commit is contained in:
@@ -43,38 +43,45 @@ public class Commandseen extends EssentialsCommand
|
|||||||
{
|
{
|
||||||
throw new NotEnoughArgumentsException();
|
throw new NotEnoughArgumentsException();
|
||||||
}
|
}
|
||||||
try
|
User player = ess.getOfflineUser(args[0]);
|
||||||
|
if (player == null)
|
||||||
{
|
{
|
||||||
User user = getPlayer(server, sender, args, 0);
|
if (ipLookup && FormatUtil.validIP(args[0]))
|
||||||
seenOnline(server, sender, user, showBan, extra);
|
|
||||||
}
|
|
||||||
catch (NoSuchFieldException e)
|
|
||||||
{
|
|
||||||
User player = ess.getOfflineUser(args[0]);
|
|
||||||
if (player == null)
|
|
||||||
{
|
{
|
||||||
if (ipLookup && FormatUtil.validIP(args[0]))
|
seenIP(server, sender, args[0]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (ess.getServer().getBanList(BanList.Type.IP).isBanned(args[0]))
|
||||||
|
{
|
||||||
|
sender.sendMessage(tl("isIpBanned", args[0]));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (BanLookup.isBanned(ess, args[0]))
|
||||||
|
{
|
||||||
|
sender.sendMessage(tl("whoisBanned", showBan ? BanLookup.getBanEntry(ess, args[0]).getReason() : tl("true")));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
seenIP(server, sender, args[0]);
|
player = getPlayer(server, sender, args, 0);
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
else if (ess.getServer().getBanList(BanList.Type.IP).isBanned(args[0]))
|
catch (NoSuchFieldException e)
|
||||||
{
|
|
||||||
sender.sendMessage(tl("isIpBanned", args[0]));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if (BanLookup.isBanned(ess, args[0]))
|
|
||||||
{
|
|
||||||
sender.sendMessage(tl("whoisBanned", showBan ? BanLookup.getBanEntry(ess, args[0]).getReason() : tl("true")));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
{
|
||||||
throw new PlayerNotFoundException();
|
throw new PlayerNotFoundException();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
if (player.getBase().isOnline() && canInteractWith(sender, player))
|
||||||
|
{
|
||||||
|
seenOnline(server, sender, player, showBan, extra);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
seenOffline(server, sender, player, showBan, extra);
|
seenOffline(server, sender, player, showBan, extra);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void seenOnline(final Server server, final CommandSource sender, final User user, final boolean showBan, final boolean extra) throws Exception
|
private void seenOnline(final Server server, final CommandSource sender, final User user, final boolean showBan, final boolean extra) throws Exception
|
||||||
|
@@ -211,6 +211,21 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
|||||||
return bldr.toString();
|
return bldr.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean canInteractWith(CommandSource interactor, User interactee)
|
||||||
|
{
|
||||||
|
if (interactor == null)
|
||||||
|
{
|
||||||
|
return !interactee.isHidden();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (interactor.isPlayer())
|
||||||
|
{
|
||||||
|
return canInteractWith(ess.getUser(interactor.getPlayer()), interactee);
|
||||||
|
}
|
||||||
|
|
||||||
|
return true; // console
|
||||||
|
}
|
||||||
|
|
||||||
private static boolean canInteractWith(User interactor, User interactee)
|
private static boolean canInteractWith(User interactor, User interactee)
|
||||||
{
|
{
|
||||||
if (interactor == null)
|
if (interactor == null)
|
||||||
|
Reference in New Issue
Block a user