Use Adventure Key replacing NamespacedKey

This commit is contained in:
LOOHP
2022-12-08 12:22:18 +00:00
parent 9193d907d1
commit 081776e4fe
76 changed files with 366 additions and 491 deletions
@@ -22,8 +22,8 @@ package com.loohp.limbo.network;
import com.loohp.limbo.network.protocol.packets.PacketIn;
import com.loohp.limbo.network.protocol.packets.PacketOut;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.NamespacedKey;
import com.loohp.limbo.utils.Pair;
import net.kyori.adventure.key.Key;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -34,7 +34,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
public class Channel implements AutoCloseable {
private final List<Pair<NamespacedKey, ChannelPacketHandler>> handlers;
private final List<Pair<Key, ChannelPacketHandler>> handlers;
private final AtomicBoolean valid;
protected final DataInputStream input;
protected final DataOutputStream output;
@@ -52,15 +52,15 @@ public class Channel implements AutoCloseable {
}
}
public void addHandlerBefore(NamespacedKey key, ChannelPacketHandler handler) {
public void addHandlerBefore(Key key, ChannelPacketHandler handler) {
handlers.add(0, new Pair<>(key, handler));
}
public void addHandlerAfter(NamespacedKey key, ChannelPacketHandler handler) {
public void addHandlerAfter(Key key, ChannelPacketHandler handler) {
handlers.add(new Pair<>(key, handler));
}
public void removeHandler(NamespacedKey key) {
public void removeHandler(Key key) {
handlers.removeIf(each -> each.getFirst().equals(key));
}
@@ -75,7 +75,7 @@ public class Channel implements AutoCloseable {
size = size < 0 ? DataTypeIO.readVarInt(input) : size;
int packetId = DataTypeIO.readVarInt(input);
ChannelPacketRead read = new ChannelPacketRead(size, packetId, input);
for (Pair<NamespacedKey, ChannelPacketHandler> pair : handlers) {
for (Pair<Key, ChannelPacketHandler> pair : handlers) {
read = pair.getSecond().read(read);
if (read == null) {
packet = null;
@@ -91,7 +91,7 @@ public class Channel implements AutoCloseable {
protected boolean writePacket(PacketOut packet) throws IOException {
ensureOpen();
ChannelPacketWrite write = new ChannelPacketWrite(packet);
for (Pair<NamespacedKey, ChannelPacketHandler> pair : handlers) {
for (Pair<Key, ChannelPacketHandler> pair : handlers) {
write = pair.getSecond().write(write);
if (write == null) {
return false;
@@ -85,9 +85,9 @@ import com.loohp.limbo.utils.ForwardingUtils;
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;
import com.loohp.limbo.world.BlockPosition;
import com.loohp.limbo.world.World;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
import net.md_5.bungee.api.ChatColor;
@@ -126,8 +126,8 @@ import java.util.stream.Stream;
public class ClientConnection extends Thread {
private static final NamespacedKey DEFAULT_HANDLER_NAMESPACE = new NamespacedKey("default");
private static final String BRAND_ANNOUNCE_CHANNEL = new NamespacedKey("brand").toString();
private static final Key DEFAULT_HANDLER_NAMESPACE = Key.key("default");
private static final String BRAND_ANNOUNCE_CHANNEL = Key.key("brand").toString();
private final Random random = new Random();
private final Socket clientSocket;
@@ -19,6 +19,8 @@
package com.loohp.limbo.network;
import com.loohp.limbo.Limbo;
import java.io.IOException;
import java.net.InetAddress;
import java.net.ServerSocket;
@@ -26,8 +28,6 @@ import java.net.Socket;
import java.util.ArrayList;
import java.util.List;
import com.loohp.limbo.Limbo;
public class ServerConnection extends Thread {
private ServerSocket serverSocket;
@@ -22,9 +22,9 @@ package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.registry.Registry;
import com.loohp.limbo.utils.BitsUtils;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.NamespacedKey;
import com.loohp.limbo.world.Environment;
import com.loohp.limbo.world.GeneratedBlockDataMappings;
import net.kyori.adventure.key.Key;
import net.querz.mca.Chunk;
import net.querz.mca.Section;
import net.querz.nbt.tag.CompoundTag;
@@ -253,7 +253,7 @@ public class ClientboundLevelChunkWithLightPacket extends PacketOut {
int z = each.getInt("z") % 16;
output.writeByte(((x & 15) << 4) | (z & 15));
output.writeShort(y);
Integer id = Registry.BLOCK_ENTITY_TYPE.getId(new NamespacedKey(chunk.getBlockStateAt(x, y, z).getString("Name")));
Integer id = Registry.BLOCK_ENTITY_TYPE.getId(Key.key(chunk.getBlockStateAt(x, y, z).getString("Name")));
DataTypeIO.writeVarInt(output, id == null ? -1 : id);
DataTypeIO.writeCompoundTag(output, each);
}
@@ -19,16 +19,15 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class ClientboundSetSubtitleTextPacket extends PacketOut {
private Component subTitle;
@@ -19,16 +19,15 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class ClientboundSetTitleTextPacket extends PacketOut {
private Component titleText;
@@ -19,12 +19,12 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.DataInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketHandshakingIn extends PacketIn {
public enum HandshakeType {
@@ -19,14 +19,14 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.DataInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Optional;
import java.util.UUID;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketLoginInLoginStart extends PacketIn {
private String username;
@@ -19,12 +19,12 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.DataInputStream;
import java.io.IOException;
import java.util.Optional;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketLoginInPluginMessaging extends PacketIn {
private int messageId;
@@ -19,16 +19,15 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketLoginOutDisconnect extends PacketOut {
private Component reason;
@@ -19,14 +19,14 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.UUID;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketLoginOutLoginSuccess extends PacketOut {
private UUID uuid;
@@ -19,25 +19,25 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.key.Key;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.NamespacedKey;
public class PacketLoginOutPluginMessaging extends PacketOut {
private int messageId;
private NamespacedKey channel;
private Key channel;
private byte[] data;
public PacketLoginOutPluginMessaging(int messageId, NamespacedKey channel) {
public PacketLoginOutPluginMessaging(int messageId, Key channel) {
this(messageId, channel, null);
}
public PacketLoginOutPluginMessaging(int messageId, NamespacedKey channel, byte[] data) {
public PacketLoginOutPluginMessaging(int messageId, Key channel, byte[] data) {
this.messageId = messageId;
this.channel = channel;
this.data = data;
@@ -47,7 +47,7 @@ public class PacketLoginOutPluginMessaging extends PacketOut {
return messageId;
}
public NamespacedKey getChannel() {
public Key getChannel() {
return channel;
}
@@ -19,15 +19,15 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.LastSeenMessages;
import com.loohp.limbo.utils.MessageSignature;
import java.io.DataInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.time.Instant;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.LastSeenMessages;
import com.loohp.limbo.utils.MessageSignature;
public class PacketPlayInChat extends PacketIn {
private String message;
@@ -19,11 +19,11 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.DataInputStream;
import java.io.IOException;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketPlayInResourcePackStatus extends PacketIn {
public static enum EnumResourcePackStatus {
@@ -19,12 +19,12 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.DataInputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketPlayInTabComplete extends PacketIn {
private int id;
@@ -19,16 +19,15 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutDisconnect extends PacketOut {
private Component reason;
@@ -19,12 +19,12 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketPlayOutEntityDestroy extends PacketOut {
private int[] entityIds;
@@ -19,6 +19,16 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.entity.DataWatcher.WatchableObject;
import com.loohp.limbo.entity.DataWatcher.WatchableObjectType;
import com.loohp.limbo.entity.Entity;
import com.loohp.limbo.entity.Pose;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.Rotation3f;
import com.loohp.limbo.world.BlockPosition;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
@@ -32,17 +42,6 @@ import java.util.Map;
import java.util.Map.Entry;
import java.util.UUID;
import com.loohp.limbo.entity.DataWatcher.WatchableObject;
import com.loohp.limbo.entity.DataWatcher.WatchableObjectType;
import com.loohp.limbo.entity.Entity;
import com.loohp.limbo.entity.Pose;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.Rotation3f;
import com.loohp.limbo.world.BlockPosition;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutEntityMetadata extends PacketOut {
public static final int END_OFF_METADATA = 0xff;
@@ -21,9 +21,9 @@ package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.GameMode;
import com.loohp.limbo.utils.NamespacedKey;
import com.loohp.limbo.world.Environment;
import com.loohp.limbo.world.World;
import net.kyori.adventure.key.Key;
import net.querz.nbt.tag.CompoundTag;
import java.io.ByteArrayOutputStream;
@@ -140,11 +140,11 @@ public class PacketPlayOutLogin extends PacketOut {
output.writeByte(-1);
DataTypeIO.writeVarInt(output, worlds.size());
for (World world : worlds) {
DataTypeIO.writeString(output, new NamespacedKey(world.getName()).toString(), StandardCharsets.UTF_8);
DataTypeIO.writeString(output, Key.key(world.getName()).toString(), StandardCharsets.UTF_8);
}
DataTypeIO.writeCompoundTag(output, dimensionCodec);
DataTypeIO.writeString(output, world.getEnvironment().getNamespacedKey().toString(), StandardCharsets.UTF_8);
DataTypeIO.writeString(output, new NamespacedKey(world.getName()).toString(), StandardCharsets.UTF_8);
DataTypeIO.writeString(output, world.getEnvironment().getKey().toString(), StandardCharsets.UTF_8);
DataTypeIO.writeString(output, Key.key(world.getName()).toString(), StandardCharsets.UTF_8);
output.writeLong(hashedSeed);
DataTypeIO.writeVarInt(output, maxPlayers);
DataTypeIO.writeVarInt(output, viewDistance);
@@ -19,6 +19,10 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerInfo.PlayerInfoData.PlayerInfoDataAddPlayer;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.GameMode;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
@@ -27,10 +31,6 @@ import java.util.EnumSet;
import java.util.Optional;
import java.util.UUID;
import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerInfo.PlayerInfoData.PlayerInfoDataAddPlayer;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.GameMode;
public class PacketPlayOutPlayerInfo extends PacketOut {
public enum PlayerInfoAction {
@@ -19,16 +19,15 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutPlayerListHeaderFooter extends PacketOut{
private Component header;
@@ -19,15 +19,14 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import java.util.stream.Collectors;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketPlayOutPositionAndLook extends PacketOut {
@@ -19,16 +19,15 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutResourcePackSend extends PacketOut {
public static final int MAX_HASH_LENGTH = 40;
@@ -19,20 +19,19 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.GameMode;
import com.loohp.limbo.world.Environment;
import com.loohp.limbo.world.World;
import net.kyori.adventure.key.Key;
import net.querz.nbt.tag.CompoundTag;
import net.querz.nbt.tag.ListTag;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.GameMode;
import com.loohp.limbo.utils.NamespacedKey;
import com.loohp.limbo.world.Environment;
import com.loohp.limbo.world.World;
import net.querz.nbt.tag.CompoundTag;
import net.querz.nbt.tag.ListTag;
public class PacketPlayOutRespawn extends PacketOut {
private Environment dimension;
@@ -47,7 +46,7 @@ public class PacketPlayOutRespawn extends PacketOut {
public PacketPlayOutRespawn(World world, CompoundTag dimensionCodec, long hashedSeed, GameMode gamemode, boolean isDebug, boolean isFlat, boolean copyMetaData) {
this.dimension = world.getEnvironment();
this.dimensionCodec = dimensionCodec;
this.worldName = new NamespacedKey(world.getName()).toString();
this.worldName = Key.key(world.getName()).toString();
this.hashedSeed = hashedSeed;
this.gamemode = gamemode;
this.isDebug = isDebug;
@@ -96,7 +95,7 @@ public class PacketPlayOutRespawn extends PacketOut {
CompoundTag tag = null;
ListTag<CompoundTag> list = dimensionCodec.getCompoundTag("minecraft:dimension_type").getListTag("value").asCompoundTagList();
for (CompoundTag each : list) {
if (each.getString("name").equals(dimension.getNamespacedKey().toString())) {
if (each.getString("name").equals(dimension.getKey().toString())) {
tag = each.getCompoundTag("element");
break;
}
@@ -19,14 +19,14 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.entity.EntityType;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.util.UUID;
import com.loohp.limbo.entity.EntityType;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketPlayOutSpawnEntity extends PacketOut {
private int entityId;
@@ -19,13 +19,13 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.world.BlockPosition;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.world.BlockPosition;
public class PacketPlayOutSpawnPosition extends PacketOut {
private BlockPosition position;
@@ -20,7 +20,7 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.NamespacedKey;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.sound.Sound;
import java.io.ByteArrayOutputStream;
@@ -30,15 +30,15 @@ import java.nio.charset.StandardCharsets;
public class PacketPlayOutStopSound extends PacketOut {
private NamespacedKey sound;
private Key sound;
private Sound.Source source;
public PacketPlayOutStopSound(NamespacedKey sound, Sound.Source source) {
public PacketPlayOutStopSound(Key sound, Sound.Source source) {
this.sound = sound;
this.source = source;
}
public NamespacedKey getSound() {
public Key getSound() {
return sound;
}
@@ -19,17 +19,16 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.Optional;
import com.loohp.limbo.utils.DataTypeIO;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutTabComplete extends PacketOut {
private int id;
@@ -19,12 +19,12 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketPlayOutUpdateViewPosition extends PacketOut {
private int chunkX;
@@ -19,13 +19,13 @@
package com.loohp.limbo.network.protocol.packets;
import com.loohp.limbo.utils.DataTypeIO;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
public class PacketStatusOutResponse extends PacketOut {
private String json;