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

Помогите [Решено] Ломание блока правой кнопкой

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

Статус темы:
Закрыта.
  1. Автор темы
    capone641693

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

    Баллы:
    68
    Здравствуйте уважаемые разработчики, пытаюсь сделать в плагине ломание блока правой кнопкой мыши следующим кодом:

    Код:
    @EventHandler
    public void onPlayerInteractEvent(PlayerInteractEvent event)
    {
            if (event.getAction() == Action.RIGHT_CLICK_BLOCK)
            {
            Block b =event.getClickedBlock().getWorld().getBlockAt(event.getClickedBlock().getLocation().getBlockX() , event.getClickedBlock().getLocation().getBlockY(), event.getClickedBlock().getLocation().getBlockZ()) ;
            b.breakNaturally();//пробывал заменять на b.setType(Material.AIR); //результата 0
            }
    }
    
    но данный код ничего не делает(проект без проблем собирается, в логах сервера нет ошибок при любых действиях). Пожалуйста подскажите где я ошибся ? и как лучше это реализовать.
     
  2. Хостинг MineCraft
    <
  3. serega6531

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

    Баллы:
    173
    Skype:
    shkurovs
    Block b =event.getClickedBlock().getWorld().getBlockAt(event.getClickedBlock().getLocation().getBlockX(), event.getClickedBlock().getLocation().getBlockY(), event.getClickedBlock().getLocation().getBlockZ());
    :eek::eek::eek::eek::eek::eek::eek::eek::eek::eek::eek::eek::eek::eek::eek:
     
  4. Автор темы
    capone641693

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

    Баллы:
    68
    ну да можно было чуть проще знаю используя просто event.getClickedBlock().getWorld().getBlock() но результат от этого неменяется
     
  5. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    e.getClickedBlock().breakNaturally();
     
  6. Автор темы
    capone641693

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

    Баллы:
    68
    К сожалению тоже нет результата (серверное ядро MCPC+ 1.5.2, установленные плагины: который делаю, WorldEdit,WorldGuard,CommandBook,PermissionsEX)

    Код:
    public void onPlayerInteractEvent(PlayerInteractEvent event)
    {
    if (event.getAction() == Action.RIGHT_CLICK_BLOCK)
    {
    event.getClickedBlock().breakNaturally();
    }
    }
     
    Последнее редактирование: 30 окт 2014
  7. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Не список плагинов нам нужен, а код листенера и главного класса полностью
     
  8. Автор темы
    capone641693

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

    Баллы:
    68
    Код:
    package test;
    
    import java.io.File;
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    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.Action;
    import org.bukkit.event.inventory.CraftItemEvent;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.Recipe;
    import org.bukkit.inventory.ShapedRecipe;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import com.sk89q.worldguard.bukkit.WGBukkit;
    import com.sk89q.worldguard.protection.ApplicableRegionSet;
    import com.sk89q.worldguard.protection.managers.RegionManager;
    import com.sk89q.worldguard.protection.regions.ProtectedRegion;
    
    public class MainSystem extends JavaPlugin implements Listener
    {
    
     
    public MainSystem()
    {
         
    }
    
    @Override
    public void onEnable()
    {
    
    }
    @EventHandler
    public void onPlayerInteractEvent(PlayerInteractEvent event)
    {
      if (event.getAction() == Action.RIGHT_CLICK_BLOCK)
      {
      event.getClickedBlock().breakNaturally();
      }
    }
    
    }
     
  9. Den_Abr

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

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    слушатель же не зарегистрирован
     
  10. Автор темы
    capone641693

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

    Баллы:
    68
    Больше спасибо Вы были правы, добавил строчку кода и все пошло как надо. :good:
    Код:
    public void onEnable()
    {
    Bukkit.getPluginManager().registerEvents(this, this);
    }
     
  11. Hilgert

    Hilgert Старожил Пользователь

    Баллы:
    123
    Skype:
    mixa2258
    Имя в Minecraft:
    Hilgert
    Небось и на проверку региона(WorldGuard) вы тоже не сделали, будут гриферить заприваченные территории c:
     
  12. CraftCoder

    CraftCoder Старожил Пользователь

    Баллы:
    108
    Имя в Minecraft:
    CraftCoderr
    Я думаю это миниигра и о грифе речи не идет...
     
Статус темы:
Закрыта.

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