add VersionChecker and fix LotteryNumber Error...
Signed-off-by: j502647092 <jtb1@163.com>master
parent
4207a6557c
commit
6f927531d6
|
@ -1,8 +1,6 @@
|
|||
package cn.citycraft.LuckLottery;
|
||||
|
||||
import net.milkbowl.vault.chat.Chat;
|
||||
import net.milkbowl.vault.economy.Economy;
|
||||
import net.milkbowl.vault.permission.Permission;
|
||||
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
import org.bukkit.plugin.RegisteredServiceProvider;
|
||||
|
@ -16,12 +14,11 @@ import cn.citycraft.LuckLottery.listen.PlayerListen;
|
|||
import cn.citycraft.LuckLottery.runnable.LotteryReward;
|
||||
import cn.citycraft.LuckLottery.utils.ChatUtils;
|
||||
import cn.citycraft.LuckLottery.utils.LotteryUtils;
|
||||
import cn.citycraft.LuckLottery.utils.VersionChecker;
|
||||
|
||||
public class LuckLottery extends JavaPlugin {
|
||||
public static boolean isEconomy;
|
||||
public static Permission permission = null;
|
||||
public static Economy economy = null;
|
||||
public static Chat chat = null;
|
||||
public static LuckLottery plugin;
|
||||
|
||||
@Override
|
||||
|
@ -34,7 +31,7 @@ public class LuckLottery extends JavaPlugin {
|
|||
@Override
|
||||
public void onEnable() {
|
||||
PluginManager pm = this.getServer().getPluginManager();
|
||||
if (!pm.getPlugin("Vault").isEnabled()) {
|
||||
if (pm.getPlugin("Vault") == null && !pm.getPlugin("Vault").isEnabled()) {
|
||||
this.getLogger().warning("未找到前置插件Vault 关闭插件...");
|
||||
this.getServer().getPluginManager().disablePlugin(this);
|
||||
return;
|
||||
|
@ -51,6 +48,7 @@ public class LuckLottery extends JavaPlugin {
|
|||
this.getServer().getScheduler()
|
||||
.runTaskTimer(plugin, new LotteryReward(true), 10, rewardtime * 60 * 20);
|
||||
this.getLogger().info("彩票系统已开启...");
|
||||
new VersionChecker(this);
|
||||
pm.registerEvents(new PlayerListen(), this);
|
||||
getCommand("ll").setExecutor(new LuckLotteryCommand(this));
|
||||
}
|
||||
|
@ -63,21 +61,10 @@ public class LuckLottery extends JavaPlugin {
|
|||
PlayerDate.load(this);
|
||||
LotteryUtils.reloadPlayerLottery();
|
||||
ChatUtils.setPluginname(Config.getMessage("pluginname"));
|
||||
|
||||
LotteryUtils.setNumbersame(Config.getInstance().getBoolean("numbersame"));
|
||||
LotteryUtils.setPrice(Config.getInstance().getInt("price"));
|
||||
}
|
||||
|
||||
public boolean setupChat() {
|
||||
RegisteredServiceProvider<Chat> chatProvider = getServer().getServicesManager()
|
||||
.getRegistration(net.milkbowl.vault.chat.Chat.class);
|
||||
if (chatProvider != null) {
|
||||
chat = chatProvider.getProvider();
|
||||
}
|
||||
|
||||
return (chat != null);
|
||||
}
|
||||
|
||||
public boolean setupEconomy() {
|
||||
RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager()
|
||||
.getRegistration(net.milkbowl.vault.economy.Economy.class);
|
||||
|
@ -86,15 +73,4 @@ public class LuckLottery extends JavaPlugin {
|
|||
}
|
||||
return (economy != null);
|
||||
}
|
||||
|
||||
public boolean setupPermissions() {
|
||||
RegisteredServiceProvider<Permission> permissionProvider = getServer().getServicesManager()
|
||||
.getRegistration(net.milkbowl.vault.permission.Permission.class);
|
||||
if (permissionProvider != null) {
|
||||
permission = permissionProvider.getProvider();
|
||||
}
|
||||
return (permission != null);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,130 +1,97 @@
|
|||
package cn.citycraft.LuckLottery.listen;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import cn.citycraft.LuckLottery.LuckLottery;
|
||||
import cn.citycraft.LuckLottery.config.OfflineDate;
|
||||
import cn.citycraft.LuckLottery.runnable.LaterShow;
|
||||
import cn.citycraft.LuckLottery.utils.ChatUtils;
|
||||
import cn.citycraft.LuckLottery.utils.InvUtils;
|
||||
import cn.citycraft.LuckLottery.utils.LotteryUtils;
|
||||
|
||||
public class PlayerListen implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGH)
|
||||
public void onPlayerInteract(PlayerJoinEvent e) {
|
||||
Player p = e.getPlayer();
|
||||
List<String> messages = OfflineDate.getMessage(p.getName());
|
||||
if (messages != null && !messages.isEmpty()) {
|
||||
Bukkit.getServer()
|
||||
.getScheduler()
|
||||
.runTaskLaterAsynchronously(LuckLottery.plugin,
|
||||
new LaterShow(p, messages), 5);
|
||||
OfflineDate.getInstance().set(p.getName(), null);
|
||||
OfflineDate.save();
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onInventoryClick(InventoryClickEvent e) {
|
||||
if (InvUtils.isLotteryGUI(e.getInventory())) {
|
||||
e.setCancelled(true);
|
||||
Player p = (Player) e.getWhoClicked();
|
||||
ItemStack ci = e.getCurrentItem();
|
||||
Inventory inv = e.getInventory();
|
||||
int solt = e.getRawSlot();
|
||||
if (ci == null || ci.getType() == Material.AIR)
|
||||
return;
|
||||
if (!ci.getItemMeta().hasDisplayName())
|
||||
return;
|
||||
String clickName = ci.getItemMeta().getDisplayName();
|
||||
switch (clickName) {
|
||||
case InvUtils.Create:
|
||||
if (!LuckLottery.economy.hasAccount(p)
|
||||
|| !LuckLottery.economy.has(p, LotteryUtils.getPrice())) {
|
||||
ChatUtils.sendMessage(p, ChatColor.GOLD
|
||||
+ "你没有足够的金钱购买彩票,每张彩票" + ChatColor.RED
|
||||
+ LotteryUtils.getPrice() + ChatColor.GOLD + "元!");
|
||||
p.closeInventory();
|
||||
return;
|
||||
}
|
||||
List<String> lottery = InvUtils.getLotteryNumber(inv);
|
||||
LotteryUtils.addLottery(p, lottery);
|
||||
ChatUtils.sendMessage(p, "§6您当前购买的彩票号码为: " + ChatColor.GREEN
|
||||
+ lottery.toString());
|
||||
ChatUtils.howToShow(p);
|
||||
LuckLottery.economy.withdrawPlayer(p, LotteryUtils.getPrice());
|
||||
p.closeInventory();
|
||||
break;
|
||||
case InvUtils.ReSet:
|
||||
inv.setContents(InvUtils.getGui());
|
||||
break;
|
||||
case InvUtils.Normal1:
|
||||
case InvUtils.Normal2:
|
||||
case InvUtils.Normal3:
|
||||
case InvUtils.Normal4:
|
||||
case InvUtils.Normal5:
|
||||
case InvUtils.Normal6:
|
||||
case InvUtils.Normal7:
|
||||
case InvUtils.Normal8:
|
||||
case InvUtils.Normal9:
|
||||
case InvUtils.Normal10:
|
||||
case InvUtils.Normal11:
|
||||
case InvUtils.Normal12:
|
||||
case InvUtils.Normal13:
|
||||
case InvUtils.Normal14:
|
||||
case InvUtils.Normal15:
|
||||
case InvUtils.Normal16:
|
||||
case InvUtils.Normal17:
|
||||
case InvUtils.Normal18:
|
||||
case InvUtils.Normal19:
|
||||
case InvUtils.Normal20:
|
||||
case InvUtils.Normal21:
|
||||
case InvUtils.Normal22:
|
||||
case InvUtils.Normal23:
|
||||
case InvUtils.Normal24:
|
||||
case InvUtils.Normal25:
|
||||
case InvUtils.Normal26:
|
||||
case InvUtils.Normal27:
|
||||
case InvUtils.Normal28:
|
||||
case InvUtils.Normal29:
|
||||
case InvUtils.Normal30:
|
||||
case InvUtils.Normal31:
|
||||
case InvUtils.Normal32:
|
||||
if (solt < 36) {
|
||||
if (setSelect(inv, ci))
|
||||
inv.setItem(solt, InvUtils.A);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (InvUtils.selectFinish(inv)) {
|
||||
inv.setItem(53, InvUtils.Creat);
|
||||
} else {
|
||||
inv.setItem(53, InvUtils.CantCreat);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private boolean setSelect(Inventory inv, ItemStack is) {
|
||||
for (int i = 45; i < 53; i++) {
|
||||
if (inv.getItem(i) == null) {
|
||||
inv.setItem(i, is);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
package cn.citycraft.LuckLottery.listen;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.inventory.InventoryClickEvent;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import cn.citycraft.LuckLottery.LuckLottery;
|
||||
import cn.citycraft.LuckLottery.config.OfflineDate;
|
||||
import cn.citycraft.LuckLottery.runnable.LaterShow;
|
||||
import cn.citycraft.LuckLottery.utils.ChatUtils;
|
||||
import cn.citycraft.LuckLottery.utils.InvUtils;
|
||||
import cn.citycraft.LuckLottery.utils.LotteryUtils;
|
||||
|
||||
public class PlayerListen implements Listener {
|
||||
|
||||
@EventHandler(
|
||||
priority = EventPriority.HIGH)
|
||||
public void onPlayerInteract(PlayerJoinEvent e) {
|
||||
Player p = e.getPlayer();
|
||||
List<String> messages = OfflineDate.getMessage(p.getName());
|
||||
if (messages != null && !messages.isEmpty()) {
|
||||
Bukkit.getServer().getScheduler()
|
||||
.runTaskLaterAsynchronously(LuckLottery.plugin, new LaterShow(p, messages), 5);
|
||||
OfflineDate.getInstance().set(p.getName(), null);
|
||||
OfflineDate.save();
|
||||
}
|
||||
}
|
||||
|
||||
@EventHandler(
|
||||
priority = EventPriority.HIGHEST,
|
||||
ignoreCancelled = true)
|
||||
public void onInventoryClick(InventoryClickEvent e) {
|
||||
if (InvUtils.isLotteryGUI(e.getInventory())) {
|
||||
e.setCancelled(true);
|
||||
Player p = (Player) e.getWhoClicked();
|
||||
ItemStack ci = e.getCurrentItem();
|
||||
Inventory inv = e.getInventory();
|
||||
int solt = e.getRawSlot();
|
||||
if (ci == null || ci.getType() == Material.AIR)
|
||||
return;
|
||||
if (!ci.getItemMeta().hasDisplayName())
|
||||
return;
|
||||
String clickName = ci.getItemMeta().getDisplayName();
|
||||
switch (clickName) {
|
||||
case InvUtils.Create:
|
||||
if (!LuckLottery.economy.hasAccount(p)
|
||||
|| !LuckLottery.economy.has(p, LotteryUtils.getPrice())) {
|
||||
ChatUtils.sendMessage(p, ChatColor.GOLD + "你没有足够的金钱购买彩票,每张彩票" + ChatColor.RED
|
||||
+ LotteryUtils.getPrice() + ChatColor.GOLD + "元!");
|
||||
p.closeInventory();
|
||||
return;
|
||||
}
|
||||
List<String> lottery = InvUtils.getLotteryNumber(inv);
|
||||
LotteryUtils.addLottery(p, lottery);
|
||||
ChatUtils.sendMessage(p, "§6您当前购买的彩票号码为: " + ChatColor.GREEN + lottery.toString());
|
||||
ChatUtils.howToShow(p);
|
||||
LuckLottery.economy.withdrawPlayer(p, LotteryUtils.getPrice());
|
||||
p.closeInventory();
|
||||
break;
|
||||
case InvUtils.ReSet:
|
||||
inv.setContents(InvUtils.getGui());
|
||||
break;
|
||||
default:
|
||||
if (solt < 36 && InvUtils.isLotteryItem(ci)) {
|
||||
if (setSelect(inv, ci))
|
||||
inv.setItem(solt, InvUtils.A);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (InvUtils.selectFinish(inv)) {
|
||||
inv.setItem(53, InvUtils.Creat);
|
||||
} else {
|
||||
inv.setItem(53, InvUtils.CantCreat);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean setSelect(Inventory inv, ItemStack is) {
|
||||
for (int i = 45; i < 53; i++) {
|
||||
if (inv.getItem(i) == null) {
|
||||
inv.setItem(i, is);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,313 +1,277 @@
|
|||
package cn.citycraft.LuckLottery.utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
public class InvUtils {
|
||||
|
||||
public static final String InvName = ChatUtils.getPluginname()
|
||||
+ " §c§l售价: " + LotteryUtils.getPrice() + "元一份";
|
||||
|
||||
public static final String Normal1 = "§6§l1";
|
||||
public static final String Normal2 = "§6§l2";
|
||||
public static final String Normal3 = "§6§l3";
|
||||
public static final String Normal4 = "§6§l4";
|
||||
public static final String Normal5 = "§6§l5";
|
||||
public static final String Normal6 = "§6§l6";
|
||||
public static final String Normal7 = "§6§l7";
|
||||
public static final String Normal8 = "§6§l8";
|
||||
public static final String Normal9 = "§6§l9";
|
||||
|
||||
public static final String Normal10 = "§6§l10";
|
||||
public static final String Normal11 = "§6§l11";
|
||||
public static final String Normal12 = "§6§l12";
|
||||
public static final String Normal13 = "§6§l13";
|
||||
public static final String Normal14 = "§6§l14";
|
||||
public static final String Normal15 = "§6§l15";
|
||||
public static final String Normal16 = "§6§l16";
|
||||
public static final String Normal17 = "§6§l17";
|
||||
public static final String Normal18 = "§6§l18";
|
||||
public static final String Normal19 = "§6§l19";
|
||||
|
||||
public static final String Normal20 = "§6§l20";
|
||||
public static final String Normal21 = "§6§l21";
|
||||
public static final String Normal22 = "§6§l22";
|
||||
public static final String Normal23 = "§6§l23";
|
||||
public static final String Normal24 = "§6§l24";
|
||||
public static final String Normal25 = "§6§l25";
|
||||
public static final String Normal26 = "§6§l26";
|
||||
public static final String Normal27 = "§6§l27";
|
||||
public static final String Normal28 = "§6§l28";
|
||||
public static final String Normal29 = "§6§l29";
|
||||
|
||||
public static final String Normal30 = "§6§l30";
|
||||
public static final String Normal31 = "§6§l31";
|
||||
public static final String Normal32 = "§6§l32";
|
||||
// public static final String Special1 = "§b§l1";
|
||||
// public static final String Special2 = "§b§l2";
|
||||
// public static final String Special3 = "§b§l3";
|
||||
// public static final String Special4 = "§b§l4";
|
||||
// public static final String Special5 = "§b§l5";
|
||||
// public static final String Special6 = "§b§l6";
|
||||
// public static final String Special7 = "§b§l7";
|
||||
// public static final String Special8 = "§b§l8";
|
||||
// public static final String Special9 = "§b§l9";
|
||||
|
||||
public static final String WEB = "§c请选取=>§6橙色普通号码§r§l|§b蓝色特殊号码";
|
||||
public static final String ReSet = "§4§l重新选取";
|
||||
public static final String Create = "§a§l生成彩票";
|
||||
public static final String CantCreate = "§c§l请选取§66个普通号码§b1个特殊号码§a生成彩票";
|
||||
|
||||
// private static final ItemStack L0 = new
|
||||
// ItemStack(Material.DOUBLE_PLANT,1,(short)0);
|
||||
|
||||
public static final ItemStack L0 = new ItemStack(Material.WOOL);
|
||||
public static final ItemStack L1 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 1);
|
||||
public static final ItemStack L2 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 2);
|
||||
public static final ItemStack L3 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 3);
|
||||
public static final ItemStack L4 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 4);
|
||||
public static final ItemStack L5 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 5);
|
||||
public static final ItemStack L6 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 6);
|
||||
public static final ItemStack L7 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 7);
|
||||
public static final ItemStack L8 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 8);
|
||||
public static final ItemStack L9 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 9);
|
||||
public static final ItemStack L10 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 10);
|
||||
public static final ItemStack L11 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 11);
|
||||
public static final ItemStack L12 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 12);
|
||||
public static final ItemStack L13 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 13);
|
||||
public static final ItemStack L14 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 14);
|
||||
public static final ItemStack L15 = new ItemStack(Material.WOOL, 1,
|
||||
(short) 15);
|
||||
|
||||
public static final ItemStack B0 = new ItemStack(Material.STAINED_GLASS);
|
||||
public static final ItemStack B1 = new ItemStack(Material.STAINED_GLASS, 1,
|
||||
(short) 1);
|
||||
public static final ItemStack B2 = new ItemStack(Material.STAINED_GLASS, 1,
|
||||
(short) 2);
|
||||
public static final ItemStack B3 = new ItemStack(Material.STAINED_GLASS, 1,
|
||||
(short) 3);
|
||||
public static final ItemStack B4 = new ItemStack(Material.STAINED_GLASS, 1,
|
||||
(short) 4);
|
||||
public static final ItemStack B5 = new ItemStack(Material.STAINED_GLASS, 1,
|
||||
(short) 5);
|
||||
public static final ItemStack B6 = new ItemStack(Material.STAINED_GLASS, 1,
|
||||
(short) 6);
|
||||
public static final ItemStack B7 = new ItemStack(Material.STAINED_GLASS, 1,
|
||||
(short) 7);
|
||||
public static final ItemStack B8 = new ItemStack(Material.STAINED_GLASS, 1,
|
||||
(short) 8);
|
||||
public static final ItemStack B9 = new ItemStack(Material.STAINED_GLASS, 1,
|
||||
(short) 9);
|
||||
public static final ItemStack B10 = new ItemStack(Material.STAINED_GLASS,
|
||||
1, (short) 10);
|
||||
public static final ItemStack B11 = new ItemStack(Material.STAINED_GLASS,
|
||||
1, (short) 11);
|
||||
public static final ItemStack B12 = new ItemStack(Material.STAINED_GLASS,
|
||||
1, (short) 12);
|
||||
public static final ItemStack B13 = new ItemStack(Material.STAINED_GLASS,
|
||||
1, (short) 13);
|
||||
public static final ItemStack B14 = new ItemStack(Material.STAINED_GLASS,
|
||||
1, (short) 14);
|
||||
public static final ItemStack B15 = new ItemStack(Material.STAINED_GLASS,
|
||||
1, (short) 15);
|
||||
|
||||
public static final ItemStack W = new ItemStack(Material.SNOW_BALL);
|
||||
public static final ItemStack Creat = new ItemStack(Material.MAP);
|
||||
public static final ItemStack CM = new ItemStack(Material.WATER_LILY);
|
||||
public static final ItemStack CantCreat = new ItemStack(Material.EMPTY_MAP);
|
||||
public static final ItemStack A = new ItemStack(Material.AIR);
|
||||
public static final ItemStack RT = new ItemStack(Material.LAVA_BUCKET);
|
||||
static {
|
||||
setDisplayName(W, WEB);
|
||||
setDisplayName(L0, Normal1);
|
||||
setDisplayName(L1, Normal2);
|
||||
setDisplayName(L2, Normal3);
|
||||
setDisplayName(L3, Normal4);
|
||||
setDisplayName(L4, Normal5);
|
||||
setDisplayName(L5, Normal6);
|
||||
setDisplayName(L6, Normal7);
|
||||
setDisplayName(L7, Normal8);
|
||||
setDisplayName(L8, Normal9);
|
||||
setDisplayName(L9, Normal10);
|
||||
setDisplayName(L10, Normal11);
|
||||
setDisplayName(L11, Normal12);
|
||||
setDisplayName(L12, Normal13);
|
||||
setDisplayName(L13, Normal14);
|
||||
setDisplayName(L14, Normal15);
|
||||
|
||||
setDisplayName(B0, Normal16);
|
||||
setDisplayName(B1, Normal17);
|
||||
setDisplayName(B2, Normal18);
|
||||
setDisplayName(B3, Normal19);
|
||||
setDisplayName(B4, Normal20);
|
||||
setDisplayName(B5, Normal21);
|
||||
setDisplayName(B6, Normal22);
|
||||
setDisplayName(B7, Normal24);
|
||||
setDisplayName(B8, Normal25);
|
||||
setDisplayName(B9, Normal26);
|
||||
setDisplayName(B10, Normal27);
|
||||
setDisplayName(B11, Normal28);
|
||||
setDisplayName(B12, Normal29);
|
||||
setDisplayName(B13, Normal30);
|
||||
setDisplayName(B14, Normal31);
|
||||
setDisplayName(B15, Normal32);
|
||||
|
||||
setDisplayName(CM, "§6<=普通号码§r|§b特殊号码=>");
|
||||
setDisplayName(RT, ReSet);
|
||||
setDisplayName(CantCreat, CantCreate);
|
||||
setDisplayName(Creat, Create);
|
||||
}
|
||||
|
||||
private static final ItemStack[] GUI_LINE1 = { W, L0, L1, L2, L3, L4, L5,
|
||||
L6, W /* 第一行结束 */};
|
||||
private static final ItemStack[] GUI_LINE2 = { L7, L8, L9, L10, L11, L12,
|
||||
L13, L14, L15 /* 第二行结束 */};
|
||||
private static final ItemStack[] GUI_LINE3 = { B0, B1, B2, B3, B4, B5, B6,
|
||||
B7, B8 /* 第三行结束 */};
|
||||
private static final ItemStack[] GUI_LINE4 = { W, B9, B10, B11, B12, B13,
|
||||
B14, B15, W /* 第四行结束 */};
|
||||
private static final ItemStack[] GUI_LINE5 = { W, W, W, W, W, W, RT, W, W /* 第五行结束 */};
|
||||
private static final ItemStack[] GUI_LINE6 = { A, A, A, A, A, A, CM, A,
|
||||
CantCreat /* 第六行结束 */};
|
||||
|
||||
private static void setDisplayName(ItemStack item, String displayName) {
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
itemMeta.setDisplayName(displayName);
|
||||
item.setItemMeta(itemMeta);
|
||||
}
|
||||
|
||||
public static ItemStack[] getGui() {
|
||||
List<ItemStack> invgui = new ArrayList<ItemStack>();
|
||||
invgui.addAll(Arrays.asList(GUI_LINE1));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE2));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE3));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE4));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE5));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE6));
|
||||
return invgui.toArray(new ItemStack[0]);
|
||||
}
|
||||
|
||||
public static void openGui(Player p) {
|
||||
Inventory scrollInv = Bukkit.createInventory(null, 6 * 9, InvName);
|
||||
scrollInv.setContents(getGui());
|
||||
p.openInventory(scrollInv);
|
||||
}
|
||||
|
||||
public static boolean isLotteryGUI(Inventory inv) {
|
||||
if (inv == null)
|
||||
return false;
|
||||
return inv.getHolder() == null && inv.getTitle().equals(InvName);
|
||||
}
|
||||
|
||||
public static boolean selectFinish(Inventory inv) {
|
||||
return (inv.getItem(45) != null && inv.getItem(46) != null
|
||||
&& inv.getItem(47) != null && inv.getItem(48) != null
|
||||
&& inv.getItem(49) != null && inv.getItem(50) != null && inv
|
||||
.getItem(52) != null);
|
||||
}
|
||||
|
||||
public static List<String> getLotteryNumber(Inventory inv) {
|
||||
List<String> lty = new ArrayList<String>();
|
||||
for (int i = 45; i < 51; i++) {
|
||||
lty.add(item2number(inv.getItem(i)));
|
||||
}
|
||||
lty.add(item2number(inv.getItem(52)));
|
||||
return lty;
|
||||
}
|
||||
|
||||
public static String item2number(ItemStack item) {
|
||||
return name2number(item.getItemMeta().getDisplayName());
|
||||
}
|
||||
|
||||
public static String name2number(String name) {
|
||||
switch (name) {
|
||||
case Normal1:
|
||||
return "1";
|
||||
case Normal2:
|
||||
return "2";
|
||||
case Normal3:
|
||||
return "3";
|
||||
case Normal4:
|
||||
return "4";
|
||||
case Normal5:
|
||||
return "5";
|
||||
case Normal6:
|
||||
return "6";
|
||||
case Normal7:
|
||||
return "7";
|
||||
case Normal8:
|
||||
return "8";
|
||||
case Normal9:
|
||||
return "9";
|
||||
case Normal10:
|
||||
return "10";
|
||||
case Normal11:
|
||||
return "11";
|
||||
case Normal12:
|
||||
return "12";
|
||||
case Normal13:
|
||||
return "13";
|
||||
case Normal14:
|
||||
return "14";
|
||||
case Normal15:
|
||||
return "15";
|
||||
case Normal16:
|
||||
return "16";
|
||||
case Normal17:
|
||||
return "17";
|
||||
case Normal18:
|
||||
return "18";
|
||||
case Normal19:
|
||||
return "19";
|
||||
case Normal20:
|
||||
return "20";
|
||||
case Normal21:
|
||||
return "21";
|
||||
case Normal22:
|
||||
return "22";
|
||||
case Normal23:
|
||||
return "23";
|
||||
case Normal24:
|
||||
return "24";
|
||||
case Normal25:
|
||||
return "25";
|
||||
case Normal26:
|
||||
return "26";
|
||||
case Normal27:
|
||||
return "27";
|
||||
case Normal28:
|
||||
return "28";
|
||||
case Normal29:
|
||||
return "29";
|
||||
case Normal30:
|
||||
return "30";
|
||||
case Normal31:
|
||||
return "31";
|
||||
case Normal32:
|
||||
return "32";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
package cn.citycraft.LuckLottery.utils;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.Inventory;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
|
||||
public class InvUtils {
|
||||
|
||||
public static final String InvName = ChatUtils.getPluginname() + " §c§l售价: "
|
||||
+ LotteryUtils.getPrice() + "元一份";
|
||||
|
||||
public static final String NumPrefix = "§6§l";
|
||||
public static final String Normal1 = "§6§l1";
|
||||
public static final String Normal2 = "§6§l2";
|
||||
public static final String Normal3 = "§6§l3";
|
||||
public static final String Normal4 = "§6§l4";
|
||||
public static final String Normal5 = "§6§l5";
|
||||
public static final String Normal6 = "§6§l6";
|
||||
public static final String Normal7 = "§6§l7";
|
||||
public static final String Normal8 = "§6§l8";
|
||||
public static final String Normal9 = "§6§l9";
|
||||
|
||||
public static final String Normal10 = "§6§l10";
|
||||
public static final String Normal11 = "§6§l11";
|
||||
public static final String Normal12 = "§6§l12";
|
||||
public static final String Normal13 = "§6§l13";
|
||||
public static final String Normal14 = "§6§l14";
|
||||
public static final String Normal15 = "§6§l15";
|
||||
public static final String Normal16 = "§6§l16";
|
||||
public static final String Normal17 = "§6§l17";
|
||||
public static final String Normal18 = "§6§l18";
|
||||
public static final String Normal19 = "§6§l19";
|
||||
|
||||
public static final String Normal20 = "§6§l20";
|
||||
public static final String Normal21 = "§6§l21";
|
||||
public static final String Normal22 = "§6§l22";
|
||||
public static final String Normal23 = "§6§l23";
|
||||
public static final String Normal24 = "§6§l24";
|
||||
public static final String Normal25 = "§6§l25";
|
||||
public static final String Normal26 = "§6§l26";
|
||||
public static final String Normal27 = "§6§l27";
|
||||
public static final String Normal28 = "§6§l28";
|
||||
public static final String Normal29 = "§6§l29";
|
||||
|
||||
public static final String Normal30 = "§6§l30";
|
||||
public static final String Normal31 = "§6§l31";
|
||||
public static final String Normal32 = "§6§l32";
|
||||
// public static final String Special1 = "§b§l1";
|
||||
// public static final String Special2 = "§b§l2";
|
||||
// public static final String Special3 = "§b§l3";
|
||||
// public static final String Special4 = "§b§l4";
|
||||
// public static final String Special5 = "§b§l5";
|
||||
// public static final String Special6 = "§b§l6";
|
||||
// public static final String Special7 = "§b§l7";
|
||||
// public static final String Special8 = "§b§l8";
|
||||
// public static final String Special9 = "§b§l9";
|
||||
|
||||
public static final String WEB = "§c请选取=>§6橙色普通号码§r§l|§b蓝色特殊号码";
|
||||
public static final String ReSet = "§4§l重新选取";
|
||||
public static final String Create = "§a§l生成彩票";
|
||||
public static final String CantCreate = "§c§l请选取§66个普通号码§b1个特殊号码§a生成彩票";
|
||||
|
||||
// private static final ItemStack L0 = new
|
||||
// ItemStack(Material.DOUBLE_PLANT,1,(short)0);
|
||||
|
||||
public static final ItemStack L0 = new ItemStack(Material.WOOL);
|
||||
public static final ItemStack L1 = new ItemStack(Material.WOOL, 1, (short) 1);
|
||||
public static final ItemStack L2 = new ItemStack(Material.WOOL, 1, (short) 2);
|
||||
public static final ItemStack L3 = new ItemStack(Material.WOOL, 1, (short) 3);
|
||||
public static final ItemStack L4 = new ItemStack(Material.WOOL, 1, (short) 4);
|
||||
public static final ItemStack L5 = new ItemStack(Material.WOOL, 1, (short) 5);
|
||||
public static final ItemStack L6 = new ItemStack(Material.WOOL, 1, (short) 6);
|
||||
public static final ItemStack L7 = new ItemStack(Material.WOOL, 1, (short) 7);
|
||||
public static final ItemStack L8 = new ItemStack(Material.WOOL, 1, (short) 8);
|
||||
public static final ItemStack L9 = new ItemStack(Material.WOOL, 1, (short) 9);
|
||||
public static final ItemStack L10 = new ItemStack(Material.WOOL, 1, (short) 10);
|
||||
public static final ItemStack L11 = new ItemStack(Material.WOOL, 1, (short) 11);
|
||||
public static final ItemStack L12 = new ItemStack(Material.WOOL, 1, (short) 12);
|
||||
public static final ItemStack L13 = new ItemStack(Material.WOOL, 1, (short) 13);
|
||||
public static final ItemStack L14 = new ItemStack(Material.WOOL, 1, (short) 14);
|
||||
public static final ItemStack L15 = new ItemStack(Material.WOOL, 1, (short) 15);
|
||||
|
||||
public static final ItemStack B0 = new ItemStack(Material.STAINED_GLASS);
|
||||
public static final ItemStack B1 = new ItemStack(Material.STAINED_GLASS, 1, (short) 1);
|
||||
public static final ItemStack B2 = new ItemStack(Material.STAINED_GLASS, 1, (short) 2);
|
||||
public static final ItemStack B3 = new ItemStack(Material.STAINED_GLASS, 1, (short) 3);
|
||||
public static final ItemStack B4 = new ItemStack(Material.STAINED_GLASS, 1, (short) 4);
|
||||
public static final ItemStack B5 = new ItemStack(Material.STAINED_GLASS, 1, (short) 5);
|
||||
public static final ItemStack B6 = new ItemStack(Material.STAINED_GLASS, 1, (short) 6);
|
||||
public static final ItemStack B7 = new ItemStack(Material.STAINED_GLASS, 1, (short) 7);
|
||||
public static final ItemStack B8 = new ItemStack(Material.STAINED_GLASS, 1, (short) 8);
|
||||
public static final ItemStack B9 = new ItemStack(Material.STAINED_GLASS, 1, (short) 9);
|
||||
public static final ItemStack B10 = new ItemStack(Material.STAINED_GLASS, 1, (short) 10);
|
||||
public static final ItemStack B11 = new ItemStack(Material.STAINED_GLASS, 1, (short) 11);
|
||||
public static final ItemStack B12 = new ItemStack(Material.STAINED_GLASS, 1, (short) 12);
|
||||
public static final ItemStack B13 = new ItemStack(Material.STAINED_GLASS, 1, (short) 13);
|
||||
public static final ItemStack B14 = new ItemStack(Material.STAINED_GLASS, 1, (short) 14);
|
||||
public static final ItemStack B15 = new ItemStack(Material.STAINED_GLASS, 1, (short) 15);
|
||||
|
||||
public static final ItemStack W = new ItemStack(Material.SNOW_BALL);
|
||||
public static final ItemStack Creat = new ItemStack(Material.MAP);
|
||||
public static final ItemStack CM = new ItemStack(Material.WATER_LILY);
|
||||
public static final ItemStack CantCreat = new ItemStack(Material.EMPTY_MAP);
|
||||
public static final ItemStack A = new ItemStack(Material.AIR);
|
||||
public static final ItemStack RT = new ItemStack(Material.LAVA_BUCKET);
|
||||
static {
|
||||
setDisplayName(W, WEB);
|
||||
setDisplayName(L0, Normal1);
|
||||
setDisplayName(L1, Normal2);
|
||||
setDisplayName(L2, Normal3);
|
||||
setDisplayName(L3, Normal4);
|
||||
setDisplayName(L4, Normal5);
|
||||
setDisplayName(L5, Normal6);
|
||||
setDisplayName(L6, Normal7);
|
||||
setDisplayName(L7, Normal8);
|
||||
setDisplayName(L8, Normal9);
|
||||
setDisplayName(L9, Normal10);
|
||||
setDisplayName(L10, Normal11);
|
||||
setDisplayName(L11, Normal12);
|
||||
setDisplayName(L12, Normal13);
|
||||
setDisplayName(L13, Normal14);
|
||||
setDisplayName(L14, Normal15);
|
||||
setDisplayName(L15, Normal16);
|
||||
|
||||
setDisplayName(B0, Normal17);
|
||||
setDisplayName(B1, Normal18);
|
||||
setDisplayName(B2, Normal19);
|
||||
setDisplayName(B3, Normal20);
|
||||
setDisplayName(B4, Normal21);
|
||||
setDisplayName(B5, Normal22);
|
||||
setDisplayName(B6, Normal23);
|
||||
setDisplayName(B7, Normal24);
|
||||
setDisplayName(B8, Normal25);
|
||||
setDisplayName(B9, Normal26);
|
||||
setDisplayName(B10, Normal27);
|
||||
setDisplayName(B11, Normal28);
|
||||
setDisplayName(B12, Normal29);
|
||||
setDisplayName(B13, Normal30);
|
||||
setDisplayName(B14, Normal31);
|
||||
setDisplayName(B15, Normal32);
|
||||
|
||||
setDisplayName(CM, "§6<=普通号码§r|§b特殊号码=>");
|
||||
setDisplayName(RT, ReSet);
|
||||
setDisplayName(CantCreat, CantCreate);
|
||||
setDisplayName(Creat, Create);
|
||||
}
|
||||
|
||||
private static final ItemStack[] GUI_LINE1 = {
|
||||
W,
|
||||
L0,
|
||||
L1,
|
||||
L2,
|
||||
L3,
|
||||
L4,
|
||||
L5,
|
||||
L6,
|
||||
W
|
||||
/* 第一行结束 */};
|
||||
private static final ItemStack[] GUI_LINE2 = {
|
||||
L7,
|
||||
L8,
|
||||
L9,
|
||||
L10,
|
||||
L11,
|
||||
L12,
|
||||
L13,
|
||||
L14,
|
||||
L15
|
||||
/* 第二行结束 */};
|
||||
private static final ItemStack[] GUI_LINE3 = {
|
||||
B0,
|
||||
B1,
|
||||
B2,
|
||||
B3,
|
||||
B4,
|
||||
B5,
|
||||
B6,
|
||||
B7,
|
||||
B8
|
||||
/* 第三行结束 */};
|
||||
private static final ItemStack[] GUI_LINE4 = {
|
||||
W,
|
||||
B9,
|
||||
B10,
|
||||
B11,
|
||||
B12,
|
||||
B13,
|
||||
B14,
|
||||
B15,
|
||||
W
|
||||
/* 第四行结束 */};
|
||||
private static final ItemStack[] GUI_LINE5 = {
|
||||
W,
|
||||
W,
|
||||
W,
|
||||
W,
|
||||
W,
|
||||
W,
|
||||
RT,
|
||||
W,
|
||||
W
|
||||
/* 第五行结束 */};
|
||||
private static final ItemStack[] GUI_LINE6 = {
|
||||
A,
|
||||
A,
|
||||
A,
|
||||
A,
|
||||
A,
|
||||
A,
|
||||
CM,
|
||||
A,
|
||||
CantCreat
|
||||
/* 第六行结束 */};
|
||||
|
||||
private static void setDisplayName(ItemStack item, String displayName) {
|
||||
ItemMeta itemMeta = item.getItemMeta();
|
||||
itemMeta.setDisplayName(displayName);
|
||||
item.setItemMeta(itemMeta);
|
||||
}
|
||||
|
||||
public static ItemStack[] getGui() {
|
||||
List<ItemStack> invgui = new ArrayList<ItemStack>();
|
||||
invgui.addAll(Arrays.asList(GUI_LINE1));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE2));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE3));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE4));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE5));
|
||||
invgui.addAll(Arrays.asList(GUI_LINE6));
|
||||
return invgui.toArray(new ItemStack[0]);
|
||||
}
|
||||
|
||||
public static void openGui(Player p) {
|
||||
Inventory scrollInv = Bukkit.createInventory(null, 6 * 9, InvName);
|
||||
scrollInv.setContents(getGui());
|
||||
p.openInventory(scrollInv);
|
||||
}
|
||||
|
||||
public static boolean isLotteryGUI(Inventory inv) {
|
||||
if (inv == null)
|
||||
return false;
|
||||
return inv.getHolder() == null && inv.getTitle().equals(InvName);
|
||||
}
|
||||
|
||||
public static boolean selectFinish(Inventory inv) {
|
||||
return (inv.getItem(45) != null && inv.getItem(46) != null && inv.getItem(47) != null
|
||||
&& inv.getItem(48) != null && inv.getItem(49) != null && inv.getItem(50) != null && inv
|
||||
.getItem(52) != null);
|
||||
}
|
||||
|
||||
public static List<String> getLotteryNumber(Inventory inv) {
|
||||
List<String> lty = new ArrayList<String>();
|
||||
for (int i = 45; i < 51; i++) {
|
||||
lty.add(getItemNumber(inv.getItem(i)));
|
||||
}
|
||||
lty.add(getItemNumber(inv.getItem(52)));
|
||||
return lty;
|
||||
}
|
||||
|
||||
public static String getItemNumber(ItemStack item) {
|
||||
String num = item.getItemMeta().getDisplayName();
|
||||
if (num.startsWith(NumPrefix))
|
||||
return num.substring(NumPrefix.length());
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isLotteryItem(ItemStack item) {
|
||||
String num = item.getItemMeta().getDisplayName();
|
||||
return num.startsWith(NumPrefix);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,73 @@
|
|||
package cn.citycraft.LuckLottery.utils;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.URL;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.configuration.file.FileConfiguration;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.player.PlayerJoinEvent;
|
||||
import org.bukkit.plugin.Plugin;
|
||||
|
||||
import com.google.common.base.Charsets;
|
||||
|
||||
public class VersionChecker implements Listener {
|
||||
Plugin plugin;
|
||||
|
||||
public VersionChecker(Plugin plugin) {
|
||||
this.plugin = plugin;
|
||||
plugin.getServer().getPluginManager().registerEvents(this, plugin);
|
||||
this.VersionCheck(null);
|
||||
}
|
||||
|
||||
@EventHandler
|
||||
public void onPlayerJoin(PlayerJoinEvent e) {
|
||||
if (e.getPlayer().isOp()) {
|
||||
this.VersionCheck(e.getPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
public void VersionCheck(final Player player) {
|
||||
Bukkit.getScheduler().runTaskAsynchronously(plugin, new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
String website = plugin.getDescription().getWebsite();
|
||||
String readURL = website
|
||||
+ (website.substring(website.length() - 1).equals("/") ? "" : "/")
|
||||
+ "/lastSuccessfulBuild/artifact/src/plugin.yml";
|
||||
FileConfiguration config;
|
||||
String currentVersion = plugin.getDescription().getVersion();
|
||||
try {
|
||||
URL url = new URL(readURL);
|
||||
BufferedReader br = new BufferedReader(new InputStreamReader(url.openStream(),
|
||||
Charsets.UTF_8));
|
||||
config = YamlConfiguration.loadConfiguration(br);
|
||||
String newVersion = config.getString("version");
|
||||
br.close();
|
||||
if (!newVersion.equals(currentVersion)) {
|
||||
String[] msg = new String[] {
|
||||
ChatColor.GREEN + plugin.getName() + "插件最新版本 v" + newVersion,
|
||||
ChatColor.RED + "服务器运行版本: v" + currentVersion,
|
||||
ChatColor.GOLD + "插件更新网站: " + ChatColor.BLUE
|
||||
+ plugin.getDescription().getWebsite()
|
||||
};
|
||||
if (player != null) {
|
||||
player.sendMessage(msg);
|
||||
} else {
|
||||
plugin.getServer().getConsoleSender().sendMessage(msg);
|
||||
}
|
||||
}
|
||||
} catch (IOException e) {
|
||||
plugin.getLogger().warning("版本更新检查失败!");
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
|
@ -26,6 +26,4 @@ Reward:
|
|||
13: 2000
|
||||
14: 3000
|
||||
15: 4000
|
||||
16: 10000
|
||||
|
||||
|
||||
16: 10000
|
|
@ -1,37 +1,38 @@
|
|||
name: LuckLottery
|
||||
main: cn.citycraft.LuckLottery.LuckLottery
|
||||
author: 喵♂呜
|
||||
version: 0.0.7
|
||||
depended: [Vault]
|
||||
commands:
|
||||
lucklottery:
|
||||
aliases: [ll]
|
||||
permissions:
|
||||
lucklottery.*:
|
||||
description: 允许使用所有命令!
|
||||
default: op
|
||||
children:
|
||||
lucklottery.showall: true
|
||||
lucklottery.reward: true
|
||||
lucklottery.random: true
|
||||
lucklottery.look: true
|
||||
lucklottery.clear: true
|
||||
lucklottery.reload: true
|
||||
lucklottery.showall:
|
||||
description: 允许查看所有已购买彩票!
|
||||
default: op
|
||||
lucklottery.reward:
|
||||
description: 允许结算上一轮彩票!
|
||||
default: op
|
||||
lucklottery.random:
|
||||
description: 允许重新生成本轮彩票!
|
||||
default: op
|
||||
lucklottery.look:
|
||||
description: 允许查看本轮彩票号码!
|
||||
default: op
|
||||
lucklottery.clear:
|
||||
description: 允许清理玩家彩票数据!
|
||||
default: op
|
||||
lucklottery.reload:
|
||||
description: 允许重载彩票插件!
|
||||
name: LuckLottery
|
||||
main: cn.citycraft.LuckLottery.LuckLottery
|
||||
author: 喵♂呜
|
||||
website: http://ci.citycraft.cn:8800/jenkins/job/LuckLottery/
|
||||
version: 0.1.0
|
||||
depended: [Vault]
|
||||
commands:
|
||||
lucklottery:
|
||||
aliases: [ll]
|
||||
permissions:
|
||||
lucklottery.*:
|
||||
description: 允许使用所有命令!
|
||||
default: op
|
||||
children:
|
||||
lucklottery.showall: true
|
||||
lucklottery.reward: true
|
||||
lucklottery.random: true
|
||||
lucklottery.look: true
|
||||
lucklottery.clear: true
|
||||
lucklottery.reload: true
|
||||
lucklottery.showall:
|
||||
description: 允许查看所有已购买彩票!
|
||||
default: op
|
||||
lucklottery.reward:
|
||||
description: 允许结算上一轮彩票!
|
||||
default: op
|
||||
lucklottery.random:
|
||||
description: 允许重新生成本轮彩票!
|
||||
default: op
|
||||
lucklottery.look:
|
||||
description: 允许查看本轮彩票号码!
|
||||
default: op
|
||||
lucklottery.clear:
|
||||
description: 允许清理玩家彩票数据!
|
||||
default: op
|
||||
lucklottery.reload:
|
||||
description: 允许重载彩票插件!
|
||||
default: op
|
Loading…
Reference in New Issue