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

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

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

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

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

    Баллы:
    61
    Имя в Minecraft:
    Lolka
    Как сделать чтоб действие производилось только если под блоком бетон? ОЧЕНЬ СРОЧНО Вот код:
    Код:
    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 Участник Пользователь

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

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

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