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

Помогите Проблемы с эвентом PlayerJoinEvent и PlayerChatEvent

  • Автор темы Автор темы BeLkA
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

BeLkA

Старожил
Пользователь
Баллы
153
Здравствуйте, уважаемые форумчане! Пишу я такой плагин, вроде все нормально, а тут БАЦ, и название для предмета не ставится, и формат сообщений не редактируется! Что же делать?

Код:
@EventHandler
    public void onJoin (PlayerJoinEvent e) {
        ItemStack book = new ItemStack(Material.WRITTEN_BOOK);
        ItemStack compass = new ItemStack(Material.COMPASS);
        ItemStack watch = new ItemStack(Material.WATCH);
        e.getPlayer().sendMessage("§a      Добро пожаловать на §9Fantazzy §4Line§a!");
        e.getPlayer().sendMessage("§6      Вы можете прочитать все правила сервера в книге");
        e.getPlayer().sendMessage("§a      Для покупки привилегий, зайдите на сайт §2http://fantazzy-line.ru/donate");
        e.getPlayer().sendMessage("§6      Мы желаем Вам приятной игры!");
        e.setJoinMessage("");
        ItemMeta meta2 = (ItemMeta) compass.getItemMeta();
        compass.setItemMeta(meta2);
        e.getPlayer().getInventory().setItem(0, compass);
        meta2.setDisplayName("§eКомпас §3(Правый клик)");
        meta2.setLore(Arrays.asList(new String[] { "§7Телепорт в миры игр" }));
        ItemMeta meta3 = (ItemMeta) watch.getItemMeta();
        meta3.setDisplayName("§eМагические Часы §3(Правый клик)");
        meta3.setLore(Arrays.asList(new String[] { "§7Хочешь видеть игроков?" }));
        e.getPlayer().getInventory().setItem(1, watch);
        watch.setItemMeta(meta3);
        e.getPlayer().setCanPickupItems(false);
    }
   
    public void onChat (AsyncPlayerChatEvent e) {
        if(!(e.getMessage().isEmpty())) {
        e.setFormat("§6" + e.getPlayer().getName() + "§8: " + "§b" + e.getMessage());
        e.setMessage("§6" + e.getPlayer().getName() + "§8: " + "§b" + e.getMessage());
    }
    }
 
Здравствуйте, уважаемые форумчане! Пишу я такой плагин, вроде все нормально, а тут БАЦ, и название для предмета не ставится, и формат сообщений не редактируется! Что же делать?

Код:
@EventHandler
    public void onJoin (PlayerJoinEvent e) {
        ItemStack book = new ItemStack(Material.WRITTEN_BOOK);
        ItemStack compass = new ItemStack(Material.COMPASS);
        ItemStack watch = new ItemStack(Material.WATCH);
        e.getPlayer().sendMessage("§a      Добро пожаловать на §9Fantazzy §4Line§a!");
        e.getPlayer().sendMessage("§6      Вы можете прочитать все правила сервера в книге");
        e.getPlayer().sendMessage("§a      Для покупки привилегий, зайдите на сайт §2http://fantazzy-line.ru/donate");
        e.getPlayer().sendMessage("§6      Мы желаем Вам приятной игры!");
        e.setJoinMessage("");
        ItemMeta meta2 = (ItemMeta) compass.getItemMeta();
        compass.setItemMeta(meta2);
        e.getPlayer().getInventory().setItem(0, compass);
        meta2.setDisplayName("§eКомпас §3(Правый клик)");
        meta2.setLore(Arrays.asList(new String[] { "§7Телепорт в миры игр" }));
        ItemMeta meta3 = (ItemMeta) watch.getItemMeta();
        meta3.setDisplayName("§eМагические Часы §3(Правый клик)");
        meta3.setLore(Arrays.asList(new String[] { "§7Хочешь видеть игроков?" }));
        e.getPlayer().getInventory().setItem(1, watch);
        watch.setItemMeta(meta3);
        e.getPlayer().setCanPickupItems(false);
    }
  
    public void onChat (AsyncPlayerChatEvent e) {
        if(!(e.getMessage().isEmpty())) {
        e.setFormat("§6" + e.getPlayer().getName() + "§8: " + "§b" + e.getMessage());
        e.setMessage("§6" + e.getPlayer().getName() + "§8: " + "§b" + e.getMessage());
    }
    }
Ну во-первых, ты присваиваешь мету предмету после его выдачи.
Во-вторых, над методом onChat нет соответствующей аннотации
 
Ну во-первых, ты присваиваешь мету предмету после его выдачи.
Во-вторых, над методом onChat нет соответствующей аннотации
1. Я уже сколько раз не переставлял, ничего не получается.
2. Что за аннотация?
 
1. Я уже сколько раз не переставлял, ничего не получается.
2. Что за аннотация?
Я более чем уверен, что ты даже сам не можешь разобраться в этом беспорядочном коде, раз не видишь, что действия выполнены в неверном порядке.
 
Я более чем уверен, что ты даже сам не можешь разобраться в этом беспорядочном коде, раз не видишь, что действия выполнены в неверном порядке.
Кстати да.
BeLkA, чтобы выдавать кастомные предметы нужно все делать по порядку.
1. Создать новый ItemStack (ItemStack compass = new ItemStack(Material.COMPASS))
2. Получить ItemMeta с предмета (ItemMeta com = compass.getItemMeta())
3. Затем кастомизируем Item. (Изменяем имя, добавляем лоры и т.д)
4. Сохраняем мету (compass.setItemMeta(com))
5. Выдаем предмет игроку епть (e.getPlayer().getInventory().addItem(compass))

Надеюсь помог :)
 
Я более чем уверен, что ты даже сам не можешь разобраться в этом беспорядочном коде, раз не видишь, что действия выполнены в неверном порядке.
Пфф. 1. Выдавай предметы после сохранения итемметы
2. Аннотации... EventHandler...

Кстати да.
BeLkA, чтобы выдавать кастомные предметы нужно все делать по порядку.
1. Создать новый ItemStack (ItemStack compass = new ItemStack(Material.COMPASS))
2. Получить ItemMeta с предмета (ItemMeta com = compass.getItemMeta())
3. Затем кастомизируем Item. (Изменяем имя, добавляем лоры и т.д)
4. Сохраняем мету (compass.setItemMeta(com))
5. Выдаем предмет игроку епть (e.getPlayer().getInventory().addItem(compass))

Надеюсь помог :)

Этот беспорядочный код писал я, а вот в порядке действий разобрался плохо. Спасибо @JustBlender , все понятно объяснил!
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх