Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Dismiss Notice

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

Discussion in 'Руководства, инструкции, утилиты' started by Spos, May 6, 2012.

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

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

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

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

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

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

    Trophy Points:
    88
    Сяп полезный гайд, а как сделать авто вход на сервер подскажите плизз
     
    Оригинало_о likes this.
  5. DaleMartinWatson

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

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

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

    Trophy Points:
    173
    Skype:
    D_ART98
    Имя в Minecraft:
    D_ART
    Ну так сделай кроссплатформенный вариант.

    Где то в классе utils у лаунчера нотча есть такой метод ;)
     
  7. Автор темы
    Spos

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

    Trophy Points:
    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() вроде все поятно объяснил онлайн буду ближайшее время мало но все равно спрашивай!
     
  8. Saver

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

    Trophy Points:
    61
    Там нету 1.2.5.Подскажите что-нибудь.
     
  9. asn007

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

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

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

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

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

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

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

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

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

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

    Trophy Points:
    88
    а как решить проблему?
     
    BleaZzZ likes this.
  14. DaleMartinWatson

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

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

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

    Trophy Points:
    88
    красава все робит +
     
  16. Dezy

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

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

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

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

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

    Trophy Points:
    68
    Делай сервер новый 1.2.5 устарел)
     
  19. InterWall

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

    Trophy Points:
    173
    Имя в Minecraft:
    InterWall
    Слушайте, а как тоже самое сделать на 1.5.2. Очень надо.
     
    RedEnergy likes this.
  20. alexandrage

    alexandrage Администратор

    Trophy Points:
    173
    Skype:
    alexandr0116
    Вот как то так нужно.

    Code:
    if (par1GuiButton.id == 20)
    {
    try {
    URI uri = new URI("http://www.site.ru");
    Desktop.getDesktop().browse(uri);
    } catch (Exception e) {
    }
    }
     
    Last edited: Jun 15, 2014
    MineMan910, Alexgrist and RedEnergy like this.
  21. caNek

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

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

Share This Page