mirror of
http://git.eaglercraft.rip/eaglercraft/eaglercraft-1.8.git
synced 2025-04-29 01:51:58 -05:00
108 lines
3.2 KiB
Java
108 lines
3.2 KiB
Java
package net.lax1dude.eaglercraft.v1_8;
|
|
|
|
import java.nio.charset.StandardCharsets;
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.regex.Pattern;
|
|
|
|
import net.lax1dude.eaglercraft.v1_8.internal.PlatformRuntime;
|
|
|
|
/**
|
|
* Copyright (c) 2022-2023 lax1dude, ayunami2000. 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 EagUtils {
|
|
|
|
private static final String hex = "0123456789ABCDEF";
|
|
public static final Pattern splitPattern = Pattern.compile("(\\r\\n|\\n|\\r)");
|
|
|
|
public static String hexString(int value, int digits) {
|
|
String ret = "";
|
|
for(int i = 0, l = digits << 2; i < l; i += 4) {
|
|
ret = hex.charAt((value >> i) & 0xF) + ret;
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
public static String[] linesArray(String input) {
|
|
return splitPattern.split(input);
|
|
}
|
|
|
|
public static List<String> linesList(String input) {
|
|
return Arrays.asList(splitPattern.split(input));
|
|
}
|
|
|
|
public static int decodeHex(CharSequence num) {
|
|
int ret = 0;
|
|
for(int i = 0, l = num.length(); i < l; ++i) {
|
|
ret = ret << 4;
|
|
int v = hex.indexOf(num.charAt(i));
|
|
if(v >= 0) {
|
|
ret |= v;
|
|
}
|
|
}
|
|
return ret;
|
|
}
|
|
|
|
public static int decodeHexByte(CharSequence str, int off) {
|
|
return str.length() < off + 2 ? decodeHex(str.subSequence(off, 2)) : 0;
|
|
}
|
|
|
|
public static void sleep(int millis) {
|
|
PlatformRuntime.sleep(millis);
|
|
}
|
|
|
|
public static void sleep(long millis) {
|
|
int reduced = (int)millis;
|
|
if(reduced != millis) throw new IllegalArgumentException();
|
|
PlatformRuntime.sleep(reduced);
|
|
}
|
|
|
|
public static String toASCIIEagler(String str) {
|
|
char[] ascii = new char[str.length()];
|
|
for(int i = 0; i < ascii.length; ++i) {
|
|
int c = (int)str.charAt(i);
|
|
if(c < 32 || c > 126) {
|
|
ascii[i] = '_';
|
|
}else {
|
|
ascii[i] = (char)c;
|
|
}
|
|
}
|
|
return new String(ascii);
|
|
}
|
|
|
|
public static void validateASCIIEagler(String str) {
|
|
for(int i = 0, l = str.length(); i < l; ++i) {
|
|
int c = (int)str.charAt(i);
|
|
if(c < 32 || c > 126) {
|
|
throw new IllegalArgumentException("invalid ascii");
|
|
}
|
|
}
|
|
}
|
|
|
|
public static EaglercraftUUID makeClientBrandUUID(String name) {
|
|
return EaglercraftUUID.nameUUIDFromBytes(("EaglercraftXClient:" + name).getBytes(StandardCharsets.UTF_8));
|
|
}
|
|
|
|
public static EaglercraftUUID makeClientBrandUUIDLegacy(String name) {
|
|
return EaglercraftUUID.nameUUIDFromBytes(("EaglercraftXClientOld:" + name).getBytes(StandardCharsets.UTF_8));
|
|
}
|
|
|
|
public static void sleepPrint(String string) {
|
|
System.out.println(string);
|
|
PlatformRuntime.sleep(500);
|
|
}
|
|
|
|
}
|