LuckLottery/src/cn/citycraft/LuckLottery/utils/InvUtils.java

278 lines
10 KiB
Java

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);
}
}