Update FakePlayer.java (#1603)

This commit is contained in:
Freddi 2022-12-21 07:12:31 +01:00 committed by GitHub
parent 809d9516b2
commit eb06ba8664
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 10 deletions

View File

@ -6,6 +6,7 @@ import net.minestom.server.coordinate.Pos;
import net.minestom.server.entity.Player;
import net.minestom.server.entity.pathfinding.NavigableEntity;
import net.minestom.server.entity.pathfinding.Navigator;
import net.minestom.server.event.Event;
import net.minestom.server.event.EventListener;
import net.minestom.server.event.player.PlayerSpawnEvent;
import net.minestom.server.instance.Instance;
@ -37,6 +38,8 @@ public class FakePlayer extends Player implements NavigableEntity {
private final Navigator navigator = new Navigator(this);
private EventListener<PlayerSpawnEvent> spawnListener;
/**
* Initializes a new {@link FakePlayer} with the given {@code uuid}, {@code username} and {@code option}'s.
*
@ -54,17 +57,16 @@ public class FakePlayer extends Player implements NavigableEntity {
this.fakePlayerController = new FakePlayerController(this);
if (spawnCallback != null) {
// FIXME
MinecraftServer.getGlobalEventHandler().addListener(
EventListener.builder(PlayerSpawnEvent.class)
.expireCount(1)
.handler(event -> {
if (event.isFirstSpawn()) {
spawnCallback.accept(this);
}
}).build());
spawnListener = EventListener.builder(PlayerSpawnEvent.class)
.handler(event -> {
if (event.getPlayer().equals(this))
if (event.isFirstSpawn()) {
spawnCallback.accept(this);
MinecraftServer.getGlobalEventHandler().removeListener(spawnListener);
}
}).build();
MinecraftServer.getGlobalEventHandler().addListener(spawnListener);
}
CONNECTION_MANAGER.startPlayState(this, option.isRegistered());
}