package cutthecord.commands.commands; import cutthecord.commands.CommandHandler; import lanchon.dexpatcher.annotation.DexAdd; @DexAdd public class CmdEmojify extends CommandHandler.Command { @DexAdd @Override public String handleCommand(String msg) { StringBuilder s = new StringBuilder(); for (char c : msg.toCharArray()) { s.append(emojifyChar(c)); } return s.toString(); } @DexAdd @Override public final String getPopupInfo() { return "Emojify text"; } @DexAdd final String[] numbers = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; @DexAdd public String emojifyChar(char c) { if (Character.isDigit(c)) { int i = Integer.parseInt(Character.toString(c)); return ":" + numbers[i] + ":"; } if (Character.isAlphabetic(c)) { if (c == 'b') { return ":b:"; } return ":regional_indicator_" + String.valueOf(c).toLowerCase() + ":"; } switch (c) { case '.': return ":record_button"; case '?': return ":grey_question:"; case '!': return ":grey_exclamation:"; } return Character.toString(c); } }