package net.minecraft.network.rcon;
import com.google.common.base.Charsets;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
@SideOnly(Side.SERVER)
public class RConUtils
{
/** Translation array of decimal to hex digits */
public static char[] hexDigits = new char[] {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'};
private static final String __OBFID = "CL_00001799";
/**
* Read a null-terminated string from the given byte array
*/
public static String getBytesAsString(byte[] p_72661_0_, int p_72661_1_, int p_72661_2_)
{
int k = p_72661_2_ - 1;
int l;
for (l = p_72661_1_ > k ? k : p_72661_1_; 0 != p_72661_0_[l] && l < k; ++l)
{
;
}
return new String(p_72661_0_, p_72661_1_, l - p_72661_1_, Charsets.UTF_8);
}
/**
* Read 4 bytes from the
*/
public static int getRemainingBytesAsLEInt(byte[] p_72662_0_, int p_72662_1_)
{
/**
* Read 4 bytes from the given array in little-endian format and return them as an int
*/
return getBytesAsLEInt(p_72662_0_, p_72662_1_, p_72662_0_.length);
}
/**
* Read 4 bytes from the given array in little-endian format and return them as an int
*/
public static int getBytesAsLEInt(byte[] p_72665_0_, int p_72665_1_, int p_72665_2_)
{
return 0 > p_72665_2_ - p_72665_1_ - 4 ? 0 : p_72665_0_[p_72665_1_ + 3] << 24 | (p_72665_0_[p_72665_1_ + 2] & 255) << 16 | (p_72665_0_[p_72665_1_ + 1] & 255) << 8 | p_72665_0_[p_72665_1_] & 255;
}
/**
* Read 4 bytes from the given array in big-endian format and return them as an int
*/
public static int getBytesAsBEint(byte[] p_72664_0_, int p_72664_1_, int p_72664_2_)
{
return 0 > p_72664_2_ - p_72664_1_ - 4 ? 0 : p_72664_0_[p_72664_1_] << 24 | (p_72664_0_[p_72664_1_ + 1] & 255) << 16 | (p_72664_0_[p_72664_1_ + 2] & 255) << 8 | p_72664_0_[p_72664_1_ + 3] & 255;
}
/**
* Returns a String representation of the byte in hexadecimal format
*/
public static String getByteAsHexString(byte input)
{
return "" + hexDigits[(input & 240) >>> 4] + hexDigits[input & 15];
}
}