Chiddix

TextUtils

Apr 30th, 2011
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.68 KB | None | 0 0
  1. import sign.signlink;
  2.  
  3. public final class TextUtils {
  4.  
  5.     /**
  6.      * A array of all of the valid characters.
  7.      */
  8.     private static final char VALID_CHARACTERS[] = { '_', 'a', 'b', 'c', 'd',
  9.             'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
  10.             'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '0', '1', '2', '3',
  11.             '4', '5', '6', '7', '8', '9' };
  12.  
  13.     /**
  14.      * Replaces the player's password with asterisks.
  15.      *
  16.      * @param password
  17.      *            The password.
  18.      * @return The password as asterisks.
  19.      */
  20.     public static String censorPassword(String password) {
  21.         StringBuffer stringBuffer = new StringBuffer();
  22.         for (int i = 0; i < password.length(); i++)
  23.             stringBuffer.append("*");
  24.  
  25.         return stringBuffer.toString();
  26.     }
  27.  
  28.     /**
  29.      * Decodes a player's encoded IP address.
  30.      *
  31.      * @param address
  32.      *            The encoded IP address.
  33.      * @return The decoded IP address.
  34.      */
  35.     public static String decodeAddress(int address) {
  36.         return (address >> 24 & 0xff) + "." + (address >> 16 & 0xff) + "."
  37.                 + (address >> 8 & 0xff) + "." + (address & 0xff);
  38.     }
  39.  
  40.     /**
  41.      * Encodes a sprite's name.
  42.      *
  43.      * @param spriteName
  44.      *            The decoded name.
  45.      * @return The encoded name.
  46.      */
  47.     public static long encodeSpriteName(String spriteName) {
  48.         spriteName = spriteName.toUpperCase();
  49.         long value = 0L;
  50.         for (int i = 0; i < spriteName.length(); i++) {
  51.             value = (value * 61L + spriteName.charAt(i)) - 32L;
  52.             value = value + (value >> 56) & 0xffffffffffffffL;
  53.         }
  54.         return value;
  55.     }
  56.  
  57.     /**
  58.      * Formats the player's name capitalization and spacing.
  59.      *
  60.      * @param name
  61.      *            The name being formated.
  62.      * @return The formated name.
  63.      */
  64.     public static String formatName(String name) {
  65.         if (name.length() > 0) {
  66.             char nameArray[] = name.toCharArray();
  67.             for (int i = 0; i < nameArray.length; i++)
  68.                 if (nameArray[i] == '_') {
  69.                     nameArray[i] = ' ';
  70.                     if (i + 1 < nameArray.length && nameArray[i + 1] >= 'a'
  71.                             && nameArray[i + 1] <= 'z')
  72.                         nameArray[i + 1] = (char) ((nameArray[i + 1] + 65) - 97);
  73.                 }
  74.  
  75.             if (nameArray[0] >= 'a' && nameArray[0] <= 'z')
  76.                 nameArray[0] = (char) ((nameArray[0] + 65) - 97);
  77.             return new String(nameArray);
  78.         } else {
  79.             return name;
  80.         }
  81.     }
  82.  
  83.     /**
  84.      * Converts a player's name to a long.
  85.      *
  86.      * @param name
  87.      *            The name as a long.
  88.      * @return The name as a string.
  89.      */
  90.     public static String longToName(long name) {
  91.         try {
  92.             if (name <= 0L || name >= 0x5b5b57f8a98a5dd1L || name % 37L == 0L)
  93.                 return "invalid_name";
  94.             int length = 0;
  95.             char value[] = new char[12];
  96.             while (name != 0L) {
  97.                 long original = name;
  98.                 name /= 37L;
  99.                 value[11 - length++] = VALID_CHARACTERS[(int) (original - name * 37L)];
  100.             }
  101.             return new String(value, 12 - length, length);
  102.         } catch (RuntimeException runtimeexception) {
  103.             signlink
  104.                     .reporterror("Error while converting a long to a name. Name: "
  105.                             + name + " " + runtimeexception.toString());
  106.         }
  107.         throw new RuntimeException();
  108.     }
  109.  
  110.     /**
  111.      * Converts a player's name to a long.
  112.      *
  113.      * @param name
  114.      *            The name as a string.
  115.      * @return The name as a long.
  116.      */
  117.     public static long nameToLong(String name) {
  118.         long value = 0L;
  119.         for (int i = 0; i < name.length() && i < 12; i++) {
  120.             char currentChar = name.charAt(i);
  121.             value *= 37L;
  122.             if (currentChar >= 'A' && currentChar <= 'Z')
  123.                 value += (1 + currentChar) - 65;
  124.             else if (currentChar >= 'a' && currentChar <= 'z')
  125.                 value += (1 + currentChar) - 97;
  126.             else if (currentChar >= '0' && currentChar <= '9')
  127.                 value += (27 + currentChar) - 48;
  128.         }
  129.  
  130.         while (value % 37L == 0L && value != 0L)
  131.             value /= 37L;
  132.         return value;
  133.     }
  134.  
  135. }
Advertisement
Add Comment
Please, Sign In to add comment