add VersionChecker and fix LotteryNumber Error...

Signed-off-by: j502647092 <jtb1@163.com>
master
j502647092 2015-07-17 12:21:02 +08:00
parent 4207a6557c
commit 6f927531d6
6 changed files with 488 additions and 509 deletions

View File

@ -1,8 +1,6 @@
package cn.citycraft.LuckLottery; package cn.citycraft.LuckLottery;
import net.milkbowl.vault.chat.Chat;
import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.economy.Economy;
import net.milkbowl.vault.permission.Permission;
import org.bukkit.plugin.PluginManager; import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.RegisteredServiceProvider; 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.runnable.LotteryReward;
import cn.citycraft.LuckLottery.utils.ChatUtils; import cn.citycraft.LuckLottery.utils.ChatUtils;
import cn.citycraft.LuckLottery.utils.LotteryUtils; import cn.citycraft.LuckLottery.utils.LotteryUtils;
import cn.citycraft.LuckLottery.utils.VersionChecker;
public class LuckLottery extends JavaPlugin { public class LuckLottery extends JavaPlugin {
public static boolean isEconomy; public static boolean isEconomy;
public static Permission permission = null;
public static Economy economy = null; public static Economy economy = null;
public static Chat chat = null;
public static LuckLottery plugin; public static LuckLottery plugin;
@Override @Override
@ -34,7 +31,7 @@ public class LuckLottery extends JavaPlugin {
@Override @Override
public void onEnable() { public void onEnable() {
PluginManager pm = this.getServer().getPluginManager(); PluginManager pm = this.getServer().getPluginManager();
if (!pm.getPlugin("Vault").isEnabled()) { if (pm.getPlugin("Vault") == null && !pm.getPlugin("Vault").isEnabled()) {
this.getLogger().warning("未找到前置插件Vault 关闭插件..."); this.getLogger().warning("未找到前置插件Vault 关闭插件...");
this.getServer().getPluginManager().disablePlugin(this); this.getServer().getPluginManager().disablePlugin(this);
return; return;
@ -51,6 +48,7 @@ public class LuckLottery extends JavaPlugin {
this.getServer().getScheduler() this.getServer().getScheduler()
.runTaskTimer(plugin, new LotteryReward(true), 10, rewardtime * 60 * 20); .runTaskTimer(plugin, new LotteryReward(true), 10, rewardtime * 60 * 20);
this.getLogger().info("彩票系统已开启..."); this.getLogger().info("彩票系统已开启...");
new VersionChecker(this);
pm.registerEvents(new PlayerListen(), this); pm.registerEvents(new PlayerListen(), this);
getCommand("ll").setExecutor(new LuckLotteryCommand(this)); getCommand("ll").setExecutor(new LuckLotteryCommand(this));
} }
@ -63,21 +61,10 @@ public class LuckLottery extends JavaPlugin {
PlayerDate.load(this); PlayerDate.load(this);
LotteryUtils.reloadPlayerLottery(); LotteryUtils.reloadPlayerLottery();
ChatUtils.setPluginname(Config.getMessage("pluginname")); ChatUtils.setPluginname(Config.getMessage("pluginname"));
LotteryUtils.setNumbersame(Config.getInstance().getBoolean("numbersame")); LotteryUtils.setNumbersame(Config.getInstance().getBoolean("numbersame"));
LotteryUtils.setPrice(Config.getInstance().getInt("price")); 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() { public boolean setupEconomy() {
RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager() RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager()
.getRegistration(net.milkbowl.vault.economy.Economy.class); .getRegistration(net.milkbowl.vault.economy.Economy.class);
@ -86,15 +73,4 @@ public class LuckLottery extends JavaPlugin {
} }
return (economy != null); 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);
}
} }

View File

@ -1,130 +1,97 @@
package cn.citycraft.LuckLottery.listen; package cn.citycraft.LuckLottery.listen;
import java.util.List; import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.ChatColor; import org.bukkit.ChatColor;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler; import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority; import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener; import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import cn.citycraft.LuckLottery.LuckLottery; import cn.citycraft.LuckLottery.LuckLottery;
import cn.citycraft.LuckLottery.config.OfflineDate; import cn.citycraft.LuckLottery.config.OfflineDate;
import cn.citycraft.LuckLottery.runnable.LaterShow; import cn.citycraft.LuckLottery.runnable.LaterShow;
import cn.citycraft.LuckLottery.utils.ChatUtils; import cn.citycraft.LuckLottery.utils.ChatUtils;
import cn.citycraft.LuckLottery.utils.InvUtils; import cn.citycraft.LuckLottery.utils.InvUtils;
import cn.citycraft.LuckLottery.utils.LotteryUtils; import cn.citycraft.LuckLottery.utils.LotteryUtils;
public class PlayerListen implements Listener { public class PlayerListen implements Listener {
@EventHandler(priority = EventPriority.HIGH) @EventHandler(
public void onPlayerInteract(PlayerJoinEvent e) { priority = EventPriority.HIGH)
Player p = e.getPlayer(); public void onPlayerInteract(PlayerJoinEvent e) {
List<String> messages = OfflineDate.getMessage(p.getName()); Player p = e.getPlayer();
if (messages != null && !messages.isEmpty()) { List<String> messages = OfflineDate.getMessage(p.getName());
Bukkit.getServer() if (messages != null && !messages.isEmpty()) {
.getScheduler() Bukkit.getServer().getScheduler()
.runTaskLaterAsynchronously(LuckLottery.plugin, .runTaskLaterAsynchronously(LuckLottery.plugin, new LaterShow(p, messages), 5);
new LaterShow(p, messages), 5); OfflineDate.getInstance().set(p.getName(), null);
OfflineDate.getInstance().set(p.getName(), null); OfflineDate.save();
OfflineDate.save(); }
} }
}
@EventHandler(
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) priority = EventPriority.HIGHEST,
public void onInventoryClick(InventoryClickEvent e) { ignoreCancelled = true)
if (InvUtils.isLotteryGUI(e.getInventory())) { public void onInventoryClick(InventoryClickEvent e) {
e.setCancelled(true); if (InvUtils.isLotteryGUI(e.getInventory())) {
Player p = (Player) e.getWhoClicked(); e.setCancelled(true);
ItemStack ci = e.getCurrentItem(); Player p = (Player) e.getWhoClicked();
Inventory inv = e.getInventory(); ItemStack ci = e.getCurrentItem();
int solt = e.getRawSlot(); Inventory inv = e.getInventory();
if (ci == null || ci.getType() == Material.AIR) int solt = e.getRawSlot();
return; if (ci == null || ci.getType() == Material.AIR)
if (!ci.getItemMeta().hasDisplayName()) return;
return; if (!ci.getItemMeta().hasDisplayName())
String clickName = ci.getItemMeta().getDisplayName(); return;
switch (clickName) { String clickName = ci.getItemMeta().getDisplayName();
case InvUtils.Create: switch (clickName) {
if (!LuckLottery.economy.hasAccount(p) case InvUtils.Create:
|| !LuckLottery.economy.has(p, LotteryUtils.getPrice())) { if (!LuckLottery.economy.hasAccount(p)
ChatUtils.sendMessage(p, ChatColor.GOLD || !LuckLottery.economy.has(p, LotteryUtils.getPrice())) {
+ "你没有足够的金钱购买彩票,每张彩票" + ChatColor.RED ChatUtils.sendMessage(p, ChatColor.GOLD + "你没有足够的金钱购买彩票,每张彩票" + ChatColor.RED
+ LotteryUtils.getPrice() + ChatColor.GOLD + "元!"); + LotteryUtils.getPrice() + ChatColor.GOLD + "元!");
p.closeInventory(); p.closeInventory();
return; return;
} }
List<String> lottery = InvUtils.getLotteryNumber(inv); List<String> lottery = InvUtils.getLotteryNumber(inv);
LotteryUtils.addLottery(p, lottery); LotteryUtils.addLottery(p, lottery);
ChatUtils.sendMessage(p, "§6您当前购买的彩票号码为: " + ChatColor.GREEN ChatUtils.sendMessage(p, "§6您当前购买的彩票号码为: " + ChatColor.GREEN + lottery.toString());
+ lottery.toString()); ChatUtils.howToShow(p);
ChatUtils.howToShow(p); LuckLottery.economy.withdrawPlayer(p, LotteryUtils.getPrice());
LuckLottery.economy.withdrawPlayer(p, LotteryUtils.getPrice()); p.closeInventory();
p.closeInventory(); break;
break; case InvUtils.ReSet:
case InvUtils.ReSet: inv.setContents(InvUtils.getGui());
inv.setContents(InvUtils.getGui()); break;
break; default:
case InvUtils.Normal1: if (solt < 36 && InvUtils.isLotteryItem(ci)) {
case InvUtils.Normal2: if (setSelect(inv, ci))
case InvUtils.Normal3: inv.setItem(solt, InvUtils.A);
case InvUtils.Normal4: }
case InvUtils.Normal5: break;
case InvUtils.Normal6: }
case InvUtils.Normal7: if (InvUtils.selectFinish(inv)) {
case InvUtils.Normal8: inv.setItem(53, InvUtils.Creat);
case InvUtils.Normal9: } else {
case InvUtils.Normal10: inv.setItem(53, InvUtils.CantCreat);
case InvUtils.Normal11: }
case InvUtils.Normal12: }
case InvUtils.Normal13: }
case InvUtils.Normal14:
case InvUtils.Normal15: private boolean setSelect(Inventory inv, ItemStack is) {
case InvUtils.Normal16: for (int i = 45; i < 53; i++) {
case InvUtils.Normal17: if (inv.getItem(i) == null) {
case InvUtils.Normal18: inv.setItem(i, is);
case InvUtils.Normal19: return true;
case InvUtils.Normal20: }
case InvUtils.Normal21: }
case InvUtils.Normal22: return false;
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;
}
}

View File

@ -1,313 +1,277 @@
package cn.citycraft.LuckLottery.utils; package cn.citycraft.LuckLottery.utils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.Material; import org.bukkit.Material;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.inventory.Inventory; import org.bukkit.inventory.Inventory;
import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.ItemStack;
import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.ItemMeta;
public class InvUtils { public class InvUtils {
public static final String InvName = ChatUtils.getPluginname() public static final String InvName = ChatUtils.getPluginname() + " §c§l售价: "
+ " §c§l售价: " + LotteryUtils.getPrice() + "元一份"; + LotteryUtils.getPrice() + "元一份";
public static final String Normal1 = "§6§l1"; public static final String NumPrefix = "§6§l";
public static final String Normal2 = "§6§l2"; public static final String Normal1 = "§6§l1";
public static final String Normal3 = "§6§l3"; public static final String Normal2 = "§6§l2";
public static final String Normal4 = "§6§l4"; public static final String Normal3 = "§6§l3";
public static final String Normal5 = "§6§l5"; public static final String Normal4 = "§6§l4";
public static final String Normal6 = "§6§l6"; public static final String Normal5 = "§6§l5";
public static final String Normal7 = "§6§l7"; public static final String Normal6 = "§6§l6";
public static final String Normal8 = "§6§l8"; public static final String Normal7 = "§6§l7";
public static final String Normal9 = "§6§l9"; 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 Normal10 = "§6§l10";
public static final String Normal12 = "§6§l12"; public static final String Normal11 = "§6§l11";
public static final String Normal13 = "§6§l13"; public static final String Normal12 = "§6§l12";
public static final String Normal14 = "§6§l14"; public static final String Normal13 = "§6§l13";
public static final String Normal15 = "§6§l15"; public static final String Normal14 = "§6§l14";
public static final String Normal16 = "§6§l16"; public static final String Normal15 = "§6§l15";
public static final String Normal17 = "§6§l17"; public static final String Normal16 = "§6§l16";
public static final String Normal18 = "§6§l18"; public static final String Normal17 = "§6§l17";
public static final String Normal19 = "§6§l19"; 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 Normal20 = "§6§l20";
public static final String Normal22 = "§6§l22"; public static final String Normal21 = "§6§l21";
public static final String Normal23 = "§6§l23"; public static final String Normal22 = "§6§l22";
public static final String Normal24 = "§6§l24"; public static final String Normal23 = "§6§l23";
public static final String Normal25 = "§6§l25"; public static final String Normal24 = "§6§l24";
public static final String Normal26 = "§6§l26"; public static final String Normal25 = "§6§l25";
public static final String Normal27 = "§6§l27"; public static final String Normal26 = "§6§l26";
public static final String Normal28 = "§6§l28"; public static final String Normal27 = "§6§l27";
public static final String Normal29 = "§6§l29"; 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 Normal30 = "§6§l30";
public static final String Normal32 = "§6§l32"; public static final String Normal31 = "§6§l31";
// public static final String Special1 = "§b§l1"; public static final String Normal32 = "§6§l32";
// public static final String Special2 = "§b§l2"; // public static final String Special1 = "§b§l1";
// public static final String Special3 = "§b§l3"; // public static final String Special2 = "§b§l2";
// public static final String Special4 = "§b§l4"; // public static final String Special3 = "§b§l3";
// public static final String Special5 = "§b§l5"; // public static final String Special4 = "§b§l4";
// public static final String Special6 = "§b§l6"; // public static final String Special5 = "§b§l5";
// public static final String Special7 = "§b§l7"; // public static final String Special6 = "§b§l6";
// public static final String Special8 = "§b§l8"; // public static final String Special7 = "§b§l7";
// public static final String Special9 = "§b§l9"; // 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 WEB = "§c请选取=>§6橙色普通号码§r§l|§b蓝色特殊号码";
public static final String Create = "§a§l生成彩票"; public static final String ReSet = "§4§l重新选取";
public static final String CantCreate = "§c§l请选取§66个普通号码§b1个特殊号码§a生成彩票"; 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); // 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, public static final ItemStack L0 = new ItemStack(Material.WOOL);
(short) 1); public static final ItemStack L1 = new ItemStack(Material.WOOL, 1, (short) 1);
public static final ItemStack L2 = new ItemStack(Material.WOOL, 1, public static final ItemStack L2 = new ItemStack(Material.WOOL, 1, (short) 2);
(short) 2); public static final ItemStack L3 = new ItemStack(Material.WOOL, 1, (short) 3);
public static final ItemStack L3 = new ItemStack(Material.WOOL, 1, public static final ItemStack L4 = new ItemStack(Material.WOOL, 1, (short) 4);
(short) 3); public static final ItemStack L5 = new ItemStack(Material.WOOL, 1, (short) 5);
public static final ItemStack L4 = new ItemStack(Material.WOOL, 1, public static final ItemStack L6 = new ItemStack(Material.WOOL, 1, (short) 6);
(short) 4); public static final ItemStack L7 = new ItemStack(Material.WOOL, 1, (short) 7);
public static final ItemStack L5 = new ItemStack(Material.WOOL, 1, public static final ItemStack L8 = new ItemStack(Material.WOOL, 1, (short) 8);
(short) 5); public static final ItemStack L9 = new ItemStack(Material.WOOL, 1, (short) 9);
public static final ItemStack L6 = new ItemStack(Material.WOOL, 1, public static final ItemStack L10 = new ItemStack(Material.WOOL, 1, (short) 10);
(short) 6); public static final ItemStack L11 = new ItemStack(Material.WOOL, 1, (short) 11);
public static final ItemStack L7 = new ItemStack(Material.WOOL, 1, public static final ItemStack L12 = new ItemStack(Material.WOOL, 1, (short) 12);
(short) 7); public static final ItemStack L13 = new ItemStack(Material.WOOL, 1, (short) 13);
public static final ItemStack L8 = new ItemStack(Material.WOOL, 1, public static final ItemStack L14 = new ItemStack(Material.WOOL, 1, (short) 14);
(short) 8); public static final ItemStack L15 = new ItemStack(Material.WOOL, 1, (short) 15);
public static final ItemStack L9 = new ItemStack(Material.WOOL, 1,
(short) 9); public static final ItemStack B0 = new ItemStack(Material.STAINED_GLASS);
public static final ItemStack L10 = new ItemStack(Material.WOOL, 1, public static final ItemStack B1 = new ItemStack(Material.STAINED_GLASS, 1, (short) 1);
(short) 10); public static final ItemStack B2 = new ItemStack(Material.STAINED_GLASS, 1, (short) 2);
public static final ItemStack L11 = new ItemStack(Material.WOOL, 1, public static final ItemStack B3 = new ItemStack(Material.STAINED_GLASS, 1, (short) 3);
(short) 11); public static final ItemStack B4 = new ItemStack(Material.STAINED_GLASS, 1, (short) 4);
public static final ItemStack L12 = new ItemStack(Material.WOOL, 1, public static final ItemStack B5 = new ItemStack(Material.STAINED_GLASS, 1, (short) 5);
(short) 12); public static final ItemStack B6 = new ItemStack(Material.STAINED_GLASS, 1, (short) 6);
public static final ItemStack L13 = new ItemStack(Material.WOOL, 1, public static final ItemStack B7 = new ItemStack(Material.STAINED_GLASS, 1, (short) 7);
(short) 13); public static final ItemStack B8 = new ItemStack(Material.STAINED_GLASS, 1, (short) 8);
public static final ItemStack L14 = new ItemStack(Material.WOOL, 1, public static final ItemStack B9 = new ItemStack(Material.STAINED_GLASS, 1, (short) 9);
(short) 14); public static final ItemStack B10 = new ItemStack(Material.STAINED_GLASS, 1, (short) 10);
public static final ItemStack L15 = new ItemStack(Material.WOOL, 1, public static final ItemStack B11 = new ItemStack(Material.STAINED_GLASS, 1, (short) 11);
(short) 15); 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 B0 = new ItemStack(Material.STAINED_GLASS); public static final ItemStack B14 = new ItemStack(Material.STAINED_GLASS, 1, (short) 14);
public static final ItemStack B1 = new ItemStack(Material.STAINED_GLASS, 1, public static final ItemStack B15 = new ItemStack(Material.STAINED_GLASS, 1, (short) 15);
(short) 1);
public static final ItemStack B2 = new ItemStack(Material.STAINED_GLASS, 1, public static final ItemStack W = new ItemStack(Material.SNOW_BALL);
(short) 2); public static final ItemStack Creat = new ItemStack(Material.MAP);
public static final ItemStack B3 = new ItemStack(Material.STAINED_GLASS, 1, public static final ItemStack CM = new ItemStack(Material.WATER_LILY);
(short) 3); public static final ItemStack CantCreat = new ItemStack(Material.EMPTY_MAP);
public static final ItemStack B4 = new ItemStack(Material.STAINED_GLASS, 1, public static final ItemStack A = new ItemStack(Material.AIR);
(short) 4); public static final ItemStack RT = new ItemStack(Material.LAVA_BUCKET);
public static final ItemStack B5 = new ItemStack(Material.STAINED_GLASS, 1, static {
(short) 5); setDisplayName(W, WEB);
public static final ItemStack B6 = new ItemStack(Material.STAINED_GLASS, 1, setDisplayName(L0, Normal1);
(short) 6); setDisplayName(L1, Normal2);
public static final ItemStack B7 = new ItemStack(Material.STAINED_GLASS, 1, setDisplayName(L2, Normal3);
(short) 7); setDisplayName(L3, Normal4);
public static final ItemStack B8 = new ItemStack(Material.STAINED_GLASS, 1, setDisplayName(L4, Normal5);
(short) 8); setDisplayName(L5, Normal6);
public static final ItemStack B9 = new ItemStack(Material.STAINED_GLASS, 1, setDisplayName(L6, Normal7);
(short) 9); setDisplayName(L7, Normal8);
public static final ItemStack B10 = new ItemStack(Material.STAINED_GLASS, setDisplayName(L8, Normal9);
1, (short) 10); setDisplayName(L9, Normal10);
public static final ItemStack B11 = new ItemStack(Material.STAINED_GLASS, setDisplayName(L10, Normal11);
1, (short) 11); setDisplayName(L11, Normal12);
public static final ItemStack B12 = new ItemStack(Material.STAINED_GLASS, setDisplayName(L12, Normal13);
1, (short) 12); setDisplayName(L13, Normal14);
public static final ItemStack B13 = new ItemStack(Material.STAINED_GLASS, setDisplayName(L14, Normal15);
1, (short) 13); setDisplayName(L15, Normal16);
public static final ItemStack B14 = new ItemStack(Material.STAINED_GLASS,
1, (short) 14); setDisplayName(B0, Normal17);
public static final ItemStack B15 = new ItemStack(Material.STAINED_GLASS, setDisplayName(B1, Normal18);
1, (short) 15); setDisplayName(B2, Normal19);
setDisplayName(B3, Normal20);
public static final ItemStack W = new ItemStack(Material.SNOW_BALL); setDisplayName(B4, Normal21);
public static final ItemStack Creat = new ItemStack(Material.MAP); setDisplayName(B5, Normal22);
public static final ItemStack CM = new ItemStack(Material.WATER_LILY); setDisplayName(B6, Normal23);
public static final ItemStack CantCreat = new ItemStack(Material.EMPTY_MAP); setDisplayName(B7, Normal24);
public static final ItemStack A = new ItemStack(Material.AIR); setDisplayName(B8, Normal25);
public static final ItemStack RT = new ItemStack(Material.LAVA_BUCKET); setDisplayName(B9, Normal26);
static { setDisplayName(B10, Normal27);
setDisplayName(W, WEB); setDisplayName(B11, Normal28);
setDisplayName(L0, Normal1); setDisplayName(B12, Normal29);
setDisplayName(L1, Normal2); setDisplayName(B13, Normal30);
setDisplayName(L2, Normal3); setDisplayName(B14, Normal31);
setDisplayName(L3, Normal4); setDisplayName(B15, Normal32);
setDisplayName(L4, Normal5);
setDisplayName(L5, Normal6); setDisplayName(CM, "§6<=普通号码§r|§b特殊号码=>");
setDisplayName(L6, Normal7); setDisplayName(RT, ReSet);
setDisplayName(L7, Normal8); setDisplayName(CantCreat, CantCreate);
setDisplayName(L8, Normal9); setDisplayName(Creat, Create);
setDisplayName(L9, Normal10); }
setDisplayName(L10, Normal11);
setDisplayName(L11, Normal12); private static final ItemStack[] GUI_LINE1 = {
setDisplayName(L12, Normal13); W,
setDisplayName(L13, Normal14); L0,
setDisplayName(L14, Normal15); L1,
L2,
setDisplayName(B0, Normal16); L3,
setDisplayName(B1, Normal17); L4,
setDisplayName(B2, Normal18); L5,
setDisplayName(B3, Normal19); L6,
setDisplayName(B4, Normal20); W
setDisplayName(B5, Normal21); /* 第一行结束 */};
setDisplayName(B6, Normal22); private static final ItemStack[] GUI_LINE2 = {
setDisplayName(B7, Normal24); L7,
setDisplayName(B8, Normal25); L8,
setDisplayName(B9, Normal26); L9,
setDisplayName(B10, Normal27); L10,
setDisplayName(B11, Normal28); L11,
setDisplayName(B12, Normal29); L12,
setDisplayName(B13, Normal30); L13,
setDisplayName(B14, Normal31); L14,
setDisplayName(B15, Normal32); L15
/* 第二行结束 */};
setDisplayName(CM, "§6<=普通号码§r|§b特殊号码=>"); private static final ItemStack[] GUI_LINE3 = {
setDisplayName(RT, ReSet); B0,
setDisplayName(CantCreat, CantCreate); B1,
setDisplayName(Creat, Create); B2,
} B3,
B4,
private static final ItemStack[] GUI_LINE1 = { W, L0, L1, L2, L3, L4, L5, B5,
L6, W /* 第一行结束 */}; B6,
private static final ItemStack[] GUI_LINE2 = { L7, L8, L9, L10, L11, L12, B7,
L13, L14, L15 /* 第二行结束 */}; B8
private static final ItemStack[] GUI_LINE3 = { B0, B1, B2, B3, B4, B5, B6, /* 第三行结束 */};
B7, B8 /* 第三行结束 */}; private static final ItemStack[] GUI_LINE4 = {
private static final ItemStack[] GUI_LINE4 = { W, B9, B10, B11, B12, B13, W,
B14, B15, W /* 第四行结束 */}; B9,
private static final ItemStack[] GUI_LINE5 = { W, W, W, W, W, W, RT, W, W /* 第五行结束 */}; B10,
private static final ItemStack[] GUI_LINE6 = { A, A, A, A, A, A, CM, A, B11,
CantCreat /* 第六行结束 */}; B12,
B13,
private static void setDisplayName(ItemStack item, String displayName) { B14,
ItemMeta itemMeta = item.getItemMeta(); B15,
itemMeta.setDisplayName(displayName); W
item.setItemMeta(itemMeta); /* 第四行结束 */};
} private static final ItemStack[] GUI_LINE5 = {
W,
public static ItemStack[] getGui() { W,
List<ItemStack> invgui = new ArrayList<ItemStack>(); W,
invgui.addAll(Arrays.asList(GUI_LINE1)); W,
invgui.addAll(Arrays.asList(GUI_LINE2)); W,
invgui.addAll(Arrays.asList(GUI_LINE3)); W,
invgui.addAll(Arrays.asList(GUI_LINE4)); RT,
invgui.addAll(Arrays.asList(GUI_LINE5)); W,
invgui.addAll(Arrays.asList(GUI_LINE6)); W
return invgui.toArray(new ItemStack[0]); /* 第五行结束 */};
} private static final ItemStack[] GUI_LINE6 = {
A,
public static void openGui(Player p) { A,
Inventory scrollInv = Bukkit.createInventory(null, 6 * 9, InvName); A,
scrollInv.setContents(getGui()); A,
p.openInventory(scrollInv); A,
} A,
CM,
public static boolean isLotteryGUI(Inventory inv) { A,
if (inv == null) CantCreat
return false; /* 第六行结束 */};
return inv.getHolder() == null && inv.getTitle().equals(InvName);
} private static void setDisplayName(ItemStack item, String displayName) {
ItemMeta itemMeta = item.getItemMeta();
public static boolean selectFinish(Inventory inv) { itemMeta.setDisplayName(displayName);
return (inv.getItem(45) != null && inv.getItem(46) != null item.setItemMeta(itemMeta);
&& inv.getItem(47) != null && inv.getItem(48) != null }
&& inv.getItem(49) != null && inv.getItem(50) != null && inv
.getItem(52) != null); public static ItemStack[] getGui() {
} List<ItemStack> invgui = new ArrayList<ItemStack>();
invgui.addAll(Arrays.asList(GUI_LINE1));
public static List<String> getLotteryNumber(Inventory inv) { invgui.addAll(Arrays.asList(GUI_LINE2));
List<String> lty = new ArrayList<String>(); invgui.addAll(Arrays.asList(GUI_LINE3));
for (int i = 45; i < 51; i++) { invgui.addAll(Arrays.asList(GUI_LINE4));
lty.add(item2number(inv.getItem(i))); invgui.addAll(Arrays.asList(GUI_LINE5));
} invgui.addAll(Arrays.asList(GUI_LINE6));
lty.add(item2number(inv.getItem(52))); return invgui.toArray(new ItemStack[0]);
return lty; }
}
public static void openGui(Player p) {
public static String item2number(ItemStack item) { Inventory scrollInv = Bukkit.createInventory(null, 6 * 9, InvName);
return name2number(item.getItemMeta().getDisplayName()); scrollInv.setContents(getGui());
} p.openInventory(scrollInv);
}
public static String name2number(String name) {
switch (name) { public static boolean isLotteryGUI(Inventory inv) {
case Normal1: if (inv == null)
return "1"; return false;
case Normal2: return inv.getHolder() == null && inv.getTitle().equals(InvName);
return "2"; }
case Normal3:
return "3"; public static boolean selectFinish(Inventory inv) {
case Normal4: return (inv.getItem(45) != null && inv.getItem(46) != null && inv.getItem(47) != null
return "4"; && inv.getItem(48) != null && inv.getItem(49) != null && inv.getItem(50) != null && inv
case Normal5: .getItem(52) != null);
return "5"; }
case Normal6:
return "6"; public static List<String> getLotteryNumber(Inventory inv) {
case Normal7: List<String> lty = new ArrayList<String>();
return "7"; for (int i = 45; i < 51; i++) {
case Normal8: lty.add(getItemNumber(inv.getItem(i)));
return "8"; }
case Normal9: lty.add(getItemNumber(inv.getItem(52)));
return "9"; return lty;
case Normal10: }
return "10";
case Normal11: public static String getItemNumber(ItemStack item) {
return "11"; String num = item.getItemMeta().getDisplayName();
case Normal12: if (num.startsWith(NumPrefix))
return "12"; return num.substring(NumPrefix.length());
case Normal13: return null;
return "13"; }
case Normal14:
return "14"; public static boolean isLotteryItem(ItemStack item) {
case Normal15: String num = item.getItemMeta().getDisplayName();
return "15"; return num.startsWith(NumPrefix);
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 "";
}
}

View File

@ -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("版本更新检查失败!");
}
}
});
}
}

View File

@ -26,6 +26,4 @@ Reward:
13: 2000 13: 2000
14: 3000 14: 3000
15: 4000 15: 4000
16: 10000 16: 10000

View File

@ -1,37 +1,38 @@
name: LuckLottery name: LuckLottery
main: cn.citycraft.LuckLottery.LuckLottery main: cn.citycraft.LuckLottery.LuckLottery
author: 喵♂呜 author: 喵♂呜
version: 0.0.7 website: http://ci.citycraft.cn:8800/jenkins/job/LuckLottery/
depended: [Vault] version: 0.1.0
commands: depended: [Vault]
lucklottery: commands:
aliases: [ll] lucklottery:
permissions: aliases: [ll]
lucklottery.*: permissions:
description: 允许使用所有命令! lucklottery.*:
default: op description: 允许使用所有命令!
children: default: op
lucklottery.showall: true children:
lucklottery.reward: true lucklottery.showall: true
lucklottery.random: true lucklottery.reward: true
lucklottery.look: true lucklottery.random: true
lucklottery.clear: true lucklottery.look: true
lucklottery.reload: true lucklottery.clear: true
lucklottery.showall: lucklottery.reload: true
description: 允许查看所有已购买彩票! lucklottery.showall:
default: op description: 允许查看所有已购买彩票!
lucklottery.reward: default: op
description: 允许结算上一轮彩票! lucklottery.reward:
default: op description: 允许结算上一轮彩票!
lucklottery.random: default: op
description: 允许重新生成本轮彩票! lucklottery.random:
default: op description: 允许重新生成本轮彩票!
lucklottery.look: default: op
description: 允许查看本轮彩票号码! lucklottery.look:
default: op description: 允许查看本轮彩票号码!
lucklottery.clear: default: op
description: 允许清理玩家彩票数据! lucklottery.clear:
default: op description: 允许清理玩家彩票数据!
lucklottery.reload: default: op
description: 允许重载彩票插件! lucklottery.reload:
description: 允许重载彩票插件!
default: op default: op