package cn.citycraft.LuckLottery.utils; import java.security.SecureRandom; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; import cn.citycraft.LuckLottery.LuckLottery; import cn.citycraft.LuckLottery.config.PlayerData; import cn.citycraft.LuckLottery.runnable.LotteryReward; public class LotteryUtils { protected static LuckLottery plugin = LuckLottery.plugin; protected static List systemLottery = new ArrayList(); protected static boolean numbersame; protected static int price; protected final static Random rnd = new SecureRandom(); public static void clearPlayerLottery(final CommandSender sender) { ChatUtils.sendMessage(sender, "§c提示: 已清除所有玩家彩票数据..."); PlayerData.clearLottery(); } public static int getPrice() { return price; } public static List getRandomNumber() { final List normal = new ArrayList(); for (int i = 1; i < 8; i++) { String rr = rnd.nextInt(32) + 1 + ""; while (normal.contains(rr)) { rr = rnd.nextInt(32) + 1 + ""; } normal.add(rr); } return normal; } public static int getSameNumber(final List lottery) { return getSameNumber(lottery, systemLottery); } public static int getSameNumber(final List lottery, final List system) { int samenum = 0; if (numbersame) { for (int i = 0; i < lottery.size(); i++) { if (lottery.get(i).equals(system.get(i))) { samenum++; } } } else { for (final String pn : lottery) { for (final String sn : system) { if (pn.equals(sn)) { samenum++; } } } } if (lottery.get(lottery.size() - 1).equalsIgnoreCase(system.get(system.size() - 1))) { samenum += 9; } return samenum; } public static int getSameNumber(final String lottery) { return getSameNumber(Arrays.asList(lottery.split("-")), systemLottery); } public static List getSystemLottery() { return systemLottery; } /** * @return numbersame */ public static boolean isNumbersame() { return numbersame; } public static void rewardLastLottery() { Bukkit.getServer().getScheduler().runTaskAsynchronously(plugin, new LotteryReward(plugin, true)); } /** * @param numbersame * 要设置的 numbersame */ public static void setNumbersame(final boolean numbersame) { LotteryUtils.numbersame = numbersame; } public static void setPrice(final int price) { LotteryUtils.price = price; } public static void setSystemLottery(final List systemLottery) { LotteryUtils.systemLottery = systemLottery; } public static void showSystemLottery(final CommandSender p) { ChatUtils.sendMessage(p, ChatColor.DARK_PURPLE + "此轮彩票号码为: " + ChatColor.YELLOW + LotteryUtils.systemLottery.toString()); } public static void updateSystemLottery() { LotteryUtils.systemLottery = LotteryUtils.getRandomNumber(); } public static void updateSystemLottery(final CommandSender p) { LotteryUtils.systemLottery = LotteryUtils.getRandomNumber(); ChatUtils.sendMessage(p, ChatColor.BLUE + "已随机生成彩票: " + ChatColor.YELLOW + LotteryUtils.systemLottery.toString()); } }