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

Помогите Плагин сломанного оружия

Discussion in 'Разработка плагинов для новичков' started by GodlikE, Mar 12, 2014.

  1. Автор темы
    GodlikE

    GodlikE Старожил Пользователь

    Trophy Points:
    103
    Имя в Minecraft:
    GodlikE
    Всем привет=) Я сделал плагин, который должен выдавать оружие заново, когда оно сломается, и вот его фрагмент:
    @EventHandler
    public void onItemBreak(PlayerItemBreakEvent br)
    {
    br.getPlayer().setItemInHand(br.getBrokenItem());
    }
    Он не работает, и я не могу понять, почему. Эклипс тоже не выдает ошибки. Помогите, кто чем может
     
  2. Хостинг MineCraft
    <
  3. BeYkeR

    BeYkeR Старожил Девелопер Пользователь

    Trophy Points:
    173
    Вы зарегистрировали слушатель ? Ну или попробуйте дописать br.getPlayer().updateInventory(); (если вы его зарегистрировали).
     
    dark32 likes this.
  4. Автор темы
    GodlikE

    GodlikE Старожил Пользователь

    Trophy Points:
    103
    Имя в Minecraft:
    GodlikE
    Да, слушателя зарегистрировал=) Дописал, не работает=( может, есть еще ошибки?
    Code:
    package startmessage;
    
    import org.bukkit.Bukkit;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerItemBreakEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class MainClass extends JavaPlugin implements Listener {
        public void onEnable()
        {
            getLogger().info("StartMessage was enabled");
            Bukkit.getPluginManager().registerEvents(this, this);
        }
    
        @EventHandler
        public void onJoin(PlayerJoinEvent e)
        {
            e.getPlayer().sendMessage("Привет, добрый друг!");
            getServer().broadcastMessage(e.getPlayer().getName() + " зашел на сервер");
            if(e.getPlayer().getLevel()<3)
            {
            e.getPlayer().setLevel(3);  
            }
            e.getPlayer().getMaxHealth();
        }
        @SuppressWarnings("deprecation")
        @EventHandler
        public void onItemBreak(PlayerItemBreakEvent br)
        {
            br.getPlayer().setItemInHand(br.getBrokenItem());
            br.getPlayer().updateInventory();
        }
        @EventHandler
        public void onQuit(PlayerQuitEvent q)  
        {
            q.getPlayer().sendMessage("Пока, добрый друг!");
            getServer().broadcastMessage(q.getPlayer().getName() + " вышел с сервера");
        }
        public void onDisable()
        {
            getLogger().info("StartMessage was disabled");
        }
    }
     
    Last edited by a moderator: Mar 12, 2014
  5. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ты даёшь сломанный итем.
     
    GodlikE likes this.
  6. StealerSlain

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

    Trophy Points:
    88
    Имя в Minecraft:
    StealerSlain
    Можешь попробовать сохранять предмет в Hashmap, потом оттуда выдавать его.
     
    GodlikE likes this.
  7. serega6531

    serega6531 Старожил Девелопер Пользователь

    Trophy Points:
    173
    Skype:
    shkurovs
    Code:
    br.getPlayer().setItemInHand(new ItemStack(br.getBrokenItem().getType()));
    Скорее так надо.
     
    GodlikE and Den_Abr like this.
  8. Автор темы
    GodlikE

    GodlikE Старожил Пользователь

    Trophy Points:
    103
    Имя в Minecraft:
    GodlikE
    StealerSlain, Den_Abr, serega6531, спасибо!=)
     

Share This Page