/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package com.ps.util; /** * * @author Admin */ public class vl64 { /* * vl64 encoding for habbo servers in Java * * @author Who ever wrote the C# version, Lord Jordan Porting */ public static String Encode(int i) { byte[] wf = new byte[6]; int pos = 0; int startPos = pos; int bytes = 1; int negativeMask = i >= 0 ? 0 : 4; i = Math.abs(i); wf[pos++] = (byte)(64 + (i & 3)); for (i >>= 2; i != 0; i >>= 6) { bytes++; wf[pos++] = (byte)(64 + (i & 0x3f)); } wf[startPos] = (byte)(wf[startPos] | bytes << 3 | negativeMask); String tmp = new String(wf); //encoder.GetString(wf); return tmp.replace("\0", ""); } public static int Decode(String data) { char[] chars; chars = data.toCharArray(); return Decode(chars); } public static int Decode(char[] raw) { try { int pos = 0; int v = 0; boolean negative = (raw[pos] & 4) == 4; int totalBytes = raw[pos] >> 3 & 7; v = raw[pos] & 3; pos++; int shiftAmount = 2; for (int b = 1; b < totalBytes; b++) { v |= (raw[pos] & 0x3f) << shiftAmount; shiftAmount = 2 + 6 * b; pos++; } if (negative == true) v *= -1; return v; } catch (Exception e) { return 0; } } }