Fixed skin deletion
This commit is contained in:
@ -149,19 +149,21 @@ public class Database {
|
||||
|
||||
public static void deleteSkin(String hash) throws SQLException {
|
||||
Skin skin = getSkin(hash);
|
||||
Skin defaultSkin = ensureDefaultSkin();
|
||||
Skin defaultSkin = ensureDefaultSkin(hash);
|
||||
|
||||
PreparedStatement stmt = getConnection().prepareStatement("DELETE FROM skin WHERE _hash = ?;");
|
||||
// Give effected profiles default skin
|
||||
PreparedStatement stmt = getConnection().prepareStatement("UPDATE profile SET skin = ? WHERE skin = ?;");
|
||||
|
||||
stmt.setString(1, hash);
|
||||
stmt.setInt(1, defaultSkin.getId());
|
||||
stmt.setInt(2, skin.getId());
|
||||
|
||||
stmt.execute();
|
||||
stmt.close();
|
||||
|
||||
stmt = getConnection().prepareStatement("UPDATE profile SET skin = ? WHERE skin = ?;");
|
||||
// Remove targeted skin
|
||||
stmt = getConnection().prepareStatement("DELETE FROM skin WHERE id = ?;");
|
||||
|
||||
stmt.setInt(1, defaultSkin.getId());
|
||||
stmt.setInt(2, skin.getId());
|
||||
stmt.setInt(1, skin.getId());
|
||||
|
||||
stmt.execute();
|
||||
stmt.close();
|
||||
@ -289,9 +291,15 @@ public class Database {
|
||||
stmt.close();
|
||||
}
|
||||
|
||||
public static Skin getDefaultSkin() throws SQLException {
|
||||
Statement stmt = getConnection().createStatement();
|
||||
ResultSet resultSet = stmt.executeQuery("SELECT * FROM skin ORDER BY id ASC LIMIT 1;");
|
||||
public static Skin getDefaultSkin(String exclude_skin) throws SQLException {
|
||||
PreparedStatement stmt = exclude_skin == null ?
|
||||
getConnection().prepareStatement("SELECT * FROM skin ORDER BY id ASC LIMIT 1;") :
|
||||
getConnection().prepareStatement("SELECT * FROM skin WHERE _hash != ? ORDER BY id ASC LIMIT 1;");
|
||||
if (exclude_skin != null)
|
||||
stmt.setString(1, exclude_skin);
|
||||
|
||||
ResultSet resultSet = stmt.executeQuery();
|
||||
|
||||
if (!resultSet.next())
|
||||
return null;
|
||||
|
||||
@ -305,9 +313,13 @@ public class Database {
|
||||
);
|
||||
}
|
||||
|
||||
private static Skin ensureDefaultSkin() throws SQLException {
|
||||
public static Skin getDefaultSkin() throws SQLException {
|
||||
return getDefaultSkin(null);
|
||||
}
|
||||
|
||||
private static Skin ensureDefaultSkin(String exclude_skin) throws SQLException {
|
||||
// TODO: Optimise
|
||||
Skin skin = getDefaultSkin();
|
||||
Skin skin = getDefaultSkin(exclude_skin);
|
||||
if (skin != null)
|
||||
return skin;
|
||||
try {
|
||||
@ -320,7 +332,11 @@ public class Database {
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return getDefaultSkin();
|
||||
return getDefaultSkin(exclude_skin);
|
||||
}
|
||||
|
||||
private static Skin ensureDefaultSkin() throws SQLException {
|
||||
return ensureDefaultSkin(null);
|
||||
}
|
||||
|
||||
private boolean errored = false;
|
||||
|
||||
Reference in New Issue
Block a user