Подмена кнопки

Версия Minecraft
1.12.2
1,470
19
189
Существует ли способ подменить все кнопки на мои без хука?
 
Решение
Java:
@SubscribeEvent
public void changeButton(GuiScreenEvent.InitGuiEvent event){
    for(int i =0; i < event.getButtonList().size(); i++){
        int x = event.getButtonList().get(i).x;
        int y = event.getButtonList().get(i).y;
        int id = event.getButtonList().get(i).id;
        int w = event.getButtonList().get(i).width;
        int h = event.getButtonList().get(i).height;
        String t = event.getButtonList().get(i).displayString;
        event.getButtonList().set(i, new RCCButton(id, x, y, t));
    }
}
1,111
47
420
Почему же? У меня все шикарно работает.
А я и не говорил что не будет работать. Оно будет работать, но не правильно. Потому что другие моды могут захотеть добавить свою кнопку и у них ничего не выйдет потому что ты заменил на свой гуй.
 
344
1
47
А я и не говорил что не будет работать. Оно будет работать, но не правильно. Потому что другие моды могут захотеть добавить свою кнопку и у них ничего не выйдет потому что ты заменил на свой гуй.

Я если делаю что либо не особо использую чужое. Особенно в проектах) По тому такая тематика как: "чужое д#Рьмо мешает" не встречается вообще ))) А вообще самим пилить надо. К тому же можно проверять лоад модов, если конкретные присутствуют можно отменять загрузку чего либо. в mjb utills вроде есть такой пример, если надо)
 
1,111
47
420
Я если делаю что либо не особо использую чужое. Особенно в проектах) По тому такая тематика как: "чужое д#Рьмо мешает" не встречается вообще ))) А вообще самим пилить надо. К тому же можно проверять лоад модов, если конкретные присутствуют можно отменять загрузку чего либо. в mjb utills вроде есть такой пример, если надо)
Кажется ты не совсем меня понял.
Прикол в том что конечному майнкрафтеру глубоко начхать что у тебя там в бинарнике. Весь его функционал это закинуть мод в папку mods. Самое обидное, что он может закинуть туда не только твой мод, а допустим Journey Map. А этот мод добавляет в гуи настроек свою кнопку. И вот прикинь ты заменил на свой гуй. Поздравляю, все сломалось! Твое то конечно работает, а чужое нет.
 
344
1
47
Кажется ты не совсем меня понял.
Прикол в том что конечному майнкрафтеру глубоко начхать что у тебя там в бинарнике. Весь его функционал это закинуть мод в папку mods. Самое обидное, что он может закинуть туда не только твой мод, а допустим Journey Map. А этот мод добавляет в гуи настроек свою кнопку. И вот прикинь ты заменил на свой гуй. Поздравляю, все сломалось! Твое то конечно работает, а чужое нет.

Ааа, ну если ты про это, то мой мод не для опендоступа)))
 
3,005
192
592
Я дико извиняюсь, а где проверка на то, что это GuiButton?
И там скорее всего нужно проверять через "==", а не через "instance of".
 
3,005
192
592
Не слушай дядьку сверху.
О, я уже дядька, апнулся.
Проверяй через instance of просто.
А теперь представь, что ВСЕ другие кнопки идут extends GuiButton.
Теперь давайте подумаем, что если он будет заменять все кнопки во всех модах?
Хм...
Наверное тоже самое, что и сейчас.
Так что нужно через "==".
Тем самым он будет заменять только GuiButton, а все исходящие из этого класса будет игнорить.
 
1,111
47
420
О, я уже дядька, апнулся.

А теперь представь, что ВСЕ другие кнопки идут extends GuiButton.
Теперь давайте подумаем, что если он будет заменять все кнопки во всех модах?
Хм...
Наверное тоже самое, что и сейчас.
Так что нужно через "==".
Тем самым он будет заменять только GuiButton, а все исходящие из этого класса будет игнорить.
В этом начал прорисовываться здравый смысл, но что ты хочешь сравнивать через ==? Я сначала подумал что тип и объект, потому и погорячился. По факту как я понял ты предложил сравнить классы?
 
Последнее редактирование:
1,111
47
420
Не, ну ты канеш можешь проверку сделать что это не слайдер, а смысл? Чекбоксы тоже заменятся, ты все варики не прочекаешь)
Зря ты во мне слмневаешься, но вариант Doc'a действительно лучше.
 
1,470
19
189
Я дико извиняюсь, а где проверка на то, что это GuiButton?
И там скорее всего нужно проверять через "==", а не через "instance of".
А как получить тип кнопки?
 
1,111
47
420
Я сто лет назад написал, что нужно чекать id кнопки. А они про instanceof заговорили...
Типо заменять кнопки только с таким то id? А если другой мод добавит кнопку?
Типо заменять кнопки с не таким то id? А если другой мод добавит слайдер?
 
Сверху