Advertisement
Guest User

Untitled

a guest
Jan 4th, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.55 KB | None | 0 0
  1. package es.minetsii.SpongePlugin;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7.  
  8. import org.spongepowered.api.text.Text;
  9. import org.spongepowered.api.text.format.TextColor;
  10. import org.spongepowered.api.text.format.TextColors;
  11. import org.spongepowered.api.text.format.TextStyle;
  12. import org.spongepowered.api.text.format.TextStyles;
  13.  
  14. public class TextFactory {
  15.    
  16.     public static Map<String, TextColor> colors;
  17.     public static Map<String, TextStyle.Base> formats;
  18.    
  19.     static{
  20.         colors = new HashMap<String, TextColor>();
  21.        
  22.         colors.put("0", TextColors.BLACK);
  23.         colors.put("1", TextColors.DARK_BLUE);
  24.         colors.put("2", TextColors.DARK_GREEN);
  25.         colors.put("3", TextColors.DARK_AQUA);
  26.         colors.put("4", TextColors.DARK_RED);
  27.         colors.put("5", TextColors.DARK_PURPLE);
  28.         colors.put("6", TextColors.GOLD);
  29.         colors.put("7", TextColors.GRAY);
  30.         colors.put("8", TextColors.DARK_GRAY);
  31.         colors.put("9", TextColors.BLUE);
  32.         colors.put("a", TextColors.GREEN);
  33.         colors.put("b", TextColors.AQUA);
  34.         colors.put("c", TextColors.RED);
  35.         colors.put("d", TextColors.LIGHT_PURPLE);
  36.         colors.put("e", TextColors.YELLOW);
  37.         colors.put("f", TextColors.WHITE);
  38.        
  39.         formats = new HashMap<String, TextStyle.Base>();
  40.        
  41.         formats.put("l", TextStyles.BOLD);
  42.         formats.put("r", TextStyles.RESET);
  43.         formats.put("k", TextStyles.OBFUSCATED);
  44.         formats.put("m", TextStyles.STRIKETHROUGH);
  45.         formats.put("n", TextStyles.UNDERLINE);
  46.         formats.put("o", TextStyles.ITALIC);
  47.     }
  48.    
  49.     public static Text sendToFactory(String s){
  50.         s = s+"&f";
  51.         List<Text> list = new ArrayList<Text>();
  52.         int l = 0;
  53.         TextColor lastc = TextColors.NONE;
  54.         TextStyle lasts = TextStyles.NONE;
  55.         for(int i = 0; i < s.length(); i++){
  56.             char c = s.charAt(i);
  57.             if(c == '&'){
  58.                 if(colors.containsKey(String.valueOf(s.charAt(i+1)))){
  59.                     if(i > 0) list.add(Text.builder(s.substring(l+1, i)).color(lastc).style(lasts).build());
  60.                     lastc = colors.get(String.valueOf(s.charAt(i+1)));
  61.                     lasts = TextStyles.NONE;
  62.                     i++;
  63.                     l = i;
  64.                 }
  65.                 else if(formats.containsKey(String.valueOf(s.charAt(i+1)))){
  66.                     if(i > 0) list.add(Text.builder(s.substring(l+1, i)).color(lastc).style(lasts).build());
  67.                     lasts = formats.get(String.valueOf(s.charAt(i+1)));
  68.                     if(lasts.equals(TextStyles.RESET))
  69.                         lastc = TextColors.NONE;
  70.                     i++;
  71.                     l = i;
  72.                 }
  73.             }
  74.         }
  75.         if(!s.isEmpty())
  76.             list.add(Text.builder(s.substring(l, s.length()-1)).color(lastc).build());
  77.         Text out = Text.builder().append(list).build();
  78.         return out;
  79.     }
  80.    
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement