Search in sources :

Example 16 with Text

use of net.minecraft.text.Text in project BleachHack by BleachDrinker420.

the class Texts method forEachWord.

/**
 * Does an operation to each word in a text. *
 */
public static Text forEachWord(Text text, BiFunction<String, Style, Text> operator) {
    MutableText newFullText = new LiteralText("");
    for (Text t : unpack(text)) {
        MutableText newText = new LiteralText("");
        String curString = "";
        String[] split = t.getString().split(" ", -1);
        for (int i = 0; i < split.length; i++) {
            Text word = operator.apply(split[i], t.getStyle());
            if (word != null) {
                if (!curString.isEmpty()) {
                    newText.append(new LiteralText(curString).setStyle(t.getStyle()));
                    curString = "";
                }
                newText.append(word);
            } else {
                curString += split[i];
            }
            if (i != split.length - 1)
                curString += " ";
        }
        if (!curString.isEmpty())
            newText.append(new LiteralText(curString).setStyle(t.getStyle()));
        newFullText.append(newText);
    }
    return newFullText;
}
Also used : MutableText(net.minecraft.text.MutableText) LiteralText(net.minecraft.text.LiteralText) BaseText(net.minecraft.text.BaseText) MutableText(net.minecraft.text.MutableText) Text(net.minecraft.text.Text) LiteralText(net.minecraft.text.LiteralText)

Example 17 with Text

use of net.minecraft.text.Text in project BleachHack by BleachDrinker420.

the class Texts method replaceAll.

/**
 * Replaces every string in this text that matches the pattern with a text from the provider. *
 */
public static Text replaceAll(Text text, Pattern pattern, BiFunction<String, Style, Text> replacement) {
    if (pattern.pattern().isEmpty())
        return text;
    MutableText newText = new LiteralText("");
    for (Text t : unpack(text)) {
        String string = t.getString();
        Map<Integer, Integer> positions = new HashMap<>();
        Matcher mat = pattern.matcher(string);
        while (mat.find()) {
            positions.put(mat.start(), mat.end());
        }
        String curString = "";
        for (int i = 0; i < string.length(); i++) {
            if (positions.containsKey(i)) {
                if (!curString.isEmpty()) {
                    newText = newText.append(new LiteralText(curString).setStyle(t.getStyle()));
                    curString = "";
                }
                newText.append(replacement.apply(string.substring(i, positions.get(i)), t.getStyle()));
                i = positions.get(i) - 1;
            } else {
                curString += string.charAt(i);
            }
        }
        if (!curString.isEmpty())
            newText.append(new LiteralText(curString).setStyle(t.getStyle()));
    }
    return newText;
}
Also used : MutableText(net.minecraft.text.MutableText) HashMap(java.util.HashMap) Matcher(java.util.regex.Matcher) LiteralText(net.minecraft.text.LiteralText) BaseText(net.minecraft.text.BaseText) MutableText(net.minecraft.text.MutableText) Text(net.minecraft.text.Text) LiteralText(net.minecraft.text.LiteralText)

Example 18 with Text

use of net.minecraft.text.Text in project BleachHack by BleachDrinker420.

the class ItemContentUtils method getTextInBook.

public static List<List<String>> getTextInBook(ItemStack item) {
    List<String> pages = new ArrayList<>();
    NbtCompound nbt = item.getNbt();
    if (nbt != null && nbt.contains("pages")) {
        NbtList nbt2 = nbt.getList("pages", 8);
        for (int i = 0; i < nbt2.size(); i++) {
            if (item.getItem() == Items.WRITABLE_BOOK) {
                pages.add(nbt2.getString(i));
            } else {
                Text text = Text.Serializer.fromLenientJson(nbt2.getString(i));
                pages.add(text != null ? text.getString() : nbt2.getString(i));
            }
        }
    }
    List<List<String>> finalPages = new ArrayList<>();
    for (String s : pages) {
        String buffer = "";
        List<String> pageBuffer = new ArrayList<>();
        for (char c : s.toCharArray()) {
            if (MinecraftClient.getInstance().textRenderer.getWidth(buffer) > 114 || buffer.endsWith("\n")) {
                pageBuffer.add(buffer.replace("\n", ""));
                buffer = "";
            }
            buffer += c;
        }
        pageBuffer.add(buffer);
        finalPages.add(pageBuffer);
    }
    return finalPages;
}
Also used : NbtCompound(net.minecraft.nbt.NbtCompound) ArrayList(java.util.ArrayList) NbtList(net.minecraft.nbt.NbtList) Text(net.minecraft.text.Text) List(java.util.List) NbtList(net.minecraft.nbt.NbtList) ArrayList(java.util.ArrayList)

Example 19 with Text

use of net.minecraft.text.Text in project BleachHack by BleachDrinker420.

the class BetterChat method onPacketRead.

