LuckLottery/src/main/java/pw/yumc/LuckLottery/utils/LotteryUtils.java

120 lines
3.8 KiB
Java

package pw.yumc.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 pw.yumc.LuckLottery.LuckLottery;
import pw.yumc.LuckLottery.config.PlayerData;
import pw.yumc.LuckLottery.runnable.LotteryReward;
public class LotteryUtils {
protected static LuckLottery plugin = LuckLottery.plugin;
protected static List<String> systemLottery = new ArrayList<String>();
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<String> getRandomNumber() {
final List<String> normal = new ArrayList<String>();
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<String> lottery) {
return getSameNumber(lottery, systemLottery);
}
public static int getSameNumber(final List<String> lottery, final List<String> 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<String> 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<String> 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());
}
}