rendered paste bodyIndex: java/net/sf/l2j/gameserver/model/PcInventory.java
===================================================================
--- java/net/sf/l2j/gameserver/model/PcInventory.java (revision 1240)
+++ java/net/sf/l2j/gameserver/model/PcInventory.java (working copy)
@@ -468,7 +468,7 @@
* @param item : L2ItemInstance to be removed from inventory
*/
@Override
- protected void removeItem(L2ItemInstance item)
+ public void removeItem(L2ItemInstance item)
{
// Removes any reference to the item from Shortcut bar
getOwner().removeItemFromShortCut(item.getObjectId());
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)
+ inv.removeItem(circlet);
+ }
+ }
+ }
+ public void removeCirclets(L2PcInstance player)
+ {
+ PcInventory inv = player .getInventory();
+ for (int circletId : _castleCirclets)
+ {
+ L2ItemInstance circlet = inv.getItemByItemId(circletId);
+ if (circlet != null)
+ inv.removeItem(circlet);
+ }
+ }
}
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())