From 00c06f2c7af8e6437ca1bf12d328680d8b4e5998 Mon Sep 17 00:00:00 2001 From: NycuR0 Date: Mon, 13 Nov 2017 21:26:29 +0200 Subject: [PATCH] Fix ChangeDimensionPacket use. --- .../org/itxtech/synapseapi/SynapsePlayer.java | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/itxtech/synapseapi/SynapsePlayer.java b/src/main/java/org/itxtech/synapseapi/SynapsePlayer.java index 7393ba5..019e3ab 100755 --- a/src/main/java/org/itxtech/synapseapi/SynapsePlayer.java +++ b/src/main/java/org/itxtech/synapseapi/SynapsePlayer.java @@ -8,6 +8,7 @@ import cn.nukkit.command.Command; import cn.nukkit.command.data.CommandDataVersions; import cn.nukkit.entity.Entity; +import cn.nukkit.event.player.PlayerJoinEvent; import cn.nukkit.event.player.PlayerKickEvent; import cn.nukkit.event.player.PlayerLoginEvent; import cn.nukkit.event.server.DataPacketSendEvent; @@ -381,7 +382,7 @@ public boolean transfer(String hash, boolean loadScreen) { } this.getDummyBossBars().values().forEach(DummyBossBar::destroy); this.getDummyBossBars().clear(); - /* Not works + // Hacky Fix if (loadScreen && SynapseAPI.getInstance().isUseLoadingScreen()) { //Load Screen this.getServer().getScheduler().scheduleDelayedTask(new SendChangeDimensionRunnable(this, 1), 1); @@ -389,13 +390,24 @@ public boolean transfer(String hash, boolean loadScreen) { this.getServer().getScheduler().scheduleDelayedTask(new SendPlayerSpawnRunnable(this), 10); this.getServer().getScheduler().scheduleDelayedTask(new SendChangeDimensionRunnable(this, 0), 12); this.getServer().getScheduler().scheduleDelayedTask(new TransferRunnable(this, hash), 14); - } else {*/ + } else { this.getServer().getScheduler().scheduleTask(SynapseAPI.getInstance(), new TransferRunnable(this, hash)); - //} + } return true; } return false; } + + // Hacky Fix for ChangeDimensionPacket + @Override + public void onJoin(PlayerJoinEvent $event) { + $player = $event->getPlayer(); + if (this.getLevel().getDimension() == Level.DIMENSION_NETHER) { + this.getServer().getScheduler().scheduleDelayedTask(new SendChangeDimensionRunnable(this, 1), 1); + } else { + // Spawn. + } + } @Override public void handleDataPacket(DataPacket packet) {