Archived
0

Fixed a bug where you could detect vanish

This commit is contained in:
Pepich
2018-03-30 17:30:00 +02:00
parent e0011723c8
commit a1a5d55812

View File

@@ -34,7 +34,7 @@ import com.redstoner.modules.datamanager.DataManager;
@AutoRegisterListener @AutoRegisterListener
@Commands(CommandHolderType.File) @Commands(CommandHolderType.File)
@Version(major = 4, minor = 0, revision = 4, compatible = 4) @Version(major = 4, minor = 0, revision = 5, compatible = 4)
public class Seen implements Module, Listener public class Seen implements Module, Listener
{ {
HashMap<UUID, JSONArray> names = new HashMap<>(); HashMap<UUID, JSONArray> names = new HashMap<>();
@@ -60,19 +60,19 @@ public class Seen implements Module, Listener
{ {
ArrayList<String> message = new ArrayList<>(); ArrayList<String> message = new ArrayList<>();
OfflinePlayer p = Bukkit.getPlayer(player); OfflinePlayer p = Bukkit.getPlayer(player);
boolean cansee = (sender instanceof Player ? p instanceof Player && ((Player) sender).canSee((Player) p)
: true);
if (p == null) if (p == null)
{ {
p = Bukkit.getOfflinePlayer(player); p = Bukkit.getOfflinePlayer(player);
if (p != null) if (p != null)
p = Bukkit.getOfflinePlayer(p.getUniqueId()); p = Bukkit.getOfflinePlayer(p.getUniqueId());
} }
if (p == null || (!p.isOnline() && !p.hasPlayedBefore())) if (p == null || (!p.isOnline() && !p.hasPlayedBefore()) || (!cansee && p.getName().equalsIgnoreCase(player)))
{ {
getLogger().message(sender, true, "§e" + player + "§7 has never joined the server!"); getLogger().message(sender, true, "§e" + player + "§7 has never joined the server!");
return true; return true;
} }
boolean cansee = (sender instanceof Player ? p instanceof Player && ((Player) sender).canSee((Player) p)
: true);
boolean online = cansee ? p instanceof Player : false; boolean online = cansee ? p instanceof Player : false;
String state; String state;
long timestamp; long timestamp;
@@ -122,8 +122,8 @@ public class Seen implements Module, Listener
message.add("They've joined with the following IPs: &e" message.add("They've joined with the following IPs: &e"
+ _ips.toJSONString().replaceAll("[\"\\[\\]]", "").replace(",", "&7, &e")); + _ips.toJSONString().replaceAll("[\"\\[\\]]", "").replace(",", "&7, &e"));
} }
message.add("Their current IP is: &a" message.add(
+ DataManager.getOrDefault(p.getUniqueId().toString(), "ip", "unknown")); "Their current IP is: &a" + DataManager.getOrDefault(p.getUniqueId().toString(), "ip", "unknown"));
} }
getLogger().message(sender, message.toArray(new String[] {})); getLogger().message(sender, message.toArray(new String[] {}));
return true; return true;
@@ -245,10 +245,10 @@ public class Seen implements Module, Listener
Player player = Bukkit.getPlayer(name); Player player = Bukkit.getPlayer(name);
if (player == null) if (player == null)
{ {
getLogger().message(sender, true, getLogger().message(sender, true, "§e" + name
"§e" + name + "§7 couldn't be found! Hint: Currently, you can only check statistics of players that are online!"); + "§7 couldn't be found! Hint: Currently, you can only check statistics of players that are online!");
return true; return true;
} }
int ticks_lived = player.getStatistic(Statistic.PLAY_ONE_TICK); int ticks_lived = player.getStatistic(Statistic.PLAY_ONE_TICK);
int days = ticks_lived / 1728000; int days = ticks_lived / 1728000;
int hours = (ticks_lived % 1728000) / 72000; int hours = (ticks_lived % 1728000) / 72000;