- Баллы
- 76
- Имя в Minecraft
- Solomka
У меня встал вопрос: Как сделать так, чтобы наличии игрока в map в инвентарь добавлялась его голова, но все остальные слоты, которые не заняты, оставались заполнены барьерами, если игрока удалили из map, то голова удаляется и заменяется барьером.
Создание отдельного меню каждый раз, когда игрок взаимодействует с предметом, если он находится не в этом меню, то она удаляется автоматически и так с каждым игроком, который будет добавлен в меню, а именно головы
Меню:
Создание отдельного меню каждый раз, когда игрок взаимодействует с предметом, если он находится не в этом меню, то она удаляется автоматически и так с каждым игроком, который будет добавлен в меню, а именно головы
Код:
public class BasicGUI {
public static Inventory i;
public static Inventory createInventoryDefault() {
if (i == null) {
i = Bukkit.createInventory(null, 18, "Список");
}
return i;
}
public static Inventory createInventoryPersonal(Inventory personal, Player player_holder, Player player){
if(personal.getHolder() != player_holder) {
personal = Bukkit.createInventory(player_holder, 18, player_holder.getName());
}
player.openInventory(personal);
return personal;
}
public static void addItem(ItemStack item, int slot) {
i.setItem(slot, item);
}
@NotNull
public static ItemMeta setMetaItem(ItemStack item, List<String> lore, String title){
ItemMeta meta = item.getItemMeta();
meta.setLore(lore);
meta.setDisplayName(title);
item.setItemMeta(meta);
return meta;
}
public static void deleteItem(int slot){
i.remove(slot);
}
Меню:
Код:
public static void inventory(Inventory inventory, Player p) {
ItemStack NULL_SLOT = new ItemStack(Material.BARRIER);
ItemStack HEAD_PLAYER = new ItemStack(Material.SKULL_ITEM);
if(!p.getOpenInventory().equals(inventory)) return;
for (Player pl : Bukkit.getOnlinePlayers()) {
UUID id = pl.getUniqueId();
if (!map.contains(id)) {
for (int i = 0; i == inventory.getSize(); i++) {
inventory.setItem(i, NULL_SLOT);
}
}
for(int i = 0; i == p.getInventory().getSize(); i++) {
if(inventory.getItem(i) != NULL_SLOT) {
i++;
}
SkullMeta meta = (SkullMeta) HEAD_PLAYER.getItemMeta();
meta.setOwner(pl.getName());
HEAD_PLAYER.setItemMeta(meta);
p.getInventory().setItem(i, HEAD_PLAYER);
setMetaItem(HEAD_PLAYER, "Нажмите, чтобы узнать больше...", pl.getName());
}
}
}
Последнее редактирование: