Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

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

Как вам такой таблись )
7410da43e15f8aba1956cea0dac71645.png
Красота-а-а... Надо будет у себя сделать так. Правда много места будет занимать, но что-нибудь придумаю. :)
 
А где можно поиграть на сервере с таким замечательным таб-листом?)
Хотите декомпилировать клиент и извлечь код (лично у меня есть такая мысль)? Сомневаюсь, что получится.
 
Хотите декомпилировать клиент и извлечь код (лично у меня есть такая мысль)? Сомневаюсь, что получится.
Ну, в 1.8 почти также сделано. Можно декомпилировать 1.8 fernFlower'ом (без деобфускации) и вынуть оттуда этот код, пингер переделать можно и самому.
 
Ну, в 1.8 почти также сделано. Можно декомпилировать 1.8 fernFlower'ом (без деобфускации) и вынуть оттуда этот код, пингер переделать можно и самому.
Да? Это интересно.
P.S. Для 1.8 давно есть MCP.
 
Хотите декомпилировать клиент и извлечь код (лично у меня есть такая мысль)? Сомневаюсь, что получится.
Я тоже сомневаюсь, что у меня получится это осуществить, ибо @alexandrage любит всё обфусцировать... Хотя, скажем, стрингер снять я смогу)
 
@alexandrage, нужна ваша помощь!
Я собрал свой фордж 1.7.10, с нужными патчами, запустил установщик, и он установившись в папку .minecraft стабильно работает, но при установке его в ваш модифицированный лаунчер сашка выбивает следующий краш:
Running Minecraft
ERROR StatusLogger Unable to locate a logging implementation, using SimpleLogger
ERROR FML FML appears to be missing any signature data. This is not a good thing
ERROR LaunchWrapper Unable to launch java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at net.launcher.components.Game.<init>(Game.java:230)
at net.launcher.utils.UpdaterThread.run(UpdaterThread.java:101)
at net.launcher.utils.ThreadUtils.runUpdater(ThreadUtils.java:172)
at net.launcher.utils.ThreadUtils$2.run(ThreadUtils.java:127)
Caused by: java.lang.NoClassDefFoundError: net/minecraftforge/client/event/GuiOpenEvent
at net.minecraft.client.main.Main.main(SourceFile:72)
... 14 more
Caused by: java.lang.ClassNotFoundException: net.minecraftforge.client.event.GuiOpenEvent
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:191)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 15 more
Caused by: java.lang.NoSuchMethodError: org.objectweb.asm.tree.MethodInsnNode.<init>(ILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)V
at cpw.mods.fml.common.asm.transformers.EventSubscriptionTransformer.buildEvents(EventSubscriptionTransformer.java:144)
at cpw.mods.fml.common.asm.transformers.EventSubscriptionTransformer.transform(EventSubscriptionTransformer.java:63)
at net.minecraft.launchwrapper.LaunchClassLoader.runTransformers(LaunchClassLoader.java:279)
at net.minecraft.launchwrapper.LaunchClassLoader.findClass(LaunchClassLoader.java:176)
... 17 more

P.S. Классы проверил, все присутствуют, либы тоже пересобрал (форжевские).
Может аргументов для JVM не хватает, что вряд ли...
Help!!

Спасибо всем, разобрался сам, пересобрав библиотеки под новый форж.
 
Последнее редактирование:
Вопрос автору: как будет работать условие
Код:
if(this.pinger.isAlive()) {
, если пингер ранее не инициализирован? Код не компилил, но вроде же вывалится NullPointer, не?

UP: Ошибка только в туторе для 1.6.4
 
Вопрос автору: как будет работать условие
Код:
if(this.pinger.isAlive()) {
, если пингер ранее не инициализирован? Код не компилил, но вроде же вывалится NullPointer, не?

UP: Ошибка только в туторе для 1.6.4
Блин, постоянно забываю добавить проверку на null в туториал для 1.6.4. Спасибо, что напомнили. :)
 
Как загрузить текстуру кнопки обновить?
В файле GuiButtonLanguage.java ничего такого не нашёл.
 
Как загрузить текстуру кнопки обновить?
В файле GuiButtonLanguage.java ничего такого не нашёл.
Так, начну.... с начала! Все кнопки (текстуры) хранятся в файле widgets.png и надеваются через GuiButton.java.
Т.е. разработчики не дают способа поменять текстуру именно для кнопки языка. Но ее можно установить довольно-таки простыми методами:
1. Редактирование файла widgets.png. Тут все просто - берешь Photoshop или Paint.net и редактируешь, потом редактированный файл заменяешь. Но есть проблема: поставив ресурспак, кнопка языка, скорее всего, станет не твоей задуманной, а... кнопкой языка! Поэтому рекомендую второй метод.
2. Впиши этот код в начало тела класса GuiButtonLanguage.java:
Java:
  protected static final ResourceLocation buttonTextures = new ResourceLocation("textures/gui/my_best_widgets.png");
Здесь все просто: данный метод переназначает ресурс файла кнопки языка на тот, что указан в кавычках. Таким образом, ресурспаку не удастся заменить ваш файл! Далее вам остается лишь перерисовать кнопку языка в widgets.png и, переименовав этот файл в my_best_widgets.png, закинуть в minecraft.jar (условно назвал))) ).
 
Предполагаю, что у вас MCP. Вместо width попробуйте использовать field_146120_f.
Да, mcp
field_146120_f не особо помогло, т.к. первая кнопка слева нормального размера в половину а вторая полного и при изменениях там всё еще хуже становиться.
Не парился с этой темой и сделал так
Код:
        this.buttonList.add(new GuiButton(0, this.width / 2 - 100, var3 + 72 + 12, 98, 20, I18n.format("menu.options", new Object[0])));
        this.buttonList.add(new GuiButton(4, this.width / 2 + 2, var3 + 72 + 12, 98, 20, I18n.format("menu.quit", new Object[0])));
        this.buttonList.add(new GuiButton(100, this.width / 2 - 100, var3 + 42 + 12, 98, 20, "Наш сайт"));
        this.buttonList.add(new GuiButton(101, this.width / 2 + 2, var3 + 42 + 12, 98, 20, "Донат"));

PmuG5bp.png
 
Как убрать кнопку одиночная игра?
 

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

Назад
Верх