Search in sources :

Example 76 with Text

use of net.minecraft.text.Text in project Client by MatHax.

the class ServerListPinger method add.

public void add(final MServerInfo entry, final Runnable runnable) throws UnknownHostException {
    Timer timeoutTimer = new Timer();
    ServerAddress serverAddress = ServerAddress.parse(entry.address);
    timeoutTimer.schedule(new TimerTask() {

        @Override
        public void run() {
            notifyDisconnectListeners();
        }
    }, 20000);
    final ClientConnection clientConnection = ClientConnection.connect(new InetSocketAddress(InetAddress.getByName(serverAddress.getAddress()), serverAddress.getPort()), false);
    failedToConnect = false;
    this.clientConnections.add(clientConnection);
    entry.label = "multiplayer.status.pinging";
    entry.ping = -1L;
    entry.playerListSummary = null;
    clientConnection.setPacketListener(new ClientQueryPacketListener() {

        private boolean sentQuery;

        private boolean received;

        private long startTime;

        public void onResponse(QueryResponseS2CPacket packet) {
            if (this.received)
                clientConnection.disconnect(new TranslatableText("multiplayer.status.unrequested"));
            else {
                this.received = true;
                ServerMetadata serverMetadata = packet.getServerMetadata();
                if (serverMetadata.getDescription() != null)
                    entry.label = serverMetadata.getDescription().asString();
                else
                    entry.label = "";
                if (serverMetadata.getVersion() != null) {
                    entry.version = serverMetadata.getVersion().getGameVersion();
                    entry.protocolVersion = serverMetadata.getVersion().getProtocolVersion();
                } else {
                    entry.version = "multiplayer.status.old";
                    entry.protocolVersion = 0;
                }
                if (serverMetadata.getPlayers() != null) {
                    entry.playerCountLabel = ServerListPinger.getPlayerCountLabel(serverMetadata.getPlayers().getOnlinePlayerCount(), serverMetadata.getPlayers().getPlayerLimit());
                    entry.playerCount = serverMetadata.getPlayers().getOnlinePlayerCount();
                    entry.playercountMax = serverMetadata.getPlayers().getPlayerLimit();
                    List<Text> list = Lists.newArrayList();
                    if (ArrayUtils.isNotEmpty(serverMetadata.getPlayers().getSample())) {
                        GameProfile[] gameProfiles = serverMetadata.getPlayers().getSample();
                        for (GameProfile gameProfile : gameProfiles) {
                            list.add(new LiteralText(gameProfile.getName()));
                        }
                        if (serverMetadata.getPlayers().getSample().length < serverMetadata.getPlayers().getOnlinePlayerCount())
                            list.add(new TranslatableText("multiplayer.status.and_more", serverMetadata.getPlayers().getOnlinePlayerCount() - serverMetadata.getPlayers().getSample().length));
                        entry.playerListSummary = list;
                    }
                } else
                    entry.playerCountLabel = "multiplayer.status.unknown";
                String string = null;
                if (serverMetadata.getFavicon() != null) {
                    String string2 = serverMetadata.getFavicon();
                    if (string2.startsWith("data:image/png;base64,"))
                        string = string2.substring("data:image/png;base64,".length());
                    else
                        MatHax.LOG.error("Invalid server icon (unknown format)");
                }
                if (!Objects.equals(string, entry.getIcon())) {
                    entry.setIcon(string);
                    runnable.run();
                }
                this.startTime = Util.getMeasuringTimeMs();
                clientConnection.send(new QueryPingC2SPacket(this.startTime));
                this.sentQuery = true;
                notifyDisconnectListeners();
            }
        }

        public void onPong(QueryPongS2CPacket packet) {
            long l = this.startTime;
            long m = Util.getMeasuringTimeMs();
            entry.ping = m - l;
            clientConnection.disconnect(new TranslatableText("multiplayer.status.finished"));
        }

        public void onDisconnected(Text reason) {
            if (!this.sentQuery) {
                MatHax.LOG.error("Can't ping {}: {}", entry.address, reason.getString());
                entry.label = "multiplayer.status.cannot_connect";
                entry.playerCountLabel = "";
                entry.playerCount = 0;
                entry.playercountMax = 0;
                ServerListPinger.this.ping(entry);
            }
            notifyDisconnectListeners();
        }

        public ClientConnection getConnection() {
            return clientConnection;
        }
    });
    try {
        clientConnection.send(new HandshakeC2SPacket(serverAddress.getAddress(), serverAddress.getPort(), NetworkState.STATUS));
        clientConnection.send(new QueryRequestC2SPacket());
    } catch (Throwable throwable) {
        MatHax.LOG.error("[MatHax] Couldn't send handshake", throwable);
    }
}
Also used : TranslatableText(net.minecraft.text.TranslatableText) QueryPingC2SPacket(net.minecraft.network.packet.c2s.query.QueryPingC2SPacket) HandshakeC2SPacket(net.minecraft.network.packet.c2s.handshake.HandshakeC2SPacket) InetSocketAddress(java.net.InetSocketAddress) QueryResponseS2CPacket(net.minecraft.network.packet.s2c.query.QueryResponseS2CPacket) ServerAddress(net.minecraft.client.network.ServerAddress) ServerMetadata(net.minecraft.server.ServerMetadata) LiteralText(net.minecraft.text.LiteralText) TranslatableText(net.minecraft.text.TranslatableText) Text(net.minecraft.text.Text) QueryPongS2CPacket(net.minecraft.network.packet.s2c.query.QueryPongS2CPacket) ClientQueryPacketListener(net.minecraft.network.listener.ClientQueryPacketListener) GameProfile(com.mojang.authlib.GameProfile) QueryRequestC2SPacket(net.minecraft.network.packet.c2s.query.QueryRequestC2SPacket) ClientConnection(net.minecraft.network.ClientConnection) LiteralText(net.minecraft.text.LiteralText)

