修复删除称号时回意外删除mplt玩家信息导致提示无法获取玩家信息的问题

This commit is contained in:
zhangyuheng 2024-06-18 09:49:30 +08:00
parent 3432c29116
commit 0ec55beee2
2 changed files with 13 additions and 5 deletions

View File

@ -21,6 +21,10 @@ public class Events implements Listener {
MiniPlayerTitle.notification.error(bukkitPlayer, "获取玩家信息时出现错误,请联系管理员");
return;
}
if (player.getUsingTitle().getId() == -1) {
updateName(bukkitPlayer, null);
return;
}
PlayerTitleDTO title = PlayerTitleDTO.get(bukkitPlayer.getUniqueId(), player.getUsingTitle().getId());
if (title == null || title.isExpired()) {
MiniPlayerTitle.notification.warn(bukkitPlayer, "你当前使用的称号 %s 已过期", player.getUsingTitle().getTitlePlainText());

View File

@ -42,15 +42,19 @@ public class TitleDTO {
}
public boolean delete() {
String sql = "";
sql += "DELETE FROM mplt_title WHERE id = ?;";
try (ResultSet rs = MiniPlayerTitle.database.query(sql, id)) {
String updateSql = "UPDATE mplt_player_info SET using_title_id = -1 WHERE using_title_id = ?;";
String deleteSql = "DELETE FROM mplt_title WHERE id = ?;";
try {
// 执行更新操作
MiniPlayerTitle.database.query(updateSql, this.id);
// 执行删除操作
MiniPlayerTitle.database.query(deleteSql, this.id);
return true;
} catch (Exception e) {
MiniPlayerTitle.database.handleDatabaseError("删除称号失败", e, sql);
}
MiniPlayerTitle.database.handleDatabaseError("删除称号失败", e, updateSql + " " + deleteSql);
return false;
}
}
public static List<TitleDTO> getAll() {
String sql = "";