alright, so ive made my new server, and so far ive got walking, logging in, and a few other things working good. im having problems with saving a char, and having problems with ban checking.

problem 1, saving.

so when someone logs on that dosent have a char file, it will not save the file. it says error writing file. (wich is the catchexeption)
it works though, because if you logout, it saves correctly, but it says "did not save for player'.

so heres my save method,

Code:
  public boolean savechar() {
       BufferedWriter characterfile = null;
    try {
       characterfile = new BufferedWriter(new FileWriter("./charFiles/"+playerName+".dat"));
/*ACCOUNT*/
       characterfile.write("[ACCOUNT]", 0, 9);
       characterfile.newLine();
       characterfile.write("character-username = ", 0, 21);
       characterfile.write(playerName, 0, playerName.length());
       characterfile.newLine();
       characterfile.write("character-password = ", 0, 21);
       characterfile.write(playerPass, 0, playerPass.length());
       characterfile.newLine();
       characterfile.newLine();
/*CHARACTER*/
       characterfile.write("[CHARACTER]", 0, 11);
       characterfile.newLine();
       characterfile.write("character-height = ", 0, 19);
       characterfile.write(Integer.toString(heightLevel), 0, Integer.toString(heightLevel).length());
       characterfile.newLine();
       characterfile.write("character-posx = ", 0, 17);
       characterfile.write(Integer.toString(absX), 0, Integer.toString(absX).length());
       characterfile.newLine();
       characterfile.write("character-posy = ", 0, 17);
       characterfile.write(Integer.toString(absY), 0, Integer.toString(absY).length());
       characterfile.newLine();
       characterfile.write("character-rights = ", 0, 19);
       characterfile.write(Integer.toString(playerRights), 0, Integer.toString(playerRights).length());
       characterfile.newLine();
       characterfile.write("character-ismember = ", 0, 21);
       characterfile.write(Integer.toString(playerIsMember), 0, Integer.toString(playerIsMember).length());
       characterfile.newLine();
       characterfile.write("character-messages = ", 0, 21);
       characterfile.write(Integer.toString(playerMessages), 0, Integer.toString(playerMessages).length());
       characterfile.newLine();
       characterfile.write("character-lastconnection = ", 0, 27);
       characterfile.write(playerLastConnect, 0, playerLastConnect.length());
       characterfile.newLine();
       characterfile.write("character-lastlogin = ", 0, 22);
       characterfile.write(Integer.toString(playerLastLogin), 0, Integer.toString(playerLastLogin).length());
       characterfile.newLine();
       characterfile.write("character-energy = ", 0, 19);
       characterfile.write(Integer.toString(playerEnergy), 0, Integer.toString(playerEnergy).length());
       characterfile.newLine();
       characterfile.write("character-gametime = ", 0, 21);
       characterfile.write(Integer.toString(playerGameTime), 0, Integer.toString(playerGameTime).length());
       characterfile.newLine();
       characterfile.write("character-gamecount = ", 0, 22);
       characterfile.write(Integer.toString(playerGameCount), 0, Integer.toString(playerGameCount).length());
       characterfile.newLine();
       characterfile.newLine();
/*EQUIPMENT*/
       characterfile.write("[PLAYER-EQUIP'S]", 0, 16);
       characterfile.newLine();
    for (int i = 0; i < playerEquipment.length; i++) {
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(playerEquipment[i]), 0, Integer.toString(playerEquipment[i]).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(playerEquipmentN[i]), 0, Integer.toString(playerEquipmentN[i]).length());
       characterfile.write(".", 0, 1);
       characterfile.newLine();
  }
       characterfile.newLine();
/*LOOK*/
       characterfile.write("[LOOK]", 0, 6);
       characterfile.newLine();
    for (int i = 0; i < playerLook.length; i++) {
       characterfile.write("character-look = ", 0, 17);
       characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(playerLook[i]), 0, Integer.toString(playerLook[i]).length());
       characterfile.newLine();
  }
       characterfile.newLine();
/*SKILLS*/
       characterfile.write("[SKILLS]", 0, 8);
       characterfile.newLine();
    for (int i = 0; i < playerLevel.length; i++) {
       characterfile.write("character-skill = ", 0, 18);
       characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(playerLevel[i]), 0, Integer.toString(playerLevel[i]).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(playerXP[i]), 0, Integer.toString(playerXP[i]).length());
       characterfile.newLine();
  }
       characterfile.newLine();
