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

Помогите Разрушения блока спец. инстументом

Тема в разделе "Разработка плагинов для новичков", создана пользователем _RBY_, 12 июл 2016.

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

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

    Баллы:
    61
    Хочу сделать например: что бы Камень(Stone) ломался только железной киркой.

    Как это сделать?
     
  2. Хостинг MineCraft
    <
  3. Best_pr0stk

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

    Баллы:
    78
    Имя в Minecraft:
    Best_pr0stik
    Создаешь ХэшМап. И далешь проверку, чем ломает.
     
  4. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Ору.
    Слушаешь BlockBreakEvent, проверяешь, что ломаемый блок Stone, проверяешь, что у игрока в руке железная кирка. Если нет - отменяешь событие.
     
  5. Best_pr0stk

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

    Баллы:
    78
    Имя в Minecraft:
    Best_pr0stik
    XD
     
  6. Автор темы
    _RBY_

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

    Баллы:
    61
    Так?

    Код:
    package Tutorial;
    
    import java.util.HashMap;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class mainClass extends JavaPlugin implements Listener
    {
       private HashMap<Material, String> blockTypes = new HashMap<Material, String>();
       private HashMap<Material, String> tools = new HashMap<Material, String>();
     
       @EventHandler
       public void onBlockBreak(BlockBreakEvent e)
       {
           Player p = e.getPlayer();
           Material itemInHand = p.getItemInHand().getType();
           Material blockToDestroy = e.getBlock().getType();
           if(blockTypes.containsKey(blockToDestroy) && tools.containsKey(itemInHand));
           {
               if(tools.get(itemInHand) == blockTypes.get(blockToDestroy));
               {
                   e.setCancelled(true);
               }
           }
           if(!tools.containsKey(itemInHand) && blockTypes.containsKey(blockToDestroy));
           {
               e.setCancelled(true);
           }
       }
     
       public void onEnable()
       {
           getLogger().info("Server Enable");
           Bukkit.getPluginManager().registerEvents(this, this);
           blockTypes.put(Material.STONE, "Stone");
           tools.put(Material.IRON_PICKAXE, "Stone");
       }
       public void onDisable()
       {
           getLogger().info("Server Disable");
       }
    }     
    
     
  7. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    Код:
        private HashMap<Material, Material> tools = new HashMap<Material, Material>();
    
        @EventHandler
        public void onBlockBreak(BlockBreakEvent e) {
            Player p = e.getPlayer();
            Material itemInHand = p.getItemInHand().getType();
            Material blockToDestroy = e.getBlock().getType();
    
            if (tools.containsKey(blockToDestroy))
                if (tools.get(blockToDestroy) != itemInHand)
                    e.setCancelled(true);
        }
    
    tools.put(Material.STONE, Material.IRON_PICKAXE);
    
     
  8. Автор темы
    _RBY_

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

    Баллы:
    61
    Не идет(
     
  9. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Ибо говнокод чистой воды.
     
  10. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    скинь весь код...[DOUBLEPOST=1468316597,1468316507][/DOUBLEPOST]
    У меня или у него?
     
  11. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Код:
    package Tutorial;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockBreakEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class mainClass extends JavaPlugin implements Listener
    {
       @EventHandler
       public void onBlockBreak(BlockBreakEvent e)
       {
           if (event.getBlock().getType() != Material.STONE)
           {
              return;
           }
    
           Player player = event.getPlayer();
    
           if (player.getItemInHand() != null && player.getItemInHand().getType() != Material.IRON_PICKAXE);
           {
               e.setCancelled(true);
           }
       }
    
       public void onEnable()
       {
           getLogger().info("Server Enable");
           Bukkit.getPluginManager().registerEvents(this, this);
       }
    }
    
     
    Последнее редактирование: 12 июл 2016
  12. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    Да что правда то правда.
     
  13. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    У обоих.
     
  14. DiamondDen

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

    Баллы:
    76
    Skype:
    danil_20034
    Имя в Minecraft:
    DiamondDen
    Падла! ну и в чём у меня говно код?
     
  15. CoolBoy

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

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Лол, опять оскорбления.
    Горишь с полуслова, хотя, в твоём возрасте это нормально :)

    Ты ещё спрашиваешь в чём там говнокод? Для симпл проверки юзать хешмап - да ты оперативы, я смотрю, совсем не жалеешь.
     
    Последнее редактирование: 12 июл 2016

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