Помогите Нужно сделать плагин вывода сообщений над головой игрока

Bo4ka_meda

Новичок
Баллы
6
Я хочу. чтобы при отправке сообщения в чат, сообщение отображалось над головой игрока, который ввел сообщение, и через несколько секунд пропал.
Мои вопросы:
1. Какой Event отвечает за отправку сообщений
2. Как сделать вывод чего-нибудь над головой игрока
Буду благодарен за ответы.
 
Код:
@org.bukkit.event.EventHandler
    public void onChat(org.bukkit.event.player.AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
        org.bukkit.entity.ArmorStand text = player.getWorld().spawn(player.getLocation(),ArmorStand.class);
        text.setVisible(false);
        text.setGravity(false);
        text.setCustomName(e.getMessage());
        text.setCustomNameVisible(true);
        Bukkit.getScheduler().runTaskLater(plugin, ()->{
            text.remove();
        }, delay);
    }
Вот мой набросок из говнокода! Модифицируй как тебе надо. Анимации добавь, оптимизацию!
 
Код:
@org.bukkit.event.EventHandler
    public void onChat(org.bukkit.event.player.AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
        org.bukkit.entity.ArmorStand text = player.getWorld().spawn(player.getLocation(),ArmorStand.class);
        text.setVisible(false);
        text.setGravity(false);
        text.setCustomName(e.getMessage());
        text.setCustomNameVisible(true);
        Bukkit.getScheduler().runTaskLater(plugin, ()->{
            text.remove();
        }, delay);
    }
Вот мой набросок из говнокода! Модифицируй как тебе надо. Анимации добавь, оптимизацию!
Спавн арморстенда не работает
 
Кидать тут нечего. Нельзя спавнить в асинсе.
Это да.
Поправил:
Код:
    @EventHandler
    private void on(AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
        Bukkit.getScheduler().runTask(plugin, () -> {
            ArmorStand text = player.getWorld().spawn(player.getLocation(), ArmorStand.class);
            text.setVisible(false);
            text.setGravity(false);
            text.setCustomName(e.getMessage());
            text.setCustomNameVisible(true);
            Bukkit.getScheduler().runTaskLater(plugin, text::remove, 20L);
        });
    }
 
Последнее редактирование:
Это да.
Поправил:
Код:
    @EventHandler
    private void on(AsyncPlayerChatEvent e) {
        Player player = e.getPlayer();
        Bukkit.getScheduler().runTask(RPGSessionCore.getSession(), () -> {
            ArmorStand text = player.getWorld().spawn(player.getLocation(), ArmorStand.class);
            text.setVisible(false);
            text.setGravity(false);
            text.setCustomName(e.getMessage());
            text.setCustomNameVisible(true);
            Bukkit.getScheduler().runTaskLater(plugin, text::remove, 20L);
        });
    }
RPGSessionCore.getSession()
Что это?
 
Назад
Верх