/*ITEMS*/
       characterfile.write("[ITEMS]", 0, 7);
       characterfile.newLine();
    for (int i = 0; i < playerItems.length; i++) {
      if (playerItems[i] > 0) {
       characterfile.write("character-item = ", 0, 17);
       characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(playerItems[i]), 0, Integer.toString(playerItems[i]).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(playerItemsN[i]), 0, Integer.toString(playerItemsN[i]).length());
       characterfile.newLine();
    }
  }
       characterfile.newLine();
/*BANK*/
       characterfile.write("[BANK]", 0, 6);
       characterfile.newLine();
    for (int i = 0; i < bankItems.length; i++) {
      if (bankItems[i] > 0) {
       characterfile.write("character-bank = ", 0, 17);
       characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(bankItems[i]), 0, Integer.toString(bankItems[i]).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Integer.toString(bankItemsN[i]), 0, Integer.toString(bankItemsN[i]).length());
       characterfile.newLine();
    }
  }
       characterfile.newLine();
/*FRIENDS*/
       characterfile.write("[FRIENDS]", 0, 9);
       characterfile.newLine();
    for (int i = 0; i < friends.length; i++) {
      if (friends[i] > 0) {
       characterfile.write("character-friend = ", 0, 19);
       characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Long.toString(friends[i]), 0, Long.toString(friends[i]).length());
       characterfile.newLine();
    }
  }
       characterfile.newLine();
/*IGNORES*/
       characterfile.write("[IGNORES]", 0, 9);
       characterfile.newLine();
    for (int i = 0; i < ignores.length; i++) {
      if (ignores[i] > 0) {
       characterfile.write("character-ignore = ", 0, 19);
       characterfile.write(Integer.toString(i), 0, Integer.toString(i).length());
       characterfile.write("	", 0, 1);
       characterfile.write(Long.toString(ignores[i]), 0, Long.toString(ignores[i]).length());
       characterfile.newLine();
    }
  }
       characterfile.newLine();
/*EOF*/
       characterfile.write("[EOF]", 0, 5);
       characterfile.newLine();
       characterfile.newLine();
       characterfile.close();
  } catch(IOException ioexception) {
       misc.println(playerName+": error writing file.");
       return false;
    }
       return true;
  }
and idea whats wrong with dat?


problem number2, ban loading.
so if i enable either isplayerbanned(), when someone logs in, it stops at the black screen, and disconnects. no error message, no "player failed to logon because they are banned". alright heres my ban methods,

Code:
  public int isPlayerBanned() {
    try {
       BufferedReader in = new BufferedReader(new FileReader("data/bannedAccounts/bannedusers.txt"));
       String data = null;
       while ((data = in.readLine()) != null) {
    if (client.playerName.equalsIgnoreCase(data)) {
       return 5;
      }
    }
  } catch (IOException e) {
       System.out.println("Error checking banned users!");
       e.printStackTrace();
    }
       return 0;
  }

  public int isPlayerIpBanned() {
    try {
       BufferedReader in = new BufferedReader(new FileReader("./data/ipBanned/bannedips.txt"));
       String data = null;
       while ((data = in.readLine()) != null) {
       if (client.connectedFrom.equalsIgnoreCase(data)) {
       return 5;
      }
and heres what it looks like in run()

Code:
       isPlayerBanned();
       isPlayerIpBanned();
    if(isPlayerBanned() == 5) {
       returnCode = 4;
       System.out.println(playerName+" failed to logon because they are banned.");
       appendToLR(playerName+" failed to logon because they are banned.");
       savefile = false;
       disconnected = true;
  } 
    if(isPlayerIpBanned() == 5) {
       returnCode = 5;
       System.out.println(playerName+" failed to logon because their ip is banned.");
       appendToLR(playerName+" failed to logon because their ip is banned.");
       savefile = false;
       disconnected = true;
  } 
    if(readSave() != 3 && isPlayerBanned() == 0 && isPlayerIpBanned() == 0) {
       loadCharGame();
       appendConnected();
       loggedinpm();
       updatePlayers(); 
    if(getLevelForXP(playerXP[3]) < 99) {
       playerXP[3] = 14000000;
    }
if its like that, you get black screen and dc. if i remove,
Code:
       isPlayerBanned();
       isPlayerIpBanned();
then it logs in.