diff --git a/src/main/java/cn/lunadeer/miniplayertitle/Events.java b/src/main/java/cn/lunadeer/miniplayertitle/Events.java index 7e7f331..0817a83 100644 --- a/src/main/java/cn/lunadeer/miniplayertitle/Events.java +++ b/src/main/java/cn/lunadeer/miniplayertitle/Events.java @@ -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()); diff --git a/src/main/java/cn/lunadeer/miniplayertitle/dtos/TitleDTO.java b/src/main/java/cn/lunadeer/miniplayertitle/dtos/TitleDTO.java index 2354862..33aefd5 100644 --- a/src/main/java/cn/lunadeer/miniplayertitle/dtos/TitleDTO.java +++ b/src/main/java/cn/lunadeer/miniplayertitle/dtos/TitleDTO.java @@ -42,14 +42,18 @@ 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; } - return false; } public static List getAll() {