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

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

kovand

Участник
Пользователь
Баллы
36
Имя в Minecraft
1kovand1
Подскажите, как отловить команды других плагинов (/rg remove, /rg claim, /rg flag /rg addowner) и как делать чтобы плагин выполнял команды(/say /op /tp и т. д. кто не врубается)
P.S Я не хак пишу, и не надо спрашивать зачем мне это нужно
 
Подскажите, как отловить команды других плагинов (/rg remove, /rg claim, /rg flag /rg addowner) и как делать чтобы плагин выполнял команды(/say /op /tp и т. д. кто не врубается)
P.S Я не хак пишу, и не надо спрашивать зачем мне это нужно
1. Отлавливай ивент PlayerCommandPreprocess и получить команду там - e.getMessage()
2. Bukkit.dispatchCommand(player, "команда");
 
1. Отлавливай ивент PlayerCommandPreprocess и получить команду там - e.getMessage()
2. Bukkit.dispatchCommand(player, "команда");
А что за player в bukkit Bukkit.dispatchCommand(player, "команда")
И еще не работает проверка hasPermissions
Java:
    @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;
                        }
                        }
                    }
                }
            }
        }
}
 
public void CommandEvent(PlayerCommandPreprocess event)
{
Player p = event.getPlayer();
if (p.performCommand("rg")) {
Bukkit.broadCast("Spy.see"), "Игрок " + p.getName() + " выполнил команду /rg");
}
return;
}
}
 
Назад
Верх