Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Сделайте плагин на запрет переименновывания предметов в наковальне

Тема в разделе "Разработка плагинов для новичков", создана пользователем Strah, 11 дек 2015.

  1. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Ты не регистрируешь евент.
     
  2. Хостинг MineCraft
    <
  3. EnderBro3D

    EnderBro3D Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    EnderBro3D
    @EventHandler забыл
     
  4. IvanTabakerka

    IvanTabakerka Активный участник Пользователь

    Баллы:
    66
    Можно пример? Разобраться не могу.
     
  5. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    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.bukkit.inventory.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 + "Переименовывание предметов запрещено. Извини, но с этим связано множество багов."); //Отправляем сообщение о том, что такое делать запрещено
    }
    }
    }
    }
    }
    }

    }
     
  6. IvanTabakerka

    IvanTabakerka Активный участник Пользователь

    Баллы:
    66
    Спасибо[DOUBLEPOST=1492036769,1492028610][/DOUBLEPOST]
    upload_2017-4-13_2-37-2.png


    Description Resource Path Location Type
    Cannot instantiate the type PluginManager anr.java /GoodMineraft Anvil not Rename/src/gmc line 17 Java Problem

    Ошибку выдаёт. Может я что то упустил?

    Код:
    package gmc;
    
    import org.bukkit.ChatColor;
    import org.bukkit.entity.EntityType;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.inventory.InventoryType;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.plugin.PluginManager;
    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 + "Переименовывание предметов запрещено. Извини, но с этим связано множество багов."); //Отправляем сообщение о том, что такое делать запрещено
                            }
                        }
                    }
                }
            }
        }
       
    }
     
  7. HunterGaming

    HunterGaming Активный участник Пользователь

    Баллы:
    46
    Имя в Minecraft:
    HunterGaming13
    Ой сорри, это я неправильно тебе дал код, вот PluginManager pm = getServer ().getPluginManager ();
     
  8. IvanTabakerka

    IvanTabakerka Активный участник Пользователь

    Баллы:
    66
    Всё заработало. Спасибо.[DOUBLEPOST=1492085187,1492084921][/DOUBLEPOST]Anvil Not Rename 0.1.3 - плагин запрета переименования в наковальне.
    https://drive.google.com/open?id=0BykwztNi77MBdDNhcUMtam9iWmM
     
  9. TheZefirrkka

    TheZefirrkka Активный участник Пользователь

    Баллы:
    76
    Skype:
    RomaMamkinHasker1337
    Имя в Minecraft:
    TheZefirrkka
    Ещё раз апну тему, мне просто недавно хромосому подарили.
     

Поделиться этой страницей