001    package net.minecraft.network.rcon;
002    
003    public class RConUtils
004    {
005        /** Translation array of decimal to hex digits */
006        public static char[] hexDigits = new char[] {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
007    
008        /**
009         * Read a null-terminated string from the given byte array
010         */
011        public static String getBytesAsString(byte[] par0ArrayOfByte, int par1, int par2)
012        {
013            int var3 = par2 - 1;
014            int var4;
015    
016            for (var4 = par1 > var3 ? var3 : par1; 0 != par0ArrayOfByte[var4] && var4 < var3; ++var4)
017            {
018                ;
019            }
020    
021            return new String(par0ArrayOfByte, par1, var4 - par1);
022        }
023    
024        /**
025         * Read 4 bytes from the
026         */
027        public static int getRemainingBytesAsLEInt(byte[] par0ArrayOfByte, int par1)
028        {
029            return getBytesAsLEInt(par0ArrayOfByte, par1, par0ArrayOfByte.length);
030        }
031    
032        /**
033         * Read 4 bytes from the given array in little-endian format and return them as an int
034         */
035        public static int getBytesAsLEInt(byte[] par0ArrayOfByte, int par1, int par2)
036        {
037            return 0 > par2 - par1 - 4 ? 0 : par0ArrayOfByte[par1 + 3] << 24 | (par0ArrayOfByte[par1 + 2] & 255) << 16 | (par0ArrayOfByte[par1 + 1] & 255) << 8 | par0ArrayOfByte[par1] & 255;
038        }
039    
040        /**
041         * Read 4 bytes from the given array in big-endian format and return them as an int
042         */
043        public static int getBytesAsBEint(byte[] par0ArrayOfByte, int par1, int par2)
044        {
045            return 0 > par2 - par1 - 4 ? 0 : par0ArrayOfByte[par1] << 24 | (par0ArrayOfByte[par1 + 1] & 255) << 16 | (par0ArrayOfByte[par1 + 2] & 255) << 8 | par0ArrayOfByte[par1 + 3] & 255;
046        }
047    
048        /**
049         * Returns a String representation of the byte in hexadecimal format
050         */
051        public static String getByteAsHexString(byte par0)
052        {
053            return "" + hexDigits[(par0 & 240) >>> 4] + hexDigits[par0 & 15];
054        }
055    }