rendered paste bodyIndex: 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)
@@ -17,16 +17,24 @@
*/
package net.sf.l2j.gameserver.instancemanager;
+import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
+import java.sql.SQLException;
import java.util.List;
import javolution.util.FastList;
+import net.sf.l2j.Config;
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.L2World;
+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 +60,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 +244,64 @@
return 0;
}
+
+ public void removeCirclets(L2Clan clan, int CastleId)
+ {
+ for (L2ClanMember member : clan.getMembers())
+ {
+ removeCirclets(member.getPlayerInstance(), CastleId);
+ }
+ }
+ public void removeCirclets(L2PcInstance player, int CastleId)
+ {
+ PcInventory inv = player.getInventory();
+ for (int circletId : _castleCirclets)
+ {
+ String playerName = player.getName();
+ L2ItemInstance circlet = inv.getItemByItemId(circletId);
+ L2PcInstance playerObj = L2World.getInstance().getPlayer(playerName);
+ if (circlet != null)
+ if (circlet.isEquipped())
+ {
+ player.getInventory().unEquipItemInSlotAndRecord(circlet.getEquipSlot());
+ }
+ if (playerObj != null)
+ {
+ playerObj.destroyItemByItemId("CastleCircletRemoval", circletId, 1, player, true);
+ }
+ else
+ {
+ removeOfflineCirclets(player, circlet);
+ }
+ }
+ }
+ private void removeOfflineCirclets(L2PcInstance player, L2ItemInstance circlet)
+ {
+ Connection con = null;
+ try
+ {
+ con = L2DatabaseFactory.getInstance().getConnection();
+
+ PreparedStatement statement = con.prepareStatement("DELETE from items where object_id=? and item_id=? and owner_id=?");
+ statement.setInt(1, circlet.getObjectId());
+ statement.setInt(2, circlet.getItemId());
+ statement.setInt(3, circlet.getOwnerId());
+
+ statement.execute();
+ statement.close();
+
+ }
+ catch (SQLException se)
+ {
+ if (Config.DEBUG) se.printStackTrace();
+ }
+ finally
+ {
+ try { con.close(); } catch (Exception e)
+ {
+ if (Config.DEBUG)
+ e.printStackTrace();
+ }
+ }
+ }
}