Adapt client entrypoint to 26.2 mappings
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
2026-06-21 14:56:48 +06:00
parent 19b6ea53b7
commit 93e1b409c2
2 changed files with 33 additions and 19 deletions

View File

@@ -10,6 +10,17 @@ base {
archivesName = project.archives_base_name archivesName = project.archives_base_name
} }
loom {
splitEnvironmentSourceSets()
mods {
"clientirc" {
sourceSet sourceSets.main
sourceSet sourceSets.client
}
}
}
repositories { repositories {
mavenCentral() mavenCentral()
maven { maven {

View File

@@ -5,9 +5,9 @@ import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents; import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.fabricmc.fabric.api.client.message.v1.ClientSendMessageEvents; import net.fabricmc.fabric.api.client.message.v1.ClientSendMessageEvents;
import net.fabricmc.loader.api.FabricLoader; import net.fabricmc.loader.api.FabricLoader;
import net.minecraft.client.MinecraftClient; import net.minecraft.ChatFormatting;
import net.minecraft.text.Text; import net.minecraft.client.Minecraft;
import net.minecraft.util.Formatting; import net.minecraft.network.chat.Component;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -34,8 +34,8 @@ public final class ClientIrcMod implements ClientModInitializer {
ClientTickEvents.END_CLIENT_TICK.register(client -> { ClientTickEvents.END_CLIENT_TICK.register(client -> {
IrcService.DisplayLine line; IrcService.DisplayLine line;
while ((line = service.pollLine()) != null) { while ((line = service.pollLine()) != null) {
Formatting color = line.system() ? Formatting.GRAY : Formatting.AQUA; ChatFormatting color = line.system() ? ChatFormatting.GRAY : ChatFormatting.AQUA;
pushClientChat(client, Text.literal(line.text()).formatted(color)); pushClientChat(client, Component.literal(line.text()).withStyle(color));
} }
}); });
@@ -48,61 +48,64 @@ public final class ClientIrcMod implements ClientModInitializer {
return false; return false;
} }
MinecraftClient client = MinecraftClient.getInstance(); Minecraft client = Minecraft.getInstance();
String argument = trimmed.length() == COMMAND_PREFIX.length() ? "" : trimmed.substring(COMMAND_PREFIX.length()).trim(); String argument = trimmed.length() == COMMAND_PREFIX.length() ? "" : trimmed.substring(COMMAND_PREFIX.length()).trim();
if (argument.isBlank()) { if (argument.isBlank()) {
pushClientChat(client, Text.literal("[IRC] Usage: .irc <message> | .irc status | .irc reconnect | .irc reload").formatted(Formatting.YELLOW)); pushClientChat(client, Component.literal("[IRC] Usage: .irc <message> | .irc status | .irc reconnect | .irc reload").withStyle(ChatFormatting.YELLOW));
return true; return true;
} }
if ("status".equalsIgnoreCase(argument)) { if ("status".equalsIgnoreCase(argument)) {
String status = service.isConnected() ? "connected" : "disconnected"; String status = service.isConnected() ? "connected" : "disconnected";
pushClientChat(client, Text.literal("[IRC] " + status + " | " + config.host + ":" + config.port + " | clientName=" + config.clientName).formatted(Formatting.YELLOW)); pushClientChat(client, Component.literal("[IRC] " + status + " | " + config.host + ":" + config.port + " | clientName=" + config.clientName).withStyle(ChatFormatting.YELLOW));
return true; return true;
} }
if ("reconnect".equalsIgnoreCase(argument)) { if ("reconnect".equalsIgnoreCase(argument)) {
boolean connected = service.reconnect(resolvePlayerName(client)); boolean connected = service.reconnect(resolvePlayerName(client));
Formatting color = connected ? Formatting.GREEN : Formatting.RED; ChatFormatting color = connected ? ChatFormatting.GREEN : ChatFormatting.RED;
pushClientChat(client, Text.literal("[IRC] reconnect " + (connected ? "ok" : "failed")).formatted(color)); pushClientChat(client, Component.literal("[IRC] reconnect " + (connected ? "ok" : "failed")).withStyle(color));
return true; return true;
} }
if ("reload".equalsIgnoreCase(argument)) { if ("reload".equalsIgnoreCase(argument)) {
config = IrcConfig.load(FabricLoader.getInstance().getConfigDir().resolve("clientirc.json")); config = IrcConfig.load(FabricLoader.getInstance().getConfigDir().resolve("clientirc.json"));
service.updateConfig(config); service.updateConfig(config);
pushClientChat(client, Text.literal("[IRC] config reloaded").formatted(Formatting.YELLOW)); pushClientChat(client, Component.literal("[IRC] config reloaded").withStyle(ChatFormatting.YELLOW));
return true; return true;
} }
if (!service.ensureConnected(resolvePlayerName(client))) { if (!service.ensureConnected(resolvePlayerName(client))) {
pushClientChat(client, Text.literal("[IRC] server is offline or config is wrong").formatted(Formatting.RED)); pushClientChat(client, Component.literal("[IRC] server is offline or config is wrong").withStyle(ChatFormatting.RED));
return true; return true;
} }
boolean sent = service.sendChat(resolvePlayerName(client), argument); boolean sent = service.sendChat(resolvePlayerName(client), argument);
if (!sent) { if (!sent) {
pushClientChat(client, Text.literal("[IRC] send failed").formatted(Formatting.RED)); pushClientChat(client, Component.literal("[IRC] send failed").withStyle(ChatFormatting.RED));
} }
return true; return true;
} }
private static void pushClientChat(MinecraftClient client, Text text) { private static void pushClientChat(Minecraft client, Component text) {
if (client == null) { if (client == null) {
return; return;
} }
client.execute(() -> client.inGameHud.getChatHud().addMessage(text)); client.execute(() -> {
if (client.gui != null && client.gui.getChat() != null) {
client.gui.getChat().addMessage(text);
}
});
} }
private static String resolvePlayerName(MinecraftClient client) { private static String resolvePlayerName(Minecraft client) {
if (client != null && client.player != null) { if (client != null && client.player != null) {
return client.player.getGameProfile().getName(); return client.player.getGameProfile().getName();
} }
if (client != null && client.getSession() != null) { if (client != null && client.getUser() != null) {
return client.getSession().getUsername(); return client.getUser().getName();
} }
return "unknown"; return "unknown";
} }
} }