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

Помогите Выполнение и отслеживание команд через плагин

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

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

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

    Баллы:
    36
    Имя в Minecraft:
    1kovand1
    Подскажите, как отловить команды других плагинов (/rg remove, /rg claim, /rg flag /rg addowner) и как делать чтобы плагин выполнял команды(/say /op /tp и т. д. кто не врубается)
    P.S Я не хак пишу, и не надо спрашивать зачем мне это нужно
     
  2. Хостинг MineCraft
    <
  3. MrTrojan

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

    Баллы:
    98
    Skype:
    mrtrojan.ru
    Имя в Minecraft:
    MrTrojan
    1. Отлавливай ивент PlayerCommandPreprocess и получить команду там - e.getMessage()
    2. Bukkit.dispatchCommand(player, "команда");
     
  4. Автор темы
    kovand

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

    Баллы:
    36
    Имя в Minecraft:
    1kovand1
    А что за player в bukkit Bukkit.dispatchCommand(player, "команда")[DOUBLEPOST=1466321279,1466321089][/DOUBLEPOST]И еще не работает проверка hasPermissions
    Код:
    
        @Override
        public void onEnable()
        {
           
            Bukkit.getPluginManager().registerEvents(this, this);
            FileConfiguration config = this.getConfig();
           
           
        @EventHandler(priority = EventPriority.LOWEST)
        public void onBlockBreak(BlockBreakEvent e)
        {
            if(!e.getPlayer().hasPermission("untouchableregions.admin.*") || !e.getPlayer().isOp())
            {
                ApplicableRegionSet region = plugin.getRegionManager(e.getBlock().getWorld()).getApplicableRegions(e.getBlock().getLocation());
                Set<ProtectedRegion> sregion = region.getRegions();
                for(ProtectedRegion reg : sregion)
                {
                    for(String regs : regions)
                    if(!e.getPlayer().hasPermission("untouchableregions.admin"+ reg.getId()))
                    {
           
                        if(reg.getId().equalsIgnoreCase(regs))
                        {
                        e.setCancelled(true);
                        e.getPlayer().sendMessage(ChatColor.RED+"Вы не имеете права ломать регион "+reg.getId());
                        log.info(e.getPlayer() + " try to destroy block in region "+reg.getId());
                       
                        return;
                        }
                    }
                }
            }
            }
            @EventHandler(priority = EventPriority.LOWEST)
            public void onBlockPlace(BlockPlaceEvent e)
            {
                if(!e.getPlayer().hasPermission("untouchableregions.admin.*") || !e.getPlayer().isOp())
                {
                   
                    ApplicableRegionSet region = plugin.getRegionManager(e.getBlock().getWorld()).getApplicableRegions(e.getBlock().getLocation());
                    Set<ProtectedRegion> sregion = region.getRegions();
                    for(ProtectedRegion reg : sregion)
                    {
                       [U][I][B] if(!e.getPlayer().hasPermission("untouchableregions.admin"+ reg.getId()))[/B][/I][/U]
                        {
                            for(String regs : regions)
                            {
                            if(reg.getId().equalsIgnoreCase(regs))
                            {
                            e.setCancelled(true);
                            e.getPlayer().sendMessage(ChatColor.RED+"Вы не имеете права ломать регион "+reg.getId());
                            log.info(e.getPlayer() + " try to place block in region "+reg.getId());
                           
                            return;
                            }
                            }
                        }
                    }
                }
            }
    }
    
    
     
  5. xDark

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

    Баллы:
    96
    Skype:
    ailyashevich
    Имя в Minecraft:
    xDark
    public void CommandEvent(PlayerCommandPreprocess event)
    {
    Player p = event.getPlayer();
    if (p.performCommand("rg")) {
    Bukkit.broadCast("Spy.see"), "Игрок " + p.getName() + " выполнил команду /rg");
    }
    return;
    }
    }
     

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