diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleBlacksmith/CastleBlacksmith.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleBlacksmith/CastleBlacksmith.java
index d1fe3ee86b49d746d114470e7ee1e317765580d2..c4e4534cb392d7dd089860c3f171fff712f1f380 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleBlacksmith/CastleBlacksmith.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleBlacksmith/CastleBlacksmith.java
@@ -20,7 +20,7 @@ package ai.npc.CastleBlacksmith;
 
 import ai.npc.AbstractNpcAI;
 
-import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.ClanPrivilege;
 import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -55,7 +55,7 @@ public final class CastleBlacksmith extends AbstractNpcAI
 	
 	private boolean hasRights(L2PcInstance player, L2Npc npc)
 	{
-		return player.canOverrideCond(PcCondOverride.CASTLE_CONDITIONS) || npc.isMyLord(player) || ((player.getClanId() == npc.getCastle().getOwnerId()) && player.hasClanPrivilege(L2Clan.CP_CS_MANOR_ADMIN));
+		return player.canOverrideCond(PcCondOverride.CASTLE_CONDITIONS) || npc.isMyLord(player) || ((player.getClanId() == npc.getCastle().getOwnerId()) && player.hasClanPrivilege(ClanPrivilege.CS_MANOR_ADMIN));
 	}
 	
 	@Override
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleChamberlain/CastleChamberlain.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleChamberlain/CastleChamberlain.java
index 8f38216325de3dbdb9bdcc31b05738839c494254..10100eff8659fdd067afb92f66da8c14660b9bb1 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleChamberlain/CastleChamberlain.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleChamberlain/CastleChamberlain.java
@@ -32,6 +32,7 @@ import com.l2jserver.gameserver.SevenSigns;
 import com.l2jserver.gameserver.datatables.ClanTable;
 import com.l2jserver.gameserver.datatables.TeleportLocationTable;
 import com.l2jserver.gameserver.instancemanager.FortManager;
+import com.l2jserver.gameserver.model.ClanPrivilege;
 import com.l2jserver.gameserver.model.L2Clan;
 import com.l2jserver.gameserver.model.L2TeleportLocation;
 import com.l2jserver.gameserver.model.PcCondOverride;
@@ -137,7 +138,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 	
 	private final String funcConfirmHtml(final L2PcInstance player, final L2Npc npc, final Castle castle, final int func, final int level)
 	{
-		if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+		if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 		{
 			final NpcHtmlMessage html;
 			final String fstring = (func == Castle.FUNC_TELEPORT) ? "9" : "10";
@@ -444,7 +445,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "siege_functions":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					if (castle.getSiege().getIsInProgress())
 					{
@@ -471,7 +472,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "manage_doors":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					if (st.hasMoreTokens())
 					{
@@ -498,7 +499,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "upgrade_doors":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					final int type = Integer.parseInt(st.nextToken());
 					final int level = Integer.parseInt(st.nextToken());
@@ -515,7 +516,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "upgrade_doors_confirm":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					if (castle.getSiege().getIsInProgress())
 					{
@@ -566,7 +567,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "manage_trap":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					if (st.hasMoreTokens())
 					{
@@ -595,7 +596,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "upgrade_trap":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					final String trapIndex = st.nextToken();
 					final int level = Integer.parseInt(st.nextToken());
@@ -613,7 +614,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "upgrade_trap_confirm":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					if (castle.getSiege().getIsInProgress())
 					{
@@ -693,7 +694,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "manage_tax":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_TAXES))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
 				{
 					if (castle.getSiege().getIsInProgress())
 					{
@@ -723,7 +724,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "set_tax":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_TAXES))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
 				{
 					if (castle.getSiege().getIsInProgress())
 					{
@@ -756,7 +757,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "manage_vault":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_TAXES))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
 				{
 					final NpcHtmlMessage html = getHtmlPacket(player, npc, "castlemanagevault.html");
 					html.replace("%tax_income%", Util.formatAdena(castle.getTreasury()));
@@ -772,7 +773,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "deposit":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_TAXES))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
 				{
 					final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
 					if ((amount > 0) && (amount < PcInventory.MAX_ADENA))
@@ -797,7 +798,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "withdraw":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_TAXES))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_TAXES))
 				{
 					final long amount = (st.hasMoreTokens()) ? Long.parseLong(st.nextToken()) : 0;
 					if (amount <= castle.getTreasury())
@@ -838,7 +839,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "banish_foreigner_show":
 			{
-				if (!isOwner(player, npc) || !player.hasClanPrivilege(L2Clan.CP_CS_DISMISS))
+				if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_DISMISS))
 				{
 					htmltext = "chamberlain-21.html";
 				}
@@ -854,7 +855,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "banish_foreigner":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_DISMISS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_DISMISS))
 				{
 					if (castle.getSiege().getIsInProgress())
 					{
@@ -874,7 +875,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "doors":
 			{
-				if (!isOwner(player, npc) || !player.hasClanPrivilege(L2Clan.CP_CS_OPEN_DOOR))
+				if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
 				{
 					htmltext = "chamberlain-21.html";
 				}
@@ -890,7 +891,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "operate_door":
 			{
-				if (!isOwner(player, npc) || !player.hasClanPrivilege(L2Clan.CP_CS_OPEN_DOOR))
+				if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_OPEN_DOOR))
 				{
 					htmltext = "chamberlain-21.html";
 				}
@@ -911,12 +912,12 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "additional_functions":
 			{
-				htmltext = (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS)) ? "castletdecomanage.html" : "chamberlain-21.html";
+				htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS)) ? "castletdecomanage.html" : "chamberlain-21.html";
 				break;
 			}
 			case "recovery":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AR01.html");
 					funcReplace(castle, html, Castle.FUNC_RESTORE_HP, "HP");
