From e33c09590d89d762e54b768aef5de8a1aab617cf Mon Sep 17 00:00:00 2001 From: MobiusDevelopment Date: Fri, 17 Feb 2023 23:48:43 +0200 Subject: [PATCH] Fixed declaring and removing clan wars. --- .../pledgeV3/RequestExPledgeEnemyDelete.java | 46 +++++++---- .../RequestExPledgeEnemyRegister.java | 80 ++++++++++++------- .../pledgeV3/RequestExPledgeEnemyDelete.java | 46 +++++++---- .../RequestExPledgeEnemyRegister.java | 80 ++++++++++++------- .../pledgeV3/RequestExPledgeEnemyDelete.java | 46 +++++++---- .../RequestExPledgeEnemyRegister.java | 80 ++++++++++++------- .../pledgeV3/RequestExPledgeEnemyDelete.java | 46 +++++++---- .../RequestExPledgeEnemyRegister.java | 80 ++++++++++++------- 8 files changed, 332 insertions(+), 172 deletions(-) diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java index 4f91a80b38..2282cb5ea6 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java @@ -26,16 +26,20 @@ import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.ClientPacket; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; +import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +/** + * @author Mobius + */ public class RequestExPledgeEnemyDelete implements ClientPacket { - private String _pledgeName; + private int _clanId; @Override public void read(ReadablePacket packet) { - _pledgeName = packet.readString(); + _clanId = packet.readInt(); } @Override @@ -53,22 +57,21 @@ public class RequestExPledgeEnemyDelete implements ClientPacket return; } - final Clan clan = ClanTable.getInstance().getClanByName(_pledgeName); - if (clan == null) + final Clan enemyClan = ClanTable.getInstance().getClan(_clanId); + if (enemyClan == null) { - player.sendMessage("No such clan."); + player.sendPacket(SystemMessageId.THERE_IS_NO_SUCH_CLAN); player.sendPacket(ActionFailed.STATIC_PACKET); return; } - if (!playerClan.isAtWarWith(clan.getId())) + if (!playerClan.isAtWarWith(enemyClan.getId())) { - player.sendMessage("You aren't at war with this clan."); + player.sendPacket(SystemMessageId.ENTER_THE_NAME_OF_THE_CLAN_YOU_WISH_TO_END_THE_WAR_WITH); player.sendPacket(ActionFailed.STATIC_PACKET); return; } - // Check if player who does the request has the correct rights to do it if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR)) { player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); @@ -90,15 +93,28 @@ public class RequestExPledgeEnemyDelete implements ClientPacket // Reduce reputation. playerClan.takeReputationScore(500); - ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); - for (Player member : playerClan.getOnlineMembers(0)) - { - member.broadcastUserInfo(); - } + ClanTable.getInstance().deleteClanWars(playerClan.getId(), enemyClan.getId()); - for (Player member : clan.getOnlineMembers(0)) + broadcastClanInfo(playerClan, enemyClan); + } + + private void broadcastClanInfo(Clan playerClan, Clan enemyClan) + { + for (ClanMember member : playerClan.getMembers()) { - member.broadcastUserInfo(); + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(playerClan)); + member.getPlayer().broadcastUserInfo(); + } + } + for (ClanMember member : enemyClan.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(enemyClan)); + member.getPlayer().broadcastUserInfo(); + } } } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java index b376637cc2..dece3e4e85 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets.pledgeV3; import org.l2jmobius.commons.network.ReadablePacket; import org.l2jmobius.gameserver.data.sql.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; -import org.l2jmobius.gameserver.enums.UserInfoType; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.ClanMember; @@ -30,7 +29,11 @@ import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.ClientPacket; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; +import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList; +/** + * @author Mobius + */ public class RequestExPledgeEnemyRegister implements ClientPacket { private String _pledgeName; @@ -50,8 +53,8 @@ public class RequestExPledgeEnemyRegister implements ClientPacket return; } - final Clan clanDeclaringWar = player.getClan(); - if (clanDeclaringWar == null) + final Clan playerClan = player.getClan(); + if (playerClan == null) { return; } @@ -62,73 +65,94 @@ public class RequestExPledgeEnemyRegister implements ClientPacket client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaringWar.getWarCount() >= 30) + + if (playerClan.getWarCount() >= 30) { client.sendPacket(SystemMessageId.A_DECLARATION_OF_WAR_AGAINST_MORE_THAN_30_CLANS_CAN_T_BE_MADE_AT_THE_SAME_TIME); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final Clan clanDeclaredWar = ClanTable.getInstance().getClanByName(_pledgeName); - if (clanDeclaredWar == null) + final Clan enemyClan = ClanTable.getInstance().getClanByName(_pledgeName); + if (enemyClan == null) { client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaredWar == clanDeclaringWar) + + if (enemyClan == playerClan) { client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if ((clanDeclaringWar.getAllyId() == clanDeclaredWar.getAllyId()) && (clanDeclaringWar.getAllyId() != 0)) + + if ((playerClan.getAllyId() == enemyClan.getAllyId()) && (playerClan.getAllyId() != 0)) { client.sendPacket(new SystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaredWar.getDissolvingExpiryTime() > System.currentTimeMillis()) + + if (enemyClan.getDissolvingExpiryTime() > System.currentTimeMillis()) { client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CAN_NOT_BE_DECLARED_AGAINST_A_CLAN_THAT_IS_BEING_DISSOLVED)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final ClanWar clanWar = clanDeclaringWar.getWarWith(clanDeclaredWar.getId()); + final ClanWar clanWar = playerClan.getWarWith(enemyClan.getId()); if (clanWar != null) { - if (clanWar.getClanWarState(clanDeclaringWar) == ClanWarState.WIN) + if (clanWar.getClanWarState(playerClan) == ClanWarState.WIN) { final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_CAN_T_DECLARE_A_WAR_BECAUSE_THE_21_DAY_PERIOD_HASN_T_PASSED_AFTER_A_DEFEAT_DECLARATION_WITH_THE_S1_CLAN); - sm.addString(clanDeclaredWar.getName()); + sm.addString(enemyClan.getName()); client.sendPacket(sm); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN); - sm.addString(clanDeclaredWar.getName()); - client.sendPacket(sm); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; - } - - final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); - ClanTable.getInstance().storeClanWars(newClanWar); - - for (ClanMember member : clanDeclaringWar.getMembers()) - { - if ((member != null) && member.isOnline()) + if ((clanWar.getClanWarState(playerClan) != ClanWarState.BLOOD_DECLARATION) || (clanWar.getAttackerClanId() == playerClan.getId())) { - member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); + final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN); + sm.addString(enemyClan.getName()); + client.sendPacket(sm); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } + + if (clanWar.getClanWarState(playerClan) == ClanWarState.BLOOD_DECLARATION) + { + clanWar.mutualClanWarAccepted(enemyClan, playerClan); + broadcastClanInfo(playerClan, enemyClan); + return; } } - for (ClanMember member : clanDeclaredWar.getMembers()) + + final ClanWar newClanWar = new ClanWar(playerClan, enemyClan); + ClanTable.getInstance().storeClanWars(newClanWar); + + broadcastClanInfo(playerClan, enemyClan); + } + + private void broadcastClanInfo(Clan playerClan, Clan enemyClan) + { + for (ClanMember member : playerClan.getMembers()) { if ((member != null) && member.isOnline()) { - member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(playerClan)); + member.getPlayer().broadcastUserInfo(); + } + } + for (ClanMember member : enemyClan.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(enemyClan)); + member.getPlayer().broadcastUserInfo(); } } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java index 4f91a80b38..2282cb5ea6 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java @@ -26,16 +26,20 @@ import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.ClientPacket; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; +import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +/** + * @author Mobius + */ public class RequestExPledgeEnemyDelete implements ClientPacket { - private String _pledgeName; + private int _clanId; @Override public void read(ReadablePacket packet) { - _pledgeName = packet.readString(); + _clanId = packet.readInt(); } @Override @@ -53,22 +57,21 @@ public class RequestExPledgeEnemyDelete implements ClientPacket return; } - final Clan clan = ClanTable.getInstance().getClanByName(_pledgeName); - if (clan == null) + final Clan enemyClan = ClanTable.getInstance().getClan(_clanId); + if (enemyClan == null) { - player.sendMessage("No such clan."); + player.sendPacket(SystemMessageId.THERE_IS_NO_SUCH_CLAN); player.sendPacket(ActionFailed.STATIC_PACKET); return; } - if (!playerClan.isAtWarWith(clan.getId())) + if (!playerClan.isAtWarWith(enemyClan.getId())) { - player.sendMessage("You aren't at war with this clan."); + player.sendPacket(SystemMessageId.ENTER_THE_NAME_OF_THE_CLAN_YOU_WISH_TO_END_THE_WAR_WITH); player.sendPacket(ActionFailed.STATIC_PACKET); return; } - // Check if player who does the request has the correct rights to do it if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR)) { player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); @@ -90,15 +93,28 @@ public class RequestExPledgeEnemyDelete implements ClientPacket // Reduce reputation. playerClan.takeReputationScore(500); - ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); - for (Player member : playerClan.getOnlineMembers(0)) - { - member.broadcastUserInfo(); - } + ClanTable.getInstance().deleteClanWars(playerClan.getId(), enemyClan.getId()); - for (Player member : clan.getOnlineMembers(0)) + broadcastClanInfo(playerClan, enemyClan); + } + + private void broadcastClanInfo(Clan playerClan, Clan enemyClan) + { + for (ClanMember member : playerClan.getMembers()) { - member.broadcastUserInfo(); + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(playerClan)); + member.getPlayer().broadcastUserInfo(); + } + } + for (ClanMember member : enemyClan.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(enemyClan)); + member.getPlayer().broadcastUserInfo(); + } } } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java index b376637cc2..dece3e4e85 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets.pledgeV3; import org.l2jmobius.commons.network.ReadablePacket; import org.l2jmobius.gameserver.data.sql.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; -import org.l2jmobius.gameserver.enums.UserInfoType; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.ClanMember; @@ -30,7 +29,11 @@ import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.ClientPacket; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; +import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList; +/** + * @author Mobius + */ public class RequestExPledgeEnemyRegister implements ClientPacket { private String _pledgeName; @@ -50,8 +53,8 @@ public class RequestExPledgeEnemyRegister implements ClientPacket return; } - final Clan clanDeclaringWar = player.getClan(); - if (clanDeclaringWar == null) + final Clan playerClan = player.getClan(); + if (playerClan == null) { return; } @@ -62,73 +65,94 @@ public class RequestExPledgeEnemyRegister implements ClientPacket client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaringWar.getWarCount() >= 30) + + if (playerClan.getWarCount() >= 30) { client.sendPacket(SystemMessageId.A_DECLARATION_OF_WAR_AGAINST_MORE_THAN_30_CLANS_CAN_T_BE_MADE_AT_THE_SAME_TIME); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final Clan clanDeclaredWar = ClanTable.getInstance().getClanByName(_pledgeName); - if (clanDeclaredWar == null) + final Clan enemyClan = ClanTable.getInstance().getClanByName(_pledgeName); + if (enemyClan == null) { client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaredWar == clanDeclaringWar) + + if (enemyClan == playerClan) { client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if ((clanDeclaringWar.getAllyId() == clanDeclaredWar.getAllyId()) && (clanDeclaringWar.getAllyId() != 0)) + + if ((playerClan.getAllyId() == enemyClan.getAllyId()) && (playerClan.getAllyId() != 0)) { client.sendPacket(new SystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaredWar.getDissolvingExpiryTime() > System.currentTimeMillis()) + + if (enemyClan.getDissolvingExpiryTime() > System.currentTimeMillis()) { client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CAN_NOT_BE_DECLARED_AGAINST_A_CLAN_THAT_IS_BEING_DISSOLVED)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final ClanWar clanWar = clanDeclaringWar.getWarWith(clanDeclaredWar.getId()); + final ClanWar clanWar = playerClan.getWarWith(enemyClan.getId()); if (clanWar != null) { - if (clanWar.getClanWarState(clanDeclaringWar) == ClanWarState.WIN) + if (clanWar.getClanWarState(playerClan) == ClanWarState.WIN) { final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_CAN_T_DECLARE_A_WAR_BECAUSE_THE_21_DAY_PERIOD_HASN_T_PASSED_AFTER_A_DEFEAT_DECLARATION_WITH_THE_S1_CLAN); - sm.addString(clanDeclaredWar.getName()); + sm.addString(enemyClan.getName()); client.sendPacket(sm); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN); - sm.addString(clanDeclaredWar.getName()); - client.sendPacket(sm); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; - } - - final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); - ClanTable.getInstance().storeClanWars(newClanWar); - - for (ClanMember member : clanDeclaringWar.getMembers()) - { - if ((member != null) && member.isOnline()) + if ((clanWar.getClanWarState(playerClan) != ClanWarState.BLOOD_DECLARATION) || (clanWar.getAttackerClanId() == playerClan.getId())) { - member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); + final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN); + sm.addString(enemyClan.getName()); + client.sendPacket(sm); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } + + if (clanWar.getClanWarState(playerClan) == ClanWarState.BLOOD_DECLARATION) + { + clanWar.mutualClanWarAccepted(enemyClan, playerClan); + broadcastClanInfo(playerClan, enemyClan); + return; } } - for (ClanMember member : clanDeclaredWar.getMembers()) + + final ClanWar newClanWar = new ClanWar(playerClan, enemyClan); + ClanTable.getInstance().storeClanWars(newClanWar); + + broadcastClanInfo(playerClan, enemyClan); + } + + private void broadcastClanInfo(Clan playerClan, Clan enemyClan) + { + for (ClanMember member : playerClan.getMembers()) { if ((member != null) && member.isOnline()) { - member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(playerClan)); + member.getPlayer().broadcastUserInfo(); + } + } + for (ClanMember member : enemyClan.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(enemyClan)); + member.getPlayer().broadcastUserInfo(); } } } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java index 4f91a80b38..2282cb5ea6 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java @@ -26,16 +26,20 @@ import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.ClientPacket; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; +import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +/** + * @author Mobius + */ public class RequestExPledgeEnemyDelete implements ClientPacket { - private String _pledgeName; + private int _clanId; @Override public void read(ReadablePacket packet) { - _pledgeName = packet.readString(); + _clanId = packet.readInt(); } @Override @@ -53,22 +57,21 @@ public class RequestExPledgeEnemyDelete implements ClientPacket return; } - final Clan clan = ClanTable.getInstance().getClanByName(_pledgeName); - if (clan == null) + final Clan enemyClan = ClanTable.getInstance().getClan(_clanId); + if (enemyClan == null) { - player.sendMessage("No such clan."); + player.sendPacket(SystemMessageId.THERE_IS_NO_SUCH_CLAN); player.sendPacket(ActionFailed.STATIC_PACKET); return; } - if (!playerClan.isAtWarWith(clan.getId())) + if (!playerClan.isAtWarWith(enemyClan.getId())) { - player.sendMessage("You aren't at war with this clan."); + player.sendPacket(SystemMessageId.ENTER_THE_NAME_OF_THE_CLAN_YOU_WISH_TO_END_THE_WAR_WITH); player.sendPacket(ActionFailed.STATIC_PACKET); return; } - // Check if player who does the request has the correct rights to do it if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR)) { player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); @@ -90,15 +93,28 @@ public class RequestExPledgeEnemyDelete implements ClientPacket // Reduce reputation. playerClan.takeReputationScore(500); - ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); - for (Player member : playerClan.getOnlineMembers(0)) - { - member.broadcastUserInfo(); - } + ClanTable.getInstance().deleteClanWars(playerClan.getId(), enemyClan.getId()); - for (Player member : clan.getOnlineMembers(0)) + broadcastClanInfo(playerClan, enemyClan); + } + + private void broadcastClanInfo(Clan playerClan, Clan enemyClan) + { + for (ClanMember member : playerClan.getMembers()) { - member.broadcastUserInfo(); + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(playerClan)); + member.getPlayer().broadcastUserInfo(); + } + } + for (ClanMember member : enemyClan.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(enemyClan)); + member.getPlayer().broadcastUserInfo(); + } } } } diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java index b376637cc2..dece3e4e85 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets.pledgeV3; import org.l2jmobius.commons.network.ReadablePacket; import org.l2jmobius.gameserver.data.sql.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; -import org.l2jmobius.gameserver.enums.UserInfoType; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.ClanMember; @@ -30,7 +29,11 @@ import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.ClientPacket; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; +import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList; +/** + * @author Mobius + */ public class RequestExPledgeEnemyRegister implements ClientPacket { private String _pledgeName; @@ -50,8 +53,8 @@ public class RequestExPledgeEnemyRegister implements ClientPacket return; } - final Clan clanDeclaringWar = player.getClan(); - if (clanDeclaringWar == null) + final Clan playerClan = player.getClan(); + if (playerClan == null) { return; } @@ -62,73 +65,94 @@ public class RequestExPledgeEnemyRegister implements ClientPacket client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaringWar.getWarCount() >= 30) + + if (playerClan.getWarCount() >= 30) { client.sendPacket(SystemMessageId.A_DECLARATION_OF_WAR_AGAINST_MORE_THAN_30_CLANS_CAN_T_BE_MADE_AT_THE_SAME_TIME); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final Clan clanDeclaredWar = ClanTable.getInstance().getClanByName(_pledgeName); - if (clanDeclaredWar == null) + final Clan enemyClan = ClanTable.getInstance().getClanByName(_pledgeName); + if (enemyClan == null) { client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaredWar == clanDeclaringWar) + + if (enemyClan == playerClan) { client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if ((clanDeclaringWar.getAllyId() == clanDeclaredWar.getAllyId()) && (clanDeclaringWar.getAllyId() != 0)) + + if ((playerClan.getAllyId() == enemyClan.getAllyId()) && (playerClan.getAllyId() != 0)) { client.sendPacket(new SystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaredWar.getDissolvingExpiryTime() > System.currentTimeMillis()) + + if (enemyClan.getDissolvingExpiryTime() > System.currentTimeMillis()) { client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CAN_NOT_BE_DECLARED_AGAINST_A_CLAN_THAT_IS_BEING_DISSOLVED)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final ClanWar clanWar = clanDeclaringWar.getWarWith(clanDeclaredWar.getId()); + final ClanWar clanWar = playerClan.getWarWith(enemyClan.getId()); if (clanWar != null) { - if (clanWar.getClanWarState(clanDeclaringWar) == ClanWarState.WIN) + if (clanWar.getClanWarState(playerClan) == ClanWarState.WIN) { final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_CAN_T_DECLARE_A_WAR_BECAUSE_THE_21_DAY_PERIOD_HASN_T_PASSED_AFTER_A_DEFEAT_DECLARATION_WITH_THE_S1_CLAN); - sm.addString(clanDeclaredWar.getName()); + sm.addString(enemyClan.getName()); client.sendPacket(sm); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN); - sm.addString(clanDeclaredWar.getName()); - client.sendPacket(sm); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; - } - - final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); - ClanTable.getInstance().storeClanWars(newClanWar); - - for (ClanMember member : clanDeclaringWar.getMembers()) - { - if ((member != null) && member.isOnline()) + if ((clanWar.getClanWarState(playerClan) != ClanWarState.BLOOD_DECLARATION) || (clanWar.getAttackerClanId() == playerClan.getId())) { - member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); + final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN); + sm.addString(enemyClan.getName()); + client.sendPacket(sm); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } + + if (clanWar.getClanWarState(playerClan) == ClanWarState.BLOOD_DECLARATION) + { + clanWar.mutualClanWarAccepted(enemyClan, playerClan); + broadcastClanInfo(playerClan, enemyClan); + return; } } - for (ClanMember member : clanDeclaredWar.getMembers()) + + final ClanWar newClanWar = new ClanWar(playerClan, enemyClan); + ClanTable.getInstance().storeClanWars(newClanWar); + + broadcastClanInfo(playerClan, enemyClan); + } + + private void broadcastClanInfo(Clan playerClan, Clan enemyClan) + { + for (ClanMember member : playerClan.getMembers()) { if ((member != null) && member.isOnline()) { - member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(playerClan)); + member.getPlayer().broadcastUserInfo(); + } + } + for (ClanMember member : enemyClan.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(enemyClan)); + member.getPlayer().broadcastUserInfo(); } } } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java index 4f91a80b38..2282cb5ea6 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyDelete.java @@ -26,16 +26,20 @@ import org.l2jmobius.gameserver.network.GameClient; import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.ClientPacket; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; +import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList; import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager; +/** + * @author Mobius + */ public class RequestExPledgeEnemyDelete implements ClientPacket { - private String _pledgeName; + private int _clanId; @Override public void read(ReadablePacket packet) { - _pledgeName = packet.readString(); + _clanId = packet.readInt(); } @Override @@ -53,22 +57,21 @@ public class RequestExPledgeEnemyDelete implements ClientPacket return; } - final Clan clan = ClanTable.getInstance().getClanByName(_pledgeName); - if (clan == null) + final Clan enemyClan = ClanTable.getInstance().getClan(_clanId); + if (enemyClan == null) { - player.sendMessage("No such clan."); + player.sendPacket(SystemMessageId.THERE_IS_NO_SUCH_CLAN); player.sendPacket(ActionFailed.STATIC_PACKET); return; } - if (!playerClan.isAtWarWith(clan.getId())) + if (!playerClan.isAtWarWith(enemyClan.getId())) { - player.sendMessage("You aren't at war with this clan."); + player.sendPacket(SystemMessageId.ENTER_THE_NAME_OF_THE_CLAN_YOU_WISH_TO_END_THE_WAR_WITH); player.sendPacket(ActionFailed.STATIC_PACKET); return; } - // Check if player who does the request has the correct rights to do it if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR)) { player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT); @@ -90,15 +93,28 @@ public class RequestExPledgeEnemyDelete implements ClientPacket // Reduce reputation. playerClan.takeReputationScore(500); - ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId()); - for (Player member : playerClan.getOnlineMembers(0)) - { - member.broadcastUserInfo(); - } + ClanTable.getInstance().deleteClanWars(playerClan.getId(), enemyClan.getId()); - for (Player member : clan.getOnlineMembers(0)) + broadcastClanInfo(playerClan, enemyClan); + } + + private void broadcastClanInfo(Clan playerClan, Clan enemyClan) + { + for (ClanMember member : playerClan.getMembers()) { - member.broadcastUserInfo(); + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(playerClan)); + member.getPlayer().broadcastUserInfo(); + } + } + for (ClanMember member : enemyClan.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(enemyClan)); + member.getPlayer().broadcastUserInfo(); + } } } } diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java index b376637cc2..dece3e4e85 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/network/clientpackets/pledgeV3/RequestExPledgeEnemyRegister.java @@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets.pledgeV3; import org.l2jmobius.commons.network.ReadablePacket; import org.l2jmobius.gameserver.data.sql.ClanTable; import org.l2jmobius.gameserver.enums.ClanWarState; -import org.l2jmobius.gameserver.enums.UserInfoType; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.ClanMember; @@ -30,7 +29,11 @@ import org.l2jmobius.gameserver.network.SystemMessageId; import org.l2jmobius.gameserver.network.clientpackets.ClientPacket; import org.l2jmobius.gameserver.network.serverpackets.ActionFailed; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; +import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList; +/** + * @author Mobius + */ public class RequestExPledgeEnemyRegister implements ClientPacket { private String _pledgeName; @@ -50,8 +53,8 @@ public class RequestExPledgeEnemyRegister implements ClientPacket return; } - final Clan clanDeclaringWar = player.getClan(); - if (clanDeclaringWar == null) + final Clan playerClan = player.getClan(); + if (playerClan == null) { return; } @@ -62,73 +65,94 @@ public class RequestExPledgeEnemyRegister implements ClientPacket client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaringWar.getWarCount() >= 30) + + if (playerClan.getWarCount() >= 30) { client.sendPacket(SystemMessageId.A_DECLARATION_OF_WAR_AGAINST_MORE_THAN_30_CLANS_CAN_T_BE_MADE_AT_THE_SAME_TIME); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final Clan clanDeclaredWar = ClanTable.getInstance().getClanByName(_pledgeName); - if (clanDeclaredWar == null) + final Clan enemyClan = ClanTable.getInstance().getClanByName(_pledgeName); + if (enemyClan == null) { client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaredWar == clanDeclaringWar) + + if (enemyClan == playerClan) { client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if ((clanDeclaringWar.getAllyId() == clanDeclaredWar.getAllyId()) && (clanDeclaringWar.getAllyId() != 0)) + + if ((playerClan.getAllyId() == enemyClan.getAllyId()) && (playerClan.getAllyId() != 0)) { client.sendPacket(new SystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - else if (clanDeclaredWar.getDissolvingExpiryTime() > System.currentTimeMillis()) + + if (enemyClan.getDissolvingExpiryTime() > System.currentTimeMillis()) { client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CAN_NOT_BE_DECLARED_AGAINST_A_CLAN_THAT_IS_BEING_DISSOLVED)); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final ClanWar clanWar = clanDeclaringWar.getWarWith(clanDeclaredWar.getId()); + final ClanWar clanWar = playerClan.getWarWith(enemyClan.getId()); if (clanWar != null) { - if (clanWar.getClanWarState(clanDeclaringWar) == ClanWarState.WIN) + if (clanWar.getClanWarState(playerClan) == ClanWarState.WIN) { final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_CAN_T_DECLARE_A_WAR_BECAUSE_THE_21_DAY_PERIOD_HASN_T_PASSED_AFTER_A_DEFEAT_DECLARATION_WITH_THE_S1_CLAN); - sm.addString(clanDeclaredWar.getName()); + sm.addString(enemyClan.getName()); client.sendPacket(sm); client.sendPacket(ActionFailed.STATIC_PACKET); return; } - final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN); - sm.addString(clanDeclaredWar.getName()); - client.sendPacket(sm); - client.sendPacket(ActionFailed.STATIC_PACKET); - return; - } - - final ClanWar newClanWar = new ClanWar(clanDeclaringWar, clanDeclaredWar); - ClanTable.getInstance().storeClanWars(newClanWar); - - for (ClanMember member : clanDeclaringWar.getMembers()) - { - if ((member != null) && member.isOnline()) + if ((clanWar.getClanWarState(playerClan) != ClanWarState.BLOOD_DECLARATION) || (clanWar.getAttackerClanId() == playerClan.getId())) { - member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); + final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_ALREADY_BEEN_AT_WAR_WITH_THE_S1_CLAN_5_DAYS_MUST_PASS_BEFORE_YOU_CAN_DECLARE_WAR_AGAIN); + sm.addString(enemyClan.getName()); + client.sendPacket(sm); + client.sendPacket(ActionFailed.STATIC_PACKET); + return; + } + + if (clanWar.getClanWarState(playerClan) == ClanWarState.BLOOD_DECLARATION) + { + clanWar.mutualClanWarAccepted(enemyClan, playerClan); + broadcastClanInfo(playerClan, enemyClan); + return; } } - for (ClanMember member : clanDeclaredWar.getMembers()) + + final ClanWar newClanWar = new ClanWar(playerClan, enemyClan); + ClanTable.getInstance().storeClanWars(newClanWar); + + broadcastClanInfo(playerClan, enemyClan); + } + + private void broadcastClanInfo(Clan playerClan, Clan enemyClan) + { + for (ClanMember member : playerClan.getMembers()) { if ((member != null) && member.isOnline()) { - member.getPlayer().broadcastUserInfo(UserInfoType.CLAN); + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(playerClan)); + member.getPlayer().broadcastUserInfo(); + } + } + for (ClanMember member : enemyClan.getMembers()) + { + if ((member != null) && member.isOnline()) + { + member.getPlayer().sendPacket(new ExPledgeEnemyInfoList(enemyClan)); + member.getPlayer().broadcastUserInfo(); } } }