diff --git a/src/main/java/net/minecraft/entity/player/EntityPlayerMP.java b/src/main/java/net/minecraft/entity/player/EntityPlayerMP.java index 179a3d5..830a9ee 100644 --- a/src/main/java/net/minecraft/entity/player/EntityPlayerMP.java +++ b/src/main/java/net/minecraft/entity/player/EntityPlayerMP.java @@ -89,6 +89,7 @@ import net.minecraft.util.ChunkCoordinates; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSource; +import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IChatComponent; import net.minecraft.util.JsonSerializableSet; import net.minecraft.util.MathHelper; @@ -107,6 +108,7 @@ import org.ultramine.server.chunk.ChunkSendManager; import org.ultramine.server.data.player.PlayerData; import org.ultramine.server.event.UMEventFactory; +import org.ultramine.server.util.BasicTypeParser; import net.minecraft.entity.item.EntityItem; import net.minecraftforge.common.ForgeHooks; @@ -1022,6 +1024,18 @@ return PermissionHandler.getInstance().has(this, permission); } + public String getMeta(String key) + { + return PermissionHandler.getInstance().getMeta(this, key); + } + + public String getTabListName() + { + String meta = getMeta("tablistcolor"); + EnumChatFormatting color = meta.isEmpty() ? null : BasicTypeParser.parseColor(meta); + return color == null ? getCommandSenderName() : color.toString() + getCommandSenderName(); + } + /** * Переносит игрока в другой мир без использования порталов. Обратите * внимение: сначала нужно установить координаты назначения diff --git a/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java b/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java index 8094b00..c5064cc 100644 --- a/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java +++ b/src/main/java/net/minecraft/server/management/ServerConfigurationManager.java @@ -314,7 +314,7 @@ public void playerLoggedIn(final EntityPlayerMP par1EntityPlayerMP) { - this.sendPacketToAllPlayers(new S38PacketPlayerListItem(par1EntityPlayerMP.getCommandSenderName(), true, 1000)); + this.sendPacketToAllPlayers(new S38PacketPlayerListItem(par1EntityPlayerMP.getTabListName(), true, 1000)); this.playerEntityList.add(par1EntityPlayerMP); usernameToPlayerMap.put(par1EntityPlayerMP.getGameProfile().getName().toLowerCase(), par1EntityPlayerMP); final WorldServer worldserver = this.mcServer.worldServerForDimension(par1EntityPlayerMP.dimension); @@ -328,7 +328,7 @@ for (int i = 0; i < this.playerEntityList.size(); ++i) { EntityPlayerMP entityplayermp1 = (EntityPlayerMP)this.playerEntityList.get(i); - par1EntityPlayerMP.playerNetServerHandler.sendPacket(new S38PacketPlayerListItem(entityplayermp1.getCommandSenderName(), true, entityplayermp1.ping)); + par1EntityPlayerMP.playerNetServerHandler.sendPacket(new S38PacketPlayerListItem(entityplayermp1.getTabListName(), true, entityplayermp1.ping)); } } @@ -355,7 +355,7 @@ this.playerEntityList.remove(p_72367_1_); usernameToPlayerMap.remove(p_72367_1_.getGameProfile().getName().toLowerCase()); this.field_148547_k.remove(p_72367_1_.getUniqueID()); - this.sendPacketToAllPlayers(new S38PacketPlayerListItem(p_72367_1_.getCommandSenderName(), false, 9999)); + this.sendPacketToAllPlayers(new S38PacketPlayerListItem(p_72367_1_.getTabListName(), false, 9999)); } public String allowUserToConnect(SocketAddress p_148542_1_, GameProfile p_148542_2_) @@ -675,7 +675,7 @@ if (this.playerPingIndex < this.playerEntityList.size()) { EntityPlayerMP entityplayermp = (EntityPlayerMP)this.playerEntityList.get(this.playerPingIndex); - this.sendPacketToAllPlayers(new S38PacketPlayerListItem(entityplayermp.getCommandSenderName(), true, entityplayermp.ping)); + this.sendPacketToAllPlayers(new S38PacketPlayerListItem(entityplayermp.getTabListName(), true, entityplayermp.ping)); } }