Example 77 with Text

use of net.minecraft.text.Text in project Client by MatHax.

the class Names method getSoundName.

public static String getSoundName(Identifier id) {
    return soundNames.computeIfAbsent(id, identifier -> {
        WeightedSoundSet soundSet = mc.getSoundManager().get(identifier);
        if (soundSet == null)
            return identifier.getPath();
        Text text = soundSet.getSubtitle();
        if (text == null)
            return identifier.getPath();
        return StringHelper.stripTextFormat(text.getString());
    });
}
Also used : WeightedSoundSet(net.minecraft.client.sound.WeightedSoundSet) TranslatableText(net.minecraft.text.TranslatableText) Text(net.minecraft.text.Text)

Example 78 with Text

use of net.minecraft.text.Text in project Client by MatHax.

the class TextUtils method preOrderTraverse.

private static void preOrderTraverse(Text text, Stack<ColoredText> stack, List<ColoredText> coloredTexts) {
    if (text == null)
        return;
    String textString = text.asString();
    TextColor mcTextColor = text.getStyle().getColor();
    Color textColor;
    if (mcTextColor == null) {
        if (stack.empty())
            textColor = new Color(255, 255, 255);
        else
            textColor = stack.peek().getColor();
    } else
        textColor = new Color((text.getStyle().getColor().getRgb()) | 0xFF000000);
    ColoredText coloredText = new ColoredText(textString, textColor);
    coloredTexts.add(coloredText);
    stack.push(coloredText);
    for (Text child : text.getSiblings()) preOrderTraverse(child, stack, coloredTexts);
    stack.pop();
}
Also used : TextColor(net.minecraft.text.TextColor) Color(mathax.client.utils.render.color.Color) Text(net.minecraft.text.Text) TextColor(net.minecraft.text.TextColor)

Example 79 with Text

use of net.minecraft.text.Text in project spark by lucko.

the class FabricCommandSender method sendMessage.

@Override
public void sendMessage(Component message) {
    Text component = Text.Serializer.fromJson(GsonComponentSerializer.gson().serialize(message));
    super.delegate.sendSystemMessage(component, NIL_UUID);
}
Also used : Text(net.minecraft.text.Text)

Example 80 with Text

use of net.minecraft.text.Text in project AurorasDecorations by LambdAurora.

the class BlackboardCloneRecipe method craft.

@Override
public ItemStack craft(CraftingInventory inv) {
    Blackboard blackboard = null;
    ItemStack output = null;
    Text customName = null;
    for (int slot = 0; slot < inv.size(); ++slot) {
        var craftStack = inv.getStack(slot);
        if (!craftStack.isEmpty()) {
            if (OUTPUT.test(craftStack) && !this.isInput(craftStack)) {
                output = craftStack;
            } else if (this.isInput(craftStack)) {
                var nbt = BlockItem.getBlockEntityNbtFromStack(craftStack);
                blackboard = Blackboard.fromNbt(nbt);
                if (craftStack.hasCustomName())
                    customName = craftStack.getName();
            }
        }
    }
    var out = output.copy();
    out.setCount(1);
    var nbt = AuroraUtil.getOrCreateBlockEntityNbt(out, AurorasDecoRegistry.BLACKBOARD_BLOCK_ENTITY_TYPE);
    blackboard.writeNbt(nbt);
    if (customName != null)
        out.setCustomName(customName);
    return out;
}
Also used : Text(net.minecraft.text.Text) ItemStack(net.minecraft.item.ItemStack) Blackboard(dev.lambdaurora.aurorasdeco.Blackboard)

Aggregations

Text (net.minecraft.text.Text)80 LiteralText (net.minecraft.text.LiteralText)53 TranslatableText (net.minecraft.text.TranslatableText)19 MutableText (net.minecraft.text.MutableText)9 ItemStack (net.minecraft.item.ItemStack)8 MinecraftClient (net.minecraft.client.MinecraftClient)7 Formatting (net.minecraft.util.Formatting)7 ArrayList (java.util.ArrayList)6 HoverEvent (net.minecraft.text.HoverEvent)5 TextColor (net.minecraft.text.TextColor)5 Inject (org.spongepowered.asm.mixin.injection.Inject)5 List (java.util.List)4 ServerCommandSource (net.minecraft.server.command.ServerCommandSource)4 ServerPlayerEntity (net.minecraft.server.network.ServerPlayerEntity)4 BaseText (net.minecraft.text.BaseText)4 CommandDispatcher (com.mojang.brigadier.CommandDispatcher)3 UUID (java.util.UUID)3 Matcher (java.util.regex.Matcher)3 NbtCompound (net.minecraft.nbt.NbtCompound)3 OrderedText (net.minecraft.text.OrderedText)3