Ver código fonte

another crest fix

janiii 15 anos atrás
pai
commit
986dde78be

Diferenças do arquivo suprimidas por serem muito extensas
+ 1537 - 1396
L2_GameServer/java/com/l2jserver/gameserver/model/L2Clan.java


+ 50 - 54
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AllyDismiss.java

@@ -25,34 +25,34 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
 public final class AllyDismiss extends L2GameClientPacket
 {
-    private static final String _C__85_ALLYDISMISS = "[C] 85 AllyDismiss";
-
-    private String _clanName;
-
-    @Override
+	private static final String _C__85_ALLYDISMISS = "[C] 85 AllyDismiss";
+	
+	private String _clanName;
+	
+	@Override
 	protected void readImpl()
-    {
-    	_clanName = readS();
-    }
-
-    @Override
+	{
+		_clanName = readS();
+	}
+	
+	@Override
 	protected void runImpl()
-    {
-        if (_clanName == null)
-        {
-            return;
-        }
-        L2PcInstance player = getClient().getActiveChar();
-        if (player == null)
-        {
-            return;
-        }
+	{
+		if (_clanName == null)
+		{
+			return;
+		}
+		L2PcInstance player = getClient().getActiveChar();
+		if (player == null)
+		{
+			return;
+		}
 		if (player.getClan() == null)
-        {
+		{
 			player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_A_CLAN_MEMBER));
-            return;
-        }
-        L2Clan leaderClan = player.getClan();
+			return;
+		}
+		L2Clan leaderClan = player.getClan();
 		if (leaderClan.getAllyId() == 0)
 		{
 			player.sendPacket(new SystemMessage(SystemMessageId.NO_CURRENT_ALLIANCES));
@@ -64,44 +64,40 @@ public final class AllyDismiss extends L2GameClientPacket
 			return;
 		}
 		L2Clan clan = ClanTable.getInstance().getClanByName(_clanName);
-        if (clan == null)
-        {
+		if (clan == null)
+		{
 			player.sendPacket(new SystemMessage(SystemMessageId.CLAN_DOESNT_EXISTS));
 			return;
-        }
-        if (clan.getClanId() == leaderClan.getClanId())
-        {
+		}
+		if (clan.getClanId() == leaderClan.getClanId())
+		{
 			player.sendPacket(new SystemMessage(SystemMessageId.ALLIANCE_LEADER_CANT_WITHDRAW));
 			return;
-        }
-        if (clan.getAllyId() != leaderClan.getAllyId())
-        {
+		}
+		if (clan.getAllyId() != leaderClan.getAllyId())
+		{
 			player.sendPacket(new SystemMessage(SystemMessageId.DIFFERENT_ALLIANCE));
 			return;
-        }
-
+		}
+		
 		long currentTime = System.currentTimeMillis();
-        leaderClan.setAllyPenaltyExpiryTime(
-        		currentTime + Config.ALT_ACCEPT_CLAN_DAYS_WHEN_DISMISSED * 86400000L,
-        		L2Clan.PENALTY_TYPE_DISMISS_CLAN); //24*60*60*1000 = 86400000
+		leaderClan.setAllyPenaltyExpiryTime(currentTime + Config.ALT_ACCEPT_CLAN_DAYS_WHEN_DISMISSED * 86400000L, L2Clan.PENALTY_TYPE_DISMISS_CLAN); //24*60*60*1000 = 86400000
 		leaderClan.updateClanInDB();
-
-        clan.setAllyId(0);
-        clan.setAllyName(null);
-        clan.setAllyCrestId(0);
-        clan.setAllyPenaltyExpiryTime(
-        		currentTime + Config.ALT_ALLY_JOIN_DAYS_WHEN_DISMISSED * 86400000L,
-        		L2Clan.PENALTY_TYPE_CLAN_DISMISSED); //24*60*60*1000 = 86400000
-        clan.updateClanInDB();
+		
+		clan.setAllyId(0);
+		clan.setAllyName(null);
+		clan.changeAllyCrest(0, true);
+		clan.setAllyPenaltyExpiryTime(currentTime + Config.ALT_ALLY_JOIN_DAYS_WHEN_DISMISSED * 86400000L, L2Clan.PENALTY_TYPE_CLAN_DISMISSED); //24*60*60*1000 = 86400000
+		clan.updateClanInDB();
 		// notify CB server about the change
 		CommunityServerThread.getInstance().sendPacket(new WorldInfo(null, clan, WorldInfo.TYPE_UPDATE_CLAN_DATA));
-
-        player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_EXPELED_A_CLAN));
-    }
-
-    @Override
+		
+		player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_EXPELED_A_CLAN));
+	}
+	
+	@Override
 	public String getType()
