You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
2.8 KiB

package cx.sfy.TheBridge.kit;
import java.util.ArrayList;
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;
import org.bukkit.scheduler.BukkitRunnable;
import cx.sfy.TheBridge.Main;
import cx.sfy.TheBridge.database.PlayerStat;
import cx.sfy.TheBridge.game.InventoryData;
import cx.sfy.TheBridge.utils.ItemBuilder;
public class Hotbar {
Main plugin;
public Hotbar(Main plugin) {
this.plugin = plugin;
}
public void createHotbarMenu(Player p) {
Inventory inv = Bukkit.getServer().createInventory(null, 54, plugin.getLang().get("menus.hotbar.title"));
ItemStack [] items = plugin.getGM().getKit().getContents();
ItemStack glass = new ItemStack(Material.STAINED_GLASS_PANE, 1, (short)7);
ItemMeta glassM = glass.getItemMeta();
glassM.setDisplayName("§a↑ §eInventory");
List<String> lore = new ArrayList<String>();
lore.add("§a↓ §eHotbar");
glassM.setLore(lore);
glass.setItemMeta(glassM);
ItemStack save = ItemBuilder.item(Material.CHEST, 1, (short)0, plugin.getLang().get("menus.save.nameItem"), plugin.getLang().get("menus.save.loreItem"));
ItemStack close = ItemBuilder.item(Material.BARRIER, 1, (short)0, plugin.getLang().get("menus.close.nameItem"), plugin.getLang().get("menus.close.loreItem"));
for (int i = 0; i < 9; i++) {
if (items[i] != null) {
inv.setItem(i + 36, items[i]);
}
}
for (int i = 27; i < 36; i++) {
inv.setItem(i, glass);
}
inv.setItem(49, save);
inv.setItem(50, close);
new InventoryData(p);
new BukkitRunnable() {
@Override
public void run() {
if (!p.getOpenInventory().getTitle().equals(plugin.getLang().get("menus.hotbar.title"))) {
InventoryData itd = InventoryData.getInventoryData(p);
if (itd == null) {
return;
}
InventoryData.remove(p);
cancel();
}
}
}.runTaskTimer(plugin, 0, 0);
p.openInventory(inv);
}
public void saveLayout(Player p, Inventory inv) {
Inventory pinv = Bukkit.getServer().createInventory(null, 36);
for (int i = 0; i < 27; i++) {
if (inv.getItem(i) == null || inv.getItem(i).getType() == Material.AIR) {
pinv.setItem(i + 9, new ItemStack(Material.BARRIER));
} else {
pinv.setItem(i + 9, inv.getItem(i));
}
}
for (int i = 36; i < 45; i++) {
if (inv.getItem(i) == null || inv.getItem(i).getType() == Material.AIR) {
pinv.setItem(i - 36, new ItemStack(Material.BARRIER));
} else {
pinv.setItem(i - 36, inv.getItem(i));
}
}
PlayerStat ps = PlayerStat.getPlayerStat(p);
ps.setHotbar(pinv.getContents());
p.sendMessage(plugin.getLang().get("messages.hotbarSaved"));
}
}