rendered paste bodyIndex: 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();