All pastes #750739 Raw Edit

Someone

public text v1 · immutable
#750739 ·published 2007-10-26 18:54 UTC
rendered paste body
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();