All pastes #750564 Raw Edit

Someone

public text v1 · immutable
#750564 ·published 2007-10-26 16:42 UTC
rendered paste body
Index: 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,13 @@
 
 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.entity.Castle;
-import net.sf.l2j.gameserver.SevenSigns;
 
 
 public class CastleManager
@@ -225,4 +228,18 @@
 		
 		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);
+				}
+		}
+	}
 }

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;
@@ -310,6 +311,11 @@
 			activeChar.sendPacket(new SystemMessage(SystemMessageId.CLAN_MEMBERSHIP_TERMINATED));
 		}
 		
+		if (activeChar.getClan().getHasCastle() == 0)
+		{
+			CastleManager.getInstance().removeCirclets(activeChar.getClan());
+		}
+		
 		if (activeChar.getClan() != null)
 		{
 			activeChar.sendPacket(new PledgeSkillList(activeChar.getClan()));