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

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

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

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

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

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

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

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

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

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

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

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

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

    Баллы:
    78
    thread - поток! )
     
  7. MrGiperCreeper

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

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

    В классе 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);
      }
      }
    И все! Надо только удалить кнопку риалмс и рекомпилить.
     
  8. 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]
     
  9. alexandrage

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

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

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    :cry::creeper:[DOUBLEPOST=1421388510,1421388390][/DOUBLEPOST]
    Ты делаешь forge мод в MCP, вот в чем ошибка)
     
  11. MrGiperCreeper

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

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

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Я тебе написал, как сделать Direct Connect в главном меню, а ты даже не заметил? 0_0[DOUBLEPOST=1421399243,1421396815][/DOUBLEPOST]
    Ну так что, помог? Просто я писал еще до @alexandrage, вот и интересуюсь: ты меня игноришь, тебе уже не нужен код или просто не заметил?
     
  13. alex0007

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

    Баллы:
    123
    Спасибо , попробую пересобрать
    Не подскажешь где у тебя в статье импорты написаны ? а то я видно слепой
    Добавил импорты serverdata и pinger и вот такя ошибка
    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:254: error: cannot find symbol

    updateButton.width = 50;

    ^

    symbol: variable width

    location: variable updateButton of type GuiButton

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

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

    ^

    symbol: variable FMLClientHandler

    location: class GuiMainMenu

    Note: Some input files use unchecked or unsafe operations.

    Note: Recompile with -Xlint:unchecked for details.

    2 errors
     
    Последнее редактирование: 16 янв 2015
  14. Автор темы
    gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Не редактируйте код вручную. Используйте Eclipse, чтобы видеть все ошибки, а так же знать, что они означают.
     
  15. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Редактируя код вручную, ты научишься сам исправлять ошибки. Вторую исправить легко - для подключения используй не
    Код:
    FMLClientHandler.instance().connectToServer(new GuiMultiplayer(this), this.sd);
    а
    Код:
    this.mc.displayGuiScreen(new GuiConnecting(this, this.mc, this.sd));
    На счет первой ошибки - ты должен найти аналогичную width переменную в классе GuiButton[DOUBLEPOST=1421425771,1421425689][/DOUBLEPOST]
    А может, и нет)
     
  16. alex0007

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

    Баллы:
    123
    Я сам пытаюсь понять что и как , но не хватает моих знаний что бы понять что делать с
     
  17. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Какая версия игры?
     
  18. alex0007

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

    Баллы:
    123
    1.7.10 forge
     
  19. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Как ты умудрился фордж 1.7.10 запихать в МСР? Ладно...
    Посмотри видео-урок, там есть импорты
     
  20. alex0007

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

    Баллы:
    123
    Видимо я вобще слепой либо что-то не понимаю , тут нету импортов

    Тут должно же быть что-то типо
    import net.minecraft.Pinger;
    import net.minecraft.client.multiplayer.ServerData;
     
  21. godred2

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

    Баллы:
    78
    Как создать класс Pinger, расширяющий класс Thread?
    Я в яве никак.
     

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