• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Как получать Title через Fabric 1.21.4?

  • Автор темы Автор темы anfisov
  • Дата начала Дата начала
pantheon.solutions
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
31 Май 2024
Сообщения
265
Реакции
39
Всех приветствую, не думал что когда-нибудь напишу что-либо в этот раздел кроме оскорблений кубоголовых.
Но увы, появилась нужда в написании бота для рыбалки под кастомный плагин LiteFish.

Мне нужно получить Title который высвечивается на экране плагином.
1754720840526.png


Вот мой код(реализовываю как Аддон на Meteor Client), особого опыта в этом всём дерьме не имею, буду благодарен за любую помощь.
TitleLogger.java:
Expand Collapse Copy
package com.crazymoose.paperdupe;

import meteordevelopment.meteorclient.events.world.TickEvent;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.client.MinecraftClient;
import net.minecraft.item.Items;
import net.minecraft.text.Text;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;

public class TitleLogger extends Module {
    private final MinecraftClient client = MinecraftClient.getInstance();

    public TitleLogger() {
        super(Main.CATEGORY, "title-logger", "Logs server-sent titles to chat, requires writable book. Relog before use");
    }

    @Override
    public void onActivate() {
        if (client.getNetworkHandler() == null) {
            if (client.player != null) {
                client.player.sendMessage(Text.literal("No connection available!"), true);
            }
            toggle();
            return;
        }
        ClientPlayNetworking.registerGlobalReceiver(new IdentifierOf("minecraft", "set_title_text"), (clientInstance, handler, buf, sender) -> {
            try {
                String jsonText = buf.readString(32767);
                Text titleText = Text.Serialization.fromJson(jsonText);
                if (titleText != null && client.player != null) {
                    client.player.sendMessage(Text.literal("Title received: " + titleText.getString()), false);
                }
            } catch (Exception e) {
                if (client.player != null) {
                    client.player.sendMessage(Text.literal("Error processing title packet: " + e.getMessage()), false);
                }
            }
        });
    }

    @Override
    public void onDeactivate() {
        // Удаляем слушатель при деактивации модуля
        if (client.getNetworkHandler() != null) {
            ClientPlayNetworking.unregisterGlobalReceiver(new IdentifierOf("minecraft", "set_title_text"));
        }
    }
}
Ошибки в моём коде:
Cannot resolve symbol 'IdentifierOf' (27)
Cannot resolve method 'readString(int)' (29)
Expected 2 arguments but found 1 (30)
Cannot resolve symbol 'IdentifierOf' (46)
 
Ой чет ты калла навалил. Во-первых, в метоере есть свой евентбас и ивент на получение пакета можешь глянуть, например, в велосити (убери хуйню с ClientPlayNetworking.registerGlobalReceiver). Во-вторых пакет, вроде, называется OverlayMessageS2CPacket, текст из него, думаю, сам сможешь вытянуть
 
Ой чет ты калла навалил. Во-первых, в метоере есть свой евентбас и ивент на получение пакета можешь глянуть, например, в велосити (убери хуйню с ClientPlayNetworking.registerGlobalReceiver). Во-вторых пакет, вроде, называется OverlayMessageS2CPacket, текст из него, думаю, сам сможешь вытянуть
Бля, а можешь помочь более так скажем интенсивно?
Мб в дискорде свяжимся?
С меня сочтётся.
 
Всех приветствую, не думал что когда-нибудь напишу что-либо в этот раздел кроме оскорблений кубоголовых.
Но увы, появилась нужда в написании бота для рыбалки под кастомный плагин LiteFish.

Мне нужно получить Title который высвечивается на экране плагином.
Посмотреть вложение 312847

Вот мой код(реализовываю как Аддон на Meteor Client), особого опыта в этом всём дерьме не имею, буду благодарен за любую помощь.
TitleLogger.java:
Expand Collapse Copy
package com.crazymoose.paperdupe;

import meteordevelopment.meteorclient.events.world.TickEvent;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.client.MinecraftClient;
import net.minecraft.item.Items;
import net.minecraft.text.Text;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;

public class TitleLogger extends Module {
    private final MinecraftClient client = MinecraftClient.getInstance();

    public TitleLogger() {
        super(Main.CATEGORY, "title-logger", "Logs server-sent titles to chat, requires writable book. Relog before use");
    }