-    {
-        return _C__85_ALLYDISMISS;
-    }
-}
+	{
+		return _C__85_ALLYDISMISS;
+	}
+}

+ 34 - 35
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/AllyLeave.java

@@ -24,33 +24,34 @@ import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
 
 public final class AllyLeave extends L2GameClientPacket
 {
-    private static final String _C__84_ALLYLEAVE = "[C] 84 AllyLeave";
-    //private static Logger _log = Logger.getLogger(AllyLeave.class.getName());
-
-    @Override
+	private static final String _C__84_ALLYLEAVE = "[C] 84 AllyLeave";
+	
+	//private static Logger _log = Logger.getLogger(AllyLeave.class.getName());
+	
+	@Override
 	protected void readImpl()
-    {
-    }
-
-    @Override
+	{
+	}
+	
+	@Override
 	protected void runImpl()
-    {
-        L2PcInstance player = getClient().getActiveChar();
-        if (player == null)
-        {
-            return;
-        }
+	{
+		L2PcInstance player = getClient().getActiveChar();
+		if (player == null)
+		{
+			return;
+		}
 		if (player.getClan() == null)
-        {
+		{
 			player.sendPacket(new SystemMessage(SystemMessageId.YOU_ARE_NOT_A_CLAN_MEMBER));
-            return;
-        }
+			return;
+		}
 		if (!player.isClanLeader())
 		{
 			player.sendPacket(new SystemMessage(SystemMessageId.ONLY_CLAN_LEADER_WITHDRAW_ALLY));
 			return;
 		}
-        L2Clan clan = player.getClan();
+		L2Clan clan = player.getClan();
 		if (clan.getAllyId() == 0)
 		{
 			player.sendPacket(new SystemMessage(SystemMessageId.NO_CURRENT_ALLIANCES));
@@ -61,24 +62,22 @@ public final class AllyLeave extends L2GameClientPacket
 			player.sendPacket(new SystemMessage(SystemMessageId.ALLIANCE_LEADER_CANT_WITHDRAW));
 			return;
 		}
-
+		
 		long currentTime = System.currentTimeMillis();
-        clan.setAllyId(0);
-        clan.setAllyName(null);
-        clan.setAllyCrestId(0);
-        clan.setAllyPenaltyExpiryTime(
-        		currentTime + Config.ALT_ALLY_JOIN_DAYS_WHEN_LEAVED * 86400000L,
-        		L2Clan.PENALTY_TYPE_CLAN_LEAVED); //24*60*60*1000 = 86400000
-        clan.updateClanInDB();
+		clan.setAllyId(0);
+		clan.setAllyName(null);
+		clan.changeAllyCrest(0, true);
+		clan.setAllyPenaltyExpiryTime(currentTime + Config.ALT_ALLY_JOIN_DAYS_WHEN_LEAVED * 86400000L, L2Clan.PENALTY_TYPE_CLAN_LEAVED); //24*60*60*1000 = 86400000
+		clan.updateClanInDB();
 		// notify CB server about the change
 		CommunityServerThread.getInstance().sendPacket(new WorldInfo(null, clan, WorldInfo.TYPE_UPDATE_CLAN_DATA));
-
-        player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_WITHDRAWN_FROM_ALLIANCE));
-    }
-
-    @Override
+		
+		player.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_WITHDRAWN_FROM_ALLIANCE));
+	}
+	
+	@Override
 	public String getType()
-    {
-        return _C__84_ALLYLEAVE;
-    }
-}
+	{
+		return _C__84_ALLYLEAVE;
+	}
+}

+ 24 - 24
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestAnswerJoinAlly.java

