Skip to content

Commit

Permalink
add feature to add team name in tab list
Browse files Browse the repository at this point in the history
  • Loading branch information
MelanX committed Apr 6, 2024
1 parent 69dc83b commit cab4c26
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 0 deletions.
31 changes: 31 additions & 0 deletions src/main/java/de/melanx/skyblockbuilder/EventListener.java
Expand Up @@ -13,6 +13,7 @@
import de.melanx.skyblockbuilder.commands.invitation.JoinCommand;
import de.melanx.skyblockbuilder.commands.operator.ManageCommand;
import de.melanx.skyblockbuilder.config.StartingInventory;
import de.melanx.skyblockbuilder.config.common.CustomizationConfig;
import de.melanx.skyblockbuilder.config.common.InventoryConfig;
import de.melanx.skyblockbuilder.config.common.PermissionsConfig;
import de.melanx.skyblockbuilder.config.common.TemplatesConfig;
Expand All @@ -24,6 +25,7 @@
import de.melanx.skyblockbuilder.util.RandomUtility;
import de.melanx.skyblockbuilder.util.SkyPaths;
import de.melanx.skyblockbuilder.util.WorldUtil;
import net.minecraft.ChatFormatting;
import net.minecraft.client.Minecraft;
import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.LevelRenderer;
Expand All @@ -32,6 +34,9 @@
import net.minecraft.commands.Commands;
import net.minecraft.core.BlockPos;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.network.chat.Style;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ServerPlayer;
Expand Down Expand Up @@ -196,6 +201,32 @@ public static void onServerStarted(ServerStartedEvent event) {
}
}

@SubscribeEvent
public static void onTabListName(PlayerEvent.TabListNameFormat event) {
if (!CustomizationConfig.showTeamInTabList) {
return;
}

Player player = event.getEntity();
Team team = SkyblockSavedData.get(player.level()).getTeamFromPlayer(player);
if (team != null) {
MutableComponent name = (MutableComponent) player.getDisplayName();
Style style = name.getStyle();
if (style.getColor() == null) {
style.withColor(ChatFormatting.WHITE);
}
MutableComponent teamName = Component.literal(team.getName()).withStyle(ChatFormatting.AQUA);
event.setDisplayName(Component.empty()
.append(Component.literal("[").withStyle(style))
.append(teamName.withStyle(ChatFormatting.AQUA))
.append(Component.literal("] ").withStyle(style))
.append(name.withStyle(style))
);
} else {
event.setDisplayName(null);
}
}

@OnlyIn(Dist.CLIENT)
@SubscribeEvent
public static void renderBoundingBox(RenderLevelStageEvent event) {
Expand Down
@@ -0,0 +1,12 @@
package de.melanx.skyblockbuilder.config.common;

import org.moddingx.libx.annotation.config.RegisterConfig;
import org.moddingx.libx.config.Config;

@RegisterConfig("customization")
public class CustomizationConfig {

@Config({"This will add the team name in front of the name of each player.",
"Obviously, this will only work on a server where you can press tab for the player list."})
public static boolean showTeamInTabList = true;
}
Expand Up @@ -538,6 +538,9 @@ public void setDirty() {
super.setDirty();
if (this.level != null) {
SkyblockBuilder.getNetwork().updateData(this.level, this);
for (ServerPlayer player : this.level.getServer().getPlayerList().getPlayers()) {
player.refreshTabListName();
}
}
}

Expand Down

0 comments on commit cab4c26

Please sign in to comment.