Index: java/net/sf/l2j/gameserver/instancemanager/CastleManager.java =================================================================== --- java/net/sf/l2j/gameserver/instancemanager/CastleManager.java (revision 1270) +++ java/net/sf/l2j/gameserver/instancemanager/CastleManager.java (working copy) @@ -23,10 +23,14 @@ import javolution.util.FastList; import net.sf.l2j.L2DatabaseFactory; +import net.sf.l2j.gameserver.SevenSigns; import net.sf.l2j.gameserver.model.L2Clan; +import net.sf.l2j.gameserver.model.L2ClanMember; +import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.L2Object; +import net.sf.l2j.gameserver.model.PcInventory; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.entity.Castle; -import net.sf.l2j.gameserver.SevenSigns; public class CastleManager @@ -225,4 +229,28 @@ return 0; } + + public void removeCirclets(L2Clan clan) + { + for (L2ClanMember member : clan.getMembers()) + { + PcInventory inv = member.getPlayerInstance().getInventory(); + for (int circletId : _castleCirclets) + { + L2ItemInstance circlet = inv.getItemByItemId(circletId); + if (circlet != null) + member.getPlayerInstance().destroyItemByItemId("CastleCircletRemoval", circletId,1,member.getPlayerInstance(),true); + } + } + } + public void removeCirclets(L2PcInstance player) + { + PcInventory inv = player .getInventory(); + for (int circletId : _castleCirclets) + { + L2ItemInstance circlet = inv.getItemByItemId(circletId); + if (circlet != null) + player.destroyItemByItemId("CastleCircletRemoval", circletId, 1, player, true); + } + } } Index: java/net/sf/l2j/gameserver/model/entity/Castle.java =================================================================== --- java/net/sf/l2j/gameserver/model/entity/Castle.java (revision 1240) +++ java/net/sf/l2j/gameserver/model/entity/Castle.java (working copy) @@ -264,7 +264,7 @@ updateOwnerInDB(null); if (getSiege().getIsInProgress()) getSiege().midVictory(); - + CastleManager.getInstance().removeCirclets(clan); updateClansReputation(); } Index: java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java =================================================================== --- java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (revision 1271) +++ java/net/sf/l2j/gameserver/clientpackets/EnterWorld.java (working copy) @@ -36,6 +36,7 @@ import net.sf.l2j.gameserver.communitybbs.Manager.RegionBBSManager; import net.sf.l2j.gameserver.datatables.MapRegionTable; import net.sf.l2j.gameserver.handler.AdminCommandHandler; +import net.sf.l2j.gameserver.instancemanager.CastleManager; import net.sf.l2j.gameserver.instancemanager.CoupleManager; import net.sf.l2j.gameserver.instancemanager.DimensionalRiftManager; import net.sf.l2j.gameserver.instancemanager.PetitionManager; @@ -309,9 +310,12 @@ { activeChar.sendPacket(new SystemMessage(SystemMessageId.CLAN_MEMBERSHIP_TERMINATED)); } - if (activeChar.getClan() != null) { + if (activeChar.getClan().getHasCastle() == 0) + { + CastleManager.getInstance().removeCirclets(activeChar); + } activeChar.sendPacket(new PledgeSkillList(activeChar.getClan())); for (Siege siege : SiegeManager.getInstance().getSieges()) Index: java/net/sf/l2j/gameserver/model/L2Clan.java =================================================================== --- java/net/sf/l2j/gameserver/model/L2Clan.java (revision 1240) +++ java/net/sf/l2j/gameserver/model/L2Clan.java (working copy) @@ -32,6 +32,7 @@ import net.sf.l2j.gameserver.communitybbs.Manager.ForumsBBSManager; import net.sf.l2j.gameserver.datatables.ClanTable; import net.sf.l2j.gameserver.datatables.SkillTable; +import net.sf.l2j.gameserver.instancemanager.CastleManager; import net.sf.l2j.gameserver.instancemanager.SiegeManager; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.SystemMessageId; @@ -380,6 +381,7 @@ player.setClanCreateExpiryTime(System.currentTimeMillis() + Config.ALT_CLAN_CREATE_DAYS * 86400000L); //24*60*60*1000 = 86400000 } player.setClan(null); + CastleManager.getInstance().removeCirclets(player); player.setClanJoinExpiryTime(clanJoinExpiryTime); player.setPledgeClass(exMember.calculatePledgeClass(player)); player.broadcastUserInfo();