diff --git a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/clan/Clan.java index 3eb0346d6f..12d388ea27 100644 --- a/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_C4_ScionsOfDestiny/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -302,6 +302,31 @@ public class Clan final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_LORD_PRIVILEGES_HAVE_BEEN_TRANSFERRED_TO_S1); sm.addString(member.getName()); broadcastToOnlineMembers(sm); + + transferCwhToNewLeader(member.getPlayerInstance().getObjectId(), player.getObjectId()); + } + } + + public void transferCwhToNewLeader(int newLeaderId, int oldLeaderId) + { + // No need to update anything. + if (newLeaderId == oldLeaderId) + { + return; + } + + // Update cwh in database. + try (Connection con = DatabaseFactory.getConnection()) + { + final PreparedStatement statement = con.prepareStatement("UPDATE items SET owner_id = ? WHERE loc = 'CLANWH' AND owner_id = ?"); + statement.setInt(1, newLeaderId); + statement.setInt(2, oldLeaderId); + statement.execute(); + statement.close(); + } + catch (Exception e) + { + LOGGER.warning("Error while transferring cwh " + e); } } diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/clan/Clan.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/clan/Clan.java index d3871d6d2e..3bdea614e3 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/clan/Clan.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/model/clan/Clan.java @@ -303,6 +303,31 @@ public class Clan final SystemMessage sm = new SystemMessage(SystemMessageId.CLAN_LORD_PRIVILEGES_HAVE_BEEN_TRANSFERRED_TO_S1); sm.addString(member.getName()); broadcastToOnlineMembers(sm); + + transferCwhToNewLeader(member.getPlayerInstance().getObjectId(), player.getObjectId()); + } + } + + public void transferCwhToNewLeader(int newLeaderId, int oldLeaderId) + { + // No need to update anything. + if (newLeaderId == oldLeaderId) + { + return; + } + + // Update cwh in database. + try (Connection con = DatabaseFactory.getConnection()) + { + final PreparedStatement statement = con.prepareStatement("UPDATE items SET owner_id = ? WHERE loc = 'CLANWH' AND owner_id = ?"); + statement.setInt(1, newLeaderId); + statement.setInt(2, oldLeaderId); + statement.execute(); + statement.close(); + } + catch (Exception e) + { + LOGGER.warning("Error while transferring cwh " + e); } }