1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

MCP и Minecraft.java

Тема в разделе "Обсуждение Minecraft", создана пользователем Bars, 5 дек 2014.

  1. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Использую gradlew. Компилирую и обфусцирую Minecraft.java в bao.class, но когда закидываю в minecraft.jar, изменения не применяются. Нет, клиент не перекачивается, пользую Mojang с JVM параметрами -Dfml. Однако когда я делал бинды, правя этот класс, изменения применялись, а сейчас нит. Шта делоть?
     
  2. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Новое достижение!
    Получить бан на Minecraft Forge Forums

    Не получив ответа здесь, я пошёл туда. Сегодня заходил посмотреть ответы и смотрю - забанен, при чём без права смотреть форум. Сбросил куки, посмотрел: бан за редактирование внутриигровых классов! **ануться! Мы тут всю жизнь их воротим, тому примеры: фикс скинов от @alexandrage, изменение главного меню (удаление копирайтов, кнопка входа на сервер, скин, статичный фон...), удаление кнопок управления серверами в сетевой игре, etc.
    А для них это 3.14здец, нонсенс, деление на 0, конец света! Я, честно, впал в ступор, увидев насколько же они придурошные, Бог ты мой, подумать только! Что туши свет.

    Даже не разобрались. Я вообще-то как раз и хотел вернуть этот класс на стандартный, не тронутый мной, и спросил как. А они подумали, что я ещё только собираюсь совершить это "преступление" против всего человечества.

    Прошу, скажите как это исправить. Уже год "дрочу" на 1.7 *это гипербола, означающая просиживание штанов на 1.5.2* :D
     
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Ванга из меня никакой, может ты что то нето запускаешь?
     
  4. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Десять раз проверил, удалил другие клиенты. При чем засовываю свой ru_RU.lang и шрифты — они отображаются в игре, значит редактируется то что нужно. Согласен, бред какой-то. Кстати, потом доставал этот класс — все изменения на месте, а при запуске даже не стандартный, а один мой корявый, который тестил только.
     
  5. gamerforEA

    gamerforEA Старожил Пользователь

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Вы не пробовали перед сборкой удалить в папке build всё, кроме natives?
     
  6. Автор темы
    Bars

    Bars Старожил Девелопер Пользователь

    Баллы:
    173
    Так там же мои sources, как я их удалю. И вряд ли это из-за компиляции, ибо полученные классы, именно нужные, находятся в джарнике, только не работают. В libraries/net/minecraftforge их не нашел.
    Вот в чём магия, так это вот в чём.
    В главном классе я исправил mojang png -> onlymc.png (дабы ресурспаки не могли повлиять на сплеш) и изменил клавишу 48 (B), чтобы при нажатии выполнялась команда /menu.
    Однако бинд в игре работал, что свидетельствует об успешном изменении класса, но в качестве сплеша отображался всё равно mojang.png. Становится сразу ясно: при компиляции класс где-то проверяется, а не изменил ли я чего-нибудь моджанговского. Видимо этот «щит» и не даёт мне отказаться от биндов (я его вырезал, но когда заходишь на карту одиночки или на сервер, первым сообщением пишется «Неизвестная команда... Напишите хелп», типа она отправилась). Но это ещё что! Пользовался я поиском ВинРАРа, впечатал /menu и ни по одному классу он не был найден. Какая команда тогда может вообще отправляться? Что это за мэджик?
    Магии нет, вот дубина :D
    Уныло смотрю на полосу запуска LiteLoader в тайтл-скрине — и тут меня осиняет. Оукай, остались гр****ые бинды.
    Всё-таки если команда не отсылается при нажатии B, то она успешно вырезана. Заодно проверял декомпилятором.
    Но мне всё же удалось отдебажить, что за команда отсылается при входе...
    Код:
    // EntityClientPlayerMP
        /**
         * Sends a chat message from the player. Args: chatMessage
         */
        public void sendChatMessage(String p_71165_1_)
        {
            this.sendQueue.addToSendQueue(new C01PacketChatMessage(p_71165_1_));
            this.sendChatMessage(p_71165_1_.replaceAll("/", "_"));//TODO
        }
    Разве что только клиент крашнулся от такого мини-дебага :D
     

Поделиться этой страницей