Program: 19063
Project: 19063
Buggy source:
@Command(aliases={"String_Node_Str"},usage="String_Node_Str",desc="String_Node_Str",min=1,max=-1) @CommandPermissions(value={"String_Node_Str","String_Node_Str","String_Node_Str"}) public void banIP(CommandContext args,LocalPlayer sender) throws CommandException, BouncerException {
  String toBanIP=controller.getServer().getIPAddress(args.getString(0));
  String toBanUser=controller.getServer().getPlayerName(args.getString(0));
  String reason=controller.getConfiguration().getDefaultReason();
  if (toBanIP.length() == 0) {
    throw new CommandException("String_Node_Str");
  }
  if (args.argsLength() > 1) {
    reason=args.getJoinedStrings(1);
  }
  AddBanEvent addBanEvent=new AddBanEvent(BanType.IP,toBanIP,sender,reason);
  MCBEventHandler.callEvent(addBanEvent);
  if (addBanEvent.isCancelled()) {
    return;
  }
  toBanIP=addBanEvent.getUser();
  sender=addBanEvent.getIssuer();
  reason=addBanEvent.getReason();
  if (!toBanUser.equals(toBanIP)) {
    controller.getServer().kickPlayer(toBanUser,"String_Node_Str" + reason);
  }
 else {
    controller.getServer().kickPlayerWithIP(toBanIP,"String_Node_Str" + reason);
  }
  boolean success=false;
  String error="String_Node_Str";
  try {
    controller.getAPI().addIPBan(sender.getName(),toBanIP,reason);
    controller.getLogger().info(sender.getName() + "String_Node_Str" + toBanIP+ "String_Node_Str"+ reason);
    success=true;
  }
 catch (  APIException e) {
    error=e.getMessage();
  }
  BanAddedEvent banAddedEvent=new BanAddedEvent(BanType.IP,toBanIP,sender,reason,success,error);
  MCBEventHandler.callEvent(banAddedEvent);
  if (success) {
    controller.getServer().messageMods(ChatColor.GREEN + toBanIP + "String_Node_Str"+ sender.getName()+ "String_Node_Str"+ reason+ "String_Node_Str");
  }
 else {
    sender.sendMessage(ChatColor.RED + error);
  }
}

Fixed version (ground truth):
@Command(aliases={"String_Node_Str"},usage="String_Node_Str",desc="String_Node_Str",min=1,max=-1) @CommandPermissions(value={"String_Node_Str","String_Node_Str","String_Node_Str"}) public void banIP(CommandContext args,LocalPlayer sender) throws CommandException, BouncerException {
  if (controller.getConfiguration().isIPFunctionsDisabled()) {
    sender.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  String toBanIP=controller.getServer().getIPAddress(args.getString(0));
  String toBanUser=controller.getServer().getPlayerName(args.getString(0));
  String reason=controller.getConfiguration().getDefaultReason();
  if (toBanIP.length() == 0) {
    throw new CommandException("String_Node_Str");
  }
  if (args.argsLength() > 1) {
    reason=args.getJoinedStrings(1);
  }
  AddBanEvent addBanEvent=new AddBanEvent(BanType.IP,toBanIP,sender,reason);
  MCBEventHandler.callEvent(addBanEvent);
  if (addBanEvent.isCancelled()) {
    return;
  }
  toBanIP=addBanEvent.getUser();
  sender=addBanEvent.getIssuer();
  reason=addBanEvent.getReason();
  if (!toBanUser.equals(toBanIP)) {
    controller.getServer().kickPlayer(toBanUser,"String_Node_Str" + reason);
  }
 else {
    controller.getServer().kickPlayerWithIP(toBanIP,"String_Node_Str" + reason);
  }
  boolean success=false;
  String error="String_Node_Str";
  try {
    controller.getAPI().addIPBan(sender.getName(),toBanIP,reason);
    controller.getLogger().info(sender.getName() + "String_Node_Str" + toBanIP+ "String_Node_Str"+ reason);
    success=true;
  }
 catch (  APIException e) {
    error=e.getMessage();
  }
  BanAddedEvent banAddedEvent=new BanAddedEvent(BanType.IP,toBanIP,sender,reason,success,error);
  MCBEventHandler.callEvent(banAddedEvent);
  if (success) {
    controller.getServer().messageMods(ChatColor.GREEN + toBanIP + "String_Node_Str"+ sender.getName()+ "String_Node_Str"+ reason+ "String_Node_Str");
  }
 else {
    sender.sendMessage(ChatColor.RED + error);
  }
}