@BleachSubscribe
public void onPacketRead(EventPacket.Read event) {
    if (event.getPacket() instanceof GameMessageS2CPacket) {
        GameMessageS2CPacket packet = (GameMessageS2CPacket) event.getPacket();
        if (packet.getLocation() == MessageType.GAME_INFO)
            return;
        Text message = packet.getMessage().shallowCopy();
        if (getSetting(6).asToggle().getState()) {
            message = Texts.forEachWord(message, (string, style) -> {
                String stripped = Formatting.strip(string);
                if (stripped.matches("['\u00a1-\u00f5]+\u00ff[0-~]+")) {
                    String decrypted = decrypt(stripped);
                    if (decrypted != null) {
                        return new LiteralText("<").styled(s -> s.withColor(BleachHack.watermark.getColor1())).append(new LiteralText(decrypted).styled(s -> s.withColor(0xffffff).withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new LiteralText(string).setStyle(style))))).append(new LiteralText(">").styled(s -> s.withColor(BleachHack.watermark.getColor2())));
                    }
                }
                return null;
            });
        }
        if (!filterPatterns.isEmpty() && getSetting(4).asToggle().getState()) {
            int mode = getSetting(4).asToggle().getChild(0).asMode().getMode();
            if (mode == 0) {
                for (Pattern pattern : filterPatterns) {
                    message = Texts.replaceAll(message, pattern, (string, style) -> new LiteralText(StringUtils.repeat('|', string.length() * 2)).styled(s -> s.withColor(Formatting.GRAY).withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new LiteralText(string).setStyle(style)))));
                }
            } else {
                for (Pattern pat : filterPatterns) {
                    if (pat.matcher(message.getString()).find()) {
                        if (mode == 1) {
                            Text messageCopy = message.shallowCopy();
                            message = new LiteralText("\u00a77Blocked Message").styled(style -> style.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, messageCopy)));
                            break;
                        } else {
                            event.setCancelled(true);
                            return;
                        }
                    }
                }
            }
        }
        if (getSetting(3).asToggle().getState()) {
            DateTimeFormatter formatter = getSetting(3).asToggle().getChild(0).asToggle().getState() ? DateTimeFormatter.ofPattern("HH:mm:ss") : DateTimeFormatter.ofPattern("HH:mm");
            message = new LiteralText("\u00a78[\u00a77" + LocalDateTime.now().format(formatter) + "\u00a78] ").append(message);
        }
        if (!message.equals(packet.getMessage())) {
            packet.message = message;
        }
    }
}
Also used : JsonParseException(com.google.gson.JsonParseException) BleachSubscribe(org.bleachhack.eventbus.BleachSubscribe) LiteralText(net.minecraft.text.LiteralText) java.util(java.util) ChatMessageC2SPacket(net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket) ModuleCategory(org.bleachhack.module.ModuleCategory) MessageType(net.minecraft.network.MessageType) Command(org.bleachhack.command.Command) LocalDateTime(java.time.LocalDateTime) Hashing(com.google.common.hash.Hashing) ArrayUtils(org.apache.commons.lang3.ArrayUtils) BleachFileHelper(org.bleachhack.util.io.BleachFileHelper) HoverEvent(net.minecraft.text.HoverEvent) StringUtils(org.apache.commons.lang3.StringUtils) JsonElement(com.google.gson.JsonElement) SettingMode(org.bleachhack.setting.module.SettingMode) ThreadLocalRandom(java.util.concurrent.ThreadLocalRandom) CharMap(org.bleachhack.module.mods.BetterChat.CustomFont.CharMap) BleachLogger(org.bleachhack.util.BleachLogger) Ascii85(com.github.fzakaria.ascii85.Ascii85) EventPacket(org.bleachhack.event.events.EventPacket) GameMessageS2CPacket(net.minecraft.network.packet.s2c.play.GameMessageS2CPacket) Texts(org.bleachhack.util.Texts) PatternSyntaxException(java.util.regex.PatternSyntaxException) BleachHack(org.bleachhack.BleachHack) StandardCharsets(java.nio.charset.StandardCharsets) Module(org.bleachhack.module.Module) Formatting(net.minecraft.util.Formatting) DateTimeFormatter(java.time.format.DateTimeFormatter) Entry(java.util.Map.Entry) Text(net.minecraft.text.Text) SettingToggle(org.bleachhack.setting.module.SettingToggle) Pattern(java.util.regex.Pattern) HoverEvent(net.minecraft.text.HoverEvent) Pattern(java.util.regex.Pattern) GameMessageS2CPacket(net.minecraft.network.packet.s2c.play.GameMessageS2CPacket) LiteralText(net.minecraft.text.LiteralText) Text(net.minecraft.text.Text) DateTimeFormatter(java.time.format.DateTimeFormatter) LiteralText(net.minecraft.text.LiteralText) BleachSubscribe(org.bleachhack.eventbus.BleachSubscribe)

Example 20 with Text

use of net.minecraft.text.Text in project BleachHack by BleachDrinker420.

the class BleachCreditsScreen method getBoosterText.

private Text getBoosterText(ImmutablePair<Boolean, String> pair) {
    int color = pair.getLeft() ? 0x1abc9c : 0xf579ff;
    String[] split = pair.getRight().split("#");
    return new LiteralText(split[0]).styled(s -> s.withColor(color).withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new LiteralText(pair.getRight()).styled(s1 -> s1.withColor(color)))));
}
Also used : WindowScreen(org.bleachhack.gui.window.WindowScreen) JsonObject(com.google.gson.JsonObject) LiteralText(net.minecraft.text.LiteralText) BodyHandlers(java.net.http.HttpResponse.BodyHandlers) BleachJsonHelper(org.bleachhack.util.io.BleachJsonHelper) BleachHack(org.bleachhack.BleachHack) MatrixStack(net.minecraft.client.util.math.MatrixStack) Items(net.minecraft.item.Items) WindowWidget(org.bleachhack.gui.window.widget.WindowWidget) HoverEvent(net.minecraft.text.HoverEvent) ImmutablePair(org.apache.commons.lang3.tuple.ImmutablePair) BleachOnlineMang(org.bleachhack.util.io.BleachOnlineMang) WindowTextWidget(org.bleachhack.gui.window.widget.WindowTextWidget) ItemStack(net.minecraft.item.ItemStack) Window(org.bleachhack.gui.window.Window) WindowScrollbarWidget(org.bleachhack.gui.window.widget.WindowScrollbarWidget) ImmutablePairList(org.bleachhack.util.collections.ImmutablePairList) Text(net.minecraft.text.Text) HoverEvent(net.minecraft.text.HoverEvent) LiteralText(net.minecraft.text.LiteralText)

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