package me.fromgate.reactions.placeholders; import me.fromgate.reactions.util.Util; import org.bukkit.entity.Player; import java.util.regex.Pattern; @PlaceholderDefine(id = "Random", needPlayer = false, keys = {"RANDOM", "rnd"}) public class PlaceholderRandom extends Placeholder { private final static Pattern INT = Pattern.compile("\\d+"); private final static Pattern INT_MIN_MAX = Pattern.compile("\\d+\\-\\d+"); private final static Pattern WORD_LIST = Pattern.compile("[\\S,]*[\\S]"); @Override public String processPlaceholder(Player player, String key, String param) { return random(param); } private String random(String rndStr) { if (INT.matcher(rndStr).matches()) { return Integer.toString(Util.getRandomInt(Integer.parseInt(rndStr))); } if (INT_MIN_MAX.matcher(rndStr).matches()) { return Integer.toString(Util.getMinMaxRandom(rndStr)); } if (WORD_LIST.matcher(rndStr).matches()) { String[] ln = rndStr.split(","); if (ln.length == 0) return rndStr; return ln[Util.getRandomInt(ln.length)]; } return rndStr; } }