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

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

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

  1. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Код:
    class Pinger extends Thread
    {
    
    }
    
    А если ты про именно нужный тебе (т.е. чтобы сделать все по туториалу), то создай его в пакете net.minecraft.client.gui, класс будет выглядет так:
    Код:
    package net.minecraft.client.gui;
    
    public class Pinger extends Thread
    {
    
    }
    
     
  2. Хостинг MineCraft
    <
  3. Автор темы
    gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Я все импорты добавлял средствами Eclipse - просто наводил на подчёркнутое название класса и выбирал нужный вариант исправления.
     
  4. godred2

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

    Баллы:
    78
    Спасибо[DOUBLEPOST=1421473385,1421471957][/DOUBLEPOST]
    Я правильно сделал?
    Код:
        package net.minecraft.client.gui;
        public class Pinger extends Thread
        {
       
        private volatile boolean finishedThread = false;
        private volatile boolean finishedPing = false;
        private volatile boolean offline = false;
        private volatile boolean sdWasUsed = false;
        private volatile boolean ping = false;
        private volatile ServerData sd;
      
        public Pinger() {
            this.setDaemon(true);
            this.setName("Pinger");
        }
      
        @Override
        public void run() {
            do if(this.finishedThread) return;
            else if(this.ping) {
                this.ping = false;
                this.offline = false;
                this.finishedPing = false;
                this.sdWasUsed = false;
                try {
                    GuiMultiplayer.func_74017_b(this.sd);
                } catch (Exception e) {
                    this.offline = true;
                }
                this.finishedPing = true;
            }
            while(true);
        }
        public void finish() {
            this.finishedThread = true;
        }
      
        public void setServerData(ServerData sd) {
            this.sdWasUsed = false;
            this.sd = sd;
        }
      
        public ServerData getServerData() {
            this.sdWasUsed = true;
            return this.sd;
        }
      
        public void ping() {
            this.ping = true;
        }
      
        public boolean isFinished() {
            return this.finishedPing;
        }
      
        public boolean isOffline() {
            return this.offline;
        }
      
        public boolean isUsed() {
            return this.sdWasUsed;
        }
        }
       
       
       
        private void connectToServer(ServerData par1ServerData)
        {
            this.mc.displayGuiScreen(new GuiConnecting(this, this.mc, par1ServerData));
        }
     
  5. alex0007

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

    Баллы:
    123
    Не подскажите что нужно написать в guibutton
     
  6. Автор темы
    gamerforEA

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

    Баллы:
    143
    Skype:
    sk2000sk1
    Имя в Minecraft:
    gamerforEA_MCPC
    Ничего. С чего вы взяли, что его нужно редактировать?
     
  7. godred2

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

    Баллы:
    78
    Error: Could not find or load main class Start
    Вот такая ошибка при попытки запустить клиент из Эклипс
    Что делать?
     
  8. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Ничего не делать. Ты же MCP юзаешь? Он очень плохо с eclipse работает теперь, запускать через него не рекомендую: отредактировал, если ошибок нет, то recompile.bat и startclient.bat
     
  9. alex0007

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

    Баллы:
    123
    Ошибка
    src\minecraft\net\minecraft\client\gui\GuiMainMenu.java:251: error: cannot find symbol

    updateButton.width = 50;

    ^

    symbol: variable width

    location: variable updateButton of type GuiButton

    Note: Some input files use unchecked or unsafe operations.

    Note: Recompile with -Xlint:unchecked for details.

    1 error
     
  10. godred2

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

    Баллы:
    78
    А как импорты делать?
    РЕШИЛ: Указал запуск 1.6.4 как главный класс.(Было почему-то 1.6.3)
     
    Последнее редактирование: 17 янв 2015
  11. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Зачем на меня батон крошишь? Я сказал, что надо там найти переменную, аналогичную width и использовать её! А не редактировать класс...[DOUBLEPOST=1421508671,1421508422][/DOUBLEPOST]
    Ручками, ручками, дыа.
    Код:
    ЧТО-ТО переменная = new ЧТО-ТО;
    означает, что надо импортировать класс ЧТО-ТО. Этот класс ЧТО-ТО ручками в проводнике ищешь, открываешь, вверху его пакет написан. Пишешь там, где импорт нужен:
    Код:
    import пакет.взятый.из.чего-то.ЧТО-ТО
    , где ЧТО-ТО - название импортируемого класса.
     
  12. godred2

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

    Баллы:
    78
    Пример можно?
     
  13. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Например, ты хочешь использовать
    Код:
    private ServerData sd = new ServerData("", "ip");
    private не означает импорт, а лишь то, что переменная sd может использоваться лишь в данном классе.
    ServerData. Это класс, который нам нужен. открываем в проводнике src/minecraft/net/minecraft и вбиваем в строку поиска "ServerData.java". Проводник находит этот класс. Открываем его и видим в самом верху:
    Код:
    package net.minecraft.client.multiplayer;
    Включаем мозг и понимаем, что импорт будет выглядеть так:
    Код:
    import net.minecraft.client.multiplayer.ServerData;
    Удачи :creeper:
     
  14. godred2

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

    Баллы:
    78
    Вот еще один вопрос:
    А если в serverdata так:
    Код:
    package net.minecraft.src;
    [DOUBLEPOST=1421511283,1421511206][/DOUBLEPOST]
    И куда саму строчку с импорт вставлять?
     
  15. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Первое. я рассказал, как это делается в 1.8 игры. В других версиях все аналогично: юзаешь то, что есть. У тебя 1.6.4 или ниже, следовательно, импорты могут и не понадобиться (не уверен). Тем не менее, делай как я сказал. Т.е. импорт будет таким:
    Код:
    import net.minecraft.src.ServerData;
    2. Куда вставлять? В начало класса (не в тело!). По простому - после package пакет;
     
  16. alex0007

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

    Баллы:
    123
    Можете дать уже готовый guimainmenu , что бы понять что нужно сделать
     
  17. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    Вот это поворот! Я на 1.8 работаю! Даже если бы работал на 1.6.4, не дал бы: не только здешние наработки присутствуют)
     
  18. alex0007

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

    Баллы:
    123
    Тогда скажи что нужно написать пожалуйста
     
  19. godred2

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

    Баллы:
    78
    Все сделал но вылезла ошибка:
    Код:
    Exception in thread "main" java.lang.UnsatisfiedLinkError: no lwjgl in java.library.path
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at org.lwjgl.Sys$1.run(Sys.java:73)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.lwjgl.Sys.doLoadLibrary(Sys.java:66)
        at org.lwjgl.Sys.loadLibrary(Sys.java:95)
        at org.lwjgl.Sys.<clinit>(Sys.java:112)
        at net.minecraft.src.Minecraft.getSystemTime(Minecraft.java:2364)
        at net.minecraft.client.main.Main.main(Main.java:36)
        at Start.main(Start.java:11)
    
     
  20. MrGiperCreeper

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

    Баллы:
    78
    Имя в Minecraft:
    Ivan_Alone
    no lwjgl in java.library.path
    Ничего не значит, не? Даже того, что в нужном месте нет библиотеки lwjgl?[DOUBLEPOST=1421511994,1421511841][/DOUBLEPOST]
    Да ешкин кот, все в туториале есть! Если ты не можешь банально повторить туториал или загуглить, как делать импорты - ничем помочь не могу, тебе нужно иметь хотя бы базовые знания Java или хотя-бы C-подобных языков программирования
     
  21. alex0007

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

    Баллы:
    123
    Я знаю как импорты делать , я сделал
    import net.minecraft.Pinger;
    import net.minecraft.client.multiplayer.GuiConnecting;
    import net.minecraft.client.multiplayer.ServerData;

    Что еще надо не пойму
     

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