2
0
Эх сурвалжийг харах

More checks in clan pledges management.

_DS_ 15 жил өмнө
parent
commit
81f058ab73

+ 18 - 8
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestPledgeReorganizeMember.java

@@ -49,24 +49,35 @@ public final class RequestPledgeReorganizeMember extends L2GameClientPacket
 	{
 		if (_isMemberSelected == 0)
 			return;
-		L2PcInstance activeChar = getClient().getActiveChar();
+
+		final L2PcInstance activeChar = getClient().getActiveChar();
 		if(activeChar == null)
 			return;
-		//do we need powers to do that??
-		L2Clan clan = activeChar.getClan();
+
+		final L2Clan clan = activeChar.getClan();
 		if(clan == null)
 			return;
-		L2ClanMember member1 = clan.getClanMember(_memberName);
-		L2ClanMember member2 = clan.getClanMember(_selectedMember);
-		if(member1 == null || member2 == null)
+
+		if (!activeChar.isClanLeader()) // privileges check
+			return;
+
+		final L2ClanMember member1 = clan.getClanMember(_memberName);
+		if (member1 == null)
 			return;
-		int oldPledgeType = member1.getPledgeType();
+
+		final L2ClanMember member2 = clan.getClanMember(_selectedMember);
+		if(member2 == null)
+			return;
+
+		final int oldPledgeType = member1.getPledgeType();
 		if (oldPledgeType == _newPledgeType)
 			return;
+
 		member1.setPledgeType(_newPledgeType);
 		member2.setPledgeType(oldPledgeType);
 		clan.broadcastClanStatus();
 	}
+
 	/**
 	 * @see com.l2jserver.gameserver.BasePacket#getType()
 	 */
@@ -75,5 +86,4 @@ public final class RequestPledgeReorganizeMember extends L2GameClientPacket
 	{
 		return _C__D0_24_REQUESTPLEDGEREORGANIZEMEMBER;
 	}
-
 }

+ 45 - 40
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestPledgeSetMemberPowerGrade.java

@@ -25,50 +25,55 @@ import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
  */
 public final class RequestPledgeSetMemberPowerGrade extends L2GameClientPacket
 {
-    private static final String _C__D0_1C_REQUESTPLEDGESETMEMBERPOWERGRADE = "[C] D0:1C RequestPledgeSetMemberPowerGrade";
-    private int _powerGrade;
-    private String _member;
+	private static final String _C__D0_1C_REQUESTPLEDGESETMEMBERPOWERGRADE = "[C] D0:1C RequestPledgeSetMemberPowerGrade";
+	private String _member;
+	private int _powerGrade;
 
-
-    @Override
+	@Override
 	protected void readImpl()
-    {
-        _member = readS();
-        _powerGrade = readD();
-    }
+	{
+		_member = readS();
+		_powerGrade = readD();
+	}
 
-    /**
-     * @see com.l2jserver.util.network.BaseRecievePacket.ClientBasePacket#runImpl()
-     */
-    @Override
+	/**
+	 * @see com.l2jserver.util.network.BaseRecievePacket.ClientBasePacket#runImpl()
+	 */
+	@Override
 	protected void runImpl()
-    {
-        L2PcInstance activeChar = getClient().getActiveChar();
-        if(activeChar == null)
-        	return;
-        L2Clan clan = activeChar.getClan();
-        if(clan == null)
-        	return;
-        L2ClanMember member = clan.getClanMember(_member);
-        if(member == null)
-        	return;
-        if(member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY)
-        {
-        	// also checked from client side
-        	activeChar.sendMessage("You cannot change academy member grade");
-        	return;
-        }
-        member.setPowerGrade(_powerGrade);
-        clan.broadcastClanStatus();
-    }
+	{
+		final L2PcInstance activeChar = getClient().getActiveChar();
+		if(activeChar == null)
+			return;
+
+		final L2Clan clan = activeChar.getClan();
+		if(clan == null)
+			return;
+
+		if (!activeChar.isClanLeader()) // privileges check
+			return;
+
+		final L2ClanMember member = clan.getClanMember(_member);
+		if(member == null)
+			return;
+
+		if(member.getPledgeType() == L2Clan.SUBUNIT_ACADEMY)
+		{
+			// also checked from client side
+			activeChar.sendMessage("You cannot change academy member grade");
+			return;
+		}
 
-    /**
-     * @see com.l2jserver.gameserver.BasePacket#getType()
-     */
-    @Override
-    public String getType()
-    {
-        return _C__D0_1C_REQUESTPLEDGESETMEMBERPOWERGRADE;
-    }
+		member.setPowerGrade(_powerGrade);
+		clan.broadcastClanStatus();
+	}
 
+	/**
+	 * @see com.l2jserver.gameserver.BasePacket#getType()
+	 */
+	@Override
+	public String getType()
+	{
+		return _C__D0_1C_REQUESTPLEDGESETMEMBERPOWERGRADE;
+	}
 }