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

Помогите Опять прошу...

Тема в разделе "Разработка плагинов для новичков", создана пользователем ShaGTF, 13 фев 2014.

  1. Автор темы
    ShaGTF

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

    Баллы:
    68
    Имя в Minecraft:
    CoolShaGGy
    Привет! Не буду тянуть, вообщем вот код:
    Код:
    package TheWar;
    
    import org.bukkit.entity.Fireball;
    import org.bukkit.event.EventHandler;
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    
    public class mainClass extends JavaPlugin implements Listener {
           
    
        public void onEnable(){
            Bukkit.getPluginManager().registerEvents(this, this);
            getLogger().info("TheWar plugin enabling");
        }
        public void onDisable(){
            getLogger().info("TheWar plugin disabling");
        }
    
        @EventHandler
        public void getAction(PlayerInteractEvent e) {
            if(e.getAction().equals(Action.RIGHT_CLICK_AIR)) {
                if(e.getPlayer().getItemInHand().getType().equals(Material.BLAZE_ROD)); {
                    e.getPlayer().launchProjectile(Fireball.class);
                       
                    }
                }
    
                       
                    }
                   
           
                }
       
       
    
    Вопрос: Если я нажимаю ПКМ с ЛЮБЫМ блоком, выстреливается FireBall. А мне нужно с палочкой блейза... Помогите, пожалуйста. Я надоел, знаю.
     
  2. JustBlender

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

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    ПОТОМУ ЧТО НАДО ПОБОЛЬШЕ ЧИТАТЬ ДОКУМЕНТАЦИИ. И нахера тут equals? Используй его если тебе надо например уже сделать проверку на имя предмета. Просто: уриури.getType() == Material.BLAZE_ROD
     
    ShaGTF нравится это.
  3. Автор темы
    ShaGTF

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

    Баллы:
    68
    Имя в Minecraft:
    CoolShaGGy
    Спасибо :D Буду читать документацию (*゚▽゚)ノ
     
  4. JustBlender

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

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Еще есть вопросы? А то делать нечего :)
    И еще, рекомендую все таки использовать "пакет" вот так: не просто TheWar, а например, ru.shagtf.thewar. Незнаю, но мне это больше нравится :D
     
  5. Автор темы
    ShaGTF

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

    Баллы:
    68
    Имя в Minecraft:
    CoolShaGGy
    Угу, спасибо за совет. Как же ты мне помогаешь :3
     
  6. StealerSlain

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

    Баллы:
    88
    Имя в Minecraft:
    StealerSlain
    Вот на всякий случай.

    Вопрос

    Что такое метод equals() ?
    Чем он отличается от операции == ?

    Ответ

    Метод equals() обозначает отношение эквивалентности объектов. Эквивалентным называется отношение, которое является симметричным, транзитивным и рефлексивным. Рефлексивность: для любого ненулевого x, x.equals(x) вернет true;
    Транзитивность: для любого ненулевого x, y и z, если x.equals(y) и y.equals(z) вернет true, тогда и x.equals(z) вернет true;
    Симметричность: для любого ненулевого x и y, x.equals(y) должно вернуть true, тогда и только тогда, когда y.equals(x) вернет true.
    Также для любого ненулевого x, x.equals(null) должно вернуть false.
    Отличия equals() от операции == в классе Object нет. Это видно, если взглянуть исходный код метода equals класса Object:
     
    musel70 и JustBlender нравится это.
  7. _Danger_

    _Danger_ Активный участник

    Баллы:
    68
    Skype:
    heyqweel
    Имя в Minecraft:
    _Danger_
    Вот весь плагин за тебя ЖДУ ЛАЙКА.)))

    Код:
    package TheWar;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Fireball;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class mainClass extends JavaPlugin implements Listener
    {
    
        public void onEnable()
        {
            Bukkit.getPluginManager().registerEvents(this, this);
            getLogger().info("TheWar plugin enabling");
        }
    
        @EventHandler
        public void onClick(PlayerInteractEvent e)
        {
            Player player = e.getPlayer();
            if(e.getAction() == Action.RIGHT_CLICK_AIR)
            {
                if(player.getItemInHand().getType() == Material.BLAZE_ROD)
                {
                      e.getPlayer().launchProjectile(Fireball.class);
                }
            }
        }
    
        public void onDisable()
        {
            getLogger().info("TheWar plugin disabling");
        }
    
      //The War Plugin Bukkit
    
    }
     
    Последнее редактирование: 14 фев 2014
  8. JustBlender

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

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Не жди. Что тут такого нового? И еще херею от такого:
    Код:
                if(player.getItemInHand().getType() == Material.BLAZE_ROD)
                {
    
                    if(e.getPlayer().getItemInHand().getType().equals(Material.BLAZE_ROD));
                    {
    Зачем писать equals? x2. Если проверку на айтем уже сделали?
     
  9. kris13

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

    Баллы:
    78
    Автору на заметку. В коде используется проверка предмета через материал, так же возможны варианты сравнения самого предмета(в бакките есть класс Item в котором ванильные предметы, так же есть класс Block) и еще можно брать от предмета getTypeId() и сравнивать по ID предмета, последний вариант удобен при работе с модами.
     
  10. _Danger_

    _Danger_ Активный участник

    Баллы:
    68
    Skype:
    heyqweel
    Имя в Minecraft:
    _Danger_
    ахахахха я прсото спешил и забыл удалить когда вставлял !
     

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