The scheduled callback for FakePlayer is not mandatory, send

This commit is contained in:
themode 2020-10-31 19:54:10 +01:00
parent b74d85eca8
commit 9a7a1e6ff4
2 changed files with 11 additions and 5 deletions

View File

@ -1442,6 +1442,7 @@ public class Player extends LivingEntity implements CommandSender {
chunk.removeViewer(this); chunk.removeViewer(this);
} }
// Not sure what it does...
updateViewPosition(newChunk); updateViewPosition(newChunk);
// Load new chunks // Load new chunks

View File

@ -7,6 +7,7 @@ import net.minestom.server.network.player.FakePlayerConnection;
import net.minestom.server.network.player.PlayerConnection; import net.minestom.server.network.player.PlayerConnection;
import net.minestom.server.utils.time.TimeUnit; import net.minestom.server.utils.time.TimeUnit;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.UUID; import java.util.UUID;
import java.util.function.Consumer; 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 uuid the FakePlayer uuid
* @param username the FakePlayer username * @param username the FakePlayer username
@ -39,14 +40,18 @@ public class FakePlayer extends Player {
* {@link net.minestom.server.timer.SchedulerManager} thread pool * {@link net.minestom.server.timer.SchedulerManager} thread pool
*/ */
public static void initPlayer(@NotNull UUID uuid, @NotNull String username, public static void initPlayer(@NotNull UUID uuid, @NotNull String username,
@NotNull FakePlayerOption option, @NotNull Consumer<FakePlayer> scheduledCallback) { @NotNull FakePlayerOption option, @Nullable Consumer<FakePlayer> scheduledCallback) {
final FakePlayer fakePlayer = new FakePlayer(uuid, username, option); 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 uuid the FakePlayer uuid
* @param username the FakePlayer username * @param username the FakePlayer username
@ -54,7 +59,7 @@ public class FakePlayer extends Player {
* WARNING: it will be called in the * WARNING: it will be called in the
* {@link net.minestom.server.timer.SchedulerManager} thread pool * {@link net.minestom.server.timer.SchedulerManager} thread pool
*/ */
public static void initPlayer(@NotNull UUID uuid, @NotNull String username, @NotNull Consumer<FakePlayer> scheduledCallback) { public static void initPlayer(@NotNull UUID uuid, @NotNull String username, @Nullable Consumer<FakePlayer> scheduledCallback) {
initPlayer(uuid, username, new FakePlayerOption(), scheduledCallback); initPlayer(uuid, username, new FakePlayerOption(), scheduledCallback);
} }