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

Помогите Как сделать чтоб действие производилось только если под блоком бетон?

Discussion in 'Разработка плагинов для новичков' started by Ivavmak, Dec 12, 2020.

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

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

    Trophy Points:
    61
    Имя в Minecraft:
    Lolka
    Как сделать чтоб действие производилось только если под блоком бетон? ОЧЕНЬ СРОЧНО Вот код:
    Code:
    package pixelbattle.main;
    
    import java.util.HashMap;
    
    import org.bukkit.Location;
    import org.bukkit.Material;
    import org.bukkit.block.Block;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.block.BlockPlaceEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.ItemStack;
    import net.md_5.bungee.api.ChatColor;
    
    
    
    
    public class Handler implements Listener{
        int blockp = 0;
        private HashMap<String, Long> TimeCoolDown = new HashMap<String, Long>();
        
        @EventHandler
        
        public void blockplace(BlockPlaceEvent event) {
            
            Player p = event.getPlayer();
            Block block = event.getBlock();
            ItemStack item = new ItemStack(p.getItemInHand());
                Location b_loc = block.getLocation().add(0, -1, 0);
                Location b_loc2 = block.getLocation().add(0, 0, 0);
                if(block.getType() == Material.CONCRETE) {
                      Long time = Long.valueOf(System.currentTimeMillis());
                      if(this.TimeCoolDown.containsKey(p.getName())) {
                          Long LastUse = this.TimeCoolDown.get(p.getName());
                          if(LastUse.longValue() + 15000L > time.longValue()) {
                              b_loc2.getBlock().setTypeId(0);
                              p.sendMessage(ChatColor.RED + "[PB] До Следующей Установки Пикселя " + (LastUse.longValue() + 15000L - time.longValue()) /1000 + " секунд.");
                              p.getInventory().addItem(item);
                              p.getInventory().removeItem(item);
                              return;
                          }
                      }
                      this.TimeCoolDown.put(p.getName(), time);
                    blockp=blockp+1;
                    b_loc.getBlock().setType(block.getType());
                    b_loc.getBlock().setData(block.getData());
                    b_loc2.getBlock().setTypeId(0);
                    p.getInventory().addItem(item);
                    p.getInventory().removeItem(item);
                }
        }
        
        @EventHandler
        public void join(PlayerJoinEvent e) {
        Player p = e.getPlayer();
        p.sendMessage(ChatColor.GOLD + "[PB] " + p.getName() + " Добро Пожаловать На Пиксель Баттл! Вы Поставили " + blockp + " блоков.");
        }
    }
     
  2. Хостинг MineCraft
    <
  3. qbert

    qbert Участник Пользователь

    Trophy Points:
    38
    1. Получить локацию блока которое сломали.
    2. Сделать Y локации на 1 меньше.
    3. Получаем блок по этой локации, и получаем его тип.
    4. Проверяем

    Не имею IDE, так что такая вот инструкция. Я знаю что это можно, и даже не сложно так что думаю код не нужен. Ой, что это?
     
    Last edited: Dec 13, 2020

Share This Page