diff --git a/build.gradle b/build.gradle index 0dc2373..dd621f1 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,7 @@ plugins { } group 'ru.nanit' -version '1.3.3' +version '1.3.4' repositories { mavenCentral() diff --git a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java index f69572f..ae0ecbf 100644 --- a/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java +++ b/src/main/java/ru/nanit/limbo/configuration/LimboConfig.java @@ -94,6 +94,7 @@ public final class LimboConfig { useBossBar = conf.node("bossBar", "enable").getBoolean(); useTitle = conf.node("title", "enable").getBoolean(); usePlayerList = conf.node("playerList", "enable").getBoolean(); + playerListUsername = conf.node("playerList", "username").getString(); useHeaderAndFooter = conf.node("headerAndFooter", "enable").getBoolean(); if (useBrandName) @@ -108,9 +109,6 @@ public final class LimboConfig { if (useTitle) title = conf.node("title").get(Title.class); - if (usePlayerList) - playerListUsername = conf.node("playerList", "username").getString(); - if (useHeaderAndFooter) { playerListHeader = Colors.of(conf.node("headerAndFooter", "header").getString()); playerListFooter = Colors.of(conf.node("headerAndFooter", "footer").getString()); diff --git a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java index eec50cd..f36fe6b 100644 --- a/src/main/java/ru/nanit/limbo/connection/ClientConnection.java +++ b/src/main/java/ru/nanit/limbo/connection/ClientConnection.java @@ -241,10 +241,10 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { writePacket(PACKET_PLAYER_ABILITIES); writePacket(PACKET_PLAYER_POS); - if (PACKET_PLAYER_INFO != null && !clientVersion.equals(Version.V1_16_4)) + if (server.getConfig().isUsePlayerList() || clientVersion.equals(Version.V1_16_4)) writePacket(PACKET_PLAYER_INFO); - if (clientVersion.moreOrEqual(Version.V1_13)){ + if (clientVersion.moreOrEqual(Version.V1_13)) { writePacket(PACKET_DECLARE_COMMANDS); if (PACKET_PLUGIN_MESSAGE != null) @@ -430,26 +430,24 @@ public class ClientConnection extends ChannelInboundHandlerAdapter { PacketDeclareCommands declareCommands = new PacketDeclareCommands(); declareCommands.setCommands(Collections.emptyList()); + PacketPlayerInfo info = new PacketPlayerInfo(); + info.setUsername(server.getConfig().getPlayerListUsername()); + info.setGameMode(server.getConfig().getGameMode()); + info.setUuid(uuid); + PACKET_LOGIN_SUCCESS = PacketSnapshot.of(loginSuccess); PACKET_JOIN_GAME = PacketSnapshot.of(joinGame); PACKET_PLAYER_ABILITIES = PacketSnapshot.of(playerAbilities); PACKET_PLAYER_POS = PacketSnapshot.of(positionAndLook); + PACKET_PLAYER_INFO = PacketSnapshot.of(info); PACKET_DECLARE_COMMANDS = PacketSnapshot.of(declareCommands); - if (server.getConfig().isUsePlayerList()) { - PacketPlayerInfo info = new PacketPlayerInfo(); - info.setUsername(server.getConfig().getPlayerListUsername()); - info.setGameMode(server.getConfig().getGameMode()); - info.setUuid(uuid); - PACKET_PLAYER_INFO = PacketSnapshot.of(info); - - if (server.getConfig().isUseHeaderAndFooter()) { - PacketPlayerListHeader header = new PacketPlayerListHeader(); - header.setHeader(server.getConfig().getPlayerListHeader()); - header.setFooter(server.getConfig().getPlayerListFooter()); - PACKET_HEADER_AND_FOOTER = PacketSnapshot.of(header); - } + if (server.getConfig().isUseHeaderAndFooter()) { + PacketPlayerListHeader header = new PacketPlayerListHeader(); + header.setHeader(server.getConfig().getPlayerListHeader()); + header.setFooter(server.getConfig().getPlayerListFooter()); + PACKET_HEADER_AND_FOOTER = PacketSnapshot.of(header); } if (server.getConfig().isUseBrandName()){ diff --git a/src/main/resources/settings.yml b/src/main/resources/settings.yml index 3bed986..dc997c7 100644 --- a/src/main/resources/settings.yml +++ b/src/main/resources/settings.yml @@ -20,12 +20,12 @@ ping: dimension: THE_END # Whether to display the player in the player list +# For 1.16.5 clients player list will be sent even if disabled, to avoid crash playerList: enable: false username: 'NanoLimbo' # Whether to display header and footer in player list -# Enable it only if you enabled playerList headerAndFooter: enable: false header: '{"text": "&eWelcome!"}'