package javastory.client;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.regex.Pattern;
import javastory.db.Database;
public final class GameCharacterUtil {
private GameCharacterUtil() {
}
private static final Pattern namePattern = Pattern.compile("[a-zA-Z0-9_-]{4,12}");
private static final Pattern petPattern = Pattern.compile("[a-zA-Z0-9_-]{4,12}");
public static boolean validateCharacterName(final String name) {
return namePattern.matcher(name).matches();
}
public static boolean isAvailableName(final String name) {
return getIdByName(name) == -1;
}
public static boolean validatePetName(final String name) {
if (petPattern.matcher(name).matches()) {
return true;
}
return false;
}
public static int getIdByName(final String name) {
final Connection con = Database.getConnection();
try (PreparedStatement ps = con.prepareStatement("SELECT `id` FROM `characters` WHERE `name` = ?")) {
ps.setString(1, name);
final int id;
try (ResultSet rs = ps.executeQuery()) {
if (!rs.next()) {
return -1;
}
id = rs.getInt("id");
}
return id;
} catch (final SQLException e) {
System.err.println("error 'getIdByName' " + e);
}
return -1;
}
}