- Баллы
- 36
- Имя в Minecraft
- Welester
Проблема в том, что место вещей в GUI фиолетовые квадраты(отсутствующие текстуры)
Вот itemUtil
Вот сам gui
Вот ивентер и подключение GUI к команде
Вот itemUtil
Java:
public class itemUtil {
public static ItemStack create(Material material,int amount, byte data,String displayName,String lore1,String lore2,String lore3,String lore4){
ItemStack item = new ItemStack(material, amount, data);
ItemMeta meta = item.getItemMeta();
if(displayName !=null){
meta.setDisplayName(displayName);
}
ArrayList<String> lore = new ArrayList<String>();
if(lore1 !=null){
lore.add(lore1);
}
if(lore2 !=null){
lore.add(lore2);
}
if(lore3 !=null){
lore.add(lore3);
}
if(lore4 !=null){
lore.add(lore4);
}
return item;
}
public static ItemStack create(Material material,String displayName){
return create(material, 1,(byte) 1, displayName, null,null,null,null);
}
public static ItemStack create(Material material,int amount, byte data,String displayName){
return create(material, 1,(byte) 1, displayName, null,null,null,null);
}
}
Java:
public class GUI {
public static void openGUI(Player p){
Inventory inv = Bukkit.createInventory(null, 27, "Магазин продуктов");
inv.setItem(0, itemUtil.create(Material.APPLE, "Купить яблоко"));
inv.setItem(26, itemUtil.create(Material.WOOD_DOOR,ChatColor.RED + "Выход"));
p.openInventory(inv);
}
}
Java:
if(cmd.getName().equalsIgnoreCase("shop")){
if(p.getPlayer().getLocation().subtract(0, +1, 0).getBlock().getType() ==Material.BOOKSHELF){
GUI.openGUI(p);
}
else{
p.sendMessage("Вы не в магазине");
}
@EventHandler
public void invClick(InventoryClickEvent e){
Player p = (Player) e.getWhoClicked();
if(e.getInventory().getName().equalsIgnoreCase("Магазин продуктов")){
e.setCancelled(true);
if(e.getCurrentItem().getType() ==Material.WOOD_DOOR){
p.closeInventory();
}
if(e.getCurrentItem().getType() ==Material.APPLE){
if(getConfig().getInt("players." + p.getPlayer()) >= 20){
p.getInventory().addItem(new ItemStack(Material.APPLE));
p.closeInventory();
getConfig().set("players." + p.getPlayer(), getConfig().getInt("players." + p.getPlayer()) - 20);
}
else{
p.closeInventory();
p.sendMessage(ChatColor.RED + "Недосточно средств.");
}
}
}
[code]