eaglercraft-1.8/sources/main/java/net/lax1dude/eaglercraft/v1_8/ArrayUtils.java

81 lines
2.6 KiB
Java

package net.lax1dude.eaglercraft.v1_8;
import java.util.List;
import net.minecraft.client.settings.KeyBinding;
/**
* Copyright (c) 2022 lax1dude. All Rights Reserved.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
*/
public class ArrayUtils {
public static KeyBinding[] clone(KeyBinding[] keyBinding) {
KeyBinding[] clone = new KeyBinding[keyBinding.length];
System.arraycopy(keyBinding, 0, clone, 0, keyBinding.length);
return clone;
}
public static KeyBinding[] addAll(KeyBinding[] arr1, KeyBinding[] arr2) {
KeyBinding[] clone = new KeyBinding[arr1.length + arr2.length];
System.arraycopy(arr1, 0, clone, 0, arr1.length);
System.arraycopy(arr2, 0, clone, arr1.length, arr2.length);
return clone;
}
public static String[] subarray(String[] stackTrace, int i, int j) {
String[] ret = new String[j - i];
System.arraycopy(stackTrace, i, ret, 0, j - i);
return ret;
}
public static String asciiString(byte[] bytes) {
char[] str = new char[bytes.length];
for(int i = 0; i < bytes.length; ++i) {
str[i] = (char)((int) bytes[i] & 0xFF);
}
return new String(str);
}
public static byte[] asciiString(String string) {
byte[] str = new byte[string.length()];
for(int i = 0; i < str.length; ++i) {
str[i] = (byte)string.charAt(i);
}
return str;
}
private static final String hex = "0123456789abcdef";
public static String hexString(byte[] bytesIn) {
char[] ret = new char[bytesIn.length << 1];
for(int i = 0; i < bytesIn.length; ++i) {
ret[i << 1] = hex.charAt((bytesIn[i] >> 4) & 15);
ret[(i << 1) + 1] = hex.charAt(bytesIn[i] & 15);
}
return new String(ret);
}
public static <T> void eaglerShuffle(List<T> list, EaglercraftRandom rnd) {
T k;
for (int i = list.size() - 1, j; i > 0; --i) {
j = rnd.nextInt(i + 1);
k = list.get(j);
list.set(j, list.get(i));
list.set(i, k);
}
}
}