From 0ec55beee26846899fe6316d026b4a1a8691d2e2 Mon Sep 17 00:00:00 2001 From: zhangyuheng Date: Tue, 18 Jun 2024 09:49:30 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=A0=E9=99=A4=E7=A7=B0?= =?UTF-8?q?=E5=8F=B7=E6=97=B6=E5=9B=9E=E6=84=8F=E5=A4=96=E5=88=A0=E9=99=A4?= =?UTF-8?q?mplt=E7=8E=A9=E5=AE=B6=E4=BF=A1=E6=81=AF=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E7=8E=A9?= =?UTF-8?q?=E5=AE=B6=E4=BF=A1=E6=81=AF=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/lunadeer/miniplayertitle/Events.java | 4 ++++ .../cn/lunadeer/miniplayertitle/dtos/TitleDTO.java | 14 +++++++++----- 2 files changed, 13 insertions(+), 5 deletions(-) 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() {