diff --git a/connector/src/main/java/org/geysermc/connector/GeyserConnector.java b/connector/src/main/java/org/geysermc/connector/GeyserConnector.java index 34dd0b849..fc3aaaeb9 100644 --- a/connector/src/main/java/org/geysermc/connector/GeyserConnector.java +++ b/connector/src/main/java/org/geysermc/connector/GeyserConnector.java @@ -391,7 +391,9 @@ public class GeyserConnector { generalThreadPool.shutdown(); bedrockServer.close(); - timeSyncer.shutdown(); + if (timeSyncer != null) { + timeSyncer.shutdown(); + } newsHandler.shutdown(); players.clear(); defaultAuthType = null; diff --git a/connector/src/main/java/org/geysermc/connector/command/defaults/ReloadCommand.java b/connector/src/main/java/org/geysermc/connector/command/defaults/ReloadCommand.java index 2f1c7dc9b..d3f3d2f3f 100644 --- a/connector/src/main/java/org/geysermc/connector/command/defaults/ReloadCommand.java +++ b/connector/src/main/java/org/geysermc/connector/command/defaults/ReloadCommand.java @@ -32,6 +32,8 @@ import org.geysermc.connector.command.GeyserCommand; import org.geysermc.connector.network.session.GeyserSession; import org.geysermc.connector.utils.LanguageUtils; +import java.util.ArrayList; + public class ReloadCommand extends GeyserCommand { private final GeyserConnector connector; @@ -51,8 +53,8 @@ public class ReloadCommand extends GeyserCommand { sender.sendMessage(message); - for (GeyserSession otherSession : connector.getPlayers()) { - otherSession.disconnect(LanguageUtils.getPlayerLocaleString("geyser.commands.reload.kick", session.getLocale())); + for (GeyserSession otherSession : new ArrayList<>(connector.getPlayers())) { + otherSession.disconnect(LanguageUtils.getPlayerLocaleString("geyser.commands.reload.kick", otherSession.getLocale())); } connector.reload(); }