Ver código fonte

BETA: Minor fixes and updates
* L2PcInstance now contains method hasClanPrivileges()
* NOTE: Use bitwise operator to check for multiple privileges
* L2NpcWalkerNode now extends Location
* Less object creation
* Patch by: jurchiks
* Reviewed by: Zoey76, UnAfraid, xban1x

xban1x 11 anos atrás
pai
commit
6cf82384a3
24 arquivos alterados com 102 adições e 137 exclusões
  1. 31 35
      L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/WalkingManager.java
  2. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Clan.java
  3. 18 46
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2NpcWalkerNode.java
  4. 3 3
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2AuctioneerInstance.java
  5. 6 6
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2CastleDoormenInstance.java
  6. 8 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2ClanHallManagerInstance.java
  7. 8 8
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2FortManagerInstance.java
  8. 5 0
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
  9. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/FortSiege.java
  10. 4 10
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestExSetPledgeCrestLarge.java
  11. 3 4
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestGiveNickName.java
  12. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestJoinDominionWar.java
  13. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestJoinSiege.java
  14. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestOustPledgeMember.java
  15. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java
  16. 2 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java
  17. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java
  18. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestSetCrop.java
  19. 2 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestSetPledgeCrest.java
  20. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestSetSeed.java
  21. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestStartPledgeWar.java
  22. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestStopPledgeWar.java
  23. 1 1
      L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/SendWareHouseWithDrawList.java
  24. 0 2
      L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/KnownListUpdateTaskManager.java

+ 31 - 35
L2J_Server_BETA/java/com/l2jserver/gameserver/instancemanager/WalkingManager.java

@@ -118,9 +118,10 @@ public class WalkingManager extends DocumentParser
 						int y = parseInt(attrs, "Y");
 						int z = parseInt(attrs, "Z");
 						int delay = parseInt(attrs, "delay");
-						
-						String chatString = null;
+						boolean run = parseBoolean(attrs, "run");
 						NpcStringId npcString = null;
+						String chatString = null;
+						
 						Node node = attrs.getNamedItem("string");
 						if (node != null)
 						{
@@ -134,7 +135,7 @@ public class WalkingManager extends DocumentParser
 								npcString = NpcStringId.getNpcStringId(node.getNodeValue());
 								if (npcString == null)
 								{
-									_log.warning(getClass().getSimpleName() + ": Unknown npcstring '" + node.getNodeValue() + ".");
+									_log.warning(getClass().getSimpleName() + ": Unknown npcString '" + node.getNodeValue() + "' for route '" + routeName + "'");
 									continue;
 								}
 							}
@@ -146,13 +147,13 @@ public class WalkingManager extends DocumentParser
 									npcString = NpcStringId.getNpcStringId(Integer.parseInt(node.getNodeValue()));
 									if (npcString == null)
 									{
-										_log.warning(getClass().getSimpleName() + ": Unknown npcstring '" + node.getNodeValue() + ".");
+										_log.warning(getClass().getSimpleName() + ": Unknown npcString '" + node.getNodeValue() + "' for route '" + routeName + "'");
 										continue;
 									}
 								}
 							}
 						}
-						list.add(new L2NpcWalkerNode(0, npcString, chatString, x, y, z, delay, parseBoolean(attrs, "run")));
+						list.add(new L2NpcWalkerNode(x, y, z, delay, run, npcString, chatString));
 					}
 					
 					else if (r.getNodeName().equals("target"))
@@ -161,11 +162,9 @@ public class WalkingManager extends DocumentParser
 						try
 						{
 							int npcId = Integer.parseInt(attrs.getNamedItem("id").getNodeValue());
-							int x = 0, y = 0, z = 0;
-							
-							x = Integer.parseInt(attrs.getNamedItem("spawnX").getNodeValue());
-							y = Integer.parseInt(attrs.getNamedItem("spawnY").getNodeValue());
-							z = Integer.parseInt(attrs.getNamedItem("spawnZ").getNodeValue());
+							int x = Integer.parseInt(attrs.getNamedItem("spawnX").getNodeValue());
+							int y = Integer.parseInt(attrs.getNamedItem("spawnY").getNodeValue());
+							int z = Integer.parseInt(attrs.getNamedItem("spawnZ").getNodeValue());
 							
 							NpcRoutesHolder holder = _routesToAttach.containsKey(npcId) ? _routesToAttach.get(npcId) : new NpcRoutesHolder();
 							holder.addRoute(routeName, new Location(x, y, z));
@@ -173,7 +172,7 @@ public class WalkingManager extends DocumentParser
 						}
 						catch (Exception e)
 						{
-							_log.warning("Walking Manager: Error in target definition for route : " + routeName);
+							_log.warning(getClass().getSimpleName() + ": Error in target definition for route '" + routeName + "'");
 						}
 					}
 				}
