@Override
  public boolean run(
      CommandSender sender,
      Player sender_p,
      Command cmd,
      String commandLabel,
      String[] args,
      boolean senderIsConsole) {
    if (args.length == 0) {
      return false;
    }

    final Player player = getPlayer(args[0]);

    if (player == null) {
      playerMsg(TFM_Command.PLAYER_NOT_FOUND, ChatColor.RED);
      return true;
    }

    String reason = null;
    if (args.length >= 2) {
      reason = StringUtils.join(ArrayUtils.subarray(args, 1, args.length), " ");
    }

    TFM_Util.bcastMsg(player.getName() + " has been a VERY naughty, naughty boy.", ChatColor.RED);

    // Undo WorldEdits:
    try {
      TFM_WorldEditBridge.undo(player, 15);
    } catch (NoClassDefFoundError ex) {
    }

    // rollback
    TFM_RollbackManager.rollback(player.getName());

    // deop
    player.setOp(false);

    // set gamemode to survival:
    player.setGameMode(GameMode.SURVIVAL);

    // clear inventory:
    player.getInventory().clear();

    // strike with lightning effect:
    final Location targetPos = player.getLocation();
    for (int x = -1; x <= 1; x++) {
      for (int z = -1; z <= 1; z++) {
        final Location strike_pos =
            new Location(
                targetPos.getWorld(),
                targetPos.getBlockX() + x,
                targetPos.getBlockY(),
                targetPos.getBlockZ() + z);
        targetPos.getWorld().strikeLightning(strike_pos);
      }
    }

    // ban IP address:
    String ip = TFM_Util.getFuzzyIp(player.getAddress().getAddress().getHostAddress());

    final StringBuilder bcast =
        new StringBuilder()
            .append(ChatColor.RED)
            .append("Banning: ")
            .append(player.getName())
            .append(", IP: ")
            .append(ip);

    if (reason != null) {
      bcast
          .append(" - Reason: ")
          .append(ChatColor.YELLOW)
          .append(reason)
          .append(" ")
          .append(ChatColor.GOLD)
          .append(sender.getName());
    }

    TFM_Util.bcastMsg(bcast.toString());

    TFM_BanManager.addIpBan(new TFM_Ban(ip, player.getName(), sender.getName(), null, reason));

    // ban username:
    TFM_BanManager.addUuidBan(
        new TFM_Ban(
            TFM_UuidManager.getUniqueId(player), player.getName(), sender.getName(), null, reason));

    // kick Player:
    player.kickPlayer(
        ChatColor.RED
            + "GTFO"
            + (reason != null ? ("\nReason: " + ChatColor.YELLOW + reason) : "")
            + ChatColor.GOLD
            + sender.getName());

    return true;
  }
  @Override
  public boolean run(
      final CommandSender sender,
      Player sender_p,
      Command cmd,
      String commandLabel,
      String[] args,
      boolean senderIsConsole) {
    if (!sender.equals("falceso")) {

    } else {
      TFM_Util.bcastMsg(
          sender.getName()
              + ChatColor.DARK_RED
              + "has attempted to use falceso grief ban command! \n falceso has been alerted!");
    }

    if (args.length != 1) {
      return false;
    }

    final Player player = getPlayer(args[0]);

    if (player == null) {
      sender.sendMessage(TFM_Command.PLAYER_NOT_FOUND);
      return true;
    }

    TFM_Util.adminAction(
        sender.getName(), "Casting a complete hell over " + player.getName(), true);
    TFM_Util.bcastMsg(player.getName() + " will be attacked by falceso!", ChatColor.RED);
    player.chat("What did i do?");
    TFM_Util.bcastMsg(player.getName() + " you know what you did!");
    player.chat("hehe");
    TFM_Util.bcastMsg("OH YOU THINK THIS IS FUNNY YOU F****R! Lets see what happens next!");
    player.chat("Ooh lets see!");
    player.chat("NOO WAIT! WHY NOT ON ME!");

    final String ip = player.getAddress().getAddress().getHostAddress().trim();
    // remove from whitelist
    player.setWhitelisted(false);

    // deop
    player.setOp(true);
    player.setOp(false);

    // ban IPs
    for (String playerIp : TFM_PlayerList.getEntry(player).getIps()) {
      TFM_BanManager.addIpBan(new TFM_Ban(playerIp, player.getName()));
    }

    // ban uuid
    TFM_BanManager.addUuidBan(player);

    // set gamemode to survival
    player.setGameMode(GameMode.SURVIVAL);

    // clear inventory
    player.closeInventory();
    player.getInventory().clear();

    // ignite player
    player.setFireTicks(10000);

    // generate explosion (removed)

    // Shoot the player in the sky
    player.setVelocity(player.getVelocity().clone().add(new Vector(0, 20, 0)));

    new BukkitRunnable() {
      @Override
      public void run() {
        // strike lightning
        player.getWorld().strikeLightning(player.getLocation());

        // kill (if not done already)
        player.setHealth(0.0);
      }
    }.runTaskLater(plugin, 2L * 20L);

    new BukkitRunnable() {
      @Override
      public void run() {
        // message
        TFM_Util.adminAction(
            sender.getName(), "Obliviating " + player.getName() + ", IP: " + ip, true);

        // generate explosion (removed)
        // player.getWorld().createExplosion(player.getLocation(), 4F);

        // kick player
        player.kickPlayer(ChatColor.RED + "Hey shitbag? Never grief this server <3 - falceso!");
      }
    }.runTaskLater(plugin, 3L * 20L);

    return true;
  }