Fixed invisible players for joining players by sending custom packets
This commit is contained in:
@@ -15,7 +15,7 @@ public class MoveInstance {
|
||||
playerList.forEach(player -> move(player, destination));
|
||||
}
|
||||
public static void move(Entity p, Spawnable destination) {
|
||||
p.setInstance((Instance) destination, destination.getSpawn());
|
||||
if(p.getInstance() != destination) p.setInstance((Instance) destination, destination.getSpawn());
|
||||
}
|
||||
|
||||
public static void forceCloseInstance(InstanceContainer instance) {
|
||||
|
||||
40
src/main/java/eu/mhsl/minenet/minigames/util/PacketUtil.java
Normal file
40
src/main/java/eu/mhsl/minenet/minigames/util/PacketUtil.java
Normal file
@@ -0,0 +1,40 @@
|
||||
package eu.mhsl.minenet.minigames.util;
|
||||
|
||||
import net.minestom.server.MinecraftServer;
|
||||
import net.minestom.server.entity.GameMode;
|
||||
import net.minestom.server.entity.Player;
|
||||
import net.minestom.server.entity.PlayerSkin;
|
||||
import net.minestom.server.network.packet.server.play.PlayerInfoUpdatePacket;
|
||||
import net.minestom.server.network.packet.server.play.SpawnPlayerPacket;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PacketUtil {
|
||||
public static void resendPlayerList(Player p) {
|
||||
MinecraftServer.getConnectionManager().getOnlinePlayers().forEach(player -> {
|
||||
if(player.getUuid().equals(p.getUuid())) return;
|
||||
|
||||
final PlayerSkin skin = player.getSkin();
|
||||
List<PlayerInfoUpdatePacket.Property> properties =
|
||||
skin != null ? List.of(new PlayerInfoUpdatePacket.Property("textures", skin.textures(), skin.signature())) : List.of();
|
||||
|
||||
p.sendPacket(
|
||||
new PlayerInfoUpdatePacket(PlayerInfoUpdatePacket.Action.ADD_PLAYER,
|
||||
new PlayerInfoUpdatePacket.Entry(
|
||||
player.getUuid(),
|
||||
player.getUsername(),
|
||||
properties,
|
||||
true,
|
||||
0,
|
||||
GameMode.SURVIVAL,
|
||||
null,
|
||||
null
|
||||
)
|
||||
)
|
||||
);
|
||||
p.sendPacket(
|
||||
new SpawnPlayerPacket(player.getEntityId(), player.getUuid(), player.getPosition())
|
||||
);
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user