Skip to content

Commit 6fc83cc

Browse files
committed
Migrate to MojMaps
1 parent 5784654 commit 6fc83cc

12 files changed

Lines changed: 126 additions & 122 deletions

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ fabricApi {
4444
dependencies {
4545
// To change the versions see the gradle.properties file
4646
minecraft "com.mojang:minecraft:${project.minecraft_version}"
47-
mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2"
47+
mappings loom.officialMojangMappings()
4848
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
4949

5050
// Fabric API. This is technically optional, but you probably want it anyway.

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ loader_version=0.18.4
1010
loom_version=1.15-SNAPSHOT
1111

1212
# Mod Properties
13-
mod_version=2.1.1-a2
13+
mod_version=2.1.1-a3
1414
maven_group=golden.scnicknamer
1515
archives_base_name=scnicknamer
1616

src/client/java/golden/scnicknamer/GradientUtil.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package golden.scnicknamer;
22

3-
import net.minecraft.text.MutableText;
4-
import net.minecraft.text.Style;
5-
import net.minecraft.text.Text;
3+
import net.minecraft.network.chat.Component;
4+
import net.minecraft.network.chat.MutableComponent;
5+
import net.minecraft.network.chat.Style;
66

77
import java.util.List;
88

@@ -19,7 +19,7 @@ public class GradientUtil {
1919
* @param colours An array of colours in integer format (0xRRGGBB).
2020
* @return A new Text object with the gradient applied.
2121
*/
22-
public static Text applyGradient(Text text, int[] colours) {
22+
public static Component applyGradient(Component text, int[] colours) {
2323
String str = text.getString();
2424
Style style = text.getStyle();
2525
int length = str.length();
@@ -28,10 +28,10 @@ public static Text applyGradient(Text text, int[] colours) {
2828
return text;
2929
}
3030
if (length == 1 || colours.length == 1) { // Single character or single colour
31-
return Text.literal(str).setStyle(style.withColor(colours[0]));
31+
return Component.literal(str).setStyle(style.withColor(colours[0]));
3232
}
3333

34-
MutableText result = Text.empty();
34+
MutableComponent result = Component.empty();
3535
int segments = colours.length - 1;
3636

3737
for (int i = 0; i < length; i++) {
@@ -40,7 +40,7 @@ public static Text applyGradient(Text text, int[] colours) {
4040
float localRatio = pos * segments - seg;
4141

4242
int colour = interpolateColours(colours[seg], colours[seg + 1], localRatio);
43-
result.append(Text.literal(String.valueOf(str.charAt(i))).setStyle(style.withColor(colour)));
43+
result.append(Component.literal(String.valueOf(str.charAt(i))).setStyle(style.withColor(colour)));
4444
}
4545
return result;
4646
}
@@ -51,9 +51,9 @@ public static Text applyGradient(Text text, int[] colours) {
5151
* @param text The text to apply the gradient to.
5252
* @param hexColours A list of colours in hex string format.
5353
* @return A new Text object with the gradient applied.
54-
* @see #applyGradient(Text, int[])
54+
* @see #applyGradient(Component, int[])
5555
*/
56-
public static Text applyGradient(Text text, List<String> hexColours) {
56+
public static Component applyGradient(Component text, List<String> hexColours) {
5757
int[] colourInts = hexColours.stream()
5858
.mapToInt(c -> Integer.parseInt(c, 16))
5959
.toArray();

src/client/java/golden/scnicknamer/SCNicknamerClient.java

Lines changed: 28 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
import me.shedaniel.autoconfig.serializer.Toml4jConfigSerializer;
66
import net.fabricmc.api.ClientModInitializer;
77
import net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback;
8-
import net.minecraft.text.HoverEvent;
9-
import net.minecraft.text.MutableText;
10-
import net.minecraft.text.Style;
11-
import net.minecraft.text.Text;
12-
import net.minecraft.util.Formatting;
8+
import net.minecraft.ChatFormatting;
9+
import net.minecraft.network.chat.Component;
10+
import net.minecraft.network.chat.HoverEvent;
11+
import net.minecraft.network.chat.MutableComponent;
12+
import net.minecraft.network.chat.Style;
1313
import org.slf4j.Logger;
1414
import org.slf4j.LoggerFactory;
1515

@@ -65,16 +65,16 @@ public static DisplayMapping getMapping(UUID uuid) {
6565
* @param replaceColour Whether to replace the colour with the colour defined in the mapping
6666
* @return A new MutableText object with the mapping applied (replacements and colour changes)
6767
*/
68-
static MutableText applyMapping(Text message, DisplayMapping mapping,
68+
static MutableComponent applyMapping(Component message, DisplayMapping mapping,
6969
boolean replaceName, boolean replaceColour) {
7070
if (message == null || message.getString().isEmpty() || mapping == null) {
71-
return (MutableText) message;
71+
return (MutableComponent) message;
7272
}
7373

74-
MutableText outputMessage = Text.empty();
74+
MutableComponent outputMessage = Component.empty();
7575
message.visit((style, text) -> {
7676
if (!text.contains(mapping.mc_name())) {
77-
outputMessage.append(Text.literal(text).setStyle(style));
77+
outputMessage.append(Component.literal(text).setStyle(style));
7878
return Optional.empty(); // Continue visiting
7979
}
8080

@@ -92,10 +92,10 @@ static MutableText applyMapping(Text message, DisplayMapping mapping,
9292
}
9393

9494
// Create new MutableText with the display string and style
95-
MutableText newText = (MutableText) Text.of(replacedText);
95+
MutableComponent newText = (MutableComponent) Component.nullToEmpty(replacedText);
9696
newText.setStyle(replacedStyle);
9797
if (mapping.colours() != null && mapping.colours().length > 1 && replaceColour) {
98-
newText = (MutableText) applyGradient(newText, List.of(mapping.colours()));
98+
newText = (MutableComponent) applyGradient(newText, List.of(mapping.colours()));
9999
}
100100
outputMessage.append(newText);
101101

@@ -117,7 +117,7 @@ static MutableText applyMapping(Text message, DisplayMapping mapping,
117117
* @param replaceColour Whether to replace the colour with the colour defined in the mapping
118118
* @return A Text object containing the potentially modified name with appropriate styling
119119
*/
120-
public static Text getStyledName(Text displayName, UUID uuid, boolean replaceName,
120+
public static Component getStyledName(Component displayName, UUID uuid, boolean replaceName,
121121
boolean replaceColour) {
122122
DisplayMapping mapping = getMapping(uuid);
123123
return (mapping != null)
@@ -134,19 +134,19 @@ public static Text getStyledName(Text displayName, UUID uuid, boolean replaceNam
134134
* @param replaceColour Whether to replace the colour with the colour defined in the mapping
135135
* @return A new MutableText object with the mapping applied (replacements and colour changes)
136136
*/
137-
public static Text getStyledChat(Text message, boolean replaceName, boolean replaceColour) {
137+
public static Component getStyledChat(Component message, boolean replaceName, boolean replaceColour) {
138138
if (message == null || message.getString().isEmpty()) {
139-
return Text.empty();
139+
return Component.empty();
140140
}
141141

142-
MutableText outputMessage = Text.empty();
142+
MutableComponent outputMessage = Component.empty();
143143
message.visit((style, text) -> {
144-
MutableText newText = Text.literal(text).setStyle(style);
144+
MutableComponent newText = Component.literal(text).setStyle(style);
145145

146146
HoverEvent event = style.getHoverEvent();
147-
if (event != null && event.getAction() == HoverEvent.Action.SHOW_ENTITY) {
148-
HoverEvent.EntityContent entity = ((HoverEvent.ShowEntity) event).entity();
149-
newText = (MutableText) getStyledName(newText, entity.uuid,
147+
if (event != null && event.action() == HoverEvent.Action.SHOW_ENTITY) {
148+
HoverEvent.EntityTooltipInfo entity = ((HoverEvent.ShowEntity) event).entity();
149+
newText = (MutableComponent) getStyledName(newText, entity.uuid,
150150
replaceName, replaceColour);
151151
newText.setStyle(newText.getStyle().withHoverEvent(event));
152152
}
@@ -183,19 +183,16 @@ public static int getData(String source) {
183183
*
184184
* @return A Text object containing the status of the mod
185185
*/
186-
public static Text getStatusString() {
186+
public static Component getStatusString() {
187187
return switch (NameLinkAPI.getStatus()) {
188-
case UNKNOWN -> Text.translatable("text.scnicknamer.status.unknown").formatted(Formatting.GRAY);
189-
case SUCCESS ->
190-
Text.translatable("text.scnicknamer.status.success").formatted(Formatting.WHITE);
191-
case WORKING ->
192-
Text.translatable("text.scnicknamer.status.working").formatted(Formatting.YELLOW);
193-
case FALLBACK ->
194-
Text.translatable("text.scnicknamer.status.fallback").formatted(Formatting.RED);
195-
case FAILURE ->
196-
Text.translatable("text.scnicknamer.status.failure").formatted(Formatting.RED
197-
, Formatting.BOLD);
198-
case DISABLED -> Text.translatable("text.scnicknamer.status.disabled").formatted(Formatting.DARK_GRAY);
188+
case UNKNOWN -> Component.translatable("text.scnicknamer.status.unknown").withStyle(ChatFormatting.GRAY);
189+
case SUCCESS -> Component.translatable("text.scnicknamer.status.success").withStyle(ChatFormatting.WHITE);
190+
case WORKING -> Component.translatable("text.scnicknamer.status.working").withStyle(ChatFormatting.YELLOW);
191+
case FALLBACK -> Component.translatable("text.scnicknamer.status.fallback").withStyle(ChatFormatting.RED);
192+
case FAILURE -> Component.translatable("text.scnicknamer.status.failure").withStyle(ChatFormatting.RED
193+
, ChatFormatting.BOLD);
194+
case DISABLED ->
195+
Component.translatable("text.scnicknamer.status.disabled").withStyle(ChatFormatting.DARK_GRAY);
199196
};
200197
}
201198

src/client/java/golden/scnicknamer/client/ChatHudMixin.java

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,29 +3,31 @@
33
import golden.scnicknamer.SCNicknamerClient;
44
import golden.scnicknamer.config.SCNicknamerConfig;
55
import me.shedaniel.autoconfig.AutoConfig;
6-
import net.minecraft.client.gui.hud.ChatHud;
7-
import net.minecraft.text.Text;
6+
import net.minecraft.client.gui.components.ChatComponent;
7+
import net.minecraft.network.chat.Component;
88
import org.spongepowered.asm.mixin.Mixin;
99
import org.spongepowered.asm.mixin.Unique;
1010
import org.spongepowered.asm.mixin.injection.At;
1111
import org.spongepowered.asm.mixin.injection.ModifyArgs;
1212
import org.spongepowered.asm.mixin.injection.invoke.arg.Args;
1313

14-
@Mixin (ChatHud.class)
14+
@Mixin(ChatComponent.class)
1515
public class ChatHudMixin {
1616
@Unique
1717
private static final SCNicknamerConfig CONFIG = AutoConfig.getConfigHolder(SCNicknamerConfig.class).getConfig();
1818

19-
@ModifyArgs (method = "addMessage(Lnet/minecraft/text/Text;Lnet/minecraft/network/message/MessageSignatureData;Lnet/minecraft/client/gui/hud/MessageIndicator;)V",
19+
@ModifyArgs(method = "addMessage(Lnet/minecraft/network/chat/Component;" +
20+
"Lnet/minecraft/network/chat/MessageSignature;Lnet/minecraft/client/GuiMessageTag;)V",
2021
at = @At(value = "INVOKE",
21-
target = "Lnet/minecraft/client/gui/hud/ChatHudLine;<init>(ILnet/minecraft/text/Text;Lnet/minecraft/network/message/MessageSignatureData;Lnet/minecraft/client/gui/hud/MessageIndicator;)V"))
22+
target = "Lnet/minecraft/client/GuiMessage;<init>(ILnet/minecraft/network/chat/Component;" +
23+
"Lnet/minecraft/network/chat/MessageSignature;Lnet/minecraft/client/GuiMessageTag;)V"))
2224
public void onReceivingMessages(Args args) {
2325

2426
if ((!SCNicknamerClient.isEnabled() || !CONFIG.replacechat && !CONFIG.colourchat)) {
2527
return;
2628
}
2729

28-
Text message = args.get(1);
30+
Component message = args.get(1);
2931

3032
args.set(1, SCNicknamerClient.getStyledChat(message, CONFIG.replacechat,
3133
CONFIG.colourchat));

src/client/java/golden/scnicknamer/client/ClientPlayNetworkHandlerMixin.java

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
import golden.scnicknamer.NameLinkAPI;
44
import golden.scnicknamer.SCNicknamerClient;
5-
import net.minecraft.client.MinecraftClient;
6-
import net.minecraft.client.gui.hud.ChatHud;
7-
import net.minecraft.client.network.ClientPlayNetworkHandler;
8-
import net.minecraft.client.network.ServerInfo;
9-
import net.minecraft.network.packet.s2c.play.GameJoinS2CPacket;
5+
import net.minecraft.client.Minecraft;
6+
import net.minecraft.client.gui.components.ChatComponent;
7+
import net.minecraft.client.multiplayer.ClientPacketListener;
8+
import net.minecraft.client.multiplayer.ServerData;
9+
import net.minecraft.network.protocol.game.ClientboundLoginPacket;
1010
import org.slf4j.Logger;
1111
import org.slf4j.LoggerFactory;
1212
import org.spongepowered.asm.mixin.Mixin;
@@ -17,7 +17,7 @@
1717
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
1818

1919

20-
@Mixin(ClientPlayNetworkHandler.class)
20+
@Mixin(ClientPacketListener.class)
2121
public abstract class ClientPlayNetworkHandlerMixin {
2222

2323
// The mod ID as used in logging
@@ -29,15 +29,15 @@ public abstract class ClientPlayNetworkHandlerMixin {
2929
private static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
3030

3131
@Shadow
32-
public abstract ServerInfo getServerInfo();
32+
public abstract ServerData getServerData();
3333

34-
@Inject(method = "onGameJoin(Lnet/minecraft/network/packet/s2c/play/GameJoinS2CPacket;)V", at = @At("TAIL"))
35-
public void onGameJoin(GameJoinS2CPacket packet, CallbackInfo ci) {
34+
@Inject(method = "handleLogin(Lnet/minecraft/network/protocol/game/ClientboundLoginPacket;)V", at = @At("TAIL"))
35+
public void onGameJoin(ClientboundLoginPacket packet, CallbackInfo ci) {
3636
LOGGER.info("Game joined, current NameLinkAPI status: {}", NameLinkAPI.getStatus());
37-
SCNicknamerClient.setServer(getServerInfo() == null ? null : getServerInfo().address);
37+
SCNicknamerClient.setServer(getServerData() == null ? null : getServerData().ip);
3838
LOGGER.info("Is server whitelisted? {}", SCNicknamerClient.isEnabled());
39-
ChatHud chatHud = MinecraftClient.getInstance().inGameHud.getChatHud();
40-
if (chatHud != null && NameLinkAPI.getStatus() != NameLinkAPI.FetchStatus.SUCCESS && NameLinkAPI.getStatus() != NameLinkAPI.FetchStatus.DISABLED) {
39+
ChatComponent chatHud = Minecraft.getInstance().gui.getChat();
40+
if (NameLinkAPI.getStatus() != NameLinkAPI.FetchStatus.SUCCESS && NameLinkAPI.getStatus() != NameLinkAPI.FetchStatus.DISABLED) {
4141
chatHud.addMessage(SCNicknamerClient.getStatusString());
4242
}
4343
}

src/client/java/golden/scnicknamer/client/EntityRendererStateMixin.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package golden.scnicknamer.client;
22

33
import golden.scnicknamer.interfaces.IEntityProvider;
4-
import net.minecraft.client.render.entity.state.EntityRenderState;
5-
import net.minecraft.entity.Entity;
4+
import net.minecraft.client.renderer.entity.state.EntityRenderState;
5+
import net.minecraft.world.entity.Entity;
66
import org.spongepowered.asm.mixin.Mixin;
77
import org.spongepowered.asm.mixin.Unique;
88

src/client/java/golden/scnicknamer/client/HoverEventMixin.java

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
import golden.scnicknamer.DisplayMapping;
44
import golden.scnicknamer.SCNicknamerClient;
5-
import net.minecraft.entity.EntityType;
6-
import net.minecraft.text.HoverEvent;
7-
import net.minecraft.text.Text;
5+
import net.minecraft.network.chat.Component;
6+
import net.minecraft.network.chat.HoverEvent;
7+
import net.minecraft.world.entity.EntityType;
88
import org.jetbrains.annotations.Nullable;
99
import org.spongepowered.asm.mixin.Final;
1010
import org.spongepowered.asm.mixin.Mixin;
@@ -18,38 +18,38 @@
1818
import java.util.Optional;
1919
import java.util.UUID;
2020

21-
@Mixin (HoverEvent.EntityContent.class)
21+
@Mixin(HoverEvent.EntityTooltipInfo.class)
2222
public abstract class HoverEventMixin {
2323
@Final
2424
@Shadow
2525
public UUID uuid;
2626
@Final
2727
@Shadow
28-
public Optional<Text> name;
28+
public Optional<Component> name;
2929
@Final
3030
@Shadow
31-
public EntityType<?> entityType;
31+
public EntityType<?> type;
3232
@Shadow
3333
@Nullable
34-
private List<Text> tooltip;
34+
private List<Component> linesCache;
3535

36-
@Inject (method = "asTooltip()Ljava/util/List;", at = @At ("HEAD"))
37-
public @Nullable List<Text> asTooltip(CallbackInfoReturnable<List<Text>> cir) {
38-
if (this.tooltip == null) {
39-
this.tooltip = new ArrayList<>();
40-
this.name.ifPresent(this.tooltip::add);
41-
this.tooltip.add(Text.translatable("gui.entity_tooltip.type",
42-
this.entityType.getName()));
43-
if (this.entityType == EntityType.PLAYER && this.name.isPresent()) {
36+
@Inject(method = "getTooltipLines()Ljava/util/List;", at = @At("HEAD"))
37+
public @Nullable List<Component> asTooltip(CallbackInfoReturnable<List<Component>> cir) {
38+
if (this.linesCache == null) {
39+
this.linesCache = new ArrayList<>();
40+
this.name.ifPresent(this.linesCache::add);
41+
this.linesCache.add(Component.translatable("gui.entity_tooltip.type",
42+
this.type.getDescription()));
43+
if (this.type == EntityType.PLAYER && this.name.isPresent()) {
4444
DisplayMapping mapping = SCNicknamerClient.getMapping(this.uuid);
4545
if (mapping != null && mapping.nickname() != null) {
46-
this.tooltip.add(Text.translatable("gui.scnicknamer.hover_nickname",
46+
this.linesCache.add(Component.translatable("gui.scnicknamer.hover_nickname",
4747
mapping.nickname()));
4848
}
4949
}
50-
this.tooltip.add(Text.of(this.uuid));
50+
this.linesCache.add(Component.translationArg(this.uuid));
5151
}
5252

53-
return this.tooltip;
53+
return this.linesCache;
5454
}
5555
}

0 commit comments

Comments
 (0)