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

  • Автор темы Автор темы _RBY_
  • Дата начала Дата начала

_RBY_

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

Как это сделать?
 
Создаешь ХэшМап. И далешь проверку, чем ломает.
Ору.
Хочу сделать например: что бы Камень(Stone) ломался только железной киркой.

Как это сделать?
Слушаешь BlockBreakEvent, проверяешь, что ломаемый блок Stone, проверяешь, что у игрока в руке железная кирка. Если нет - отменяешь событие.
 
Так?

Java:
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");
   }
}
 
Код:
    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);
 
Код:
    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);
Не идет(
 
Java:
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);
   }
}
 
Последнее редактирование:
Да что правда то правда.
 
Падла! ну и в чём у меня говно код?
Лол, опять оскорбления.
Горишь с полуслова, хотя, в твоём возрасте это нормально :)

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