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

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

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

Thread Status:
Not open for further replies.
  1. Автор темы
    BeLkA

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

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

    Code:
    @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());
        }
        }
     
  2. Хостинг MineCraft
    <
  3. Den_Abr

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

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Ну во-первых, ты присваиваешь мету предмету после его выдачи.
    Во-вторых, над методом onChat нет соответствующей аннотации
     
  4. Автор темы
    BeLkA

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

    Trophy Points:
    153
    Skype:
    FayStaff
    1. Я уже сколько раз не переставлял, ничего не получается.
    2. Что за аннотация?
     
  5. JustBlender

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

    Trophy Points:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Пфф. 1. Выдавай предметы после сохранения итемметы
    2. Аннотации... EventHandler...
     
  6. Den_Abr

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

    Trophy Points:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Я более чем уверен, что ты даже сам не можешь разобраться в этом беспорядочном коде, раз не видишь, что действия выполнены в неверном порядке.
     
  7. JustBlender

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

    Trophy Points:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Кстати да.
    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))

    Надеюсь помог :)
     
    BeLkA likes this.
  8. Автор темы
    BeLkA

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

    Trophy Points:
    153
    Skype:
    FayStaff
    Этот беспорядочный код писал я, а вот в порядке действий разобрался плохо. Спасибо @JustBlender , все понятно объяснил!
     
Thread Status:
Not open for further replies.

Share This Page