    @Override
    public void onActivate() {
        if (client.getNetworkHandler() == null) {
            if (client.player != null) {
                client.player.sendMessage(Text.literal("No connection available!"), true);
            }
            toggle();
            return;
        }
        ClientPlayNetworking.registerGlobalReceiver(new IdentifierOf("minecraft", "set_title_text"), (clientInstance, handler, buf, sender) -> {
            try {
                String jsonText = buf.readString(32767);
                Text titleText = Text.Serialization.fromJson(jsonText);
                if (titleText != null && client.player != null) {
                    client.player.sendMessage(Text.literal("Title received: " + titleText.getString()), false);
                }
            } catch (Exception e) {
                if (client.player != null) {
                    client.player.sendMessage(Text.literal("Error processing title packet: " + e.getMessage()), false);
                }
            }
        });
    }

    @Override
    public void onDeactivate() {
        // Удаляем слушатель при деактивации модуля
        if (client.getNetworkHandler() != null) {
            ClientPlayNetworking.unregisterGlobalReceiver(new IdentifierOf("minecraft", "set_title_text"));
        }
    }
}
Ошибки в моём коде:
Cannot resolve symbol 'IdentifierOf' (27)
Cannot resolve method 'readString(int)' (29)
Expected 2 arguments but found 1 (30)
Cannot resolve symbol 'IdentifierOf' (46)
IdentifierOf замени на Identifier.of
 
Всех приветствую, не думал что когда-нибудь напишу что-либо в этот раздел кроме оскорблений кубоголовых.
Но увы, появилась нужда в написании бота для рыбалки под кастомный плагин LiteFish.

Мне нужно получить Title который высвечивается на экране плагином.
Посмотреть вложение 312847

Вот мой код(реализовываю как Аддон на Meteor Client), особого опыта в этом всём дерьме не имею, буду благодарен за любую помощь.
TitleLogger.java:
Expand Collapse Copy
package com.crazymoose.paperdupe;

import meteordevelopment.meteorclient.events.world.TickEvent;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.client.MinecraftClient;
import net.minecraft.item.Items;
import net.minecraft.text.Text;
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;

public class TitleLogger extends Module {
    private final MinecraftClient client = MinecraftClient.getInstance();

    public TitleLogger() {
        super(Main.CATEGORY, "title-logger", "Logs server-sent titles to chat, requires writable book. Relog before use");
    }

    @Override
    public void onActivate() {
        if (client.getNetworkHandler() == null) {
            if (client.player != null) {
                client.player.sendMessage(Text.literal("No connection available!"), true);
            }
            toggle();
            return;
        }
        ClientPlayNetworking.registerGlobalReceiver(new IdentifierOf("minecraft", "set_title_text"), (clientInstance, handler, buf, sender) -> {
            try {
                String jsonText = buf.readString(32767);
                Text titleText = Text.Serialization.fromJson(jsonText);
                if (titleText != null && client.player != null) {
                    client.player.sendMessage(Text.literal("Title received: " + titleText.getString()), false);
                }
            } catch (Exception e) {
                if (client.player != null) {
                    client.player.sendMessage(Text.literal("Error processing title packet: " + e.getMessage()), false);
                }
            }
        });
    }

    @Override
    public void onDeactivate() {
        // Удаляем слушатель при деактивации модуля
        if (client.getNetworkHandler() != null) {
            ClientPlayNetworking.unregisterGlobalReceiver(new IdentifierOf("minecraft", "set_title_text"));
        }
    }
}
Ошибки в моём коде:
Cannot resolve symbol 'IdentifierOf' (27)
Cannot resolve method 'readString(int)' (29)
Expected 2 arguments but found 1 (30)
Cannot resolve symbol 'IdentifierOf' (46)
у меня кент делал под этот сервак мод такой
 
у меня кент делал под этот сервак мод такой
Не подскажешь как реализовано всё было? У меня в голове логика есть, но мне нужно только получение Title блядского
Да пиздец, мне всё что нужно это Title получать и всё
 
Уже есть мод который делает то, что тебе нужно
Можешь взять пример с него
Пожалуйста, авторизуйтесь для просмотра ссылки.
 

Похожие темы

Назад
Сверху Снизу