@@ -932,7 +933,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "other":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					final NpcHtmlMessage html = getHtmlPacket(player, npc, "castledeco-AE01.html");
 					funcReplace(castle, html, Castle.FUNC_TELEPORT, "TP");
@@ -977,7 +978,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "set_func":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_SET_FUNCTIONS))
 				{
 					final int func = Integer.parseInt(st.nextToken());
 					final int level = Integer.parseInt(st.nextToken());
@@ -998,7 +999,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "functions":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_USE_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_USE_FUNCTIONS))
 				{
 					final CastleFunction HP = castle.getFunction(Castle.FUNC_RESTORE_HP);
 					final CastleFunction MP = castle.getFunction(Castle.FUNC_RESTORE_MP);
@@ -1017,7 +1018,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "teleport":
 			{
-				if (!isOwner(player, npc) || !player.hasClanPrivilege(L2Clan.CP_CS_USE_FUNCTIONS))
+				if (!isOwner(player, npc) || !player.hasClanPrivilege(ClanPrivilege.CS_USE_FUNCTIONS))
 				{
 					htmltext = "chamberlain-21.html";
 				}
@@ -1033,7 +1034,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "goto":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_USE_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_USE_FUNCTIONS))
 				{
 					final int locId = Integer.parseInt(st.nextToken());
 					final L2TeleportLocation list = TeleportLocationTable.getInstance().getTemplate(locId);
@@ -1053,7 +1054,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "buffer":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_USE_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_USE_FUNCTIONS))
 				{
 					if (castle.getFunction(Castle.FUNC_SUPPORT) == null)
 					{
@@ -1074,7 +1075,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "cast_buff":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_USE_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_USE_FUNCTIONS))
 				{
 					if (castle.getFunction(Castle.FUNC_SUPPORT) == null)
 					{
@@ -1111,7 +1112,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "list_siege_clans":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_MANAGE_SIEGE))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
 				{
 					castle.getSiege().listRegisterClan(player);
 				}
@@ -1123,7 +1124,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "list_territory_clans":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_MANAGE_SIEGE))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
 				{
 					player.sendPacket(new ExShowDominionRegistry(castle.getResidenceId(), player));
 				}
@@ -1135,7 +1136,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "manor":
 			{
-				htmltext = (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_MANOR_ADMIN)) ? "manor.html" : "chamberlain-21.html";
+				htmltext = (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_MANOR_ADMIN)) ? "manor.html" : "chamberlain-21.html";
 				break;
 			}
 			case "seed_status":