@@ -262,22 +261,24 @@ public class WalkingManager extends DocumentParser
 					L2NpcWalkerNode node = walk.getCurrentNode();
 					
 					// adjust next waypoint, if NPC spawns at first waypoint
-					if ((npc.getX() == node.getMoveX()) && (npc.getY() == node.getMoveY()))
+					if ((npc.getX() == node.getX()) && (npc.getY() == node.getY()))
 					{
 						walk.calculateNextNode(npc);
 						node = walk.getCurrentNode();
-						npc.sendDebugMessage("Route " + routeName + ", spawn point is same with first waypoint, adjusted to next");
+						npc.sendDebugMessage("Route '" + routeName + "': spawn point is same with first waypoint, adjusted to next");
 					}
 					
-					if (!npc.isInsideRadius(node.getMoveX(), node.getMoveY(), node.getMoveZ(), 3000, true, false))
+					if (!npc.isInsideRadius(node, 3000, true, false))
 					{
-						npc.sendDebugMessage("Route " + routeName + ", NPC is too far from starting point, walking will no start");
+						String message = "Route '" + routeName + "': NPC is too far from starting point, walking will not start";
+						_log.warning(getClass().getSimpleName() + ": " + message);
+						npc.sendDebugMessage(message);
 						return;
 					}
 					
-					npc.sendDebugMessage("Starting to move at route " + routeName);
-					npc.setIsRunning(node.getRunning());
-					npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(node.getMoveX(), node.getMoveY(), node.getMoveZ(), 0));
+					npc.sendDebugMessage("Starting to move at route '" + routeName + "'");
+					npc.setIsRunning(node.runToLocation());
+					npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, node);
 					walk.setWalkCheckTask(ThreadPoolManager.getInstance().scheduleAiAtFixedRate(new Runnable()
 					{
 						@Override
@@ -293,7 +294,7 @@ public class WalkingManager extends DocumentParser
 				}
 				else
 				{
-					npc.sendDebugMessage("Trying to start move at route " + routeName + ", but cannot now, scheduled");
+					npc.sendDebugMessage("Failed to start moving along route '" + routeName + "', scheduled");
 					ThreadPoolManager.getInstance().scheduleGeneral(new Runnable()
 					{
 						@Override
@@ -318,21 +319,21 @@ public class WalkingManager extends DocumentParser
 					// Prevent call simultaneously from scheduled task and onArrived() or temporarily stop walking for resuming in future
 					if (walk.isBlocked() || walk.isSuspended())
 					{
-						npc.sendDebugMessage("Trying continue to move at route " + routeName + ", but cannot now (operation is blocked)");
+						npc.sendDebugMessage("Failed to continue moving along route '" + routeName + "' (operation is blocked)");
 						return;
 					}
 					
 					walk.setBlocked(true);
 					L2NpcWalkerNode node = walk.getCurrentNode();
-					npc.sendDebugMessage("Route id: " + routeName + ", continue to node " + walk.getCurrentNodeId());
-					npc.setIsRunning(node.getRunning());
-					npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(node.getMoveX(), node.getMoveY(), node.getMoveZ(), 0));
+					npc.sendDebugMessage("Route '" + routeName + "', continuing to node " + walk.getCurrentNodeId());
+					npc.setIsRunning(node.runToLocation());
+					npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, node);
 					walk.setBlocked(false);
 					walk.setStoppedByAttack(false);
 				}
 				else
 				{
-					npc.sendDebugMessage("Trying continue to move at route " + routeName + ", but cannot now (wrong AI state)");
+					npc.sendDebugMessage("Failed to continue moving along route '" + routeName + "' (wrong AI state)");
 				}
 			}
 		}
