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

Туториал Делаем кнопки "Зайти на сервер", "Обновить" и отображение кол-ва игроков в гл. меню.

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем gamerforEA, 16 июн 2014.

  1. Artmoneyse

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

    Баллы:
    78
    Имя в Minecraft:
    Artmoneyse
    Ну вот же например так!
    Объявляем переменные
    Добавляем саму кнопку
    Добавляем код кнопки
     
  2. Bars

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

    Баллы:
    173
    Блин, ты людей вообще слушаешь?
    Мне нужно подключение НАПРЯМУЮ, где только один IP. Кстати, так было в версиях по 1.7.3b
    Я-то сделал, но прдключиться по указанному адресу или выйти назад не получается, при нажатии на кнопки ничего не происходит
     
  3. Автор темы
    gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    В шапке код для подключения напрямую, никакие прокси или что-то подобное не используется, IP только один. Что не устраивает?
     
  4. Bars

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

    Баллы:
    173
    Я ещё раз грю: НАПРЯМУЮ, как в сетевой игре: жмакаешь, ВВОДИШЬ айпи и нажимаешь подключиться. У игрока два варианта: либо подключаться из главного меню по кнопке из туториала, либо использовать клиент для подключения к другим серверам БЕЗ списка с добавлением/удалением
    Дома сделаю скриншоты
     
  5. Artmoneyse

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

    Баллы:
    78
    Имя в Minecraft:
    Artmoneyse
    Как всё запущено!
    Сделайте на каждый серв по кнопке! Зачем каждый раз вводить ip??
     
    Последнее редактирование: 27 дек 2014
  6. Автор темы
    gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Это называется не "напрямую", а "подключение с ручным вводом IP адреса".
     
  7. Bars

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

    Баллы:
    173
    @Artmoneyse, просто скажите что вы не умеете кодить и ничем не сможете помочь. Я хочу, чтобы через клиент иногда можно было заходить на небоевые (например, тестовые) наши сервера с моего клиента.

    @gamerforEA, вот это как раз называется напрямую (мета-сообщение: каким "rусификатором" вы пользуетесь вообще?). А то что в теме, называется подключением из главного меню. Всё, вы итак поняли что я имел в виду, и если не можете помочь - так и скажите, а болтовнёй и спорами как правильно ничего не добьёшься
     
  8. Автор темы
    gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    1. Помочь не могу.
    2. Какой дурак решил так обозвать подключение с ручным вводом адреса - не знаю, но с полной уверенностью могу сказать, что и то, что вам нужно, и то, что я описал в теме, можно считать подключением напрямую.
     
  9. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Не понял, а зачем создавать отдельный класс-файл для пингера? Почему не поместить его код в GuiMainMenu? Все же работает!
     
  10. Автор темы
    gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Не спорю, работает, но я не люблю делать "матрёшку" из классов (классы внутри классов).
     
  11. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    А, ок, не буду спорить с личным мнением человека)
     
  12. alexandrage

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

    Баллы:
    173
    Смысла нет, трейд создаст класс с доллором все равно.
     
  13. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    -facepalm-, а я говорил, что компилятор его не создаст? Я просто говорю, что не вижу !особого! смысла делать все в разных классах. Кстати, что такое трейд? Трейд - как бы торговля. XD
     
  14. Artmoneyse

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

    Баллы:
    78
    Имя в Minecraft:
    Artmoneyse
    thread - поток! )
     
  15. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    thread читается как "тред", а не "трейд"! Я английский, слава богу, знаю.
    Не, может @alexandrage и имел ввиду поток, но почему поток? Ведь классы создает компилятор java!
    В туториале для 1.7.10 тоже есть null ) Возможно это потому, что я использую код для 1.7.10 на 1.8, но все равно, null он и в 1.8 null
    Все, пардон за мнооооого ереси) Понял, когда столкнулся с проблемой XD. Оказывается, когда этот класс (если он в классе GuiMainMenu) при реобфускации сохраняется не как GuiMainMenu$Pinger.class, а просто Pinger.class. А так, как внутри класса нельзя вставлять 2 public - класса, он тупо становится невидимым для других классов)
    Сударь, как вы девелопером стали?) Это организовать проще простого! Вот тебе инструкция.

    В классе GuiMainMenu добавляем следующие импорты:
    Код:
    import net.minecraft.client.multiplayer.GuiConnecting;
    import net.minecraft.client.multiplayer.ServerData;
    Далее в теле класса создаем следующие поля (хз как правильно называть):
    Код:
      private ServerData selectedServer;
      private boolean directConnect;
      private ServerSelectionList serverListSelector;
    Теперь создаем простую кнопку (такой код заменит кнопку риалмс):
    Код:
     this.buttonList.add(new GuiButton(9999, this.width / 2 - 100, p_73969_1_ + p_73969_2_ * 2, I18n.format("Direct Connect", new Object[0])));
    Создаем обработчик кнопки (в методе actionPerformed):
    Код:
        if (button.id == 9999)
      {
      this.directConnect = true;
      this.mc.displayGuiScreen(new GuiScreenServerList(this, this.selectedServer = new ServerData(I18n.format("selectServer.defaultName", new Object[0]), "")));
      }
    Делаем обработчик этого обработчика (в методе confirmClicked, всовываем код в конец тела метода):
    Код:
    else if (this.directConnect)
      {
      this.directConnect = false;
    
      if (result)
      {
      this.mc.displayGuiScreen(new GuiConnecting(this, this.mc, this.selectedServer));
      }
      else
      {
      this.mc.displayGuiScreen(this);
      }
      }
    И все! Надо только удалить кнопку риалмс и рекомпилить.
     
  16. alex0007

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

    Баллы:
    123
    В чём ошибка?
    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:3: error: package cpw.mods.fml.client does not exist

    import cpw.mods.fml.client.FMLClientHandler;

    ^

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:4: error: package cpw.mods.fml.client does not exist

    import cpw.mods.fml.client.GuiModList;

    ^

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:5: error: package cpw.mods.fml.common does not exist

    import cpw.mods.fml.common.FMLCommonHandler;

    ^

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:6: error: package cpw.mods.fml.relauncher does not exist

    import cpw.mods.fml.relauncher.Side;

    ^

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:7: error: package cpw.mods.fml.relauncher does not exist

    import cpw.mods.fml.relauncher.SideOnly;

    ^

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:33: error: package net.minecraftforge.client does not exist

    import net.minecraftforge.client.ForgeHooksClient;

    ^

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:46: error: cannot find symbol

    @SideOnly(Side.CLIENT)

    ^

    symbol: class SideOnly

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:241: error: cannot find symbol

    this.field_92021_u = ((GuiButton)this.buttonList.get(0)).yPosition - 24;

    ^

    symbol: variable yPosition

    location: class GuiButton

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:265: error: cannot find symbol

    updateButton.width = 49;

    ^

    symbol: variable width

    location: variable updateButton of type GuiButton

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:269: error: cannot find symbol

    multiplayerButton.width = 149;

    ^

    symbol: variable width

    location: variable multiplayerButton of type GuiButton

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:325: error: cannot find symbol

    FMLClientHandler.instance().connectToServer(new GuiMultiplayer(this), this.sd);

    ^

    symbol: variable FMLClientHandler

    location: class GuiMainMenu

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:346: error: cannot find symbol

    this.mc.displayGuiScreen(new GuiModList(this));

    ^

    symbol: class GuiModList

    location: class GuiMainMenu

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:613: error: cannot find symbol

    ForgeHooksClient.renderMainMenu(this, fontRendererObj, width, height);

    ^

    symbol: variable ForgeHooksClient

    location: class GuiMainMenu

    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:621: error: cannot find symbol

    this.drawString(this.fontRendererObj, this.field_146972_A, (this.width - this.field_92024_r) / 2, ((GuiButton)this.buttonList.get(0)).yPosition - 12, -1);

    ^

    symbol: variable yPosition

    location: class GuiButton

    Note: Some input files use unchecked or unsafe operations.

    Note: Recompile with -Xlint:unchecked for details.

    14 errors./spoiler]
     
  17. alexandrage

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

    Баллы:
    173
    Ты только сейчас понял что многие получали плашку девел просто так... В то время как многие реальные кодеры без плашки все.
    Привыкай, ведро уже давно в говно скатилось.
     
  18. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    :cry::creeper:
    Ты делаешь forge мод в MCP, вот в чем ошибка)
     
  19. Bars

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

    Баллы:
    173
    Да, конечно, я тоже в своё время ныл по этому поводу, в этом ты копия меня. А нужно всего то было написать админу (я, чтоб уж наверняка, ещё перечислял свои заслуги перед сообществом), ибо он не будет и не должен парсить тысячи сообщений чтобы разобрать, а кому же это ему дать плашку, типа он только об этом и думает. Это не его работа. И что–то я тут не вижу плашек девелопера априори — их не так уж много, как ты тут раздуваешь. А я ещё за тебя хотел тогда ратовать, но подумал что «лучше пускай он сам напишет админу, а то тот мне ещё скажет что он [субъект ратования] не инвалид, сам напишет», и сочёл это безсмысленным
     
  20. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Я тебе помог, умник XD?
     

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