diff --git a/pom.xml b/pom.xml
index 274a424..b6d27f8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
com.loohp
Limbo
Limbo
- 0.6.8-ALPHA
+ 0.6.9-ALPHA
Standalone Limbo Minecraft Server.
https://github.com/LOOHP/Limbo
@@ -117,7 +117,7 @@
- ${project.artifactId}-${project.version}-1.18
+ ${project.artifactId}-${project.version}-1.18.1
@@ -234,6 +234,36 @@
jar
compile
+
+ net.kyori
+ adventure-text-serializer-gson
+ 4.9.3
+ compile
+
+
+ net.kyori
+ adventure-text-serializer-legacy
+ 4.9.3
+ compile
+
+
+ net.kyori
+ adventure-text-serializer-plain
+ 4.9.3
+ compile
+
+
+ net.kyori
+ adventure-api
+ 4.9.3
+ compile
+
+
+ net.kyori
+ adventure-nbt
+ 4.9.3
+ compile
+
org.fusesource.jansi
jansi
diff --git a/src/main/java/com/loohp/limbo/Console.java b/src/main/java/com/loohp/limbo/Console.java
index c54022f..de01798 100644
--- a/src/main/java/com/loohp/limbo/Console.java
+++ b/src/main/java/com/loohp/limbo/Console.java
@@ -34,6 +34,16 @@ import com.loohp.limbo.consolegui.ConsoleTextOutput;
import com.loohp.limbo.utils.CustomStringUtils;
import jline.console.ConsoleReader;
+import net.kyori.adventure.audience.MessageType;
+import net.kyori.adventure.bossbar.BossBar;
+import net.kyori.adventure.identity.Identity;
+import net.kyori.adventure.inventory.Book;
+import net.kyori.adventure.sound.Sound;
+import net.kyori.adventure.sound.Sound.Emitter;
+import net.kyori.adventure.sound.SoundStop;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
+import net.kyori.adventure.title.TitlePart;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.BaseComponent;
@@ -113,11 +123,13 @@ public class Console implements CommandSender {
return Limbo.getInstance().getPermissionsManager().hasPermission(this, permission);
}
+ @Deprecated
@Override
public void sendMessage(BaseComponent component, UUID uuid) {
sendMessage(component);
}
+ @Deprecated
@Override
public void sendMessage(BaseComponent[] component, UUID uuid) {
sendMessage(component);
@@ -128,16 +140,83 @@ public class Console implements CommandSender {
sendMessage(message);
}
+ @Deprecated
@Override
public void sendMessage(BaseComponent component) {
sendMessage(new BaseComponent[] {component});
}
+ @Deprecated
@Override
public void sendMessage(BaseComponent[] component) {
sendMessage(String.join("", Arrays.asList(component).stream().map(each -> each.toLegacyText()).collect(Collectors.toList())));
}
+ @Override
+ public void sendMessage(Identity source, Component message, MessageType type) {
+ sendMessage(PlainTextComponentSerializer.plainText().serialize(message));
+ }
+
+ @Override
+ public void openBook(Book book) {
+ //ignore
+ }
+
+ @Override
+ public void stopSound(SoundStop stop) {
+ //ignore
+ }
+
+ @Override
+ public void playSound(Sound sound, Emitter emitter) {
+ //ignore
+ }
+
+ @Override
+ public void playSound(Sound sound, double x, double y, double z) {
+ //ignore
+ }
+
+ @Override
+ public void playSound(Sound sound) {
+ //ignore
+ }
+
+ @Override
+ public void sendActionBar(Component message) {
+ //ignore
+ }
+
+ @Override
+ public void sendPlayerListHeaderAndFooter(Component header, Component footer) {
+ //ignore
+ }
+
+ @Override
+ public void sendTitlePart(TitlePart part, T value) {
+ //ignore
+ }
+
+ @Override
+ public void clearTitle() {
+ //ignore
+ }
+
+ @Override
+ public void resetTitle() {
+ //ignore
+ }
+
+ @Override
+ public void showBossBar(BossBar bar) {
+ //ignore
+ }
+
+ @Override
+ public void hideBossBar(BossBar bar) {
+ //ignore
+ }
+
@Override
public void sendMessage(String message) {
stashLine();
diff --git a/src/main/java/com/loohp/limbo/Limbo.java b/src/main/java/com/loohp/limbo/Limbo.java
index 2588732..b4e98bf 100644
--- a/src/main/java/com/loohp/limbo/Limbo.java
+++ b/src/main/java/com/loohp/limbo/Limbo.java
@@ -43,16 +43,16 @@ import com.loohp.limbo.events.EventsManager;
import com.loohp.limbo.file.ServerProperties;
import com.loohp.limbo.location.Location;
import com.loohp.limbo.metrics.Metrics;
+import com.loohp.limbo.network.ServerConnection;
+import com.loohp.limbo.network.protocol.packets.Packet;
+import com.loohp.limbo.network.protocol.packets.PacketIn;
+import com.loohp.limbo.network.protocol.packets.PacketOut;
import com.loohp.limbo.permissions.PermissionsManager;
import com.loohp.limbo.player.Player;
import com.loohp.limbo.plugins.LimboPlugin;
import com.loohp.limbo.plugins.PluginManager;
import com.loohp.limbo.scheduler.LimboScheduler;
import com.loohp.limbo.scheduler.Tick;
-import com.loohp.limbo.server.ServerConnection;
-import com.loohp.limbo.server.packets.Packet;
-import com.loohp.limbo.server.packets.PacketIn;
-import com.loohp.limbo.server.packets.PacketOut;
import com.loohp.limbo.utils.CustomStringUtils;
import com.loohp.limbo.utils.ImageUtils;
import com.loohp.limbo.utils.NetworkUtils;
@@ -61,8 +61,9 @@ import com.loohp.limbo.world.Environment;
import com.loohp.limbo.world.Schematic;
import com.loohp.limbo.world.World;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
+import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import net.querz.nbt.io.NBTUtil;
import net.querz.nbt.tag.CompoundTag;
@@ -106,7 +107,7 @@ public class Limbo {
//===========================
- public final String serverImplementationVersion = "1.18";
+ public final String serverImplementationVersion = "1.18.1";
public final int serverImplmentationProtocol = 757;
public final String limboImplementationVersion;
@@ -456,7 +457,7 @@ public class Limbo {
}
@SuppressWarnings("unchecked")
- public String buildServerListResponseJson(String version, int protocol, BaseComponent[] motd, int maxPlayers, int playersOnline, BufferedImage favicon) throws IOException {
+ public String buildServerListResponseJson(String version, int protocol, Component motd, int maxPlayers, int playersOnline, BufferedImage favicon) throws IOException {
JSONObject json = new JSONObject();
JSONObject versionJson = new JSONObject();
@@ -491,12 +492,12 @@ public class Limbo {
Gson g = new GsonBuilder().create();
- return g.toJson(treeMap).replace("\"%MOTD%\"", ComponentSerializer.toString(motd));
+ return g.toJson(treeMap).replace("\"%MOTD%\"", GsonComponentSerializer.gson().serialize(motd));
}
- public String buildLegacyPingResponse(String version, BaseComponent[] motd, int maxPlayers, int playersOnline) {
+ public String buildLegacyPingResponse(String version, Component motd, int maxPlayers, int playersOnline) {
String begin = "§1";
- return String.join("\00", begin, "127", version, String.join("", Arrays.asList(motd).stream().map(each -> each.toLegacyText()).collect(Collectors.toList())), String.valueOf(playersOnline), String.valueOf(maxPlayers));
+ return String.join("\00", begin, "127", version, String.join("", Arrays.asList(motd).stream().map(each -> LegacyComponentSerializer.legacySection().serialize(each)).collect(Collectors.toList())), String.valueOf(playersOnline), String.valueOf(maxPlayers));
}
protected void terminate() {
diff --git a/src/main/java/com/loohp/limbo/commands/CommandSender.java b/src/main/java/com/loohp/limbo/commands/CommandSender.java
index 7b7ecc0..3e02a85 100644
--- a/src/main/java/com/loohp/limbo/commands/CommandSender.java
+++ b/src/main/java/com/loohp/limbo/commands/CommandSender.java
@@ -2,9 +2,18 @@ package com.loohp.limbo.commands;
import java.util.UUID;
+import net.kyori.adventure.audience.Audience;
+import net.kyori.adventure.audience.MessageType;
+import net.kyori.adventure.bossbar.BossBar;
+import net.kyori.adventure.identity.Identity;
+import net.kyori.adventure.inventory.Book;
+import net.kyori.adventure.sound.Sound;
+import net.kyori.adventure.sound.SoundStop;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.title.TitlePart;
import net.md_5.bungee.api.chat.BaseComponent;
-public interface CommandSender {
+public interface CommandSender extends Audience {
public void sendMessage(BaseComponent[] component, UUID uuid);
@@ -21,5 +30,31 @@ public interface CommandSender {
public boolean hasPermission(String permission);
public String getName();
+
+ public void sendMessage(Identity source, Component message, MessageType type);
+
+ public void openBook(Book book);
+
+ public void stopSound(SoundStop stop);
+
+ public void playSound(Sound sound, Sound.Emitter emitter);
+
+ public void playSound(Sound sound, double x, double y, double z);
+
+ public void playSound(Sound sound);
+
+ public void sendActionBar(Component message);
+
+ public void sendPlayerListHeaderAndFooter(Component header, Component footer);
+
+ public void sendTitlePart(TitlePart part, T value);
+
+ public void clearTitle();
+
+ public void resetTitle();
+
+ public void showBossBar(BossBar bar);
+ public void hideBossBar(BossBar bar);
+
}
diff --git a/src/main/java/com/loohp/limbo/commands/DefaultCommands.java b/src/main/java/com/loohp/limbo/commands/DefaultCommands.java
index eaddc46..91bc1ca 100644
--- a/src/main/java/com/loohp/limbo/commands/DefaultCommands.java
+++ b/src/main/java/com/loohp/limbo/commands/DefaultCommands.java
@@ -9,10 +9,9 @@ import com.loohp.limbo.Limbo;
import com.loohp.limbo.player.Player;
import com.loohp.limbo.utils.GameMode;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import net.md_5.bungee.api.ChatColor;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.api.chat.TextComponent;
-import net.md_5.bungee.api.chat.TranslatableComponent;
public class DefaultCommands implements CommandExecutor, TabCompletor {
@@ -55,7 +54,7 @@ public class DefaultCommands implements CommandExecutor, TabCompletor {
if (args[0].equalsIgnoreCase("kick")) {
if (sender.hasPermission("limboserver.kick")) {
- BaseComponent reason = new TranslatableComponent("multiplayer.disconnect.kicked");
+ Component reason = Component.translatable("multiplayer.disconnect.kicked");
boolean customReason = false;
if (args.length > 1) {
Player player = Limbo.getInstance().getPlayer(args[1]);
@@ -63,13 +62,13 @@ public class DefaultCommands implements CommandExecutor, TabCompletor {
if (args.length >= 2) {
String reasonRaw = String.join(" ", Arrays.copyOfRange(args, 2, args.length));
if (reasonRaw.trim().length() > 0) {
- reason = new TextComponent(reasonRaw);
+ reason = LegacyComponentSerializer.legacySection().deserialize(reasonRaw);
customReason = true;
}
}
player.disconnect(reason);
if (customReason) {
- sender.sendMessage(ChatColor.RED + "Kicked the player " + player.getName() + " for the reason: " + reason.toLegacyText());
+ sender.sendMessage(ChatColor.RED + "Kicked the player " + player.getName() + " for the reason: " + LegacyComponentSerializer.legacySection().serialize(reason));
} else {
sender.sendMessage(ChatColor.RED + "Kicked the player " + player.getName());
}
diff --git a/src/main/java/com/loohp/limbo/entity/Entity.java b/src/main/java/com/loohp/limbo/entity/Entity.java
index 5690d56..4eac66a 100644
--- a/src/main/java/com/loohp/limbo/entity/Entity.java
+++ b/src/main/java/com/loohp/limbo/entity/Entity.java
@@ -6,10 +6,12 @@ import com.loohp.limbo.Limbo;
import com.loohp.limbo.entity.DataWatcher.WatchableField;
import com.loohp.limbo.entity.DataWatcher.WatchableObjectType;
import com.loohp.limbo.location.Location;
+import com.loohp.limbo.utils.BungeecordAdventureConversionUtils;
import com.loohp.limbo.world.World;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.api.chat.TextComponent;
public abstract class Entity {
@@ -32,7 +34,7 @@ public abstract class Entity {
@WatchableField(MetadataIndex = 1, WatchableObjectType = WatchableObjectType.VARINT)
protected int air = 300;
@WatchableField(MetadataIndex = 2, WatchableObjectType = WatchableObjectType.CHAT, IsOptional = true)
- protected BaseComponent[] customName = null;
+ protected Component customName = null;
@WatchableField(MetadataIndex = 3, WatchableObjectType = WatchableObjectType.BOOLEAN)
protected boolean customNameVisible = false;
@WatchableField(MetadataIndex = 4, WatchableObjectType = WatchableObjectType.BOOLEAN)
@@ -100,20 +102,26 @@ public abstract class Entity {
this.pitch = location.getPitch();
}
- public BaseComponent[] getCustomName() {
+ public Component getCustomName() {
return customName;
}
public void setCustomName(String name) {
- this.customName = name == null ? null : new BaseComponent[] {new TextComponent(name)};
+ this.customName = name == null ? null : LegacyComponentSerializer.legacySection().deserialize(name);
}
+ public void setCustomName(Component component) {
+ this.customName = component;
+ }
+
+ @Deprecated
public void setCustomName(BaseComponent component) {
- this.customName = component == null ? null : new BaseComponent[] {component};
+ setCustomName(component == null ? null : BungeecordAdventureConversionUtils.toComponent(component));
}
+ @Deprecated
public void setCustomName(BaseComponent[] components) {
- this.customName = components;
+ setCustomName(components == null ? null : BungeecordAdventureConversionUtils.toComponent(components));
}
public boolean isOnFire() {
diff --git a/src/main/java/com/loohp/limbo/events/player/PlayerLoginEvent.java b/src/main/java/com/loohp/limbo/events/player/PlayerLoginEvent.java
index e4845ce..7c9e60e 100644
--- a/src/main/java/com/loohp/limbo/events/player/PlayerLoginEvent.java
+++ b/src/main/java/com/loohp/limbo/events/player/PlayerLoginEvent.java
@@ -2,7 +2,7 @@ package com.loohp.limbo.events.player;
import com.loohp.limbo.events.Cancellable;
import com.loohp.limbo.events.Event;
-import com.loohp.limbo.server.ClientConnection;
+import com.loohp.limbo.network.ClientConnection;
import net.md_5.bungee.api.chat.BaseComponent;
diff --git a/src/main/java/com/loohp/limbo/events/player/PlayerResourcePackStatusEvent.java b/src/main/java/com/loohp/limbo/events/player/PlayerResourcePackStatusEvent.java
index 91ecb8d..fddb509 100644
--- a/src/main/java/com/loohp/limbo/events/player/PlayerResourcePackStatusEvent.java
+++ b/src/main/java/com/loohp/limbo/events/player/PlayerResourcePackStatusEvent.java
@@ -1,7 +1,7 @@
package com.loohp.limbo.events.player;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInResourcePackStatus.EnumResourcePackStatus;
import com.loohp.limbo.player.Player;
-import com.loohp.limbo.server.packets.PacketPlayInResourcePackStatus.EnumResourcePackStatus;
public class PlayerResourcePackStatusEvent extends PlayerEvent {
diff --git a/src/main/java/com/loohp/limbo/events/status/StatusPingEvent.java b/src/main/java/com/loohp/limbo/events/status/StatusPingEvent.java
index d076322..886024d 100644
--- a/src/main/java/com/loohp/limbo/events/status/StatusPingEvent.java
+++ b/src/main/java/com/loohp/limbo/events/status/StatusPingEvent.java
@@ -3,21 +3,21 @@ package com.loohp.limbo.events.status;
import java.awt.image.BufferedImage;
import com.loohp.limbo.events.Event;
-import com.loohp.limbo.server.ClientConnection;
+import com.loohp.limbo.network.ClientConnection;
-import net.md_5.bungee.api.chat.BaseComponent;
+import net.kyori.adventure.text.Component;
public class StatusPingEvent extends Event {
private ClientConnection connection;
private String version;
private int protocol;
- private BaseComponent[] motd;
+ private Component motd;
private int maxPlayers;
private int playersOnline;
private BufferedImage favicon;
- public StatusPingEvent(ClientConnection connection, String version, int protocol, BaseComponent[] motd, int maxPlayers, int playersOnline, BufferedImage favicon) {
+ public StatusPingEvent(ClientConnection connection, String version, int protocol, Component motd, int maxPlayers, int playersOnline, BufferedImage favicon) {
this.connection = connection;
this.version = version;
this.protocol = protocol;
@@ -47,11 +47,11 @@ public class StatusPingEvent extends Event {
this.protocol = protocol;
}
- public BaseComponent[] getMotd() {
+ public Component getMotd() {
return motd;
}
- public void setMotd(BaseComponent[] motd) {
+ public void setMotd(Component motd) {
this.motd = motd;
}
diff --git a/src/main/java/com/loohp/limbo/file/ServerProperties.java b/src/main/java/com/loohp/limbo/file/ServerProperties.java
index 6f7d8b5..85c3beb 100644
--- a/src/main/java/com/loohp/limbo/file/ServerProperties.java
+++ b/src/main/java/com/loohp/limbo/file/ServerProperties.java
@@ -23,14 +23,12 @@ import com.loohp.limbo.utils.GameMode;
import com.loohp.limbo.utils.NamespacedKey;
import com.loohp.limbo.world.World;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.api.chat.TextComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class ServerProperties {
public static final String COMMENT = "For explaination of what each of the options does, please visit:\nhttps://github.com/LOOHP/Limbo/blob/master/src/main/resources/server.properties";
- public static final BaseComponent[] EMPTY_CHAT_COMPONENT = new BaseComponent[] {new TextComponent("")};
private File file;
private int maxPlayers;
@@ -44,7 +42,7 @@ public class ServerProperties {
private boolean reducedDebugInfo;
private boolean allowFlight;
private boolean allowChat;
- private BaseComponent[] motd;
+ private Component motd;
private String versionString;
private int protocol;
private boolean bungeecord;
@@ -58,10 +56,10 @@ public class ServerProperties {
private String resourcePackSHA1;
private String resourcePackLink;
private boolean resourcePackRequired;
- private BaseComponent[] resourcePackPrompt;
+ private Component resourcePackPrompt;
- private BaseComponent[] tabHeader;
- private BaseComponent[] tabFooter;
+ private Component tabHeader;
+ private Component tabFooter;
Optional favicon;
@@ -109,7 +107,7 @@ public class ServerProperties {
allowFlight = Boolean.parseBoolean(prop.getProperty("allow-flight"));
allowChat = Boolean.parseBoolean(prop.getProperty("allow-chat"));
String motdJson = prop.getProperty("motd");
- motd = motdJson.equals("") ? EMPTY_CHAT_COMPONENT : ComponentSerializer.parse(motdJson);
+ motd = motdJson.equals("") ? Component.empty() : GsonComponentSerializer.gson().deserialize(motdJson);
versionString = prop.getProperty("version");
bungeecord = Boolean.parseBoolean(prop.getProperty("bungeecord"));
velocityModern = Boolean.parseBoolean(prop.getProperty("velocity-modern"));
@@ -141,12 +139,12 @@ public class ServerProperties {
resourcePackSHA1 = prop.getProperty("resource-pack-sha1");
resourcePackRequired = Boolean.parseBoolean(prop.getProperty("required-resource-pack"));
String resourcePackPromptJson = prop.getProperty("resource-pack-prompt");
- resourcePackPrompt = resourcePackPromptJson.equals("") ? null : ComponentSerializer.parse(resourcePackPromptJson);
+ resourcePackPrompt = resourcePackPromptJson.equals("") ? null : GsonComponentSerializer.gson().deserialize(resourcePackPromptJson);
String tabHeaderJson = prop.getProperty("tab-header");
- tabHeader = tabHeaderJson.equals("") ? EMPTY_CHAT_COMPONENT : ComponentSerializer.parse(tabHeaderJson);
+ tabHeader = tabHeaderJson.equals("") ? Component.empty() : GsonComponentSerializer.gson().deserialize(tabHeaderJson);
String tabFooterJson = prop.getProperty("tab-footer");
- tabFooter = tabFooterJson.equals("") ? EMPTY_CHAT_COMPONENT : ComponentSerializer.parse(tabFooterJson);
+ tabFooter = tabFooterJson.equals("") ? Component.empty() : GsonComponentSerializer.gson().deserialize(tabFooterJson);
File png = new File("server-icon.png");
if (png.exists()) {
@@ -244,7 +242,7 @@ public class ServerProperties {
return this.allowChat;
}
- public BaseComponent[] getMotd() {
+ public Component getMotd() {
return motd;
}
@@ -280,15 +278,15 @@ public class ServerProperties {
return resourcePackRequired;
}
- public BaseComponent[] getResourcePackPrompt() {
+ public Component getResourcePackPrompt() {
return resourcePackPrompt;
}
- public BaseComponent[] getTabHeader() {
+ public Component getTabHeader() {
return tabHeader;
}
- public BaseComponent[] getTabFooter() {
+ public Component getTabFooter() {
return tabFooter;
}
diff --git a/src/main/java/com/loohp/limbo/network/Channel.java b/src/main/java/com/loohp/limbo/network/Channel.java
new file mode 100644
index 0000000..1f96c6e
--- /dev/null
+++ b/src/main/java/com/loohp/limbo/network/Channel.java
@@ -0,0 +1,5 @@
+package com.loohp.limbo.network;
+
+public class Channel {
+
+}
diff --git a/src/main/java/com/loohp/limbo/server/ClientConnection.java b/src/main/java/com/loohp/limbo/network/ClientConnection.java
similarity index 87%
rename from src/main/java/com/loohp/limbo/server/ClientConnection.java
rename to src/main/java/com/loohp/limbo/network/ClientConnection.java
index f769298..bd3952e 100644
--- a/src/main/java/com/loohp/limbo/server/ClientConnection.java
+++ b/src/main/java/com/loohp/limbo/network/ClientConnection.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server;
+package com.loohp.limbo.network;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -33,47 +33,48 @@ import com.loohp.limbo.events.player.PlayerSelectedSlotChangeEvent;
import com.loohp.limbo.events.status.StatusPingEvent;
import com.loohp.limbo.file.ServerProperties;
import com.loohp.limbo.location.Location;
+import com.loohp.limbo.network.protocol.packets.Packet;
+import com.loohp.limbo.network.protocol.packets.PacketHandshakingIn;
+import com.loohp.limbo.network.protocol.packets.PacketLoginInLoginStart;
+import com.loohp.limbo.network.protocol.packets.PacketLoginInPluginMessaging;
+import com.loohp.limbo.network.protocol.packets.PacketLoginOutDisconnect;
+import com.loohp.limbo.network.protocol.packets.PacketLoginOutLoginSuccess;
+import com.loohp.limbo.network.protocol.packets.PacketLoginOutPluginMessaging;
+import com.loohp.limbo.network.protocol.packets.PacketOut;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInChat;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInHeldItemChange;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInKeepAlive;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInPosition;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInPositionAndLook;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInResourcePackStatus;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInResourcePackStatus.EnumResourcePackStatus;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInRotation;
+import com.loohp.limbo.network.protocol.packets.PacketPlayInTabComplete;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutDeclareCommands;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutDisconnect;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutEntityMetadata;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutGameState;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutHeldItemChange;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutKeepAlive;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutLogin;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerAbilities;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerAbilities.PlayerAbilityFlags;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerInfo;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerInfo.PlayerInfoAction;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerInfo.PlayerInfoData;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerInfo.PlayerInfoData.PlayerInfoDataAddPlayer.PlayerSkinProperty;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPositionAndLook;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutSpawnPosition;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutTabComplete;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutTabComplete.TabCompleteMatches;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutUpdateViewPosition;
+import com.loohp.limbo.network.protocol.packets.PacketStatusInPing;
+import com.loohp.limbo.network.protocol.packets.PacketStatusInRequest;
+import com.loohp.limbo.network.protocol.packets.PacketStatusOutPong;
+import com.loohp.limbo.network.protocol.packets.PacketStatusOutResponse;
import com.loohp.limbo.player.Player;
import com.loohp.limbo.player.PlayerInteractManager;
-import com.loohp.limbo.server.packets.Packet;
-import com.loohp.limbo.server.packets.PacketHandshakingIn;
-import com.loohp.limbo.server.packets.PacketLoginInLoginStart;
-import com.loohp.limbo.server.packets.PacketLoginInPluginMessaging;
-import com.loohp.limbo.server.packets.PacketLoginOutDisconnect;
-import com.loohp.limbo.server.packets.PacketLoginOutLoginSuccess;
-import com.loohp.limbo.server.packets.PacketLoginOutPluginMessaging;
-import com.loohp.limbo.server.packets.PacketOut;
-import com.loohp.limbo.server.packets.PacketPlayInChat;
-import com.loohp.limbo.server.packets.PacketPlayInHeldItemChange;
-import com.loohp.limbo.server.packets.PacketPlayInKeepAlive;
-import com.loohp.limbo.server.packets.PacketPlayInPosition;
-import com.loohp.limbo.server.packets.PacketPlayInPositionAndLook;
-import com.loohp.limbo.server.packets.PacketPlayInResourcePackStatus;
-import com.loohp.limbo.server.packets.PacketPlayInResourcePackStatus.EnumResourcePackStatus;
-import com.loohp.limbo.server.packets.PacketPlayInRotation;
-import com.loohp.limbo.server.packets.PacketPlayInTabComplete;
-import com.loohp.limbo.server.packets.PacketPlayOutDeclareCommands;
-import com.loohp.limbo.server.packets.PacketPlayOutDisconnect;
-import com.loohp.limbo.server.packets.PacketPlayOutEntityMetadata;
-import com.loohp.limbo.server.packets.PacketPlayOutGameState;
-import com.loohp.limbo.server.packets.PacketPlayOutHeldItemChange;
-import com.loohp.limbo.server.packets.PacketPlayOutKeepAlive;
-import com.loohp.limbo.server.packets.PacketPlayOutLogin;
-import com.loohp.limbo.server.packets.PacketPlayOutPlayerAbilities;
-import com.loohp.limbo.server.packets.PacketPlayOutPlayerAbilities.PlayerAbilityFlags;
-import com.loohp.limbo.server.packets.PacketPlayOutPlayerInfo;
-import com.loohp.limbo.server.packets.PacketPlayOutPlayerInfo.PlayerInfoAction;
-import com.loohp.limbo.server.packets.PacketPlayOutPlayerInfo.PlayerInfoData;
-import com.loohp.limbo.server.packets.PacketPlayOutPlayerInfo.PlayerInfoData.PlayerInfoDataAddPlayer.PlayerSkinProperty;
-import com.loohp.limbo.server.packets.PacketPlayOutPositionAndLook;
-import com.loohp.limbo.server.packets.PacketPlayOutSpawnPosition;
-import com.loohp.limbo.server.packets.PacketPlayOutTabComplete;
-import com.loohp.limbo.server.packets.PacketPlayOutTabComplete.TabCompleteMatches;
-import com.loohp.limbo.server.packets.PacketPlayOutUpdateViewPosition;
-import com.loohp.limbo.server.packets.PacketStatusInPing;
-import com.loohp.limbo.server.packets.PacketStatusInRequest;
-import com.loohp.limbo.server.packets.PacketStatusOutPong;
-import com.loohp.limbo.server.packets.PacketStatusOutResponse;
+import com.loohp.limbo.utils.BungeecordAdventureConversionUtils;
import com.loohp.limbo.utils.CheckedBiConsumer;
import com.loohp.limbo.utils.CustomStringUtils;
import com.loohp.limbo.utils.DataTypeIO;
@@ -85,6 +86,7 @@ import com.loohp.limbo.utils.MojangAPIUtils.SkinResponse;
import com.loohp.limbo.world.BlockPosition;
import com.loohp.limbo.world.World;
+import net.kyori.adventure.text.Component;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
@@ -181,6 +183,10 @@ public class ClientConnection extends Thread {
}
public void disconnect(BaseComponent[] reason) {
+ disconnect(BungeecordAdventureConversionUtils.toComponent(reason));
+ }
+
+ public void disconnect(Component reason) {
try {
PacketPlayOutDisconnect packet = new PacketPlayOutDisconnect(reason);
sendPacket(packet);
@@ -191,6 +197,10 @@ public class ClientConnection extends Thread {
}
private void disconnectDuringLogin(BaseComponent[] reason) {
+ disconnectDuringLogin(BungeecordAdventureConversionUtils.toComponent(reason));
+ }
+
+ private void disconnectDuringLogin(Component reason) {
try {
PacketLoginOutDisconnect packet = new PacketLoginOutDisconnect(reason);
sendPacket(packet);
@@ -452,7 +462,7 @@ public class ClientConnection extends Thread {
}
// PLAYER LIST HEADER AND FOOTER CODE CONRIBUTED BY GAMERDUCK123
- player.setPlayerListHeaderFooter(properties.getTabHeader(), properties.getTabFooter());
+ player.sendPlayerListHeaderAndFooter(properties.getTabHeader(), properties.getTabFooter());
ready = true;
diff --git a/src/main/java/com/loohp/limbo/server/ServerConnection.java b/src/main/java/com/loohp/limbo/network/ServerConnection.java
similarity index 97%
rename from src/main/java/com/loohp/limbo/server/ServerConnection.java
rename to src/main/java/com/loohp/limbo/network/ServerConnection.java
index e55245a..848f19d 100644
--- a/src/main/java/com/loohp/limbo/server/ServerConnection.java
+++ b/src/main/java/com/loohp/limbo/network/ServerConnection.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server;
+package com.loohp.limbo.network;
import java.io.IOException;
import java.net.InetAddress;
diff --git a/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundClearTitlesPacket.java b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundClearTitlesPacket.java
new file mode 100644
index 0000000..f627928
--- /dev/null
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundClearTitlesPacket.java
@@ -0,0 +1,30 @@
+package com.loohp.limbo.network.protocol.packets;
+
+import java.io.ByteArrayOutputStream;
+import java.io.DataOutputStream;
+import java.io.IOException;
+
+public class ClientboundClearTitlesPacket extends PacketOut {
+
+ private boolean reset;
+
+ public ClientboundClearTitlesPacket(boolean reset) {
+ this.reset = reset;
+ }
+
+ public boolean isReset() {
+ return reset;
+ }
+
+ @Override
+ public byte[] serializePacket() throws IOException {
+ ByteArrayOutputStream buffer = new ByteArrayOutputStream();
+
+ DataOutputStream output = new DataOutputStream(buffer);
+ output.writeByte(Packet.getPlayOut().get(getClass()));
+ output.writeBoolean(reset);
+
+ return buffer.toByteArray();
+ }
+
+}
diff --git a/src/main/java/com/loohp/limbo/server/packets/ClientboundLevelChunkWithLightPacket.java b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundLevelChunkWithLightPacket.java
similarity index 99%
rename from src/main/java/com/loohp/limbo/server/packets/ClientboundLevelChunkWithLightPacket.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundLevelChunkWithLightPacket.java
index 416c141..1d19730 100644
--- a/src/main/java/com/loohp/limbo/server/packets/ClientboundLevelChunkWithLightPacket.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundLevelChunkWithLightPacket.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSetTitleSubTitleText.java b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundSetSubtitleTextPacket.java
similarity index 52%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSetTitleSubTitleText.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundSetSubtitleTextPacket.java
index eed54b2..1312d86 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSetTitleSubTitleText.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundSetSubtitleTextPacket.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -7,17 +7,18 @@ import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
-public class PacketPlayOutSetTitleSubTitleText extends PacketOut {
- private BaseComponent[] subTitle;
+public class ClientboundSetSubtitleTextPacket extends PacketOut {
+
+ private Component subTitle;
- public PacketPlayOutSetTitleSubTitleText(BaseComponent[] subTitle) {
+ public ClientboundSetSubtitleTextPacket(Component subTitle) {
this.subTitle = subTitle;
}
- public BaseComponent[] getSubTitle() {
+ public Component getSubTitle() {
return subTitle;
}
@@ -27,7 +28,7 @@ public class PacketPlayOutSetTitleSubTitleText extends PacketOut {
DataOutputStream output = new DataOutputStream(buffer);
output.writeByte(Packet.getPlayOut().get(getClass()));
- DataTypeIO.writeString(output, ComponentSerializer.toString(subTitle), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize(subTitle), StandardCharsets.UTF_8);
return buffer.toByteArray();
}
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSetTitleText.java b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundSetTitleTextPacket.java
similarity index 53%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSetTitleText.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundSetTitleTextPacket.java
index a1f6c3d..8b2afba 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSetTitleText.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundSetTitleTextPacket.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -7,18 +7,18 @@ import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
-public class PacketPlayOutSetTitleText extends PacketOut {
+public class ClientboundSetTitleTextPacket extends PacketOut {
- private BaseComponent[] titleText;
+ private Component titleText;
- public PacketPlayOutSetTitleText(BaseComponent[] titleText) {
+ public ClientboundSetTitleTextPacket(Component titleText) {
this.titleText = titleText;
}
- public BaseComponent[] getTitle() {
+ public Component getTitle() {
return titleText;
}
@@ -28,7 +28,7 @@ public class PacketPlayOutSetTitleText extends PacketOut {
DataOutputStream output = new DataOutputStream(buffer);
output.writeByte(Packet.getPlayOut().get(getClass()));
- DataTypeIO.writeString(output, ComponentSerializer.toString(titleText), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize(titleText), StandardCharsets.UTF_8);
return buffer.toByteArray();
}
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSetTitleTimes.java b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundSetTitlesAnimationPacket.java
similarity index 63%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSetTitleTimes.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundSetTitlesAnimationPacket.java
index caf06d6..b87edf9 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSetTitleTimes.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/ClientboundSetTitlesAnimationPacket.java
@@ -1,30 +1,30 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
-public class PacketPlayOutSetTitleTimes extends PacketOut {
+public class ClientboundSetTitlesAnimationPacket extends PacketOut {
- private Integer fadeIn;
- private Integer stay;
- private Integer fadeOut;
+ private int fadeIn;
+ private int stay;
+ private int fadeOut;
- public PacketPlayOutSetTitleTimes(Integer fadeIn, Integer stay, Integer fadeOut) {
+ public ClientboundSetTitlesAnimationPacket(int fadeIn, int stay, int fadeOut) {
this.fadeIn = fadeIn;
this.stay = stay;
this.fadeOut = fadeOut;
}
- public Integer getFadeIn() {
+ public int getFadeIn() {
return fadeIn;
}
- public Integer getStay() {
+ public int getStay() {
return stay;
}
- public Integer getFadeOut() {
+ public int getFadeOut() {
return fadeOut;
}
diff --git a/src/main/java/com/loohp/limbo/server/packets/Packet.java b/src/main/java/com/loohp/limbo/network/protocol/packets/Packet.java
similarity index 97%
rename from src/main/java/com/loohp/limbo/server/packets/Packet.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/Packet.java
index cccf4fb..5366fc3 100644
--- a/src/main/java/com/loohp/limbo/server/packets/Packet.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/Packet.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.util.Map;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketHandshakingIn.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketHandshakingIn.java
similarity index 96%
rename from src/main/java/com/loohp/limbo/server/packets/PacketHandshakingIn.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketHandshakingIn.java
index 483517b..6119438 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketHandshakingIn.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketHandshakingIn.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketIn.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketIn.java
similarity index 50%
rename from src/main/java/com/loohp/limbo/server/packets/PacketIn.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketIn.java
index 3e19e4f..2af1e4c 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketIn.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketIn.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
public abstract class PacketIn extends Packet {
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketLoginInLoginStart.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginInLoginStart.java
similarity index 91%
rename from src/main/java/com/loohp/limbo/server/packets/PacketLoginInLoginStart.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginInLoginStart.java
index 684c738..0488c3c 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketLoginInLoginStart.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginInLoginStart.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketLoginInPluginMessaging.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginInPluginMessaging.java
similarity index 96%
rename from src/main/java/com/loohp/limbo/server/packets/PacketLoginInPluginMessaging.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginInPluginMessaging.java
index b94e599..5e89ddd 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketLoginInPluginMessaging.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginInPluginMessaging.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketLoginOutDisconnect.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginOutDisconnect.java
similarity index 60%
rename from src/main/java/com/loohp/limbo/server/packets/PacketLoginOutDisconnect.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginOutDisconnect.java
index 0c4ed12..a63add6 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketLoginOutDisconnect.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginOutDisconnect.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -7,18 +7,18 @@ import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketLoginOutDisconnect extends PacketOut {
- private BaseComponent[] reason;
+ private Component reason;
- public PacketLoginOutDisconnect(BaseComponent[] reason) {
+ public PacketLoginOutDisconnect(Component reason) {
this.reason = reason;
}
- public BaseComponent[] getReason() {
+ public Component getReason() {
return reason;
}
@@ -28,7 +28,7 @@ public class PacketLoginOutDisconnect extends PacketOut {
DataOutputStream output = new DataOutputStream(buffer);
output.writeByte(Packet.getLoginOut().get(getClass()));
- DataTypeIO.writeString(output, ComponentSerializer.toString(reason), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize(reason), StandardCharsets.UTF_8);
return buffer.toByteArray();
}
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketLoginOutLoginSuccess.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginOutLoginSuccess.java
similarity index 94%
rename from src/main/java/com/loohp/limbo/server/packets/PacketLoginOutLoginSuccess.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginOutLoginSuccess.java
index 12f5330..0c5ad89 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketLoginOutLoginSuccess.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginOutLoginSuccess.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketLoginOutPluginMessaging.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginOutPluginMessaging.java
similarity index 96%
rename from src/main/java/com/loohp/limbo/server/packets/PacketLoginOutPluginMessaging.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginOutPluginMessaging.java
index 65a2bb2..f4867a7 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketLoginOutPluginMessaging.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketLoginOutPluginMessaging.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketOut.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketOut.java
similarity index 74%
rename from src/main/java/com/loohp/limbo/server/packets/PacketOut.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketOut.java
index 77bd0f0..ded4646 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketOut.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketOut.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInChat.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInChat.java
similarity index 90%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayInChat.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInChat.java
index d14bae6..016b5ea 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInChat.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInChat.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInHeldItemChange.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInHeldItemChange.java
similarity index 89%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayInHeldItemChange.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInHeldItemChange.java
index a8ad08a..6c62bd8 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInHeldItemChange.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInHeldItemChange.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInKeepAlive.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInKeepAlive.java
similarity index 88%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayInKeepAlive.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInKeepAlive.java
index 9995c51..e01e3da 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInKeepAlive.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInKeepAlive.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInPluginMessaging.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInPluginMessaging.java
similarity index 95%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayInPluginMessaging.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInPluginMessaging.java
index 5d5de1b..ffd4758 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInPluginMessaging.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInPluginMessaging.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInPosition.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInPosition.java
similarity index 93%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayInPosition.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInPosition.java
index 05f8702..35fe47f 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInPosition.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInPosition.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInPositionAndLook.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInPositionAndLook.java
similarity index 94%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayInPositionAndLook.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInPositionAndLook.java
index 36ad969..3b7ff32 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInPositionAndLook.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInPositionAndLook.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInResourcePackStatus.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInResourcePackStatus.java
similarity index 95%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayInResourcePackStatus.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInResourcePackStatus.java
index 1e5b9d4..6c68ac5 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInResourcePackStatus.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInResourcePackStatus.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInRotation.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInRotation.java
similarity index 92%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayInRotation.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInRotation.java
index 79b4d4e..826f465 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInRotation.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInRotation.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInTabComplete.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInTabComplete.java
similarity index 92%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayInTabComplete.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInTabComplete.java
index d64aa79..b62643f 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayInTabComplete.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayInTabComplete.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutChat.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutChat.java
similarity index 67%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutChat.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutChat.java
index f7062b7..613925b 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutChat.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutChat.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -8,22 +8,22 @@ import java.util.UUID;
import com.loohp.limbo.utils.DataTypeIO;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutChat extends PacketOut {
- private BaseComponent[] message;
+ private Component message;
private int position;
private UUID sender;
- public PacketPlayOutChat(BaseComponent[] message, int position, UUID sender) {
+ public PacketPlayOutChat(Component message, int position, UUID sender) {
this.message = message;
this.position = position;
this.sender = sender;
}
- public BaseComponent[] getMessage() {
+ public Component getMessage() {
return message;
}
@@ -41,7 +41,7 @@ public class PacketPlayOutChat extends PacketOut {
DataOutputStream output = new DataOutputStream(buffer);
output.writeByte(Packet.getPlayOut().get(getClass()));
- DataTypeIO.writeString(output, ComponentSerializer.toString(message), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize(message), StandardCharsets.UTF_8);
output.writeByte(position);
DataTypeIO.writeUUID(output, sender);
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutDeclareCommands.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutDeclareCommands.java
similarity index 92%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutDeclareCommands.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutDeclareCommands.java
index 9d2c287..2bafc8b 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutDeclareCommands.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutDeclareCommands.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutDisconnect.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutDisconnect.java
similarity index 60%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutDisconnect.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutDisconnect.java
index 875d241..6c4ed16 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutDisconnect.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutDisconnect.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -7,18 +7,18 @@ import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutDisconnect extends PacketOut {
- private BaseComponent[] reason;
+ private Component reason;
- public PacketPlayOutDisconnect(BaseComponent[] reason) {
+ public PacketPlayOutDisconnect(Component reason) {
this.reason = reason;
}
- public BaseComponent[] getReason() {
+ public Component getReason() {
return reason;
}
@@ -28,7 +28,7 @@ public class PacketPlayOutDisconnect extends PacketOut {
DataOutputStream output = new DataOutputStream(buffer);
output.writeByte(Packet.getPlayOut().get(getClass()));
- DataTypeIO.writeString(output, ComponentSerializer.toString(reason), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize(reason), StandardCharsets.UTF_8);
return buffer.toByteArray();
}
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutEntityDestroy.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutEntityDestroy.java
similarity index 94%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutEntityDestroy.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutEntityDestroy.java
index 38ffe06..d5823ae 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutEntityDestroy.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutEntityDestroy.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutEntityMetadata.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutEntityMetadata.java
similarity index 93%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutEntityMetadata.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutEntityMetadata.java
index 1ab894f..bd02028 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutEntityMetadata.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutEntityMetadata.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -21,7 +21,8 @@ import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.Rotation3f;
import com.loohp.limbo.world.BlockPosition;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutEntityMetadata extends PacketOut {
@@ -110,7 +111,7 @@ public class PacketPlayOutEntityMetadata extends PacketOut {
output.writeByte((byte) watch.getValue());
break;
case CHAT:
- DataTypeIO.writeString(output, ComponentSerializer.toString(watch.getValue()), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize((Component) watch.getValue()), StandardCharsets.UTF_8);
break;
//case DIRECTION:
// break;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutGameState.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutGameState.java
similarity index 93%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutGameState.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutGameState.java
index bcc68f6..f623345 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutGameState.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutGameState.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutHeldItemChange.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutHeldItemChange.java
similarity index 93%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutHeldItemChange.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutHeldItemChange.java
index b614925..8519f28 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutHeldItemChange.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutHeldItemChange.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutKeepAlive.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutKeepAlive.java
similarity index 92%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutKeepAlive.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutKeepAlive.java
index a8f9341..bd28465 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutKeepAlive.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutKeepAlive.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutLogin.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutLogin.java
similarity index 98%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutLogin.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutLogin.java
index 3a26c75..14e1f10 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutLogin.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutLogin.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPlayerAbilities.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPlayerAbilities.java
similarity index 96%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPlayerAbilities.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPlayerAbilities.java
index db9f172..f30a4d0 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPlayerAbilities.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPlayerAbilities.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPlayerInfo.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPlayerInfo.java
similarity index 96%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPlayerInfo.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPlayerInfo.java
index 58d8c95..8d462fd 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPlayerInfo.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPlayerInfo.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -7,7 +7,7 @@ import java.nio.charset.StandardCharsets;
import java.util.Optional;
import java.util.UUID;
-import com.loohp.limbo.server.packets.PacketPlayOutPlayerInfo.PlayerInfoData.PlayerInfoDataAddPlayer;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerInfo.PlayerInfoData.PlayerInfoDataAddPlayer;
import com.loohp.limbo.utils.DataTypeIO;
import com.loohp.limbo.utils.GameMode;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPlayerListHeaderFooter.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPlayerListHeaderFooter.java
similarity index 52%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPlayerListHeaderFooter.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPlayerListHeaderFooter.java
index c69c383..3b5cfa3 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPlayerListHeaderFooter.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPlayerListHeaderFooter.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -7,24 +7,24 @@ import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutPlayerListHeaderFooter extends PacketOut{
- private BaseComponent[] header;
- private BaseComponent[] footer;
+ private Component header;
+ private Component footer;
- public PacketPlayOutPlayerListHeaderFooter(BaseComponent[] header, BaseComponent[] footer) {
+ public PacketPlayOutPlayerListHeaderFooter(Component header, Component footer) {
this.header = header;
this.footer = footer;
}
- public BaseComponent[] getHeader() {
+ public Component getHeader() {
return header;
}
- public BaseComponent[] getFooter() {
+ public Component getFooter() {
return footer;
}
@@ -35,8 +35,8 @@ public class PacketPlayOutPlayerListHeaderFooter extends PacketOut{
DataOutputStream output = new DataOutputStream(buffer);
output.writeByte(Packet.getPlayOut().get(getClass()));
- DataTypeIO.writeString(output, ComponentSerializer.toString(header), StandardCharsets.UTF_8);
- DataTypeIO.writeString(output, ComponentSerializer.toString(footer), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize(header), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize(footer), StandardCharsets.UTF_8);
return buffer.toByteArray();
}
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPluginMessaging.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPluginMessaging.java
similarity index 95%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPluginMessaging.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPluginMessaging.java
index b35ee6f..c861a86 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPluginMessaging.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPluginMessaging.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPositionAndLook.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPositionAndLook.java
similarity index 97%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPositionAndLook.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPositionAndLook.java
index 17b83e0..568c265 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutPositionAndLook.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutPositionAndLook.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutResourcePackSend.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutResourcePackSend.java
similarity index 80%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutResourcePackSend.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutResourcePackSend.java
index 2da6c0e..b0002ad 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutResourcePackSend.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutResourcePackSend.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -7,8 +7,8 @@ import java.nio.charset.StandardCharsets;
import com.loohp.limbo.utils.DataTypeIO;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutResourcePackSend extends PacketOut {
@@ -18,9 +18,9 @@ public class PacketPlayOutResourcePackSend extends PacketOut {
private String hash;
private boolean isForced;
private boolean hasPromptMessage;
- private BaseComponent[] promptMessage;
+ private Component promptMessage;
- public PacketPlayOutResourcePackSend(String url, String hash, boolean isForced, boolean hasPromptMessage, BaseComponent[] promptMessage) {
+ public PacketPlayOutResourcePackSend(String url, String hash, boolean isForced, boolean hasPromptMessage, Component promptMessage) {
if (hash.length() > MAX_HASH_LENGTH) {
throw new IllegalArgumentException("Hash is too long (max " + MAX_HASH_LENGTH + ", was " + hash.length() + ")");
}
@@ -50,7 +50,7 @@ public class PacketPlayOutResourcePackSend extends PacketOut {
return hasPromptMessage;
}
- public BaseComponent[] getPromptMessage() {
+ public Component getPromptMessage() {
return promptMessage;
}
@@ -65,7 +65,7 @@ public class PacketPlayOutResourcePackSend extends PacketOut {
output.writeBoolean(isForced);
output.writeBoolean(hasPromptMessage);
if (hasPromptMessage) {
- DataTypeIO.writeString(output, ComponentSerializer.toString(promptMessage), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize(promptMessage), StandardCharsets.UTF_8);
}
return buffer.toByteArray();
}
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutRespawn.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutRespawn.java
similarity index 98%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutRespawn.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutRespawn.java
index 2cbf57f..1a3ea7d 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutRespawn.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutRespawn.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSpawnEntity.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutSpawnEntity.java
similarity index 97%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSpawnEntity.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutSpawnEntity.java
index 209f848..2d68e68 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSpawnEntity.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutSpawnEntity.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSpawnEntityLiving.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutSpawnEntityLiving.java
similarity index 98%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSpawnEntityLiving.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutSpawnEntityLiving.java
index 687c7bd..59309a8 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSpawnEntityLiving.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutSpawnEntityLiving.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSpawnPosition.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutSpawnPosition.java
similarity index 94%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSpawnPosition.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutSpawnPosition.java
index 6f0ac43..9f9ecbc 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutSpawnPosition.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutSpawnPosition.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutTabComplete.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutTabComplete.java
similarity index 73%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutTabComplete.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutTabComplete.java
index 990f46a..7a2b613 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutTabComplete.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutTabComplete.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
@@ -8,8 +8,8 @@ import java.util.Optional;
import com.loohp.limbo.utils.DataTypeIO;
-import net.md_5.bungee.api.chat.BaseComponent;
-import net.md_5.bungee.chat.ComponentSerializer;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
public class PacketPlayOutTabComplete extends PacketOut {
@@ -56,7 +56,7 @@ public class PacketPlayOutTabComplete extends PacketOut {
DataTypeIO.writeString(output, match.getMatch(), StandardCharsets.UTF_8);
if (match.getTooltip().isPresent()) {
output.writeBoolean(true);
- DataTypeIO.writeString(output, ComponentSerializer.toString(match.getTooltip().get()), StandardCharsets.UTF_8);
+ DataTypeIO.writeString(output, GsonComponentSerializer.gson().serialize(match.getTooltip().get()), StandardCharsets.UTF_8);
} else {
output.writeBoolean(false);
}
@@ -68,18 +68,23 @@ public class PacketPlayOutTabComplete extends PacketOut {
public static class TabCompleteMatches {
private String match;
- private Optional tooltip;
-
- public TabCompleteMatches(String match, BaseComponent... tooltip) {
+ private Optional tooltip;
+
+ public TabCompleteMatches(String match) {
this.match = match;
- this.tooltip = tooltip.length > 0 ? Optional.of(tooltip) : Optional.empty();
+ this.tooltip = Optional.empty();
+ }
+
+ public TabCompleteMatches(String match, Component tooltip) {
+ this.match = match;
+ this.tooltip = Optional.ofNullable(tooltip);
}
public String getMatch() {
return match;
}
- public Optional getTooltip() {
+ public Optional getTooltip() {
return tooltip;
}
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutUnloadChunk.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutUnloadChunk.java
similarity index 93%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutUnloadChunk.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutUnloadChunk.java
index ed105ef..a382858 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutUnloadChunk.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutUnloadChunk.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutUpdateViewPosition.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutUpdateViewPosition.java
similarity index 94%
rename from src/main/java/com/loohp/limbo/server/packets/PacketPlayOutUpdateViewPosition.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutUpdateViewPosition.java
index 8652c09..92dd7cf 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketPlayOutUpdateViewPosition.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketPlayOutUpdateViewPosition.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketStatusInPing.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusInPing.java
similarity index 87%
rename from src/main/java/com/loohp/limbo/server/packets/PacketStatusInPing.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusInPing.java
index df53ebd..a8119cf 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketStatusInPing.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusInPing.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
import java.io.IOException;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketStatusInRequest.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusInRequest.java
similarity index 80%
rename from src/main/java/com/loohp/limbo/server/packets/PacketStatusInRequest.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusInRequest.java
index 2d195f8..c2b822f 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketStatusInRequest.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusInRequest.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.DataInputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketStatusOutPong.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusOutPong.java
similarity index 92%
rename from src/main/java/com/loohp/limbo/server/packets/PacketStatusOutPong.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusOutPong.java
index ebf85d8..3ea1695 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketStatusOutPong.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusOutPong.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/server/packets/PacketStatusOutResponse.java b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusOutResponse.java
similarity index 93%
rename from src/main/java/com/loohp/limbo/server/packets/PacketStatusOutResponse.java
rename to src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusOutResponse.java
index 695c333..1ad0ebe 100644
--- a/src/main/java/com/loohp/limbo/server/packets/PacketStatusOutResponse.java
+++ b/src/main/java/com/loohp/limbo/network/protocol/packets/PacketStatusOutResponse.java
@@ -1,4 +1,4 @@
-package com.loohp.limbo.server.packets;
+package com.loohp.limbo.network.protocol.packets;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
diff --git a/src/main/java/com/loohp/limbo/player/Player.java b/src/main/java/com/loohp/limbo/player/Player.java
index 7c6ff4d..ecb9d1d 100644
--- a/src/main/java/com/loohp/limbo/player/Player.java
+++ b/src/main/java/com/loohp/limbo/player/Player.java
@@ -1,6 +1,7 @@
package com.loohp.limbo.player;
import java.io.IOException;
+import java.time.Duration;
import java.util.UUID;
import com.loohp.limbo.Limbo;
@@ -13,19 +14,33 @@ import com.loohp.limbo.entity.LivingEntity;
import com.loohp.limbo.events.player.PlayerChatEvent;
import com.loohp.limbo.events.player.PlayerTeleportEvent;
import com.loohp.limbo.location.Location;
-import com.loohp.limbo.server.ClientConnection;
-import com.loohp.limbo.server.packets.PacketPlayOutChat;
-import com.loohp.limbo.server.packets.PacketPlayOutGameState;
-import com.loohp.limbo.server.packets.PacketPlayOutHeldItemChange;
-import com.loohp.limbo.server.packets.PacketPlayOutPlayerListHeaderFooter;
-import com.loohp.limbo.server.packets.PacketPlayOutPositionAndLook;
-import com.loohp.limbo.server.packets.PacketPlayOutResourcePackSend;
-import com.loohp.limbo.server.packets.PacketPlayOutRespawn;
-import com.loohp.limbo.server.packets.PacketPlayOutSetTitleSubTitleText;
-import com.loohp.limbo.server.packets.PacketPlayOutSetTitleText;
-import com.loohp.limbo.server.packets.PacketPlayOutSetTitleTimes;
+import com.loohp.limbo.network.ClientConnection;
+import com.loohp.limbo.network.protocol.packets.ClientboundClearTitlesPacket;
+import com.loohp.limbo.network.protocol.packets.ClientboundSetSubtitleTextPacket;
+import com.loohp.limbo.network.protocol.packets.ClientboundSetTitleTextPacket;
+import com.loohp.limbo.network.protocol.packets.ClientboundSetTitlesAnimationPacket;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutChat;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutGameState;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutHeldItemChange;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPlayerListHeaderFooter;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPositionAndLook;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutResourcePackSend;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutRespawn;
+import com.loohp.limbo.utils.BungeecordAdventureConversionUtils;
import com.loohp.limbo.utils.GameMode;
+import net.kyori.adventure.audience.MessageType;
+import net.kyori.adventure.bossbar.BossBar;
+import net.kyori.adventure.identity.Identity;
+import net.kyori.adventure.inventory.Book;
+import net.kyori.adventure.sound.Sound;
+import net.kyori.adventure.sound.Sound.Emitter;
+import net.kyori.adventure.sound.SoundStop;
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
+import net.kyori.adventure.title.Title;
+import net.kyori.adventure.title.Title.Times;
+import net.kyori.adventure.title.TitlePart;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent;
@@ -34,7 +49,6 @@ import net.md_5.bungee.api.chat.TranslatableComponent;
public class Player extends LivingEntity implements CommandSender {
public static final String CHAT_DEFAULT_FORMAT = "<%name%> %message%";
- public static final BaseComponent[] EMPTY_CHAT_COMPONENT = new BaseComponent[] {new TextComponent("")};
public final ClientConnection clientConnection;
public final PlayerInteractManager playerInteractManager;
@@ -202,51 +216,55 @@ public class Player extends LivingEntity implements CommandSender {
}
public void sendMessage(String message, UUID uuid) {
- sendMessage(new TextComponent(message), uuid);
+ sendMessage(Identity.identity(uuid), LegacyComponentSerializer.legacySection().deserialize(message));
}
+ @Deprecated
public void sendMessage(BaseComponent component, UUID uuid) {
sendMessage(new BaseComponent[] {component}, uuid);
}
+ @Deprecated
@Override
public void sendMessage(BaseComponent[] component, UUID uuid) {
- try {
- PacketPlayOutChat chat = new PacketPlayOutChat(component, 0, uuid);
- clientConnection.sendPacket(chat);
- } catch (IOException e) {}
+ sendMessage(Identity.identity(uuid), BungeecordAdventureConversionUtils.toComponent(component));
}
public void sendMessage(String message) {
- sendMessage(new TextComponent(message));
+ sendMessage(LegacyComponentSerializer.legacySection().deserialize(message));
}
+ @Deprecated
public void sendMessage(BaseComponent component) {
sendMessage(new BaseComponent[] {component});
}
+ @Deprecated
@Override
public void sendMessage(BaseComponent[] component) {
- try {
- PacketPlayOutChat chat = new PacketPlayOutChat(component, 0, new UUID(0, 0));
- clientConnection.sendPacket(chat);
- } catch (IOException e) {}
+ sendMessage(BungeecordAdventureConversionUtils.toComponent(component));
}
public void disconnect() {
- disconnect(new TranslatableComponent("multiplayer.disconnect.kicked"));
+ disconnect(Component.translatable("multiplayer.disconnect.kicked"));
}
public void disconnect(String reason) {
- disconnect(new TextComponent(reason));
+ disconnect(LegacyComponentSerializer.legacySection().deserialize(reason));
}
+ public void disconnect(Component reason) {
+ clientConnection.disconnect(reason);
+ }
+
+ @Deprecated
public void disconnect(BaseComponent reason) {
disconnect(new BaseComponent[] {reason});
}
+ @Deprecated
public void disconnect(BaseComponent[] reason) {
- clientConnection.disconnect(reason);
+ disconnect(BungeecordAdventureConversionUtils.toComponent(reason));
}
public void chat(String message) {
@@ -281,11 +299,17 @@ public class Player extends LivingEntity implements CommandSender {
setResourcePack(url, hash, forced, (BaseComponent[]) null);
}
+ @Deprecated
public void setResourcePack(String url, String hash, boolean forced, BaseComponent promptmessage) {
- setResourcePack(url, hash, forced, new BaseComponent[] {promptmessage});
+ setResourcePack(url, hash, forced, promptmessage == null ? null : new BaseComponent[] {promptmessage});
}
+ @Deprecated
public void setResourcePack(String url, String hash, boolean forced, BaseComponent[] promptmessage) {
+ setResourcePack(url, hash, forced, promptmessage == null ? null : BungeecordAdventureConversionUtils.toComponent(promptmessage));
+ }
+
+ public void setResourcePack(String url, String hash, boolean forced, Component promptmessage) {
try {
PacketPlayOutResourcePackSend packsend = new PacketPlayOutResourcePackSend(url, hash, forced, promptmessage != null, promptmessage);
clientConnection.sendPacket(packsend);
@@ -294,78 +318,175 @@ public class Player extends LivingEntity implements CommandSender {
}
}
+ @Deprecated
public void setPlayerListHeaderFooter(BaseComponent[] header, BaseComponent[] footer) {
+ sendPlayerListHeaderAndFooter(header == null ? Component.empty() : BungeecordAdventureConversionUtils.toComponent(header), footer == null ? Component.empty() : BungeecordAdventureConversionUtils.toComponent(footer));
+ }
+
+ @Deprecated
+ public void setPlayerListHeaderFooter(BaseComponent header, BaseComponent footer) {
+ sendPlayerListHeaderAndFooter(header == null ? Component.empty() : BungeecordAdventureConversionUtils.toComponent(header), footer == null ? Component.empty() : BungeecordAdventureConversionUtils.toComponent(footer));
+ }
+
+ public void setPlayerListHeaderFooter(String header, String footer) {
+ sendPlayerListHeaderAndFooter(header == null ? Component.empty() : LegacyComponentSerializer.legacySection().deserialize(header), footer == null ? Component.empty() : LegacyComponentSerializer.legacySection().deserialize(footer));
+ }
+
+ @Deprecated
+ public void setTitle(BaseComponent[] title) {
+ sendTitlePart(TitlePart.TITLE, BungeecordAdventureConversionUtils.toComponent(title));
+ }
+
+ @Deprecated
+ public void setTitle(BaseComponent title) {
+ sendTitlePart(TitlePart.TITLE, BungeecordAdventureConversionUtils.toComponent(title));
+ }
+
+ public void setTitle(String title) {
+ sendTitlePart(TitlePart.TITLE, LegacyComponentSerializer.legacySection().deserialize(title));
+ }
+
+ @Deprecated
+ public void setSubTitle(BaseComponent[] subTitle) {
+ sendTitlePart(TitlePart.SUBTITLE, BungeecordAdventureConversionUtils.toComponent(subTitle));
+ }
+
+ @Deprecated
+ public void setSubTitle(BaseComponent subTitle) {
+ sendTitlePart(TitlePart.SUBTITLE, BungeecordAdventureConversionUtils.toComponent(subTitle));
+ }
+
+ public void setSubTitle(String subTitle) {
+ sendTitlePart(TitlePart.SUBTITLE, LegacyComponentSerializer.legacySection().deserialize(subTitle));
+ }
+
+ public void setTitleTimer(int fadeIn, int stay, int fadeOut) {
+ sendTitlePart(TitlePart.TIMES, Title.Times.of(Duration.ofMillis(fadeIn * 50), Duration.ofMillis(stay * 50), Duration.ofMillis(fadeOut * 50)));
+ }
+
+ @Deprecated
+ public void setTitleSubTitle(BaseComponent[] title, BaseComponent[] subTitle, int fadeIn, int stay, int fadeOut) {
+ setTitleTimer(fadeIn, stay, fadeOut);
+ setTitle(title);
+ setSubTitle(subTitle);
+ }
+
+ @Deprecated
+ public void setTitleSubTitle(BaseComponent title, BaseComponent subTitle, int fadeIn, int stay, int fadeOut) {
+ setTitleSubTitle(new BaseComponent[] {title}, new BaseComponent[] {subTitle}, fadeIn, stay, fadeOut);
+ }
+
+ @Deprecated
+ public void setTitleSubTitle(String title, String subTitle, int fadeIn, int stay, int fadeOut) {
+ setTitleSubTitle(new BaseComponent[] {new TextComponent(title)}, new BaseComponent[] {new TextComponent(subTitle)}, fadeIn, stay, fadeOut);
+ }
+
+ @Override
+ public void sendMessage(Identity source, Component message, MessageType type) {
try {
- PacketPlayOutPlayerListHeaderFooter packsend = new PacketPlayOutPlayerListHeaderFooter(header == null ? EMPTY_CHAT_COMPONENT : header, footer == null ? EMPTY_CHAT_COMPONENT : footer);
+ PacketPlayOutChat chat = new PacketPlayOutChat(message, 0, uuid);
+ clientConnection.sendPacket(chat);
+ } catch (IOException e) {}
+ }
+
+ @Override
+ public void openBook(Book book) {
+ throw new UnsupportedOperationException("This function has not been implemented yet.");
+ }
+
+ @Override
+ public void stopSound(SoundStop stop) {
+ throw new UnsupportedOperationException("This function has not been implemented yet.");
+ }
+
+ @Override
+ public void playSound(Sound sound, Emitter emitter) {
+ throw new UnsupportedOperationException("This function has not been implemented yet.");
+ }
+
+ @Override
+ public void playSound(Sound sound, double x, double y, double z) {
+ throw new UnsupportedOperationException("This function has not been implemented yet.");
+ }
+
+ @Override
+ public void playSound(Sound sound) {
+ throw new UnsupportedOperationException("This function has not been implemented yet.");
+ }
+
+ @Override
+ public void sendActionBar(Component message) {
+ try {
+ PacketPlayOutChat chat = new PacketPlayOutChat(message, 2, new UUID(0, 0));
+ clientConnection.sendPacket(chat);
+ } catch (IOException e) {}
+ }
+
+ @Override
+ public void sendPlayerListHeaderAndFooter(Component header, Component footer) {
+ try {
+ PacketPlayOutPlayerListHeaderFooter packsend = new PacketPlayOutPlayerListHeaderFooter(header, footer);
clientConnection.sendPacket(packsend);
} catch (IOException e) {
e.printStackTrace();
}
}
- public void setPlayerListHeaderFooter(BaseComponent header, BaseComponent footer) {
- setPlayerListHeaderFooter(header == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {header}, footer == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {footer});
+ @Override
+ public void sendTitlePart(TitlePart part, T value) {
+ if (part.equals(TitlePart.TITLE)) {
+ try {
+ ClientboundSetTitleTextPacket setTitle = new ClientboundSetTitleTextPacket((Component) value);
+ clientConnection.sendPacket(setTitle);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else if (part.equals(TitlePart.SUBTITLE)) {
+ try {
+ ClientboundSetSubtitleTextPacket setSubTitle = new ClientboundSetSubtitleTextPacket((Component) value);
+ clientConnection.sendPacket(setSubTitle);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else if (part.equals(TitlePart.TIMES)) {
+ try {
+ Title.Times times = (Times) value;
+ ClientboundSetTitlesAnimationPacket setSubTitle = new ClientboundSetTitlesAnimationPacket((int) (times.fadeIn().toMillis() / 50), (int) (times.stay().toMillis() / 50), (int) (times.fadeOut().toMillis() / 50));
+ clientConnection.sendPacket(setSubTitle);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
}
-
- public void setPlayerListHeaderFooter(String header, String footer) {
- setPlayerListHeaderFooter(header == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {new TextComponent(header)}, footer == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {new TextComponent(footer)});
- }
-
- public void setTitle(BaseComponent[] title) {
+
+ @Override
+ public void clearTitle() {
try {
- PacketPlayOutSetTitleText setTitle = new PacketPlayOutSetTitleText(title == null ? EMPTY_CHAT_COMPONENT : title);
- clientConnection.sendPacket(setTitle);
+ ClientboundClearTitlesPacket clearTitle = new ClientboundClearTitlesPacket(false);
+ clientConnection.sendPacket(clearTitle);
} catch (IOException e) {
e.printStackTrace();
}
}
-
- public void setTitle(BaseComponent title) {
- setTitle(title == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {title});
- }
-
- public void setTitle(String title) {
- setTitle(title == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {new TextComponent(title)});
- }
-
- public void setSubTitle(BaseComponent[] subTitle) {
+
+ @Override
+ public void resetTitle() {
try {
- PacketPlayOutSetTitleSubTitleText setSubTitle = new PacketPlayOutSetTitleSubTitleText(subTitle == null ? EMPTY_CHAT_COMPONENT : subTitle);
- clientConnection.sendPacket(setSubTitle);
+ ClientboundClearTitlesPacket clearTitle = new ClientboundClearTitlesPacket(true);
+ clientConnection.sendPacket(clearTitle);
} catch (IOException e) {
e.printStackTrace();
}
}
-
- public void setSubTitle(BaseComponent subTitle) {
- setSubTitle(subTitle == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {subTitle});
+
+ @Override
+ public void showBossBar(BossBar bar) {
+ throw new UnsupportedOperationException("This function has not been implemented yet.");
}
-
- public void setSubTitle(String subTitle) {
- setSubTitle(subTitle == null ? EMPTY_CHAT_COMPONENT : new BaseComponent[] {new TextComponent(subTitle)});
- }
-
- public void setTitleTimer(Integer fadeIn, Integer stay, Integer fadeOut) {
- try {
- PacketPlayOutSetTitleTimes setTitleTimes = new PacketPlayOutSetTitleTimes(fadeIn, stay, fadeOut);
- clientConnection.sendPacket(setTitleTimes);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- public void setTitleSubTitle(BaseComponent[] title, BaseComponent[] subTitle, Integer fadeIn, Integer stay, Integer fadeOut) {
- setTitleTimer(fadeIn, stay, fadeOut);
- setTitle(title);
- setSubTitle(subTitle);
- }
-
- public void setTitleSubTitle(BaseComponent title, BaseComponent subTitle, Integer fadeIn, Integer stay, Integer fadeOut) {
- setTitleSubTitle(new BaseComponent[] {title}, new BaseComponent[] {subTitle}, fadeIn, stay, fadeOut);
- }
-
- public void setTitleSubTitle(String title, String subTitle, Integer fadeIn, Integer stay, Integer fadeOut) {
- setTitleSubTitle(new BaseComponent[] {new TextComponent(title)}, new BaseComponent[] {new TextComponent(subTitle)}, fadeIn, stay, fadeOut);
+
+ @Override
+ public void hideBossBar(BossBar bar) {
+ throw new UnsupportedOperationException("This function has not been implemented yet.");
}
}
diff --git a/src/main/java/com/loohp/limbo/player/PlayerInteractManager.java b/src/main/java/com/loohp/limbo/player/PlayerInteractManager.java
index 2134269..17d81a5 100644
--- a/src/main/java/com/loohp/limbo/player/PlayerInteractManager.java
+++ b/src/main/java/com/loohp/limbo/player/PlayerInteractManager.java
@@ -13,12 +13,12 @@ import java.util.stream.Collectors;
import com.loohp.limbo.Limbo;
import com.loohp.limbo.entity.Entity;
import com.loohp.limbo.location.Location;
-import com.loohp.limbo.server.packets.ClientboundLevelChunkWithLightPacket;
-import com.loohp.limbo.server.packets.PacketPlayOutEntityDestroy;
-import com.loohp.limbo.server.packets.PacketPlayOutEntityMetadata;
-import com.loohp.limbo.server.packets.PacketPlayOutSpawnEntity;
-import com.loohp.limbo.server.packets.PacketPlayOutSpawnEntityLiving;
-import com.loohp.limbo.server.packets.PacketPlayOutUnloadChunk;
+import com.loohp.limbo.network.protocol.packets.ClientboundLevelChunkWithLightPacket;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutEntityDestroy;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutEntityMetadata;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutSpawnEntity;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutSpawnEntityLiving;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutUnloadChunk;
import com.loohp.limbo.world.ChunkPosition;
import com.loohp.limbo.world.World;
diff --git a/src/main/java/com/loohp/limbo/utils/BungeeLoginMessageUtils.java b/src/main/java/com/loohp/limbo/utils/BungeeLoginMessageUtils.java
index 97d66bc..4af1207 100644
--- a/src/main/java/com/loohp/limbo/utils/BungeeLoginMessageUtils.java
+++ b/src/main/java/com/loohp/limbo/utils/BungeeLoginMessageUtils.java
@@ -9,7 +9,7 @@ import java.util.UUID;
import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;
import com.google.common.io.ByteStreams;
-import com.loohp.limbo.server.packets.PacketPlayOutPluginMessaging;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutPluginMessaging;
public class BungeeLoginMessageUtils {
diff --git a/src/main/java/com/loohp/limbo/utils/BungeecordAdventureConversionUtils.java b/src/main/java/com/loohp/limbo/utils/BungeecordAdventureConversionUtils.java
new file mode 100644
index 0000000..58af596
--- /dev/null
+++ b/src/main/java/com/loohp/limbo/utils/BungeecordAdventureConversionUtils.java
@@ -0,0 +1,18 @@
+package com.loohp.limbo.utils;
+
+import net.kyori.adventure.text.Component;
+import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
+import net.md_5.bungee.api.chat.BaseComponent;
+import net.md_5.bungee.chat.ComponentSerializer;
+
+public class BungeecordAdventureConversionUtils {
+
+ public static Component toComponent(BaseComponent... components) {
+ return GsonComponentSerializer.gson().deserialize(ComponentSerializer.toString(components));
+ }
+
+ public static BaseComponent[] toComponent(Component component) {
+ return ComponentSerializer.parse(GsonComponentSerializer.gson().serialize(component));
+ }
+
+}
diff --git a/src/main/java/com/loohp/limbo/utils/DeclareCommands.java b/src/main/java/com/loohp/limbo/utils/DeclareCommands.java
index 76005cd..11143c9 100644
--- a/src/main/java/com/loohp/limbo/utils/DeclareCommands.java
+++ b/src/main/java/com/loohp/limbo/utils/DeclareCommands.java
@@ -8,7 +8,7 @@ import java.util.List;
import com.loohp.limbo.Limbo;
import com.loohp.limbo.commands.CommandSender;
-import com.loohp.limbo.server.packets.PacketPlayOutDeclareCommands;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutDeclareCommands;
public class DeclareCommands {
diff --git a/src/main/java/com/loohp/limbo/world/World.java b/src/main/java/com/loohp/limbo/world/World.java
index f9fe639..50864c0 100644
--- a/src/main/java/com/loohp/limbo/world/World.java
+++ b/src/main/java/com/loohp/limbo/world/World.java
@@ -17,9 +17,9 @@ import com.loohp.limbo.entity.DataWatcher.WatchableObject;
import com.loohp.limbo.entity.Entity;
import com.loohp.limbo.entity.EntityType;
import com.loohp.limbo.location.Location;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutEntityDestroy;
+import com.loohp.limbo.network.protocol.packets.PacketPlayOutEntityMetadata;
import com.loohp.limbo.player.Player;
-import com.loohp.limbo.server.packets.PacketPlayOutEntityDestroy;
-import com.loohp.limbo.server.packets.PacketPlayOutEntityMetadata;
import com.loohp.limbo.utils.SchematicConvertionUtils;
import net.querz.mca.Chunk;
diff --git a/src/main/resources/mapping.json b/src/main/resources/mapping.json
index 5bbf2b6..a69d8d6 100644
--- a/src/main/resources/mapping.json
+++ b/src/main/resources/mapping.json
@@ -46,9 +46,10 @@
"PacketPlayOutHeldItemChange": "0x48",
"PacketPlayOutPlayerListHeaderFooter": "0x5F",
"PacketPlayOutResourcePackSend": "0x3C",
- "PacketPlayOutSetTitleTimes": "0x5B",
- "PacketPlayOutSetTitleText": "0x5A",
- "PacketPlayOutSetTitleSubTitleText": "0x58"
+ "ClientboundSetTitlesAnimationPacket": "0x5B",
+ "ClientboundSetTitleTextPacket": "0x5A",
+ "ClientboundSetTitleTextPacket": "0x58",
+ "ClientboundClearTitlesPacket": "0x10"
},
"StatusIn": {
"0x01": "PacketStatusInPing",