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

Туториал [Мини урок] Создаем список серверов

Тема в разделе "Руководства, инструкции, утилиты", создана пользователем Raptor2108, 6 ноя 2012.

  1. godred2

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

    Баллы:
    78
    Понятно... Буду искать
     
  2. Хостинг MineCraft
    <
  3. ☺Sanya☺

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

    Баллы:
    61
    Имя в Minecraft:
    Sanya
    Проверка не требуется если ты сделал все как описано в теме тогда servers.dat вообще не нужен !
     
  4. Ascal Salmanov

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

    Баллы:
    78
     
  5. Dan_Romanenkov

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

    Баллы:
    103
    Здравствуйте, форумчане. Возник вопрос, решение которого пока не нашел. На форуме много уроков о том, как сделать список серверов не из server.dat, а вписать внутри кода. Так как на проекте несколько серверов с разными сборками будет муторно постоянно редактировать клиент. Поэтому хотел бы спросить, как заставить ServerList читать список из файла, загруженного в облако (на сайт например).

    Вот так выглядит мой вывод списка серверов локально (в принципе также как и описано в туториале):
    Код:
    ServerData[] server = {
        new ServerData("servername1", "localhost")
        new ServerData("servername2", "localhost")
        new ServerData("servername3", "localhost")
        };
        boolean hideAddress = true;
    }
    Варианты решения, написанные другими пользователями форуме:

    От ImAlive: Делай запрос к сайту и отдавай от него в удобном для чтения формате (например json) и читай на клиенте, после чего в цикле добавляй полученные данные в массив серверов.

    От alexandrage: Проще всего тупо в ланг-файл написать, там уже есть функция на чтение строки. Строку разбить на сплиты и прогнать массив в for(){}.

    (поковырявшись, понял второй, но это не совсем то, что нужно, ведь ланг-файл хранится в jar-нике игры)
     
  6. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    В этом и удобство же, в каждом джаре свой ланг файл. У себя так же юзаю, ток юзаю ланг форджа en_us.
     
  7. Dan_Romanenkov

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

    Баллы:
    103
    Фишка в том, что я хочу использовать это для таких ситуаций:

    - Поменял IP у серверов, а ведь обновить насильно у игроков нельзя ланг-файл, поэтому я иду в файлик на сайте, который грузит список и там меняю IP.

    - Или, например, добавит еще сервер одного направления, например, Magic #2 и опять же, обновить ланг-файл у игроков я не могу обычной перезагрузкой лаунчера, поэтому я просто меняю в файле на сайте и они даже этого не замечают.
     
  8. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Юзал ранее и такой вариант, но потом понял что лишнее, ибо на каждый сервер по клиенту. Да и джарник клиента перекачается лаунчером и все.
     
  9. Dan_Romanenkov

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

    Баллы:
    103
    Вы, видать, меня не поняли, джарник-то перезакачиваться не будет, в джарнике будет ссылка на файл из которого будет браться список серверов, на сайте будет лежать простой файлик с IP и названиями серверов. Мне надо так. =\
     
  10. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Так юзай, я тебе что мешаю.
     
  11. Dan_Romanenkov

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

    Баллы:
    103
    Нет, проблема-то в том, что я не могу этого сделать сам. :D[DOUBLEPOST=1422629018,1422366187][/DOUBLEPOST]
    Можешь свой способ объяснить (код там дать)? Использую его. Спасибо заранее.
     
  12. Flubox

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

    Баллы:
    78
    Имя в Minecraft:
    Mega_Boss
    [L] Minecraft Launcher [16;8] has initialized
    [L] Running under TLauncher 1.51 Legacy
    [L] Current machine: Windows 8.1 6.3 x32, Java 1.8.0_31, 3071 MB RAM
    [L] Collecting info...
    [L] Force update: false
    [L] Selected version: 1.6.4
    [L] Selected account: Account{displayName=Fluboxer, userid=Fluboxer, uuid=null, username=Fluboxer}
    [L] Version sync info: VersionSyncInfo{id='1.6.4',
    local=CompleteVersion{id='1.6.4', time=Wed Apr 02 14:00:00 MSK 2014, release=Thu Sep 19 19:52:37 MSK 2013, type=release, class=net.minecraft.client.main.Main, minimumVersion=4, assets='legacy', source=official_version_repo, list=net.minecraft.launcher.updater.OfficialVersionList@21ad9a, libraries=[Library{name='net.sf.jopt-simple:jopt-simple:4.5', rules=null, natives=null, extract=null, packed='null'}, Library{name='com.paulscode:codecjorbis:20101023', rules=null, natives=null, extract=null, packed='null'}, Library{name='com.paulscode:codecwav:20101023', rules=null, natives=null, extract=null, packed='null'}, Library{name='com.paulscode:libraryjavasound:20101123', rules=null, natives=null, extract=null, packed='null'}, Library{name='com.paulscode:librarylwjglopenal:20100824', rules=null, natives=null, extract=null, packed='null'}, Library{name='com.paulscode:soundsystem:20120107', rules=null, natives=null, extract=null, packed='null'}, Library{name='argo:argo:2.25_fixed', rules=null, natives=null, extract=null, packed='null'}, Library{name='org.bouncycastle:bcprov-jdk15on:1.47', rules=null, natives=null, extract=null, packed='null'}, Library{name='com.google.guava:guava:14.0', rules=null, natives=null, extract=null, packed='null'}, Library{name='org.apache.commons:commons-lang3:3.1', rules=null, natives=null, extract=null, packed='null'}, Library{name='commons-io:commons-io:2.4', rules=null, natives=null, extract=null, packed='null'}, Library{name='net.java.jinput:jinput:2.0.5', rules=null, natives=null, extract=null, packed='null'}, Library{name='net.java.jutils:jutils:1.0.0', rules=null, natives=null, extract=null, packed='null'}, Library{name='com.google.code.gson:gson:2.2.2', rules=null, natives=null, extract=null, packed='null'}, Library{name='org.lwjgl.lwjgl:lwjgl:2.9.0', rules=[Rule{action=ALLOW, os=null}, Rule{action=DISALLOW, os=OSRestriction{name=OSX, version='^10\.5\.\d$'}}], natives=null, extract=null, packed='null'}, Library{name='org.lwjgl.lwjgl:lwjgl_util:2.9.0', rules=[Rule{action=ALLOW, os=null}, Rule{action=DISALLOW, os=OSRestriction{name=OSX, version='^10\.5\.\d$'}}], natives=null, extract=null, packed='null'}, Library{name='org.lwjgl.lwjgl:lwjgl-platform:2.9.0', rules=[Rule{action=ALLOW, os=null}, Rule{action=DISALLOW, os=OSRestriction{name=OSX, version='^10\.5\.\d$'}}], natives={LINUX=natives-linux, WINDOWS=natives-windows, OSX=natives-osx}, extract=net.minecraft.launcher.versions.ExtractRules@1877ed9, packed='null'}, Library{name='org.lwjgl.lwjgl:lwjgl:2.9.1-nightly-20130708-debug3', rules=[Rule{action=ALLOW, os=OSRestriction{name=OSX, version='^10\.5\.\d$'}}], natives=null, extract=null, packed='null'}, Library{name='org.lwjgl.lwjgl:lwjgl_util:2.9.1-nightly-20130708-debug3', rules=[Rule{action=ALLOW, os=OSRestriction{name=OSX, version='^10\.5\.\d$'}}], natives=null, extract=null, packed='null'}, Library{name='org.lwjgl.lwjgl:lwjgl-platform:2.9.1-nightly-20130708-debug3', rules=[Rule{action=ALLOW, os=OSRestriction{name=OSX, version='^10\.5\.\d$'}}], natives={LINUX=natives-linux, WINDOWS=natives-windows, OSX=natives-osx}, extract=net.minecraft.launcher.versions.ExtractRules@7a97c3, packed='null'}, Library{name='net.java.jinput:jinput-platform:2.0.5', rules=null, natives={LINUX=natives-linux, WINDOWS=natives-windows, OSX=natives-osx}, extract=net.minecraft.launcher.versions.ExtractRules@1a7ef65, packed='null'}]},
    remote=PartialVersion{id='1.6.4', time=Wed Apr 02 14:00:00 MSK 2014, release=Thu Sep 19 19:52:37 MSK 2013, type=release, source=official_version_repo, list=net.minecraft.launcher.updater.OfficialVersionList@21ad9a}, isInstalled=true, hasRemote=true, isUpToDate=true}
    [L] Java path: C:\Program Files\Java\jre1.8.0_31\bin\javaw.exe
    [L] Checking conditions...
    [L] Comparing assets...
    [L] Delta time to compare assets: 443 ms.
    [L] Reconstructing virtual assets folder at C:\Users\1\AppData\Roaming\.minecraft\assets\virtual\legacy
    [L] Unpacking natives...
    [L] Constructing process...
    [L] Constructing classpath...
    [L] Half command (characters are not escaped):
    C:\Program Files\Java\jre1.8.0_31\bin\javaw.exe -Xmx512M -Djava.library.path=C:\Users\1\AppData\Roaming\.minecraft\versions\1.6.4\natives -cp C:\Users\1\AppData\Roaming\.minecraft\libraries\net\sf\jopt-simple\jopt-simple\4.5\jopt-simple-4.5.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\com\paulscode\codecjorbis\20101023\codecjorbis-20101023.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\com\paulscode\codecwav\20101023\codecwav-20101023.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\com\paulscode\libraryjavasound\20101123\libraryjavasound-20101123.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\com\paulscode\librarylwjglopenal\20100824\librarylwjglopenal-20100824.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\com\paulscode\soundsystem\20120107\soundsystem-20120107.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\argo\argo\2.25_fixed\argo-2.25_fixed.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\org\bouncycastle\bcprov-jdk15on\1.47\bcprov-jdk15on-1.47.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\com\google\guava\guava\14.0\guava-14.0.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\commons-io\commons-io\2.4\commons-io-2.4.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\net\java\jinput\jinput\2.0.5\jinput-2.0.5.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\net\java\jutils\jutils\1.0.0\jutils-1.0.0.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\com\google\code\gson\gson\2.2.2\gson-2.2.2.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl\2.9.0\lwjgl-2.9.0.jar;C:\Users\1\AppData\Roaming\.minecraft\libraries\org\lwjgl\lwjgl\lwjgl_util\2.9.0\lwjgl_util-2.9.0.jar;C:\Users\1\AppData\Roaming\.minecraft\versions\1.6.4\1.6.4.jar -Dfml.ignoreInvalidMinecraftCertificates=true -Dfml.ignorePatchDiscrepancies=true net.minecraft.client.main.Main
    [L] Getting Minecraft arguments...
    [L] Launching Minecraft...
    [L] Starting Minecraft 1.6.4...
    [L] Launching in: C:\Users\1\AppData\Roaming\.minecraft
    [L] Processing post-launch actions. Assist launch: true
    2015-01-30 18:26:40 [CLIENT] [INFO] Setting user: Fluboxer
    2015-01-30 18:26:40 [CLIENT] [INFO] (Session ID is null)
    2015-01-30 18:26:43 [CLIENT] [INFO] LWJGL Version: 2.9.0
    2015-01-30 18:26:47 [CLIENT] [INFO] Reloading ResourceManager: Default

    Starting up SoundSystem...
    Initializing LWJGL OpenAL
    (The LWJGL binding of OpenAL. For more information, see http://www.lwjgl.org)
    OpenAL initialized.

    ---- Minecraft Crash Report ----
    // Everything's going to plan. No, really, that was supposed to happen.

    Time: 30.01.15 18:26
    Description: Initializing game

    java.lang.SecurityException: SHA1 digest error for avn.class
    at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
    at java.util.jar.JarVerifier.processEntry(Unknown Source)
    at java.util.jar.JarVerifier.update(Unknown Source)
    at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
    at sun.misc.Resource.getBytes(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at atv.O(SourceFile:391)
    at atv.d(SourceFile:599)
    at net.minecraft.client.main.Main.main(SourceFile:101)


    A detailed walkthrough of the error, its code path and all known details is as follows:
    ---------------------------------------------------------------------------------------

    -- Head --
    Stacktrace:
    at sun.security.util.ManifestEntryVerifier.verify(Unknown Source)
    at java.util.jar.JarVerifier.processEntry(Unknown Source)
    at java.util.jar.JarVerifier.update(Unknown Source)
    at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source)
    at sun.misc.Resource.getBytes(Unknown Source)
    at java.net.URLClassLoader.defineClass(Unknown Source)
    at java.net.URLClassLoader.access$100(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at atv.O(SourceFile:391)

    -- Initialization --
    Details:
    Stacktrace:
    at atv.d(SourceFile:599)
    at net.minecraft.client.main.Main.main(SourceFile:101)

    -- System Details --
    Details:
    Minecraft Version: 1.6.4
    Operating System: Windows 8.1 (x86) version 6.3
    Java Version: 1.8.0_31, Oracle Corporation
    Java VM Version: Java HotSpot(TM) Client VM (mixed mode), Oracle Corporation
    Memory: 34704032 bytes (33 MB) / 66605056 bytes (63 MB) up to 518979584 bytes (494 MB)
    JVM Flags: 1 total; -Xmx512M
    AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
    Suspicious classes: No suspicious classes found.
    IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
    Launched Version: 1.6.4
    LWJGL: 2.9.0
    OpenGL: GeForce 7300 GS/PCIe/SSE2 GL version 2.1.2, NVIDIA Corporation
    Is Modded: Probably not. Jar signature remains and client brand is untouched.
    Type: Client (map_client.txt)
    Resource Pack: Default
    Current Language: English (US)
    Profiler Position: N/A (disabled)
    Vec3 Pool Size: ~~ERROR~~ NullPointerException: null
    #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\1\AppData\Roaming\.minecraft\crash-reports\crash-2015-01-30_18.26.53-client.txt
    AL lib: (EE) alc_cleanup: 1 device not closed
    [L] Launcher exited.
    [L] Minecraft closed with exit code: -1
    [Crash] Found crash report file: C:\Users\1\AppData\Roaming\.minecraft\crash-reports\crash-2015-01-30_18.26.53-client.txt


    Ты уверен, что ЭТО работает?
     
  13. Dan_Romanenkov

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

    Баллы:
    103
    Так можно попросить объяснения как сделано у тебя или попросить кинуть куда-нибудь код? Заранее спасибо.
     
  14. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    У меня так String ip = I18n.format("menu.ip", new Object[0]);
     
  15. Dan_Romanenkov

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

    Баллы:
    103
    Но ведь так придется постоянно изменять код, чтобы добавить сервер.
     
  16. alexandrage

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

    Баллы:
    173
    Skype:
    alexandr0116
    Так мне то ненужно в меню больше одного то. У меня 1 клиент на сервер.
    Тебе нужно разделить сплитами и получишь массив.
    serv1@serv2@serv3
    String[] servers = I18n.format("menu.ip", new Object[0]).split("@");
    for(String server : servers) {
    ....
    }
    Как то так.
     
  17. ms-dos95

    ms-dos95 Старожил Пользователь

    Баллы:
    103
    Skype:
    ms-dos95
    Имя в Minecraft:
    msdos95
    На всякий случай выложу этот код под версию 1.7.10. Все работает, кроме скрытие адреса в сетевой игре (Он будет скрыт всегда).
    Код:
    package net.minecraft.client.multiplayer;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import java.io.File;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import net.minecraft.client.Minecraft;
    import net.minecraft.nbt.CompressedStreamTools;
    import net.minecraft.nbt.NBTTagCompound;
    import net.minecraft.nbt.NBTTagList;
    import org.apache.logging.log4j.LogManager;
    import org.apache.logging.log4j.Logger;
    
    @SideOnly(Side.CLIENT)
    public class ServerList
    {
        private static final Logger logger = LogManager.getLogger();
        //*****************CONTROL PANEL**************************//
        ServerData[] server = {
       
        new ServerData("Server one", "localhost")
       
       
       
        };
       
    
    
        /** The Minecraft instance. */
        private final Minecraft mc;
        /** List of ServerData instances. */
        private final List servers = new ArrayList();
        private static final String __OBFID = "CL_00000891";
    
        public ServerList(Minecraft p_i1194_1_)
        {
            this.mc = p_i1194_1_;
            this.loadServerList();
        }
    
    
        /**
         * Loads a list of servers from servers.dat, by running ServerData.getServerDataFromNBTCompound on each NBT compound
         * found in the "servers" tag list.
         */
        public void loadServerList()
        {
            try
            {
                this.servers.clear();
                for(ServerData i : server)
                {       
                  this.servers.add(i); 
                }
               
               
    
            }
            catch (Exception var4)
            {
                var4.printStackTrace();
            }
        }
    
        /**
         * Runs getNBTCompound on each ServerData instance, puts everything into a "servers" NBT list and writes it to
         * servers.dat.
         */
        public void saveServerList()
        {
            try
            {
                NBTTagList nbttaglist = new NBTTagList();
                Iterator iterator = this.servers.iterator();
    
                while (iterator.hasNext())
                {
                    ServerData serverdata = (ServerData)iterator.next();
                    nbttaglist.appendTag(serverdata.getNBTCompound());
                }
    
                NBTTagCompound nbttagcompound = new NBTTagCompound();
                nbttagcompound.setTag("servers", nbttaglist);
                CompressedStreamTools.safeWrite(nbttagcompound, new File(this.mc.mcDataDir, "servers.dat"));
            }
            catch (Exception exception)
            {
                logger.error("Couldn\'t save server list", exception);
            }
        }
    
        /**
         * Gets the ServerData instance stored for the given index in the list.
         */
        public ServerData getServerData(int p_78850_1_)
        {
            return (ServerData)this.servers.get(p_78850_1_);
        }
    
        /**
         * Removes the ServerData instance stored for the given index in the list.
         */
        public void removeServerData(int p_78851_1_)
        {
            this.servers.remove(p_78851_1_);
        }
    
        /**
         * Adds the given ServerData instance to the list.
         */
        public void addServerData(ServerData p_78849_1_)
        {
            this.servers.add(p_78849_1_);
        }
    
        /**
         * Counts the number of ServerData instances in the list.
         */
        public int countServers()
        {
            return this.servers.size();
        }
    
        /**
         * Takes two list indexes, and swaps their order around.
         */
        public void swapServers(int p_78857_1_, int p_78857_2_)
        {
            ServerData serverdata = this.getServerData(p_78857_1_);
            this.servers.set(p_78857_1_, this.getServerData(p_78857_2_));
            this.servers.set(p_78857_2_, serverdata);
            this.saveServerList();
        }
    
        public void func_147413_a(int p_147413_1_, ServerData p_147413_2_)
        {
            this.servers.set(p_147413_1_, p_147413_2_);
        }
    
        public static void func_147414_b(ServerData p_147414_0_)
        {
            ServerList serverlist = new ServerList(Minecraft.getMinecraft());
            serverlist.loadServerList();
    
            for (int i = 0; i < serverlist.countServers(); ++i)
            {
                ServerData serverdata1 = serverlist.getServerData(i);
    
                if (serverdata1.serverName.equals(p_147414_0_.serverName) && serverdata1.serverIP.equals(p_147414_0_.serverIP))
                {
                    serverlist.func_147413_a(i, p_147414_0_);
                    break;
                }
            }
    
            serverlist.saveServerList();
        }
    }
     
  18. Doker96

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

    Баллы:
    78
    как на 1.7.10 настроить?
     
  19. Автор темы
    Raptor2108

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

    Баллы:
    173
    Skype:
    Raptor210818
    Имя в Minecraft:
    Raptor2108
    На пост выше выложили исходники GuiMultiplayer.java
     
  20. Teror2

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

    Баллы:
    103
    Имя в Minecraft:
    Teror2
  21. Kolobok96

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

    Баллы:
    88
    Skype:
    mr.mafan9
    Имя в Minecraft:
    mafan9
    Вот файл ServerListEntryLanScan.java, с помощью него убирается надоедливый поиск локальных серверов!
    Код:
    package net.minecraft.client.gui;
    
    import cpw.mods.fml.relauncher.Side;
    import cpw.mods.fml.relauncher.SideOnly;
    import net.minecraft.client.Minecraft;
    import net.minecraft.client.renderer.Tessellator;
    import net.minecraft.client.resources.I18n;
    
    @SideOnly(Side.CLIENT)
    public class ServerListEntryLanScan implements GuiListExtended.IGuiListEntry
    {
        //private final Minecraft field_148288_a = Minecraft.getMinecraft();
        private static final String __OBFID = "CL_00000815";
    
        public void drawEntry(int p_148279_1_, int p_148279_2_, int p_148279_3_, int p_148279_4_, int p_148279_5_, Tessellator p_148279_6_, int p_148279_7_, int p_148279_8_, boolean p_148279_9_)
        {
            //int l1 = p_148279_3_ + p_148279_5_ / 2 - this.field_148288_a.fontRenderer.FONT_HEIGHT / 2;
            //this.field_148288_a.fontRenderer.drawString(I18n.format("lanServer.scanning", new Object[0]), this.field_148288_a.currentScreen.width / 2 - this.field_148288_a.fontRenderer.getStringWidth(I18n.format("lanServer.scanning", new Object[0])) / 2, l1, 16777215);
            String s;
    
            switch ((int)(Minecraft.getSystemTime() / 300L % 4L))
            {
                case 0:
                default:
                    s = "O o o";
                    break;
                case 1:
                case 3:
                    s = "o O o";
                    break;
                case 2:
                    s = "o o O";
            }
    
            //this.field_148288_a.fontRenderer.drawString(s, this.field_148288_a.currentScreen.width / 2 - this.field_148288_a.fontRenderer.getStringWidth(s) / 2, l1 + this.field_148288_a.fontRenderer.FONT_HEIGHT, 8421504);
        }
    
        /**
         * Returns true if the mouse has been pressed on this control.
         */
        public boolean mousePressed(int p_148278_1_, int p_148278_2_, int p_148278_3_, int p_148278_4_, int p_148278_5_, int p_148278_6_)
        {
            return false;
        }
    
        /**
         * Fired when the mouse button is released. Arguments: index, x, y, mouseEvent, relativeX, relativeY
         */
        public void mouseReleased(int p_148277_1_, int p_148277_2_, int p_148277_3_, int p_148277_4_, int p_148277_5_, int p_148277_6_) {}
    }
     

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