修复判断玩家在线

This commit is contained in:
tanyaofei 2023-07-26 23:38:51 +08:00
parent f4418f8b67
commit 03c45c6b88
4 changed files with 12 additions and 19 deletions

View File

@ -77,7 +77,7 @@ public class FakeplayerManager {
timer.schedule(new TimerTask() { timer.schedule(new TimerTask() {
@Override @Override
public void run() { public void run() {
if (!properties.isFollowQuiting() || !properties.isBungeecord()) { if (!properties.isFollowQuiting()) {
return; return;
} }
@ -90,11 +90,15 @@ public class FakeplayerManager {
continue; continue;
} }
for (var fakePlayer : entry.getValue()) { new BukkitRunnable() {
remove(fakePlayer.getName()); @Override
} public void run() {
for (var fakePlayer : entry.getValue()) {
log.info(String.format("玩家 %s 已不在线, 已移除 %d 个假人", entry.getKey(), entry.getValue().size())); remove(fakePlayer.getName());
}
log.info(String.format("玩家 %s 已不在线, 已移除 %d 个假人", entry.getKey(), entry.getValue().size()));
}
}.runTask(Main.getInstance());
} }
@ -202,7 +206,7 @@ public class FakeplayerManager {
*/ */
public @Nullable Player get(@NotNull String name) { public @Nullable Player get(@NotNull String name) {
return Optional return Optional
.ofNullable(Bukkit.getServer().getPlayer(name)) .ofNullable(Bukkit.getServer().getPlayerExact(name))
.filter(this::isFake) .filter(this::isFake)
.orElse(null); .orElse(null);
} }

View File

@ -27,7 +27,7 @@ public class BungeeCordServer implements PluginMessageListener {
} }
public boolean isPlayerOnline(@NotNull String name) { public boolean isPlayerOnline(@NotNull String name) {
return onlinePlayers.contains(name) || Bukkit.getServer().getPlayer(name) != null; return onlinePlayers.contains(name) || (Bukkit.getServer().getPlayerExact(name) != null);
} }
@Override @Override

View File

@ -47,11 +47,6 @@ public class FakeplayerProperties extends AbstractProperties<FakeplayerPropertie
*/ */
private boolean followQuiting; private boolean followQuiting;
/**
* 是否允许玩家切换 bungeeCord 服务器时不跟随下线
*/
private boolean bungeecord;
/** /**
* 是否探测 IP * 是否探测 IP
*/ */
@ -102,7 +97,6 @@ public class FakeplayerProperties extends AbstractProperties<FakeplayerPropertie
this.destroyCommands = file.getStringList("destroy-commands"); this.destroyCommands = file.getStringList("destroy-commands");
this.nameTemplate = file.getString("name-template", ""); this.nameTemplate = file.getString("name-template", "");
this.simulateLogin = file.getBoolean("simulate-login", false); this.simulateLogin = file.getBoolean("simulate-login", false);
this.bungeecord = file.getBoolean("bungeecord", true);
if (this.nameTemplate.startsWith("-")) { if (this.nameTemplate.startsWith("-")) {
log.warning("假人名称模版不能以 - 开头, 该配置不会生效: " + this.nameTemplate); log.warning("假人名称模版不能以 - 开头, 该配置不会生效: " + this.nameTemplate);

View File

@ -24,11 +24,6 @@ name-template: ''
# 如果玩家只是切换服务器, 那么不会触发跟随下线 # 如果玩家只是切换服务器, 那么不会触发跟随下线
follow-quiting: true follow-quiting: true
# 是否开启 bungeeCord 跟随下线
# 如果开启则玩家在切换服务器时不会因为在当前服务器下线而导致跟随下线
# 此配置仅在 `follow-quiting` 为 `true` 时生效
bungeecord: true
# 是否检测 IP # 是否检测 IP
# 如果启用, 则一个 IP 只能创建 `maximum` 个假人 # 如果启用, 则一个 IP 只能创建 `maximum` 个假人
# 能够避免玩家开小号疯狂创建假人 # 能够避免玩家开小号疯狂创建假人