@@ -36,30 +36,30 @@ public final class RequestAnswerJoinAlly extends L2GameClientPacket
 {
 	private static final String _C__83_REQUESTANSWERJOINALLY = "[C] 83 RequestAnswerJoinAlly";
 	//private static Logger _log = Logger.getLogger(RequestAnswerJoinAlly.class.getName());
-
+	
 	private int _response;
-
+	
 	@Override
 	protected void readImpl()
 	{
 		_response = readD();
 	}
-
+	
 	@Override
 	protected void runImpl()
 	{
 		L2PcInstance activeChar = getClient().getActiveChar();
 		if (activeChar == null)
 		{
-		    return;
+			return;
 		}
-
+		
 		L2PcInstance requestor = activeChar.getRequest().getPartner();
-        if (requestor == null)
-        {
-        	return;
-        }
-
+		if (requestor == null)
+		{
+			return;
+		}
+		
 		if (_response == 0)
 		{
 			activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_DID_NOT_RESPOND_TO_ALLY_INVITATION));
@@ -67,24 +67,24 @@ public final class RequestAnswerJoinAlly extends L2GameClientPacket
 		}
 		else
 		{
-	        if (!(requestor.getRequest().getRequestPacket() instanceof RequestJoinAlly))
-	        {
-	        	return; // hax
-	        }
-
-	        L2Clan clan = requestor.getClan();
+			if (!(requestor.getRequest().getRequestPacket() instanceof RequestJoinAlly))
+			{
+				return; // hax
+			}
+			
+			L2Clan clan = requestor.getClan();
 			// we must double check this cause of hack
 			if (clan.checkAllyJoinCondition(requestor, activeChar))
-	        {
-		        //TODO: Need correct message id
+			{
+				//TODO: Need correct message id
 				requestor.sendPacket(new SystemMessage(SystemMessageId.YOU_HAVE_SUCCEEDED_INVITING_FRIEND));
-
+				
 				activeChar.sendPacket(new SystemMessage(SystemMessageId.YOU_ACCEPTED_ALLIANCE));
-
+				
 				activeChar.getClan().setAllyId(clan.getAllyId());
 				activeChar.getClan().setAllyName(clan.getAllyName());
 				activeChar.getClan().setAllyPenaltyExpiryTime(0, 0);
-				activeChar.getClan().setAllyCrestId(clan.getAllyCrestId());
+				activeChar.getClan().changeAllyCrest(clan.getAllyCrestId(), true);
 				activeChar.getClan().updateClanInDB();
 				for (L2Clan c : ClanTable.getInstance().getClans())
 				{
@@ -94,12 +94,12 @@ public final class RequestAnswerJoinAlly extends L2GameClientPacket
 						CommunityServerThread.getInstance().sendPacket(new WorldInfo(null, c, WorldInfo.TYPE_UPDATE_CLAN_DATA));
 					}
 				}
-	        }
+			}
 		}
-
+		
 		activeChar.getRequest().onRequestResponse();
 	}
-
+	
 	/* (non-Javadoc)
 	 * @see com.l2jserver.gameserver.clientpackets.ClientBasePacket#getType()
 	 */

+ 5 - 46
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestExSetPledgeCrestLarge.java

@@ -14,13 +14,9 @@
  */
 package com.l2jserver.gameserver.network.clientpackets;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.cache.CrestCache;
 import com.l2jserver.gameserver.idfactory.IdFactory;
 import com.l2jserver.gameserver.model.L2Clan;
@@ -83,11 +79,9 @@ public final class RequestExSetPledgeCrestLarge extends L2GameClientPacket
 		
 		boolean updated = false;
 		int crestLargeId = -1;
-		if (_length == 0 || _data == null)
+		if ((_length == 0 || _data == null) && clan.getCrestLargeId() != 0)
 		{
-			CrestCache.getInstance().removePledgeCrestLarge(clan.getCrestLargeId());
-			clan.setCrestLargeId(crestLargeId = 0);
-			clan.setHasCrestLarge(false);
+			crestLargeId = 0;
 			
 			activeChar.sendMessage("The insignia has been removed.");
 			
@@ -101,22 +95,14 @@ public final class RequestExSetPledgeCrestLarge extends L2GameClientPacket
 				return;
 			}
 			
-			CrestCache crestCache = CrestCache.getInstance();
+			crestLargeId = IdFactory.getInstance().getNextId();
 			
