diff --git a/pom.xml b/pom.xml
index e9d46d6..bd395f3 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,7 @@
com.loohp
Limbo
Limbo
- 0.6.12-ALPHA
+ 0.6.13-ALPHA
Standalone Limbo Minecraft Server.
https://github.com/LOOHP/Limbo
diff --git a/src/main/java/com/loohp/limbo/Limbo.java b/src/main/java/com/loohp/limbo/Limbo.java
index 7d45a90..78e5559 100644
--- a/src/main/java/com/loohp/limbo/Limbo.java
+++ b/src/main/java/com/loohp/limbo/Limbo.java
@@ -87,7 +87,9 @@ import net.querz.nbt.io.NBTUtil;
import net.querz.nbt.tag.CompoundTag;
public class Limbo {
-
+
+ public static final String LIMBO_BRAND = "Limbo";
+
private static Limbo instance;
public static boolean noGui = false;
diff --git a/src/main/java/com/loohp/limbo/file/ServerProperties.java b/src/main/java/com/loohp/limbo/file/ServerProperties.java
index 492b279..b4c0729 100644
--- a/src/main/java/com/loohp/limbo/file/ServerProperties.java
+++ b/src/main/java/com/loohp/limbo/file/ServerProperties.java
@@ -80,7 +80,7 @@ public class ServerProperties {
private Component tabHeader;
private Component tabFooter;
- Optional favicon;
+ private Optional favicon;
public ServerProperties(File file) throws IOException {
this.file = file;
@@ -189,6 +189,10 @@ public class ServerProperties {
return Limbo.getInstance().serverImplementationVersion;
}
+ public String getServerModName() {
+ return Limbo.LIMBO_BRAND;
+ }
+
public boolean isBungeecord() {
return bungeecord;
}
diff --git a/src/main/java/com/loohp/limbo/network/ClientConnection.java b/src/main/java/com/loohp/limbo/network/ClientConnection.java
index ca827b2..b1f3cb1 100644
--- a/src/main/java/com/loohp/limbo/network/ClientConnection.java
+++ b/src/main/java/com/loohp/limbo/network/ClientConnection.java
@@ -60,6 +60,7 @@ 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.PacketPlayOutPluginMessaging;
import com.loohp.limbo.network.protocol.packets.PacketPlayOutPositionAndLook;
import com.loohp.limbo.network.protocol.packets.PacketPlayOutSpawnPosition;
import com.loohp.limbo.network.protocol.packets.PacketPlayOutTabComplete;
@@ -92,6 +93,7 @@ import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
+import java.io.ByteArrayOutputStream;
import java.io.DataInput;
import java.io.DataInputStream;
import java.io.DataOutputStream;
@@ -117,6 +119,7 @@ import java.util.stream.Stream;
public class ClientConnection extends Thread {
private static final NamespacedKey DEFAULT_HANDLER_NAMESPACE = new NamespacedKey("default");
+ private static final NamespacedKey BRAND_ANNOUNCE_CHANNEL = new NamespacedKey("brand");
private final Random random = new Random();
private final Socket clientSocket;
@@ -464,6 +467,11 @@ public class ClientConnection extends Thread {
sendPacket(join);
Limbo.getInstance().getUnsafe().setPlayerGameModeSilently(player, properties.getDefaultGamemode());
+ ByteArrayOutputStream brandOut = new ByteArrayOutputStream();
+ DataTypeIO.writeString(new DataOutputStream(brandOut), properties.getServerModName(), StandardCharsets.UTF_8);
+ PacketPlayOutPluginMessaging brand = new PacketPlayOutPluginMessaging(BRAND_ANNOUNCE_CHANNEL, brandOut.toByteArray());
+ sendPacket(brand);
+
SkinResponse skinresponce = (isVelocityModern || isBungeeGuard || isBungeecord) && forwardedSkin != null ? forwardedSkin : MojangAPIUtils.getSkinFromMojangServer(player.getName());
PlayerSkinProperty skin = skinresponce != null ? new PlayerSkinProperty(skinresponce.getSkin(), skinresponce.getSignature()) : null;
PacketPlayOutPlayerInfo info = new PacketPlayOutPlayerInfo(PlayerInfoAction.ADD_PLAYER, player.getUniqueId(), new PlayerInfoData.PlayerInfoDataAddPlayer(player.getName(), Optional.ofNullable(skin), properties.getDefaultGamemode(), 0, false, Optional.empty()));
diff --git a/src/main/java/com/loohp/limbo/utils/NamespacedKey.java b/src/main/java/com/loohp/limbo/utils/NamespacedKey.java
index f8e160a..7733d2b 100644
--- a/src/main/java/com/loohp/limbo/utils/NamespacedKey.java
+++ b/src/main/java/com/loohp/limbo/utils/NamespacedKey.java
@@ -32,7 +32,7 @@ public class NamespacedKey {
this.namespace = namespacedKey.substring(0, index);
this.key = namespacedKey.substring(index + 1);
} else {
- this.namespace = "minecraft";
+ this.namespace = MINECRAFT_KEY;
this.key = namespacedKey;
}
}