mirror of
https://github.com/TotalFreedomMC/TF-EssentialsX.git
synced 2025-02-12 04:20:41 +00:00
Added option to hide player from /list /who ... login message.
This is for other plugins, that want to hide a player. Use IEssentials.getUser(Player p).setHidden(boolean)
This commit is contained in:
parent
e3a470e264
commit
be83383fd5
10 changed files with 107 additions and 9 deletions
|
@ -320,15 +320,27 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||||
m = m.replace("{IP}", user.getAddress().toString());
|
m = m.replace("{IP}", user.getAddress().toString());
|
||||||
m = m.replace("{BALANCE}", Double.toString(user.getMoney()));
|
m = m.replace("{BALANCE}", Double.toString(user.getMoney()));
|
||||||
m = m.replace("{MAILS}", Integer.toString(user.getMails().size()));
|
m = m.replace("{MAILS}", Integer.toString(user.getMails().size()));
|
||||||
|
m = m.replace("{WORLD}", user.getLocation().getWorld().getName());
|
||||||
}
|
}
|
||||||
|
int playerHidden = 0;
|
||||||
m = m.replace("{ONLINE}", Integer.toString(getServer().getOnlinePlayers().length));
|
for (Player p : getServer().getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (getUser(p).isHidden())
|
||||||
|
{
|
||||||
|
playerHidden++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m = m.replace("{ONLINE}", Integer.toString(getServer().getOnlinePlayers().length - playerHidden));
|
||||||
|
|
||||||
if (m.matches(".*\\{PLAYERLIST\\}.*"))
|
if (m.matches(".*\\{PLAYERLIST\\}.*"))
|
||||||
{
|
{
|
||||||
StringBuilder online = new StringBuilder();
|
StringBuilder online = new StringBuilder();
|
||||||
for (Player p : getServer().getOnlinePlayers())
|
for (Player p : getServer().getOnlinePlayers())
|
||||||
{
|
{
|
||||||
|
if (getUser(p).isHidden())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (online.length() > 0)
|
if (online.length() > 0)
|
||||||
{
|
{
|
||||||
online.append(", ");
|
online.append(", ");
|
||||||
|
@ -563,6 +575,12 @@ public class Essentials extends JavaPlugin implements IEssentials
|
||||||
|
|
||||||
public User getOfflineUser(String name)
|
public User getOfflineUser(String name)
|
||||||
{
|
{
|
||||||
|
// Don't create a new offline user, if we already have that user loaded.
|
||||||
|
User u = users.get(name.toLowerCase());
|
||||||
|
if (u != null)
|
||||||
|
{
|
||||||
|
return u;
|
||||||
|
}
|
||||||
File userFolder = new File(getDataFolder(), "userdata");
|
File userFolder = new File(getDataFolder(), "userdata");
|
||||||
File userFile = new File(userFolder, Util.sanitizeFileName(name) + ".yml");
|
File userFile = new File(userFolder, Util.sanitizeFileName(name) + ".yml");
|
||||||
if (userFile.exists())
|
if (userFile.exists())
|
||||||
|
|
|
@ -19,6 +19,7 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||||
private boolean teleportRequestHere;
|
private boolean teleportRequestHere;
|
||||||
private final Teleport teleport;
|
private final Teleport teleport;
|
||||||
private long lastActivity;
|
private long lastActivity;
|
||||||
|
private boolean hidden = false;
|
||||||
|
|
||||||
User(Player base, IEssentials ess)
|
User(Player base, IEssentials ess)
|
||||||
{
|
{
|
||||||
|
@ -331,4 +332,14 @@ public class User extends UserData implements Comparable<User>, IReplyTo, IUser
|
||||||
this.setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") ? true : now);
|
this.setSleepingIgnored(this.isAuthorized("essentials.sleepingignored") ? true : now);
|
||||||
return now;
|
return now;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isHidden()
|
||||||
|
{
|
||||||
|
return hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setHidden(boolean hidden)
|
||||||
|
{
|
||||||
|
this.hidden = hidden;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,10 @@ public class Commandgod extends EssentialsCommand
|
||||||
for (Player p : server.matchPlayer(name))
|
for (Player p : server.matchPlayer(name))
|
||||||
{
|
{
|
||||||
User u = ess.getUser(p);
|
User u = ess.getUser(p);
|
||||||
|
if (u.isHidden())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
boolean enabled = u.toggleGodModeEnabled();
|
boolean enabled = u.toggleGodModeEnabled();
|
||||||
u.sendMessage(Util.format("godMode", (enabled ? Util.i18n("enabled") : Util.i18n("disabled"))));
|
u.sendMessage(Util.format("godMode", (enabled ? Util.i18n("enabled") : Util.i18n("disabled"))));
|
||||||
sender.sendMessage(Util.format("godMode",Util.format(enabled ? "godEnabledFor": "godDisabledFor", p.getDisplayName())));
|
sender.sendMessage(Util.format("godMode",Util.format(enabled ? "godEnabledFor": "godDisabledFor", p.getDisplayName())));
|
||||||
|
|
|
@ -53,13 +53,17 @@ public class Commandheal extends EssentialsCommand
|
||||||
private void healOtherPlayers(Server server, CommandSender sender, String name)
|
private void healOtherPlayers(Server server, CommandSender sender, String name)
|
||||||
{
|
{
|
||||||
List<Player> players = server.matchPlayer(name);
|
List<Player> players = server.matchPlayer(name);
|
||||||
if(players.isEmpty())
|
if (players.isEmpty())
|
||||||
{
|
{
|
||||||
sender.sendMessage(Util.i18n("playerNotFound"));
|
sender.sendMessage(Util.i18n("playerNotFound"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (Player p : players)
|
for (Player p : players)
|
||||||
{
|
{
|
||||||
|
if (ess.getUser(p).isHidden())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
p.setHealth(20);
|
p.setHealth(20);
|
||||||
sender.sendMessage(Util.format("healOther", p.getDisplayName()));
|
sender.sendMessage(Util.format("healOther", p.getDisplayName()));
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,9 +24,33 @@ public class Commandlist extends EssentialsCommand
|
||||||
@Override
|
@Override
|
||||||
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
|
public void run(Server server, CommandSender sender, String commandLabel, String[] args) throws Exception
|
||||||
{
|
{
|
||||||
|
boolean showhidden = false;
|
||||||
|
if (sender instanceof Player)
|
||||||
|
{
|
||||||
|
if (ess.getUser(sender).isAuthorized("essentials.list.hidden"))
|
||||||
|
{
|
||||||
|
showhidden = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
showhidden = true;
|
||||||
|
}
|
||||||
|
int playerHidden = 0;
|
||||||
|
for (Player p : server.getOnlinePlayers())
|
||||||
|
{
|
||||||
|
if (ess.getUser(p).isHidden())
|
||||||
|
{
|
||||||
|
playerHidden++;
|
||||||
|
}
|
||||||
|
}
|
||||||
charge(sender);
|
charge(sender);
|
||||||
StringBuilder online = new StringBuilder();
|
StringBuilder online = new StringBuilder();
|
||||||
online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length);
|
online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length - playerHidden);
|
||||||
|
if (showhidden)
|
||||||
|
{
|
||||||
|
online.append(ChatColor.GRAY).append("/").append(playerHidden);
|
||||||
|
}
|
||||||
online.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED).append(server.getMaxPlayers());
|
online.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED).append(server.getMaxPlayers());
|
||||||
online.append(ChatColor.BLUE).append(" players online.");
|
online.append(ChatColor.BLUE).append(" players online.");
|
||||||
sender.sendMessage(online.toString());
|
sender.sendMessage(online.toString());
|
||||||
|
@ -37,6 +61,10 @@ public class Commandlist extends EssentialsCommand
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player p : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
User u = ess.getUser(p);
|
User u = ess.getUser(p);
|
||||||
|
if (u.isHidden() && !showhidden)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
String group = u.getGroup();
|
String group = u.getGroup();
|
||||||
List<User> list = sort.get(group);
|
List<User> list = sort.get(group);
|
||||||
if (list == null)
|
if (list == null)
|
||||||
|
@ -69,6 +97,10 @@ public class Commandlist extends EssentialsCommand
|
||||||
{
|
{
|
||||||
groupString.append("§7[AFK]§f");
|
groupString.append("§7[AFK]§f");
|
||||||
}
|
}
|
||||||
|
if (user.isHidden())
|
||||||
|
{
|
||||||
|
groupString.append("§7[HIDDEN]§f");
|
||||||
|
}
|
||||||
groupString.append(user.getDisplayName());
|
groupString.append(user.getDisplayName());
|
||||||
}
|
}
|
||||||
sender.sendMessage(groupString.toString());
|
sender.sendMessage(groupString.toString());
|
||||||
|
@ -79,7 +111,12 @@ public class Commandlist extends EssentialsCommand
|
||||||
List<User> users = new ArrayList<User>();
|
List<User> users = new ArrayList<User>();
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player p : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
users.add(ess.getUser(p));
|
final User u = ess.getUser(p);
|
||||||
|
if (u.isHidden() && !showhidden)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
users.add(u);
|
||||||
}
|
}
|
||||||
Collections.sort(users);
|
Collections.sort(users);
|
||||||
|
|
||||||
|
@ -100,6 +137,10 @@ public class Commandlist extends EssentialsCommand
|
||||||
{
|
{
|
||||||
onlineUsers.append("§7[AFK]§f");
|
onlineUsers.append("§7[AFK]§f");
|
||||||
}
|
}
|
||||||
|
if (user.isHidden())
|
||||||
|
{
|
||||||
|
onlineUsers.append("§7[HIDDEN]§f");
|
||||||
|
}
|
||||||
onlineUsers.append(user.getDisplayName());
|
onlineUsers.append(user.getDisplayName());
|
||||||
}
|
}
|
||||||
sender.sendMessage(onlineUsers.toString());
|
sender.sendMessage(onlineUsers.toString());
|
||||||
|
|
|
@ -5,6 +5,7 @@ import org.bukkit.Server;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import com.earth2me.essentials.Console;
|
import com.earth2me.essentials.Console;
|
||||||
import com.earth2me.essentials.IReplyTo;
|
import com.earth2me.essentials.IReplyTo;
|
||||||
|
import com.earth2me.essentials.User;
|
||||||
import com.earth2me.essentials.Util;
|
import com.earth2me.essentials.Util;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
@ -52,7 +53,8 @@ public class Commandmsg extends EssentialsCommand
|
||||||
for (Player p : matches)
|
for (Player p : matches)
|
||||||
{
|
{
|
||||||
sender.sendMessage(Util.format("msgFormat", translatedMe, p.getDisplayName(), message));
|
sender.sendMessage(Util.format("msgFormat", translatedMe, p.getDisplayName(), message));
|
||||||
if (sender instanceof Player && ess.getUser(p).isIgnoredPlayer(((Player)sender).getName()))
|
final User u = ess.getUser(p);
|
||||||
|
if (sender instanceof Player && (u.isIgnoredPlayer(((Player)sender).getName()) || u.isHidden()))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,6 +25,10 @@ public class Commandpay extends EssentialsCommand
|
||||||
for (Player p : server.matchPlayer(args[0]))
|
for (Player p : server.matchPlayer(args[0]))
|
||||||
{
|
{
|
||||||
User u = ess.getUser(p);
|
User u = ess.getUser(p);
|
||||||
|
if (u.isHidden())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
user.payUser(u, amount);
|
user.payUser(u, amount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,6 +26,10 @@ public class Commandrealname extends EssentialsCommand
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player p : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
final User u = ess.getUser(p);
|
final User u = ess.getUser(p);
|
||||||
|
if (u.isHidden())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
final String displayName = ChatColor.stripColor(u.getDisplayName()).toLowerCase();
|
final String displayName = ChatColor.stripColor(u.getDisplayName()).toLowerCase();
|
||||||
if (!whois.equals(displayName)
|
if (!whois.equals(displayName)
|
||||||
&& !displayName.equals(ChatColor.stripColor(ess.getSettings().getNicknamePrefix()) + whois)
|
&& !displayName.equals(ChatColor.stripColor(ess.getSettings().getNicknamePrefix()) + whois)
|
||||||
|
|
|
@ -28,6 +28,10 @@ public class Commandwhois extends EssentialsCommand
|
||||||
for (Player p : server.getOnlinePlayers())
|
for (Player p : server.getOnlinePlayers())
|
||||||
{
|
{
|
||||||
User u = ess.getUser(p);
|
User u = ess.getUser(p);
|
||||||
|
if (u.isHidden())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
String dn = ChatColor.stripColor(u.getNick());
|
String dn = ChatColor.stripColor(u.getNick());
|
||||||
if (!whois.equalsIgnoreCase(dn)
|
if (!whois.equalsIgnoreCase(dn)
|
||||||
&& !whois.equalsIgnoreCase(dn.substring(prefixLength))
|
&& !whois.equalsIgnoreCase(dn.substring(prefixLength))
|
||||||
|
|
|
@ -53,12 +53,18 @@ public abstract class EssentialsCommand implements IEssentialsCommand
|
||||||
|
|
||||||
for (Player p : matches)
|
for (Player p : matches)
|
||||||
{
|
{
|
||||||
if (p.getDisplayName().startsWith(args[pos]))
|
final User u = ess.getUser(p);
|
||||||
|
if (u.getDisplayName().startsWith(args[pos]) && (getOffline || !u.isHidden()))
|
||||||
{
|
{
|
||||||
return ess.getUser(p);
|
return u;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return ess.getUser(matches.get(0));
|
final User u = ess.getUser(matches.get(0));
|
||||||
|
if (!getOffline && u.isHidden())
|
||||||
|
{
|
||||||
|
throw new NoSuchFieldException(Util.i18n("playerNotFound"));
|
||||||
|
}
|
||||||
|
return u;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue