1. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

Решено Выполнение команды предметом при клике на игрока

Тема в разделе "Помощь", создана пользователем Xfester12, 24 июл 2016.

Статус темы:
Закрыта.
  1. Автор темы
    Xfester12

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

    Баллы:
    88
    Имя в Minecraft:
    Xfester
    Привет всем. Недавно на одном сервере увидел такую вещь:
    Дается игроку ифритовая палочка, которая может кидать дуель другим игрокам на которых кликаешь.
    Как, я понял, выполняется команда /1vs1 challange ник_игрока, но как эта ифритовая палочка подставляет туда ник игрока, может-кто-то знает плагин?

    Спасибо.
     
  2. alexandrage

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

    Баллы:
    173
    PlayerInteractEntityEvent
     
  3. Support_BD

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

    Баллы:
    66
    Имя в Minecraft:
    BD_
    Мда.
    ТС - попросил название плагина, а не ивент.
    Читать совсем разучился?
     
  4. Автор темы
    Xfester12

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

    Баллы:
    88
    Имя в Minecraft:
    Xfester
    Случаем нету такого плагина?
     
  5. alexandrage

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

    Баллы:
    173
    Пока что нет.
    Вот нарисовал.

    Код:
        @EventHandler
        public void on(PlayerInteractEntityEvent e) {
            if(e.getRightClicked().getType() == EntityType.PLAYER) {
                Player p = (Player) e.getRightClicked();
                e.getPlayer().chat("/команда"+ p.getName());
            }
        }
    Собственно вот сам ексемпл плагин https://github.com/alexandrage/Exemple
    Вставишь туда ивент, подстроишь под себя и название поменяешь.
     
  6. Qmaks

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

    Баллы:
    173
    Имя в Minecraft:
    Qmaks
    Не для тех рисуешь...
     
  7. Автор темы
    Xfester12

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

    Баллы:
    88
    Имя в Minecraft:
    Xfester
    Я не пробывал комплировать код, можешь пожалуйста сделать этот плагин с командой /challange, плез, прошу)
    Я попробую разобраться, если неполучиться, то напишу.
    А как сделать эту команду, только на ифритовой палочке?
     
  8. alexandrage

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

    Баллы:
    173
    if(e.getRightClicked().getType() == EntityType.PLAYER && e.getPlayer().getItemInHand().getType()==Material.BLAZE_ROD) {
     
  9. Автор темы
    Xfester12

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

    Баллы:
    88
    Имя в Minecraft:
    Xfester
    Это писать вместо: ?
    if(e.getRightClicked().getType() == EntityType.PLAYER) {
    Вроде не получилось:
    http://prntscr.com/bwxpou
    У меня ваще чет не получаеться, можешь пожалуйста, от всей души, от всего сердца прошу тебя, сделать для ифритовой палочки - команду /1vs1 duel
    Умоляю
     
  10. alexandrage

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

    Баллы:
    173
    Яж и написал как проверить палочку в руке.
     
  11. Автор темы
    Xfester12

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

    Баллы:
    88
    Имя в Minecraft:
    Xfester
    Ошибок полно, хоть либы заимпортил, Еклипс не работает, делаю все через ИнтелДжи.
    Плез, помоги(
    Помоги пожалуйста, очень нужно, очень-очень. У меня ошибок полно при компилировании плагина, именно он даже не компилируется, пожалуйта, помоги.
    Код:
    package Exemple;
    
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.AsyncPlayerChatEvent;
    import org.bukkit.event.player.PlayerInteractEntityEvent;
    import org.bukkit.entity.Player;
    
    public class EventListener implements Listener {
        Main plugin;
        public EventListener(Main instance) {
            this.plugin = instance;
        }
       
        @EventHandler
        public void onChat(AsyncPlayerChatEvent e) {
            e.getPlayer().sendMessage("["+this.plugin.getName()+"]"+" ok");
        }   
    }
            @EventHandler
            public void on(PlayerInteractEntityEvent e) {
            if(e.getRightClicked().getType() == EntityType.PLAYER) {
                Player p = (Player) e.getRightClicked();
                e.getPlayer().chat("/1vs1 duel"+ p.getName());
            }
        }
    Ошибки в 21, 24 и 25 строчках, вроде евент вставил, но ничего не изменилось.

    Сделал вот так вот:

    Код:
    package Exemple;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerInteractEntityEvent;
    import org.bukkit.entity.Player;
    
    public class EventListener implements Listener {
        Main plugin;
        public EventListener(Main instance) {
            this.plugin = instance;
        }
       
        @EventHandler
        public void on(PlayerInteractEntityEvent e) {
            if(e.getRightClicked().getType() == EntityType.PLAYER && e.getPlayer().getItemInHand().getType()==Material.BLAZE_ROD) {
                        Player p = (Player) e.getRightClicked();
                        e.getPlayer().chat("/1vs1 duel"+ p.getName());
                    }
        }   
    }
    Ошибка в 15 строке. Подчеркнуто EntityType
    Все получилось, решилось все добавлением оператора:
    import org.bukkit.Material;
     
  12. Qmaks

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

    Баллы:
    173
    Имя в Minecraft:
    Qmaks
    Ну ты и тупой...
     
  13. Автор темы
    Xfester12

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

    Баллы:
    88
    Имя в Minecraft:
    Xfester
    Я ни разу этим не занимался, разве ты не начинал с того же?
    Спасибо, @alexandrage
     
Статус темы:
Закрыта.

Поделиться этой страницей