Войти или зарегистрироваться

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

  • Автор темы Автор темы GodlikE
  • Дата начала Дата начала

GodlikE

Старожил
Пользователь
Баллы
103
Имя в Minecraft
GodlikE
Всем привет=) Я сделал плагин, который должен выдавать оружие заново, когда оно сломается, и вот его фрагмент:
@EventHandler
public void onItemBreak(PlayerItemBreakEvent br)
{
br.getPlayer().setItemInHand(br.getBrokenItem());
}
Он не работает, и я не могу понять, почему. Эклипс тоже не выдает ошибки. Помогите, кто чем может
 
Вы зарегистрировали слушатель ? Ну или попробуйте дописать br.getPlayer().updateInventory(); (если вы его зарегистрировали).
 
Да, слушателя зарегистрировал=) Дописал, не работает=( может, есть еще ошибки?
Java:
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");
    }
}
 
Последнее редактирование модератором:
Ты даёшь сломанный итем.
 
Можешь попробовать сохранять предмет в Hashmap, потом оттуда выдавать его.
 
Код:
br.getPlayer().setItemInHand(new ItemStack(br.getBrokenItem().getType()));
Скорее так надо.
 
StealerSlain, Den_Abr, serega6531, спасибо!=)
 
Назад
Верх