@@ -436,32 +437,27 @@ public class WalkingManager extends DocumentParser
 			if ((walk.getCurrentNodeId() >= 0) && (walk.getCurrentNodeId() < walk.getRoute().getNodesCount()))
 			{
 				L2NpcWalkerNode node = walk.getRoute().getNodeList().get(walk.getCurrentNodeId());
-				if (npc.isInsideRadius(node.getMoveX(), node.getMoveY(), node.getMoveZ(), 10, false, false))
+				if (npc.isInsideRadius(node, 10, false, false))
 				{
-					npc.sendDebugMessage("Route: " + walk.getRoute().getName() + ", arrived to node " + walk.getCurrentNodeId());
-					npc.sendDebugMessage("Done in " + ((System.currentTimeMillis() - walk.getLastAction()) / 1000) + " s.");
+					npc.sendDebugMessage("Route '" + walk.getRoute().getName() + "', arrived to node " + walk.getCurrentNodeId());
+					npc.sendDebugMessage("Done in " + ((System.currentTimeMillis() - walk.getLastAction()) / 1000) + " s");
 					walk.calculateNextNode(npc);
-					int delay = node.getDelay();
 					walk.setBlocked(true); // prevents to be ran from walk check task, if there is delay in this node.
 					
 					if (node.getNpcString() != null)
 					{
 						Broadcast.toKnownPlayers(npc, new NpcSay(npc, Say2.NPC_ALL, node.getNpcString()));
 					}
-					else
+					else if (!node.getChatText().isEmpty())
 					{
-						final String text = node.getChatText();
-						if ((text != null) && !text.isEmpty())
-						{
-							Broadcast.toKnownPlayers(npc, new NpcSay(npc, Say2.NPC_ALL, text));
-						}
+						Broadcast.toKnownPlayers(npc, new NpcSay(npc, Say2.NPC_ALL, node.getChatText()));
 					}
 					
 					if (npc.isDebug())
 					{
 						walk.setLastAction(System.currentTimeMillis());
 					}
-					ThreadPoolManager.getInstance().scheduleGeneral(new ArrivedTask(npc, walk), 100 + (delay * 1000L));
+					ThreadPoolManager.getInstance().scheduleGeneral(new ArrivedTask(npc, walk), 100 + (node.getDelay() * 1000L));
 				}
 			}
 		}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2Clan.java

@@ -2294,7 +2294,7 @@ public class L2Clan
 		{
 			return false;
 		}
-		if ((activeChar.getClanPrivileges() & L2Clan.CP_CL_JOIN_CLAN) != L2Clan.CP_CL_JOIN_CLAN)
+		if (!activeChar.hasClanPrivilege(L2Clan.CP_CL_JOIN_CLAN))
 		{
 			activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
 			return false;

+ 18 - 46
L2J_Server_BETA/java/com/l2jserver/gameserver/model/L2NpcWalkerNode.java

@@ -24,57 +24,20 @@ import com.l2jserver.gameserver.network.NpcStringId;
  * @author Rayan RPG, JIV
  * @since 927
  */
-public class L2NpcWalkerNode
+public class L2NpcWalkerNode extends Location
 {
-	private final int _routeId;
 	private final String _chatString;
 	private final NpcStringId _npcString;
-	private final int _moveX;
-	private final int _moveY;
-	private final int _moveZ;
 	private final int _delay;
-	private final boolean _running;
+	private final boolean _runToLocation;
 	
-	public L2NpcWalkerNode(int routeId, NpcStringId npcString, String chatText, int moveX, int moveY, int moveZ, int delay, boolean running)
+	public L2NpcWalkerNode(int moveX, int moveY, int moveZ, int delay, boolean runToLocation, NpcStringId npcString, String chatText)
 	{
-		super();
-		_routeId = routeId;
-		_chatString = chatText;
-		_npcString = npcString;
-		_moveX = moveX;
-		_moveY = moveY;
-		_moveZ = moveZ;
+		super(moveX, moveY, moveZ);
 		_delay = delay;
-		_running = running;
-	}
-	
-	public int getRouteId()
-	{
-		return _routeId;
-	}
-	
-	public String getChatText()
-	{
-		if (_npcString != null)
-		{
-			throw new IllegalStateException("npcString is defined for walker route!");
-		}
-		return _chatString;
-	}
-	
-	public int getMoveX()
-	{
-		return _moveX;
-	}
-	
-	public int getMoveY()
-	{
-		return _moveY;
-	}
-	
-	public int getMoveZ()
-	{
-		return _moveZ;
+		_runToLocation = runToLocation;
+		_npcString = npcString;
+		_chatString = ((chatText == null) ? "" : chatText);
 	}
 	
 	public int getDelay()
@@ -82,13 +45,22 @@ public class L2NpcWalkerNode
 		return _delay;
 	}
 	
-	public boolean getRunning()
+	public boolean runToLocation()
 	{
-		return _running;
+		return _runToLocation;
 	}
 	
 	public NpcStringId getNpcString()
 	{
 		return _npcString;
 	}
+	
+	public String getChatText()
+	{
+		if (_npcString != null)
+		{
+			throw new IllegalStateException("npcString is defined for walker route!");
+		}
+		return _chatString;
+	}
 }

+ 3 - 3
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2AuctioneerInstance.java

@@ -534,7 +534,7 @@ public final class L2AuctioneerInstance extends L2Npc
 			}
 			else if (actualCommand.equalsIgnoreCase("cancelAuction"))
 			{
-				if (!((player.getClanPrivileges() & L2Clan.CP_CH_AUCTION) == L2Clan.CP_CH_AUCTION))
+				if (!player.hasClanPrivilege(L2Clan.CP_CH_AUCTION))
 				{
 					String filename = "data/html/auction/not_authorized.htm";
 					NpcHtmlMessage html = new NpcHtmlMessage(1);
@@ -574,7 +574,7 @@ public final class L2AuctioneerInstance extends L2Npc
 			}
 			else if (actualCommand.equalsIgnoreCase("sale"))
 			{
-				if (!((player.getClanPrivileges() & L2Clan.CP_CH_AUCTION) == L2Clan.CP_CH_AUCTION))
+				if (!player.hasClanPrivilege(L2Clan.CP_CH_AUCTION))
 				{
 					String filename = "data/html/auction/not_authorized.htm";
 					NpcHtmlMessage html = new NpcHtmlMessage(1);
@@ -596,7 +596,7 @@ public final class L2AuctioneerInstance extends L2Npc
 			else if (actualCommand.equalsIgnoreCase("rebid"))
 			{
 				SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm");
-				if (!((player.getClanPrivileges() & L2Clan.CP_CH_AUCTION) == L2Clan.CP_CH_AUCTION))
+				if (!player.hasClanPrivilege(L2Clan.CP_CH_AUCTION))
 				{
 					String filename = "data/html/auction/not_authorized.htm";
 					NpcHtmlMessage html = new NpcHtmlMessage(1);

+ 6 - 6
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2CastleDoormenInstance.java

@@ -73,20 +73,20 @@ public class L2CastleDoormenInstance extends L2DoormenInstance
 	@Override
 	protected final boolean isOwnerClan(L2PcInstance player)
 	{
-		if (player.getClan() != null)
+		if ((player.getClan() != null) && player.hasClanPrivilege(L2Clan.CP_CS_OPEN_DOOR))
 		{
-			if (getConquerableHall() != null)
+			SiegableHall hall = getConquerableHall();
+			// save in variable because it's a costly call
+			if (hall != null)
 			{
-				// player should have privileges to open doors
-				if ((player.getClanId() == getConquerableHall().getOwnerId()) && ((player.getClanPrivileges() & L2Clan.CP_CS_OPEN_DOOR) == L2Clan.CP_CS_OPEN_DOOR))
+				if (player.getClanId() == hall.getOwnerId())
 				{
 					return true;
 				}
 			}
 			else if (getCastle() != null)
 			{
-				// player should have privileges to open doors
-				if ((player.getClanId() == getCastle().getOwnerId()) && ((player.getClanPrivileges() & L2Clan.CP_CS_OPEN_DOOR) == L2Clan.CP_CS_OPEN_DOOR))
+				if (player.getClanId() == getCastle().getOwnerId())
 				{
 					return true;
 				}

+ 8 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2ClanHallManagerInstance.java

@@ -93,7 +93,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 			if (actualCommand.equalsIgnoreCase("banish_foreigner"))
 			{
 				NpcHtmlMessage html = new NpcHtmlMessage(1);
-				if ((player.getClanPrivileges() & L2Clan.CP_CH_DISMISS) == L2Clan.CP_CH_DISMISS)
+				if (player.hasClanPrivilege(L2Clan.CP_CH_DISMISS))
 				{
 					if (val.equalsIgnoreCase("list"))
 					{
@@ -115,7 +115,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 			else if (actualCommand.equalsIgnoreCase("manage_vault"))
 			{
 				NpcHtmlMessage html = new NpcHtmlMessage(1);
-				if ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) == L2Clan.CP_CL_VIEW_WAREHOUSE)
+				if (player.hasClanPrivilege(L2Clan.CP_CL_VIEW_WAREHOUSE))
 				{
 					if (getClanHall().getLease() <= 0)
 					{
@@ -139,7 +139,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 			else if (actualCommand.equalsIgnoreCase("door"))
 			{
 				NpcHtmlMessage html = new NpcHtmlMessage(1);
-				if ((player.getClanPrivileges() & L2Clan.CP_CH_OPEN_DOOR) == L2Clan.CP_CH_OPEN_DOOR)
+				if (player.hasClanPrivilege(L2Clan.CP_CH_OPEN_DOOR))
 				{
 					if (val.equalsIgnoreCase("open"))
 					{
@@ -248,7 +248,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 			}
 			else if (actualCommand.equalsIgnoreCase("manage"))
 			{
-				if ((player.getClanPrivileges() & L2Clan.CP_CH_SET_FUNCTIONS) == L2Clan.CP_CH_SET_FUNCTIONS)
+				if (player.hasClanPrivilege(L2Clan.CP_CH_SET_FUNCTIONS))
 				{
 					if (val.equalsIgnoreCase("recovery"))
 					{
@@ -256,7 +256,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 						{
 							if (getClanHall().getOwnerId() == 0)
 							{
-								player.sendMessage("This clan Hall have no owner, you cannot change configuration");
+								player.sendMessage("This clan hall has no owner, you cannot change the configuration.");
 								return;
 							}
 							val = st.nextToken();
@@ -764,7 +764,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 						{
 							if (getClanHall().getOwnerId() == 0)
 							{
-								player.sendMessage("This clan Hall have no owner, you cannot change configuration");
+								player.sendMessage("This clan hall has no owner, you cannot change the configuration.");
 								return;
 							}
 							val = st.nextToken();
@@ -888,7 +888,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 								{
 									if (getClanHall().getOwnerId() == 0)
 									{
-										player.sendMessage("This clan Hall have no owner, you cannot change configuration");
+										player.sendMessage("This clan hall has no owner, you cannot change the configuration.");
 										return;
 									}
 									if (Config.DEBUG)
@@ -1138,7 +1138,7 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
 						{
 							if (getClanHall().getOwnerId() == 0)
 							{
-								player.sendMessage("This clan Hall have no owner, you cannot change configuration");
+								player.sendMessage("This clan hall has no owner, you cannot change the configuration.");
 								return;
 							}
 							val = st.nextToken();

+ 8 - 8
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2FortManagerInstance.java

@@ -96,7 +96,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 			}
 			if (actualCommand.equalsIgnoreCase("expel"))
 			{
-				if ((player.getClanPrivileges() & L2Clan.CP_CS_DISMISS) == L2Clan.CP_CS_DISMISS)
+				if (player.hasClanPrivilege(L2Clan.CP_CS_DISMISS))
 				{
 					NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
 					html.setFile(player.getHtmlPrefix(), "data/html/fortress/foreman-expel.htm");
@@ -114,7 +114,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 			}
 			else if (actualCommand.equalsIgnoreCase("banish_foreigner"))
 			{
-				if ((player.getClanPrivileges() & L2Clan.CP_CS_DISMISS) == L2Clan.CP_CS_DISMISS)
+				if (player.hasClanPrivilege(L2Clan.CP_CS_DISMISS))
 				{
 					getFort().banishForeigners(); // Move non-clan members off fortress area
 					NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
@@ -186,7 +186,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 			else if (actualCommand.equalsIgnoreCase("operate_door")) // door
 			// control
 			{
-				if ((player.getClanPrivileges() & L2Clan.CP_CS_OPEN_DOOR) == L2Clan.CP_CS_OPEN_DOOR)
+				if (player.hasClanPrivilege(L2Clan.CP_CS_OPEN_DOOR))
 				{
 					if (!val.isEmpty())
 					{
@@ -231,7 +231,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 			else if (actualCommand.equalsIgnoreCase("manage_vault"))
 			{
 				NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
-				if ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) == L2Clan.CP_CL_VIEW_WAREHOUSE)
+				if (player.hasClanPrivilege(L2Clan.CP_CL_VIEW_WAREHOUSE))
 				{
 					if (val.equalsIgnoreCase("deposit"))
 					{
@@ -357,7 +357,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 			}
 			else if (actualCommand.equalsIgnoreCase("manage"))
 			{
-				if ((player.getClanPrivileges() & L2Clan.CP_CS_SET_FUNCTIONS) == L2Clan.CP_CS_SET_FUNCTIONS)
+				if (player.hasClanPrivilege(L2Clan.CP_CS_SET_FUNCTIONS))
 				{
 					if (val.equalsIgnoreCase("recovery"))
 					{
@@ -365,7 +365,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 						{
 							if (getFort().getOwnerClan() == null)
 							{
-								player.sendMessage("This fortress have no owner, you cannot change configuration");
+								player.sendMessage("This fortress has no owner, you cannot change the configuration.");
 								return;
 							}
 							val = st.nextToken();
@@ -648,7 +648,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 						{
 							if (getFort().getOwnerClan() == null)
 							{
-								player.sendMessage("This fortress have no owner, you cannot change configuration");
+								player.sendMessage("This fortress has no owner, you cannot change the configuration.");
 								return;
 							}
 							val = st.nextToken();
@@ -1020,7 +1020,7 @@ public class L2FortManagerInstance extends L2MerchantInstance
 	
 	private void showVaultWindowWithdraw(L2PcInstance player, WarehouseListType itemtype, byte sortorder)
 	{
-		if (player.isClanLeader() || ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) == L2Clan.CP_CL_VIEW_WAREHOUSE))
+		if (player.isClanLeader() || player.hasClanPrivilege(L2Clan.CP_CL_VIEW_WAREHOUSE))
 		{
 			player.sendPacket(ActionFailed.STATIC_PACKET);
 			player.setActiveWarehouse(player.getClan().getWarehouse());

+ 5 - 0
L2J_Server_BETA/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java

@@ -9833,6 +9833,11 @@ public final class L2PcInstance extends L2Playable
 		_clanPrivileges = n;
 	}
 	
+	public boolean hasClanPrivilege(int privilege)
+	{
+		return ((_clanPrivileges & privilege) == privilege);
+	}
+	
 	// baron etc
 	public void setPledgeClass(int classId)
 	{

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/model/entity/FortSiege.java

@@ -956,7 +956,7 @@ public class FortSiege implements Siegable
 			b = false;
 			player.sendMessage("Only clans with Level " + FortSiegeManager.getInstance().getSiegeClanMinLevel() + " and higher may register for a fortress siege.");
 		}
-		else if ((player.getClanPrivileges() & L2Clan.CP_CS_MANAGE_SIEGE) != L2Clan.CP_CS_MANAGE_SIEGE)
+		else if (!player.hasClanPrivilege(L2Clan.CP_CS_MANAGE_SIEGE))
 		{
 			b = false;
 			player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);

+ 4 - 10
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestExSetPledgeCrestLarge.java

@@ -64,15 +64,9 @@ public final class RequestExSetPledgeCrestLarge extends L2GameClientPacket
 			return;
 		}
 		
-		if (_length < 0)
+		if ((_length < 0) || (_length > 2176))
 		{
-			activeChar.sendMessage("File transfer error.");
-			return;
-		}
-		
-		if (_length > 2176)
-		{
-			activeChar.sendMessage("The insignia file size is greater than 2176 bytes.");
+			activeChar.sendPacket(SystemMessageId.WRONG_SIZE_UPLOADED_CREST);
 			return;
 		}
 		
@@ -82,7 +76,7 @@ public final class RequestExSetPledgeCrestLarge extends L2GameClientPacket
 			return;
 		}
 		
-		if ((activeChar.getClanPrivileges() & L2Clan.CP_CL_REGISTER_CREST) != L2Clan.CP_CL_REGISTER_CREST)
+		if (!activeChar.hasClanPrivilege(L2Clan.CP_CL_REGISTER_CREST))
 		{
 			activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
 			return;
@@ -93,7 +87,7 @@ public final class RequestExSetPledgeCrestLarge extends L2GameClientPacket
 			if (clan.getCrestLargeId() != 0)
 			{
 				clan.changeLargeCrest(0);
-				activeChar.sendMessage("The insignia has been removed.");
+				activeChar.sendPacket(SystemMessageId.CLAN_CREST_HAS_BEEN_DELETED);
 			}
 		}
 		else

+ 3 - 4
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestGiveNickName.java

@@ -60,7 +60,7 @@ public class RequestGiveNickName extends L2GameClientPacket
 			activeChar.broadcastTitleInfo();
 		}
 		// Can the player change/give a title?
-		else if ((activeChar.getClanPrivileges() & L2Clan.CP_CL_GIVE_TITLE) == L2Clan.CP_CL_GIVE_TITLE)
+		else if (activeChar.hasClanPrivilege(L2Clan.CP_CL_GIVE_TITLE))
 		{
 			if (activeChar.getClan().getLevel() < 3)
 			{
@@ -78,13 +78,12 @@ public class RequestGiveNickName extends L2GameClientPacket
 				{
 					// is target from the same clan?
 					member.setTitle(_title);
-					SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.TITLE_CHANGED);
-					member.sendPacket(sm);
+					member.sendPacket(SystemMessageId.TITLE_CHANGED);
 					member.broadcastTitleInfo();
-					sm = null;
 				}
 				else
 				{
+					// TODO retail messages
 					activeChar.sendMessage("Target needs to be online to get a title");
 				}
 			}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestJoinDominionWar.java

@@ -68,7 +68,7 @@ public final class RequestJoinDominionWar extends L2GameClientPacket
 		
 		if (_isClan == 0x01)
 		{
-			if ((activeChar.getClanPrivileges() & L2Clan.CP_CS_MANAGE_SIEGE) != L2Clan.CP_CS_MANAGE_SIEGE)
+			if (!activeChar.hasClanPrivilege(L2Clan.CP_CS_MANAGE_SIEGE))
 			{
 				activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
 				return;

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestJoinSiege.java

@@ -56,7 +56,7 @@ public final class RequestJoinSiege extends L2GameClientPacket
 			return;
 		}
 		
-		if ((activeChar.getClanPrivileges() & L2Clan.CP_CS_MANAGE_SIEGE) != L2Clan.CP_CS_MANAGE_SIEGE)
+		if (!activeChar.hasClanPrivilege(L2Clan.CP_CS_MANAGE_SIEGE))
 		{
 			activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
 			return;

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestOustPledgeMember.java

@@ -55,7 +55,7 @@ public final class RequestOustPledgeMember extends L2GameClientPacket
 			activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_A_CLAN_MEMBER);
 			return;
 		}
-		if ((activeChar.getClanPrivileges() & L2Clan.CP_CL_DISMISS) != L2Clan.CP_CL_DISMISS)
+		if (!activeChar.hasClanPrivilege(L2Clan.CP_CL_DISMISS))
 		{
 			activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
 			return;

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java

@@ -64,7 +64,7 @@ public final class RequestPledgeReorganizeMember extends L2GameClientPacket
 			return;
 		}
 		
-		if ((activeChar.getClanPrivileges() & L2Clan.CP_CL_MANAGE_RANKS) != L2Clan.CP_CL_MANAGE_RANKS)
+		if (!activeChar.hasClanPrivilege(L2Clan.CP_CL_MANAGE_RANKS))
 		{
 			return;
 		}

+ 2 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestPledgeSetAcademyMaster.java

@@ -54,7 +54,7 @@ public final class RequestPledgeSetAcademyMaster extends L2GameClientPacket
 			return;
 		}
 		
-		if ((activeChar.getClanPrivileges() & L2Clan.CP_CL_APPRENTICE) != L2Clan.CP_CL_APPRENTICE)
+		if (!activeChar.hasClanPrivilege(L2Clan.CP_CL_APPRENTICE))
 		{
 			activeChar.sendPacket(SystemMessageId.YOU_DO_NOT_HAVE_THE_RIGHT_TO_DISMISS_AN_APPRENTICE);
 			return;
@@ -113,6 +113,7 @@ public final class RequestPledgeSetAcademyMaster extends L2GameClientPacket
 		{
 			if ((apprenticeMember.getSponsor() != 0) || (sponsorMember.getApprentice() != 0) || (apprenticeMember.getApprentice() != 0) || (sponsorMember.getSponsor() != 0))
 			{
+				// TODO retail message
 				activeChar.sendMessage("Remove previous connections first.");
 				return;
 			}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java

@@ -54,7 +54,7 @@ public final class RequestPledgeSetMemberPowerGrade extends L2GameClientPacket
 			return;
 		}
 		
-		if ((activeChar.getClanPrivileges() & L2Clan.CP_CL_MANAGE_RANKS) != L2Clan.CP_CL_MANAGE_RANKS)
+		if (!activeChar.hasClanPrivilege(L2Clan.CP_CL_MANAGE_RANKS))
 		{
 			return;
 		}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestSetCrop.java

@@ -82,7 +82,7 @@ public class RequestSetCrop extends L2GameClientPacket
 		
 		L2PcInstance player = getClient().getActiveChar();
 		// check player privileges
-		if ((player == null) || (player.getClan() == null) || ((player.getClanPrivileges() & L2Clan.CP_CS_MANOR_ADMIN) == 0))
+		if ((player == null) || (player.getClan() == null) || !player.hasClanPrivilege(L2Clan.CP_CS_MANOR_ADMIN))
 		{
 			return;
 		}

+ 2 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestSetPledgeCrest.java

@@ -59,7 +59,7 @@ public final class RequestSetPledgeCrest extends L2GameClientPacket
 		
 		if ((_length < 0))
 		{
-			activeChar.sendMessage("File transfer error.");
+			activeChar.sendPacket(SystemMessageId.WRONG_SIZE_UPLOADED_CREST);
 			return;
 		}
 		
@@ -81,7 +81,7 @@ public final class RequestSetPledgeCrest extends L2GameClientPacket
 			return;
 		}
 		
-		if ((activeChar.getClanPrivileges() & L2Clan.CP_CL_REGISTER_CREST) != L2Clan.CP_CL_REGISTER_CREST)
+		if (!activeChar.hasClanPrivilege(L2Clan.CP_CL_REGISTER_CREST))
 		{
 			activeChar.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
 			return;

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestSetSeed.java

@@ -81,7 +81,7 @@ public class RequestSetSeed extends L2GameClientPacket
 		
 		L2PcInstance player = getClient().getActiveChar();
 		// check player privileges
-		if ((player == null) || (player.getClan() == null) || ((player.getClanPrivileges() & L2Clan.CP_CS_MANOR_ADMIN) == 0))
+		if ((player == null) || (player.getClan() == null) || !player.hasClanPrivilege(L2Clan.CP_CS_MANOR_ADMIN))
 		{
 			return;
 		}

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestStartPledgeWar.java

@@ -66,7 +66,7 @@ public final class RequestStartPledgeWar extends L2GameClientPacket
 			sm = null;
 			return;
 		}
-		else if ((player.getClanPrivileges() & L2Clan.CP_CL_PLEDGE_WAR) != L2Clan.CP_CL_PLEDGE_WAR)
+		else if (!player.hasClanPrivilege(L2Clan.CP_CL_PLEDGE_WAR))
 		{
 			player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
 			player.sendPacket(ActionFailed.STATIC_PACKET);

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/RequestStopPledgeWar.java

@@ -72,7 +72,7 @@ public final class RequestStopPledgeWar extends L2GameClientPacket
 		}
 		
 		// Check if player who does the request has the correct rights to do it
-		if ((player.getClanPrivileges() & L2Clan.CP_CL_PLEDGE_WAR) != L2Clan.CP_CL_PLEDGE_WAR)
+		if (!player.hasClanPrivilege(L2Clan.CP_CL_PLEDGE_WAR))
 		{
 			player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
 			return;

+ 1 - 1
L2J_Server_BETA/java/com/l2jserver/gameserver/network/clientpackets/SendWareHouseWithDrawList.java

@@ -114,7 +114,7 @@ public final class SendWareHouseWithDrawList extends L2GameClientPacket
 		
 		if (Config.ALT_MEMBERS_CAN_WITHDRAW_FROM_CLANWH)
 		{
-			if ((warehouse instanceof ClanWarehouse) && ((player.getClanPrivileges() & L2Clan.CP_CL_VIEW_WAREHOUSE) != L2Clan.CP_CL_VIEW_WAREHOUSE))
+			if ((warehouse instanceof ClanWarehouse) && !player.hasClanPrivilege(L2Clan.CP_CL_VIEW_WAREHOUSE))
 			{
 				return;
 			}

+ 0 - 2
L2J_Server_BETA/java/com/l2jserver/gameserver/taskmanager/KnownListUpdateTaskManager.java

@@ -135,7 +135,6 @@ public class KnownListUpdateTaskManager
 							object.getKnownList().addKnownObject(obj);
 						}
 					}
-					
 				}
 				else if (object instanceof L2Character)
 				{
@@ -149,7 +148,6 @@ public class KnownListUpdateTaskManager
 							{
 								object.getKnownList().addKnownObject(obj);
 							}
-							
 						}
 					}
 				}