Вы используете устаревший браузер

Ваш браузер устарел, и поэтому некоторые важные функции этого сайта могут не работать. Пожалуйста, обновитесь то более современного браузера. :(

[Forge 1.20.1] Задать мобу цель нажатием кнопки в его меню

    Anessan
    не в сети

    Посетители

    Звание: Зелёный

    Трофеев: 1

    Сообщений: 3

    Итак, сейчас я пытаюсь написать логику в кнопку и вроде бы все логично, но кнопка почему-то даже не срабатывает при попытке ее нажать. Она ничего не делает.

    Мой код из screen файла:


    @Override
        public void init() {
            super.init();
            this.button = addRenderableWidget(
                Button.builder(
                    FOLLOWME_BUTTON,
                    this::handleFollowMeButton)
                    .bounds(this.leftPos + 8, this.topPos + 11, 65, 20)
                    .build());
        }
    
    	private void handleFollowMeButton(Button button) {
            GoblinBuilders.PACKET_HANDLER.sendToServer(new GoblinBuilderGuiButtonMessage(0, x, y, z));
            GoblinBuilderGuiButtonMessage.handleFollowMeButton(entity, 0, x, y, z);
        }


    Мой код из GoblinBuilderGuiButtonMessage файла:

    public static void handler(GoblinBuilderGuiButtonMessage message, Supplier<NetworkEvent.Context> contextSupplier) {
            NetworkEvent.Context context = contextSupplier.get();
            context.enqueueWork(() -> {
                Player entity = context.getSender();
                int buttonID = message.buttonID;
                int x = message.x;
                int y = message.y;
                int z = message.z;
                handleFollowMeButton(entity, buttonID, x, y, z);
            });
            context.setPacketHandled(true);
        }
    
        public static void handleFollowMeButton(Player entity, int buttonID, int x, int y, int z) {
            Level world = entity.level();
            HashMap guistate = GoblinBuilderMenu.guistate;
            if (buttonID == 0) {
    
                FollowMeButton.execute(entity);
            }
        }


    Мой код из FollowMeButton файла:

    public class FollowMeButton {
        public static void execute(Entity entity) {
            if (entity instanceof GoblinBuilderEntity _toFollow) {
                _toFollow.goalSelector.addGoal(1, new FollowOwnerGoal(_toFollow, 1.0, 10.0F, 2.0F, false));
            }
        }
    }
    Сообщение отредактировал Anessan 23 марта 2024 - 19:03

    #1 | 23 марта 2024 - 19:02

    Jesterios
    не в сети

    Посетители

    Звание: Любитель понажимать кнопки

    Трофеев: 4

    Сообщений: 59

    Симпатий: 137

    В классе Screen есть метод keyPressed, обрабатывай там и вызывай свой метод с отправкой пакета на сервер

    #2 | 23 марта 2024 - 20:42

Статистика форума

Создано тем
13931
Написано сообщений
845128
Пользователей
373949
Новый участник
krushakinator 3000

Администраторы | Главные редакторы | Модератор | Дедушки | Журналисты | HENTAI BOY | Goldфаги | Журналисты-олдфаги | ТруЪ Олдфаги-с | ТруЪ Плагинщик | Олдфаги | true Художник | Модератор бездны | Картоделы | XXXL ПХЛ | Просто хорошие люди | Посетители | Новички

Последние сообщения с форума

Название темы Автор Статистика Последнее сообщение
какие моды на оптимизацию использовать

Тема в разделе: Моддинг

krushakinator 3000

Просмотров: 252

Ответов: 3

Автор: OneCatPlaton

Сегодня, 05:29

Видео/Стримы канал Ritterydam

Тема в разделе: Флудильня

ritterydam

Просмотров: 112298

Ответов: 535

Автор: ritterydam

Вчера, 20:49

что бесит вас больше всего

Тема в разделе: Флудильня

Амогус на бархатной тяге

Просмотров: 1494

Ответов: 14

Автор: Оливер Кромвель 1599

Вчера, 20:07

Набор в команду "Universe Speck"

Тема в разделе: Проекты

Bubble2019

Просмотров: 244

Ответов: 0

Автор: Bubble2019

2-05-2024, 16:07

Эксперимент с 30 людьми

Тема в разделе: Предложения

Lor1s

Просмотров: 589

Ответов: 4

Автор: Лим178

2-05-2024, 14:25