From 64d9436419c332fec8e754723905d1a8e303079c Mon Sep 17 00:00:00 2001 From: zhao <1040110848@qq.com> Date: Sun, 21 Jun 2020 16:18:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B8=A2=E4=BA=BA=E6=97=B6?= =?UTF-8?q?=E7=8E=A9=E5=AE=B6=E4=B8=8D=E5=9C=A8=E4=BA=A7=E7=94=9F=E7=9A=84?= =?UTF-8?q?=E7=A9=BA=E6=8C=87=E9=92=88=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 查询这段时间里,玩家可能退出了服务器,可能在banned-players.json里面,或者不在whitelist.json里。原来直接调用kick,导致这几种情况下产生空指针异常。现在在踢出之前对玩家是否在线进行一个检测,如果玩家在线才踢出。 --- .../studio/UnionBanClientSpigot/KickPlayerTask.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/cn/cnklp/studio/UnionBanClientSpigot/KickPlayerTask.java b/src/main/java/cn/cnklp/studio/UnionBanClientSpigot/KickPlayerTask.java index c572bb1..2cdbff4 100644 --- a/src/main/java/cn/cnklp/studio/UnionBanClientSpigot/KickPlayerTask.java +++ b/src/main/java/cn/cnklp/studio/UnionBanClientSpigot/KickPlayerTask.java @@ -1,10 +1,9 @@ package cn.cnklp.studio.UnionBanClientSpigot; import org.bukkit.Bukkit; +import org.bukkit.entity.Player; import org.bukkit.scheduler.BukkitRunnable; -import java.util.Objects; - public class KickPlayerTask extends BukkitRunnable { private final String username; private final ClientPlugin plugin; @@ -15,6 +14,11 @@ public class KickPlayerTask extends BukkitRunnable { } public void run() { - Objects.requireNonNull(Bukkit.getPlayer(username)).kickPlayer("You are in the UnionBan list!"); + Player player = Bukkit.getPlayer(username); + if (player == null) { + plugin.getLogger().info("Player " + username + " is not in the server."); + } else { + player.kickPlayer("You are in the UnionBan list!"); + } } }