From 9a7a1e6ff48cc6862512b12c311edc83d838f5c0 Mon Sep 17 00:00:00 2001 From: themode Date: Sat, 31 Oct 2020 19:54:10 +0100 Subject: [PATCH] The scheduled callback for FakePlayer is not mandatory, send --- .../java/net/minestom/server/entity/Player.java | 1 + .../server/entity/fakeplayer/FakePlayer.java | 15 ++++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/minestom/server/entity/Player.java b/src/main/java/net/minestom/server/entity/Player.java index 0bccaa166..3fa2abb13 100644 --- a/src/main/java/net/minestom/server/entity/Player.java +++ b/src/main/java/net/minestom/server/entity/Player.java @@ -1442,6 +1442,7 @@ public class Player extends LivingEntity implements CommandSender { chunk.removeViewer(this); } + // Not sure what it does... updateViewPosition(newChunk); // Load new chunks diff --git a/src/main/java/net/minestom/server/entity/fakeplayer/FakePlayer.java b/src/main/java/net/minestom/server/entity/fakeplayer/FakePlayer.java index 3fe4e6f57..70205bf69 100644 --- a/src/main/java/net/minestom/server/entity/fakeplayer/FakePlayer.java +++ b/src/main/java/net/minestom/server/entity/fakeplayer/FakePlayer.java @@ -7,6 +7,7 @@ import net.minestom.server.network.player.FakePlayerConnection; import net.minestom.server.network.player.PlayerConnection; import net.minestom.server.utils.time.TimeUnit; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.util.UUID; import java.util.function.Consumer; @@ -29,7 +30,7 @@ public class FakePlayer extends Player { } /** - * Init a new {@link FakePlayer}. + * Inits a new {@link FakePlayer}. * * @param uuid the FakePlayer uuid * @param username the FakePlayer username @@ -39,14 +40,18 @@ public class FakePlayer extends Player { * {@link net.minestom.server.timer.SchedulerManager} thread pool */ public static void initPlayer(@NotNull UUID uuid, @NotNull String username, - @NotNull FakePlayerOption option, @NotNull Consumer scheduledCallback) { + @NotNull FakePlayerOption option, @Nullable Consumer scheduledCallback) { final FakePlayer fakePlayer = new FakePlayer(uuid, username, option); - fakePlayer.addEventCallback(PlayerLoginEvent.class, event -> MinecraftServer.getSchedulerManager().buildTask(() -> scheduledCallback.accept(fakePlayer)).delay(1, TimeUnit.TICK).schedule()); + if (scheduledCallback != null) { + fakePlayer.addEventCallback(PlayerLoginEvent.class, + event -> MinecraftServer.getSchedulerManager().buildTask( + () -> scheduledCallback.accept(fakePlayer)).delay(1, TimeUnit.TICK).schedule()); + } } /** - * Init a new {@link FakePlayer} without adding him in cache. + * Inits a new {@link FakePlayer} without adding it in cache. * * @param uuid the FakePlayer uuid * @param username the FakePlayer username @@ -54,7 +59,7 @@ public class FakePlayer extends Player { * WARNING: it will be called in the * {@link net.minestom.server.timer.SchedulerManager} thread pool */ - public static void initPlayer(@NotNull UUID uuid, @NotNull String username, @NotNull Consumer scheduledCallback) { + public static void initPlayer(@NotNull UUID uuid, @NotNull String username, @Nullable Consumer scheduledCallback) { initPlayer(uuid, username, new FakePlayerOption(), scheduledCallback); }