Index: D:/projectl2j/L2_GameServer_It_1214/java/net/sf/l2j/gameserver/instancemanager/CastleManager.java =================================================================== --- D:/projectl2j/L2_GameServer_It_1214/java/net/sf/l2j/gameserver/instancemanager/CastleManager.java (revision 1270) +++ D:/projectl2j/L2_GameServer_It_1214/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 @@ -52,8 +56,19 @@ // ========================================================= // Constructor - private static final int _castleCirclets[] = { 0, 6838, 6835, 6839, 6837, 6840, 6834, 6836, 8182, 8183 }; - public CastleManager() {} + private static final int _castleCirclets[] = new int[10]; + public CastleManager() + { + _castleCirclets[1] = 6838; + _castleCirclets[2] = 6835; + _castleCirclets[3] = 6839; + _castleCirclets[4] = 6837; + _castleCirclets[5] = 6840; + _castleCirclets[6] = 6834; + _castleCirclets[7] = 6836; + _castleCirclets[8] = 8182; + _castleCirclets[9] = 8183; + } // ========================================================= // Method - Public @@ -225,4 +240,24 @@ return 0; } + + public void removeCirclets(L2Clan clan) + { + for (L2ClanMember member : clan.getMembers()) + { + removeCirclets(member.getPlayerInstance()); + } + } + public void removeCirclets(L2PcInstance player) + { + PcInventory inv = player .getInventory(); + for (int circletId : _castleCirclets) + { + L2ItemInstance circlet = inv.getItemByItemId(circletId); + if (circlet != null) + if (circlet.isEquipped()) + player.getInventory().unEquipItemInSlotAndRecord(circlet.getEquipSlot()); + 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();