-			int newId = IdFactory.getInstance().getNextId();
-			
-			if (clan.hasCrestLarge())
-				crestCache.removePledgeCrestLarge(clan.getCrestLargeId());
-			
-			if (!crestCache.savePledgeCrestLarge(newId, _data))
+			if (!CrestCache.getInstance().savePledgeCrestLarge(crestLargeId, _data))
 			{
 				_log.log(Level.INFO, "Error saving large crest for clan " + clan.getName() + " [" + clan.getClanId() + "]");
 				return;
 			}
 			
-			clan.setCrestLargeId(crestLargeId = newId);
-			clan.setHasCrestLarge(true);
-			
 			activeChar.sendPacket(new SystemMessage(SystemMessageId.CLAN_EMBLEM_WAS_SUCCESSFULLY_REGISTERED));
 			
 			updated = true;
@@ -124,34 +110,7 @@ public final class RequestExSetPledgeCrestLarge extends L2GameClientPacket
 		
 		if (updated && crestLargeId != -1)
 		{
-			Connection con = null;
-			
-			try
-			{
-				con = L2DatabaseFactory.getInstance().getConnection();
-				PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET crest_large_id = ? WHERE clan_id = ?");
-				statement.setInt(1, crestLargeId);
-				statement.setInt(2, clan.getClanId());
-				statement.executeUpdate();
-				statement.close();
-			}
-			catch (SQLException e)
-			{
-				_log.warning("Could not update large crest for clan " + clan.getName() + " [" + clan.getClanId() + "] : " + e.getMessage());
-			}
-			finally
-			{
-				try
-				{
-					con.close();
-				}
-				catch (Exception e)
-				{
-				}
-			}
-			
-			for (L2PcInstance member : clan.getOnlineMembers(0))
-				member.broadcastUserInfo();
+			clan.changeLargeCrest(crestLargeId);
 		}
 	}
 	

+ 54 - 0
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestSeedPhase.java

@@ -0,0 +1,54 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package com.l2jserver.gameserver.network.clientpackets;
+
+import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jserver.gameserver.network.serverpackets.ExShowSeedMapInfo;
+
+/**
+ * RequestSeedPhase client packet
+ *
+ */
+public class RequestSeedPhase extends L2GameClientPacket
+{
+	private static final String _C__REQUESTSEEDPHASE = "[C] RequestSeedPhase";
+	
+	@Override
+	protected void readImpl()
+	{
+		// trigger
+	}
+	
+	/* (non-Javadoc)
+	 * @see com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket#runImpl()
+	 */
+	@Override
+	protected void runImpl()
+	{
+		L2PcInstance activeChar = getClient().getActiveChar();
+		if (activeChar == null)
+			return;
+		activeChar.sendPacket(new ExShowSeedMapInfo());
+	}
+	
+	/* (non-Javadoc)
+	 * @see com.l2jserver.gameserver.clientpackets.ClientBasePacket#getType()
+	 */
+	@Override
+	public String getType()
+	{
+		return _C__REQUESTSEEDPHASE;
+	}
+}

+ 2 - 46
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestSetAllyCrest.java

@@ -14,13 +14,9 @@
  */
 package com.l2jserver.gameserver.network.clientpackets;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.cache.CrestCache;
 import com.l2jserver.gameserver.datatables.ClanTable;
 import com.l2jserver.gameserver.idfactory.IdFactory;
@@ -77,7 +73,6 @@ public final class RequestSetAllyCrest extends L2GameClientPacket
 				return;
 			}
 			
-			CrestCache crestCache = CrestCache.getInstance();
 			boolean remove = false;
 			if (_length == 0 || _data.length == 0)
 				remove = true;
@@ -86,52 +81,13 @@ public final class RequestSetAllyCrest extends L2GameClientPacket
 			if (!remove)
 				newId = IdFactory.getInstance().getNextId();
 			
-			if (leaderclan.getAllyCrestId() != 0)
-			{
-				crestCache.removeAllyCrest(leaderclan.getAllyCrestId());
-			}
-			
-			if (!remove && !crestCache.saveAllyCrest(newId, _data))
+			if (!remove && !CrestCache.getInstance().saveAllyCrest(newId, _data))
 			{
 				_log.log(Level.INFO, "Error saving crest for ally " + leaderclan.getAllyName() + " [" + leaderclan.getAllyId() + "]");
 				return;
 			}
 			
