// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.util; import java.net.InetAddress; import java.util.StringTokenizer; public class StringUtils { public static String addWS(String s, int totalLen) { if (s.length() >= totalLen) { return s; } int diff = totalLen - s.length(); String out = s; for (int i = 0; i < diff; ++i) { out += " "; } return out; } public static String bannerize(String s, int totalLen) { if (s.length() >= totalLen) { return s; } int diff = totalLen - s.length(); int halfDiff = diff / 2; String side = ""; for (int i = 0; i < halfDiff; ++i) { side += "*"; } return side + ' ' + s + ' ' + side; } public static String InetAddressToClientString(InetAddress address) { return address.toString().replaceAll("/", ""); } public static String toHexString(int i) { return Integer.toHexString(i).toUpperCase(); } public static String toHexString(long l) { return Long.toHexString(l).toUpperCase(); } // Well done IDA Pro. public static int hashString(String toHash) { byte[] hashArray = toHash.getBytes(); int hash = 0; int shift = 0; if (hashArray.length == 8 ||hashArray.length == 7){ int ecx = 0; if (hashArray.length == 8){ ecx = hashArray[7]; } int eax = hashArray[4]; int esi = ecx * 0x8; eax ^= esi; ecx ^= 0x5A0; esi = hashArray[5]; eax <<= 4; eax ^= esi; esi = hashArray[6]; eax <<= 4; eax ^= esi; esi = hashArray[2]; eax <<= 5; eax ^= esi; esi = hashArray[1]; int edx = hashArray[0]; eax <<= 5; eax ^= esi; ecx /= 2; ecx /= 2; eax <<= 5; ecx ^= edx; eax ^= ecx; return eax; }else{ for (int i = 0; i 24){ int newShift = 0x20 - shift; int newShifted = toShift >> newShift; hash ^= newShifted; if (shift > 27){ shift -= 0x20; } } } return hash; } } public static String wordWrap(String text,int LineWidth) { StringTokenizer st=new StringTokenizer(text); int SpaceLeft=LineWidth; int SpaceWidth=80; String outString = ""; while(st.hasMoreTokens()) { String word=st.nextToken(); if((word.length()+SpaceWidth)>SpaceLeft) { outString+= '\n' +word+ ' '; SpaceLeft=LineWidth-word.length(); } else { outString+=word+ ' '; SpaceLeft-=(word.length()+SpaceWidth); } } return outString; } public static String truncate(String input, int length) { if (input != null && input.length() > length) input = input.substring(0, length); return input; } public static int wordCount(String input) { String workString = input.trim(); if (workString.isEmpty()) return 0; return workString.split("\\s+").length; } }