@@ -1169,7 +1170,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "products":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_USE_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_USE_FUNCTIONS))
 				{
 					final NpcHtmlMessage html = getHtmlPacket(player, npc, "chamberlain-22.html");
 					html.replace("%npcId%", Integer.toString(npc.getId()));
@@ -1183,7 +1184,7 @@ public final class CastleChamberlain extends AbstractNpcAI
 			}
 			case "buy":
 			{
-				if (isOwner(player, npc) && player.hasClanPrivilege(L2Clan.CP_CS_USE_FUNCTIONS))
+				if (isOwner(player, npc) && player.hasClanPrivilege(ClanPrivilege.CS_USE_FUNCTIONS))
 				{
 					((L2MerchantInstance) npc).showBuyWindow(player, Integer.parseInt(st.nextToken()));
 				}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/CastleCourtMagician.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/CastleCourtMagician.java
index cf3b8666f3beadcd508c80f37398fe8ada20b6e4..16314212b2cea4868c748bd681eb78d549b3106f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/CastleCourtMagician.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleCourtMagician/CastleCourtMagician.java
@@ -24,7 +24,7 @@ import ai.npc.AbstractNpcAI;
 
 import com.l2jserver.gameserver.datatables.SkillTable;
 import com.l2jserver.gameserver.datatables.SkillTreesData;
-import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.ClanPrivilege;
 import com.l2jserver.gameserver.model.L2SkillLearn;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
@@ -258,7 +258,7 @@ public final class CastleCourtMagician extends AbstractNpcAI
 			}
 			case "squadSkill":
 			{
-				if (player.isClanLeader() || player.hasClanPrivilege(L2Clan.CP_CL_TROOPS_FAME))
+				if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
 				{
 					final List<L2SkillLearn> skills = SkillTreesData.getInstance().getAvailableSubPledgeSkills(player.getClan());
 					final AcquireSkillList asl = new AcquireSkillList(AcquireSkillType.SUBPLEDGE);
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleMercenaryManager/CastleMercenaryManager.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleMercenaryManager/CastleMercenaryManager.java
index 0169a460895810515c32513a68ad7215ec1a47f2..53f9d9d6186997500696ef6f987109be7be0c3a2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleMercenaryManager/CastleMercenaryManager.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/CastleMercenaryManager/CastleMercenaryManager.java
@@ -23,7 +23,7 @@ import java.util.StringTokenizer;
 import ai.npc.AbstractNpcAI;
 
 import com.l2jserver.gameserver.SevenSigns;
-import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.ClanPrivilege;
 import com.l2jserver.gameserver.model.PcCondOverride;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2MerchantInstance;
@@ -117,7 +117,7 @@ public final class CastleMercenaryManager extends AbstractNpcAI
 	public String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
 		final String htmltext;
-		if (player.canOverrideCond(PcCondOverride.CASTLE_CONDITIONS) || ((player.getClanId() == npc.getCastle().getOwnerId()) && player.hasClanPrivilege(L2Clan.CP_CS_MERCENARIES)))
+		if (player.canOverrideCond(PcCondOverride.CASTLE_CONDITIONS) || ((player.getClanId() == npc.getCastle().getOwnerId()) && player.hasClanPrivilege(ClanPrivilege.CS_MERCENARIES)))
 		{
 			if (npc.getCastle().getSiege().getIsInProgress())
 			{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ClanTrader/ClanTrader.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ClanTrader/ClanTrader.java
index c68f5400e2fc31d8a14ffd42f06d9148391572db..029ccf24c53bda1d8a171feb48a3ebc96d30695b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ClanTrader/ClanTrader.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/ClanTrader/ClanTrader.java
@@ -21,7 +21,7 @@ package ai.npc.ClanTrader;
 import ai.npc.AbstractNpcAI;
 
 import com.l2jserver.Config;
-import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.ClanPrivilege;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.network.SystemMessageId;
@@ -111,7 +111,7 @@ public final class ClanTrader extends AbstractNpcAI
 	@Override
 	public String onFirstTalk(L2Npc npc, L2PcInstance player)
 	{
-		if (player.isClanLeader() || player.hasClanPrivilege(L2Clan.CP_CL_TROOPS_FAME))
+		if (player.isClanLeader() || player.hasClanPrivilege(ClanPrivilege.CL_TROOPS_FAME))
 		{
 			return npc.getId() + ".html";
 		}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/Nottingale.java b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/Nottingale.java
index 57ddd098022fad3df5861bc154b16f8495a76c85..4c30ea1629ba0fed877c981fab5950b3173b2e2f 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/Nottingale.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/Nottingale/Nottingale.java
@@ -25,7 +25,7 @@ import quests.Q10273_GoodDayToFly.Q10273_GoodDayToFly;
 import ai.npc.AbstractNpcAI;
 
 import com.l2jserver.gameserver.instancemanager.AirShipManager;
-import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.ClanPrivilege;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.quest.QuestState;
@@ -72,7 +72,7 @@ public final class Nottingale extends AbstractNpcAI
 			{
 				if (player.getClan() != null)
 				{
-					if (player.hasClanPrivilege(L2Clan.CP_CL_SUMMON_AIRSHIP) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
+					if (player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP) && AirShipManager.getInstance().hasAirShipLicense(player.getClanId()) && !AirShipManager.getInstance().hasAirShip(player.getClanId()))
 					{
 						htmltext = event;
 					}
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/ClanWarehouse.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/ClanWarehouse.java
index 6acab48312df97a971cbb05f6222110b94eff03d..5fdb099ad0acea516c711a1def742cf760c79279 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/ClanWarehouse.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/ClanWarehouse.java
@@ -22,7 +22,7 @@ import java.util.logging.Level;
 
 import com.l2jserver.Config;
 import com.l2jserver.gameserver.handler.IBypassHandler;
-import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.ClanPrivilege;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2ClanHallManagerInstance;
@@ -133,7 +133,7 @@ public class ClanWarehouse implements IBypassHandler
 	{
 		player.sendPacket(ActionFailed.STATIC_PACKET);
 		
-		if (!player.hasClanPrivilege(L2Clan.CP_CL_VIEW_WAREHOUSE))
+		if (!player.hasClanPrivilege(ClanPrivilege.CL_VIEW_WAREHOUSE))
 		{
 			player.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_USE_CLAN_WAREHOUSE);
 			return;
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/FortSiege.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/FortSiege.java
index 19463be72ad77b11d0b3327372b54b989f36f5af..6f6ef972ce649fcaffdacbfe8cf1e72032a55c53 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/FortSiege.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/bypasshandlers/FortSiege.java
@@ -20,7 +20,7 @@ package handlers.bypasshandlers;
 
 import com.l2jserver.gameserver.handler.IBypassHandler;
 import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
-import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.ClanPrivilege;
 import com.l2jserver.gameserver.model.actor.L2Character;
 import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.instance.L2FortSiegeNpcInstance;
@@ -44,7 +44,7 @@ public class FortSiege implements IBypassHandler
 			return false;
 		}
 		
-		if ((activeChar.getClanId() > 0) && activeChar.hasClanPrivilege(L2Clan.CP_CS_MANAGE_SIEGE))
+		if ((activeChar.getClanId() > 0) && activeChar.hasClanPrivilege(ClanPrivilege.CS_MANAGE_SIEGE))
 		{
 			if (command.toLowerCase().startsWith(COMMANDS[0])) // register
 			{
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/SetVCmd.java b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/SetVCmd.java
index a6abcc9a048c86117447331fd3c81c9b808afa57..c2f3df1a539ddbf6e067c79947771f2089b6a20b 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/SetVCmd.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/handlers/voicedcommandhandlers/SetVCmd.java
@@ -61,12 +61,12 @@ public class SetVCmd implements IVoicedCommandHandler
 				}
 				
 				final int n = Integer.parseInt(val);
-				if ((activeChar.getClanPrivileges() <= n) || !activeChar.isClanLeader())
+				if ((activeChar.getClanPrivileges().getBitmask() <= n) || !activeChar.isClanLeader())
 				{
 					return false;
 				}
 				
-				player.setClanPrivileges(n);
+				player.getClanPrivileges().setBitmask(n);
 				activeChar.sendMessage("Your clan privileges have been set to " + n + " by " + activeChar.getName() + ".");
 			}
 			else if (params.startsWith("title"))
diff --git a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java b/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java
index c92325929af4c2bc5f346b2c731d551cf22b3417..f59a1a8480a67ab4df948921ecba9f5d62da1cc2 100644
--- a/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java
+++ b/L2J_DataPack_BETA/dist/game/data/scripts/vehicles/AirShipController.java
@@ -25,7 +25,7 @@ import java.util.logging.Logger;
 import com.l2jserver.gameserver.ThreadPoolManager;
 import com.l2jserver.gameserver.instancemanager.AirShipManager;
 import com.l2jserver.gameserver.instancemanager.ZoneManager;
-import com.l2jserver.gameserver.model.L2Clan;
+import com.l2jserver.gameserver.model.ClanPrivilege;
 import com.l2jserver.gameserver.model.Location;
 import com.l2jserver.gameserver.model.VehiclePathPoint;
 import com.l2jserver.gameserver.model.actor.L2Character;
@@ -135,7 +135,7 @@ public abstract class AirShipController extends Quest
 				player.sendPacket(SystemMessageId.ANOTHER_AIRSHIP_ALREADY_SUMMONED);
 				return null;
 			}
-			if (!player.hasClanPrivilege(L2Clan.CP_CL_SUMMON_AIRSHIP))
+			if (!player.hasClanPrivilege(ClanPrivilege.CL_SUMMON_AIRSHIP))
 			{
 				player.sendPacket(SystemMessageId.THE_AIRSHIP_NO_PRIVILEGES);
 				return null;