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

Туториал Как сделать кнопку "мой сайт"

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Spos, 6 май 2012.

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

    Spos Активный участник

    Баллы:
    68
    Всё что понадобится это сам клиент и MCP подходящий под версию клиента.
    Покажу на примере MC 1.2.5 добавление кнопки в главное меню.
    Декомпилируем MC с помощью MCP. В папке src получаем исходники.
    Находим файл src/minecraft/net/minecraft/src/GuiMainMenu.class
    Там есть метод public void initGui(). Он то нам и нужен
    Как видим из кода добавление кнопок происходит с помощью следующего метода.
    Код:
    controlList.add(<GuiButton>);
    И так добавим кнопку выше кнопки одиночной игры.
    например так:
    Код:
    controlList.add(new GuiButton(6, width / 2 - 100, i-24,"Мой сайт"));
    Здесь происходит создание объекта GuiButton
    Его параметры:
    Код:
    GuiButton(<id>,<x>,<y>,<text>)
    Таким образом мы добавили кнопку.
    Теперь ей нужно добавить обработчик.
    Смотрим ниже. Видим protected void actionPerformed(GuiButton par1GuiButton);
    Это метод обработки действий
    Добавляем обработчик своей кнопки, например так:
    Код:
    if (par1GuiButton.id == 6)
    {
      try {
        Process p = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler http://www.moysait.ru");
      }
      catch (IOException e) {
        e.printStackTrace();
      }
    }
    Здесь происходит просто открытие сайта в окне браузера по умолчанию.
    Осталось добавить необходимые инклуды
    Код:
    import java.lang.Runtime;
    import java.io.IOException;
    Сохраняем. Жмём recompile, reobfuscate. Находим скомпилированный класс в папке reobf. заменяем его в minecraft.jar. PROFIT!!!
     
    Hephest, serega6531, max--2 и 6 другим нравится это.
  2. AimFire

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

    Баллы:
    123
    Skype:
    aimfire7777
    Имя в Minecraft:
    AimFire
    Не понял вот от сюда
    Декомпилируем MC с помощью MCP. В папке src получаем исходники.
    Находим файл src/minecraft/net/minecraft/src/GuiMainMenu.class
    Там есть метод public void initGui(). Он то нам и нужен
     
  3. foJiG

    foJiG Активный участник

    Баллы:
    88
    Сяп полезный гайд, а как сделать авто вход на сервер подскажите плизз
     
    Оригинало_о нравится это.
  4. DaleMartinWatson

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

    Баллы:
    103
    Код:
    try {
        Process p = Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler http://www.moysait.ru");
      }
      catch (IOException e) {
        e.printStackTrace();
      }
    Хороший пример, как делать не стоит. У большинства это работать будет, но суть java в кроссплатформенности, а вы эту суть игнорируете.
     
    Сникерсни и The Midnight Wizard нравится это.
  5. D_ART

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

    Баллы:
    173
    Имя в Minecraft:
    Artarious
    Ну так сделай кроссплатформенный вариант.

    Где то в классе utils у лаунчера нотча есть такой метод ;)
     
    ВремяПриключений и xCKAYTz нравится это.
  6. Автор темы
    Spos

    Spos Активный участник

    Баллы:
    68


    Лан маленьгий мини гайд по декомпиляции MC(MC=MineCraft)

    1)качаем MCP нужной версии тут
    2)Распаковываем в какуюнить папку например в "МСР" .
    3)Засовываем папку "bin" (из .minecraft) в папку МСР/jars .
    4)Заходим в папку "МСР" жмем "decompile.bat" ждем около 1 минуты.
    5)Далее заходишь в МСР/ src/minecraft/net/minecraft/src/
    6)жмешь там ОДНОВРЕМЕННО ctrl+F и пишишь GuiMainMeu.java
    7)Открываешь с помощью нодпада и опять мешь там ОДНОВРЕМЕННО ctrl+F и пишишь там public void initGui() вроде все поятно объяснил онлайн буду ближайшее время мало но все равно спрашивай!
     
  7. Saver

    Saver Активный участник

    Баллы:
    61
    Там нету 1.2.5.Подскажите что-нибудь.
     
  8. asn007

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

    Баллы:
    173
    Skype:
    asn008
    Имя в Minecraft:
    asn007
    Можно же использовать LWJGL...
    PHP:
    import org.lwjgl.Sys;
    Sys.openUrl("http://nextgen.su");
    Алсо, в моем лаунчере есть метод Browse. Он кроссплатформенный :3
     
  9. asn007

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

    Баллы:
    173
    Skype:
    asn008
    Имя в Minecraft:
    asn007
    К сожалению игнорируется основной принцип Java - WORA (Write Once - Run Anywhere)
     
  10. iluha97

    iluha97 Активный участник

    Баллы:
    88
    спасибо за туториал, но можно вопрос? почему когда я запускаю decompile.bat у меня выдается ошибка
    [​IMG]

    P.s. minecraft нашел чистый (даже не русифицированный) версии 1.2.5 | MCP такой же версии
     
  11. DaleMartinWatson

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

    Баллы:
    103
    1.2.5 русифицированый по умолчанию. И в логе MCP написано, что есть свежие обновления.
     
  12. iluha97

    iluha97 Активный участник

    Баллы:
    88
    а как решить проблему?
     
    BleaZzZ нравится это.
  13. DaleMartinWatson

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

    Баллы:
    103
    Скачать действительно чистую версию клиента. И запустить updatemcp.bat в папке MCP.
     
  14. Gvines

    Gvines Активный участник Пользователь

    Баллы:
    88
    красава все робит +
     
  15. Dezy

    Dezy Активный участник Пользователь

    Баллы:
    63
    Skype:
    H-Boob
    Супер поставил +
     
  16. Автор темы
    Spos

    Spos Активный участник

    Баллы:
    68
    Как давно я не заходил в рубуккит...
     
  17. Автор темы
    Spos

    Spos Активный участник

    Баллы:
    68
    Делай сервер новый 1.2.5 устарел)
     
  18. InterWall

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

    Баллы:
    173
    Слушайте, а как тоже самое сделать на 1.5.2. Очень надо.
     
    RedEnergy нравится это.
  19. alexandrage

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

    Баллы:
    173
    Вот как то так нужно.

    Код:
    if (par1GuiButton.id == 20)
    {
    try {
    URI uri = new URI("http://www.site.ru");
    Desktop.getDesktop().browse(uri);
    } catch (Exception e) {
    }
    }
     
    Последнее редактирование: 15 июн 2014
    MineMan910, Alexgrist и RedEnergy нравится это.
  20. caNek

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

    Баллы:
    173
    Имя в Minecraft:
    AddyCool
    Косяк, раз мы декомпелируем то .java, а не .class
     

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