diff --git a/src/com/loohp/limbo/Server/ClientConnection.java b/src/com/loohp/limbo/Server/ClientConnection.java index bbc93ad..34f2450 100644 --- a/src/com/loohp/limbo/Server/ClientConnection.java +++ b/src/com/loohp/limbo/Server/ClientConnection.java @@ -7,8 +7,10 @@ import java.net.InetAddress; import java.net.Socket; import java.nio.charset.StandardCharsets; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Optional; +import java.util.Set; import java.util.UUID; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; @@ -56,6 +58,7 @@ import com.loohp.limbo.Server.Packets.PacketStatusOutPong; import com.loohp.limbo.Server.Packets.PacketStatusOutResponse; import com.loohp.limbo.Utils.CustomStringUtils; import com.loohp.limbo.Utils.DataTypeIO; +import com.loohp.limbo.Utils.GameMode; import com.loohp.limbo.Utils.MojangAPIUtils; import com.loohp.limbo.Utils.MojangAPIUtils.SkinResponse; import com.loohp.limbo.Utils.NamespacedKey; @@ -317,12 +320,14 @@ public class ClientConnection extends Thread { PacketPlayOutShowPlayerSkins show = new PacketPlayOutShowPlayerSkins(player.getEntityId()); sendPacket(show); - PacketPlayOutPlayerAbilities abilities; + Set flags = new HashSet<>(); if (p.isAllowFlight()) { - abilities = new PacketPlayOutPlayerAbilities(0.05F, 0.1F, PlayerAbilityFlags.ALLOW_FLYING); - } else { - abilities = new PacketPlayOutPlayerAbilities(0.05F, 0.1F); + flags.add(PlayerAbilityFlags.FLY); } + if (player.getGamemode().equals(GameMode.CREATIVE)) { + flags.add(PlayerAbilityFlags.CREATIVE); + } + PacketPlayOutPlayerAbilities abilities = new PacketPlayOutPlayerAbilities(0.05F, 0.1F, flags.toArray(new PlayerAbilityFlags[flags.size()])); sendPacket(abilities); String str = client_socket.getInetAddress().getHostName() + ":" + client_socket.getPort() + "|" + player.getName(); diff --git a/src/com/loohp/limbo/Server/Packets/PacketPlayOutPlayerAbilities.java b/src/com/loohp/limbo/Server/Packets/PacketPlayOutPlayerAbilities.java index 111fae7..17964be 100644 --- a/src/com/loohp/limbo/Server/Packets/PacketPlayOutPlayerAbilities.java +++ b/src/com/loohp/limbo/Server/Packets/PacketPlayOutPlayerAbilities.java @@ -10,7 +10,7 @@ public class PacketPlayOutPlayerAbilities extends PacketOut { INVULNERABLE(0x01), FLY(0x02), ALLOW_FLYING(0x04), - INSTANT_BREAK(0x08); + CREATIVE(0x08); int bitvalue;