-			Connection con = null;
-			
-			try
-			{
-				con = L2DatabaseFactory.getInstance().getConnection();
-				PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET ally_crest_id = ? WHERE ally_id = ?");
-				statement.setInt(1, newId);
-				statement.setInt(2, leaderclan.getAllyId());
-				statement.executeUpdate();
-				statement.close();
-			}
-			catch (SQLException e)
-			{
-				_log.warning("Could not update ally crest for ally " + leaderclan.getAllyName() + " [" + leaderclan.getAllyId() + "] : " + e.getMessage());
-			}
-			finally
-			{
-				try
-				{
-					con.close();
-				}
-				catch (Exception e)
-				{
-				}
-			}
-			
-			for (L2Clan clan : ClanTable.getInstance().getClans())
-			{
-				if (clan.getAllyId() == activeChar.getAllyId())
-				{
-					clan.setAllyCrestId(newId);
-					for (L2PcInstance member : clan.getOnlineMembers(0))
-						member.broadcastUserInfo();
-				}
-			}
+			leaderclan.changeAllyCrest(newId, false);
 		}
 	}
 	

+ 5 - 46
L2_GameServer/java/com/l2jserver/gameserver/network/clientpackets/RequestSetPledgeCrest.java

@@ -14,13 +14,9 @@
  */
 package com.l2jserver.gameserver.network.clientpackets;
 
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
-import com.l2jserver.L2DatabaseFactory;
 import com.l2jserver.gameserver.cache.CrestCache;
 import com.l2jserver.gameserver.idfactory.IdFactory;
 import com.l2jserver.gameserver.model.L2Clan;
@@ -80,11 +76,9 @@ public final class RequestSetPledgeCrest extends L2GameClientPacket
 		}
 		boolean updated = false;
 		int crestId = -1;
-		if (_length == 0 || _data.length == 0)
+		if ((_length == 0 || _data.length == 0) && clan.getCrestId() != 0)
 		{
-			CrestCache.getInstance().removePledgeCrest(clan.getCrestId());
-			clan.setCrestId(crestId = 0);
-			clan.setHasCrest(false);
+			crestId = 0;
 			
 			activeChar.sendPacket(new SystemMessage(SystemMessageId.CLAN_CREST_HAS_BEEN_DELETED));
 			
@@ -98,54 +92,19 @@ public final class RequestSetPledgeCrest extends L2GameClientPacket
 				return;
 			}
 			
-			CrestCache crestCache = CrestCache.getInstance();
+			crestId = IdFactory.getInstance().getNextId();
 			
-			int newId = IdFactory.getInstance().getNextId();
-			
-			if (clan.hasCrest())
-				crestCache.removePledgeCrest(clan.getCrestId());
-			
-			if (!crestCache.savePledgeCrest(newId, _data))
+			if (!CrestCache.getInstance().savePledgeCrest(crestId, _data))
 			{
 				_log.log(Level.INFO, "Error saving crest for clan " + clan.getName() + " [" + clan.getClanId() + "]");
 				return;
 			}
 			
-			clan.setCrestId(crestId = newId);
-			clan.setHasCrest(true);
-			
 			updated = true;
 		}
 		if (updated && crestId != -1)
 		{
-			Connection con = null;
-			
-			try
-			{
-				con = L2DatabaseFactory.getInstance().getConnection();
-				PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET crest_id = ? WHERE clan_id = ?");
-				statement.setInt(1, crestId);
-				statement.setInt(2, clan.getClanId());
-				statement.executeUpdate();
-				statement.close();
-			}
-			catch (SQLException e)
-			{
-				_log.warning("Could not update crest for clan " + clan.getName() + " [" + clan.getClanId() + "] : " + e.getMessage());
-			}
-			finally
-			{
-				try
-				{
-					con.close();
-				}
-				catch (Exception e)
-				{
-				}
-			}
-			
-			for (L2PcInstance member : clan.getOnlineMembers(0))
-				member.broadcastUserInfo();
+			clan.changeClanCrest(crestId);
 		}
 	}
 	

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff