浏览代码

clan privileges update by kerberos_20

nBd 17 年之前
父节点
当前提交
f213a3792d

+ 2 - 1
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2CastleBlacksmithInstance.java

@@ -16,6 +16,7 @@ package net.sf.l2j.gameserver.model.actor.instance;
 
 import net.sf.l2j.gameserver.ai.CtrlIntention;
 import net.sf.l2j.gameserver.instancemanager.CastleManorManager;
+import net.sf.l2j.gameserver.model.L2Clan;
 import net.sf.l2j.gameserver.serverpackets.ActionFailed;
 import net.sf.l2j.gameserver.serverpackets.MyTargetSelected;
 import net.sf.l2j.gameserver.serverpackets.NpcHtmlMessage;
@@ -157,7 +158,7 @@ public class L2CastleBlacksmithInstance extends L2FolkInstance
 				if (getCastle().getSiege().getIsInProgress())
 					return COND_BUSY_BECAUSE_OF_SIEGE;                  // Busy because of siege
 				else if (getCastle().getOwnerId() == player.getClanId() // Clan owns castle
-						&& player.isClanLeader())                       // Leader of clan
+						&& (player.getClanPrivileges() & L2Clan.CP_CS_MANOR_ADMIN) == L2Clan.CP_CS_MANOR_ADMIN)                       // Leader of clan
 					return COND_OWNER;                                  // Owner
 			}
 		}

+ 8 - 2
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2CastleChamberlainInstance.java

@@ -124,8 +124,14 @@ public class L2CastleChamberlainInstance extends L2MerchantInstance
 
             if (actualCommand.equalsIgnoreCase("banish_foreigner"))
             {
-                getCastle().banishForeigners();                    // Move non-clan members off castle area
-                return;
+                if ((player.getClanPrivileges() & L2Clan.CP_CS_DISMISS) == L2Clan.CP_CS_DISMISS)
+                {
+                	getCastle().banishForeigners();                    // Move non-clan members off castle area
+                	return;
+                }
+                else
+                	player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT));
+            return;
             }
             else if (actualCommand.equalsIgnoreCase("list_siege_clans"))
             {

+ 15 - 8
L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2ClanHallManagerInstance.java

@@ -69,16 +69,23 @@ public class L2ClanHallManagerInstance extends L2MerchantInstance
             if (actualCommand.equalsIgnoreCase("banish_foreigner"))
             {
             	NpcHtmlMessage html = new NpcHtmlMessage(1);
-            	if (val.equalsIgnoreCase("list"))
-            	{
-                	html.setFile("data/html/clanHallManager/banish-list.htm");            		
-            	}
-            	else if (val.equalsIgnoreCase("banish"))
+                if ((player.getClanPrivileges() & L2Clan.CP_CH_DISMISS) == L2Clan.CP_CH_DISMISS)
                 {
-                	getClanHall().banishForeigners();
-                	html.setFile("data/html/clanHallManager/banish.htm");
+                	if (val.equalsIgnoreCase("list"))
+                	{
+                		html.setFile("data/html/clanHallManager/banish-list.htm");            		
+                	}
+                	else if (val.equalsIgnoreCase("banish"))
+                	{
+                		getClanHall().banishForeigners();
+                		html.setFile("data/html/clanHallManager/banish.htm");
+                	}
                 }
-            	sendHtmlMessage(player, html);
+                else
+                {
+                    html.setFile("data/html/clanHallManager/not_authorized.htm");
+                }
+                sendHtmlMessage(player, html);
             	return;
             }
             else if(actualCommand.equalsIgnoreCase("manage_vault"))