package gmc;
import org.bukkit.ChatColor;
import org.bukkit.entity.EntityType;
import org.bukkit.entity.Player;
import org.bukkit.event.Listener;
import org.bukkit.event.inventory.InventoryClickEvent;
import org.bukkit.event.inventory.InventoryType;
import org.*********ventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
public class anr extends JavaPlugin implements Listener{
public void onEnable() {
PluginManager pm = new PluginManager();
pm.registerEvents(this, this); <--- Регистрация евента!
}
@EventHandler <--- Это обязательное поле, т.к. без него евент просто не будет работать.
public void onInventoryClick(InventoryClickEvent event) { //Получаем ивент действия(клика) в инвентаре
if (event.getWhoClicked().getType() == EntityType.PLAYER) { // Если чудище, которое кликает оказалось игроком
Player p = (Player) event.getWhoClicked(); //Получаем определённого игрока, который выполнил действие(клик)
ItemStack item = event.getCurrentItem(); //Получаем текущий используемый предмет (Получаем с event, то есть будет выдавать тот предмет, который мы перетаскивали куда-то)
if (event.getInventory().getType() == InventoryType.ANVIL) { //Получение типа инвентаря с event'a. Если тип инвентаря - Наковальня
if (item != null) { //Если вещь не равна нулю (Если вещь существует)
ItemStack item0 = event.getInventory().getItem(0); //Получаем предмет с левого слота (Самого первого)
if (item0 != null) { //Если предмет слева не равен нулю (Если он существует)
String originalName = ""; //Создаём переменную originalName(оригинальное название тип)
if (item0.hasItemMeta() && item0.getItemMeta().hasDisplayName()) { //Если предмет имеет информацию какую либо (lore, название, зачарования, атрибуты) и если предмет имеет название | Это идёт со слота наковальни (Который слева)
originalName = item0.getItemMeta().getDisplayName(); //Присваиваем переменной originalName название предмета переменной item0
}
String changedName = ""; //Создаём переменную changedName (изменённое название)
if (item.hasItemMeta() && item.getItemMeta().hasDisplayName()) { //Если предмет имеет информацию какую либо (lore, название, зачарования, атрибуты) и если предмет имеет название | Это идёт используемый предмет относительно event'a (Чуть выше можно увидеть присвоение переменной item)
changedName = item.getItemMeta().getDisplayName(); //Присваиваем переменной changedName название предмета переменной item
}
if (!originalName.equals(changedName)) { //Если переменная originalName не соответствует (не равна) переменной changedName
event.setCancelled(true); //Отменяем event
p.sendMessage(ChatColor.GREEN + "Переименовывание предметов запрещено. Извини, но с этим связано множество багов."); //Отправляем сообщение о том, что такое делать запрещено
}
}
}
}
}
}
}