Fixed declaring and removing clan wars.
This commit is contained in:
@@ -26,16 +26,20 @@ import org.l2jmobius.gameserver.network.GameClient;
|
|||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
|
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList;
|
||||||
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
|
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
public class RequestExPledgeEnemyDelete implements ClientPacket
|
public class RequestExPledgeEnemyDelete implements ClientPacket
|
||||||
{
|
{
|
||||||
private String _pledgeName;
|
private int _clanId;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(ReadablePacket packet)
|
public void read(ReadablePacket packet)
|
||||||
{
|
{
|
||||||
_pledgeName = packet.readString();
|
_clanId = packet.readInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -53,22 +57,21 @@ public class RequestExPledgeEnemyDelete implements ClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clan = ClanTable.getInstance().getClanByName(_pledgeName);
|
final Clan enemyClan = ClanTable.getInstance().getClan(_clanId);
|
||||||
if (clan == null)
|
if (enemyClan == null)
|
||||||
{
|
{
|
||||||
player.sendMessage("No such clan.");
|
player.sendPacket(SystemMessageId.THERE_IS_NO_SUCH_CLAN);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if player who does the request has the correct rights to do it
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
@@ -90,15 +93,28 @@ public class RequestExPledgeEnemyDelete implements ClientPacket
|
|||||||
|
|
||||||
// Reduce reputation.
|
// Reduce reputation.
|
||||||
playerClan.takeReputationScore(500);
|
playerClan.takeReputationScore(500);
|
||||||
ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId());
|
ClanTable.getInstance().deleteClanWars(playerClan.getId(), enemyClan.getId());
|
||||||
for (Player member : playerClan.getOnlineMembers(0))
|
|
||||||
{
|
|
||||||
member.broadcastUserInfo();
|
|
||||||
}
|
|
||||||
|
|
||||||
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets.pledgeV3;
|
|||||||
import org.l2jmobius.commons.network.ReadablePacket;
|
import org.l2jmobius.commons.network.ReadablePacket;
|
||||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||||
import org.l2jmobius.gameserver.enums.ClanWarState;
|
import org.l2jmobius.gameserver.enums.ClanWarState;
|
||||||
import org.l2jmobius.gameserver.enums.UserInfoType;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
import org.l2jmobius.gameserver.model.clan.ClanMember;
|
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.clientpackets.ClientPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
public class RequestExPledgeEnemyRegister implements ClientPacket
|
public class RequestExPledgeEnemyRegister implements ClientPacket
|
||||||
{
|
{
|
||||||
private String _pledgeName;
|
private String _pledgeName;
|
||||||
@@ -50,8 +53,8 @@ public class RequestExPledgeEnemyRegister implements ClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clanDeclaringWar = player.getClan();
|
final Clan playerClan = player.getClan();
|
||||||
if (clanDeclaringWar == null)
|
if (playerClan == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -62,73 +65,94 @@ public class RequestExPledgeEnemyRegister implements ClientPacket
|
|||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(SystemMessageId.A_DECLARATION_OF_WAR_AGAINST_MORE_THAN_30_CLANS_CAN_T_BE_MADE_AT_THE_SAME_TIME);
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clanDeclaredWar = ClanTable.getInstance().getClanByName(_pledgeName);
|
final Clan enemyClan = ClanTable.getInstance().getClanByName(_pledgeName);
|
||||||
if (clanDeclaredWar == null)
|
if (enemyClan == null)
|
||||||
{
|
{
|
||||||
client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST));
|
client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (clanDeclaredWar == clanDeclaringWar)
|
|
||||||
|
if (enemyClan == playerClan)
|
||||||
{
|
{
|
||||||
client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN));
|
client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(new SystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(new SystemMessage(SystemMessageId.A_CLAN_WAR_CAN_NOT_BE_DECLARED_AGAINST_A_CLAN_THAT_IS_BEING_DISSOLVED));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ClanWar clanWar = clanDeclaringWar.getWarWith(clanDeclaredWar.getId());
|
final ClanWar clanWar = playerClan.getWarWith(enemyClan.getId());
|
||||||
if (clanWar != null)
|
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);
|
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(sm);
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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);
|
if ((clanWar.getClanWarState(playerClan) != ClanWarState.BLOOD_DECLARATION) || (clanWar.getAttackerClanId() == playerClan.getId()))
|
||||||
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())
|
|
||||||
{
|
{
|
||||||
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())
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -26,16 +26,20 @@ import org.l2jmobius.gameserver.network.GameClient;
|
|||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
|
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList;
|
||||||
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
|
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
public class RequestExPledgeEnemyDelete implements ClientPacket
|
public class RequestExPledgeEnemyDelete implements ClientPacket
|
||||||
{
|
{
|
||||||
private String _pledgeName;
|
private int _clanId;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(ReadablePacket packet)
|
public void read(ReadablePacket packet)
|
||||||
{
|
{
|
||||||
_pledgeName = packet.readString();
|
_clanId = packet.readInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -53,22 +57,21 @@ public class RequestExPledgeEnemyDelete implements ClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clan = ClanTable.getInstance().getClanByName(_pledgeName);
|
final Clan enemyClan = ClanTable.getInstance().getClan(_clanId);
|
||||||
if (clan == null)
|
if (enemyClan == null)
|
||||||
{
|
{
|
||||||
player.sendMessage("No such clan.");
|
player.sendPacket(SystemMessageId.THERE_IS_NO_SUCH_CLAN);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if player who does the request has the correct rights to do it
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
@@ -90,15 +93,28 @@ public class RequestExPledgeEnemyDelete implements ClientPacket
|
|||||||
|
|
||||||
// Reduce reputation.
|
// Reduce reputation.
|
||||||
playerClan.takeReputationScore(500);
|
playerClan.takeReputationScore(500);
|
||||||
ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId());
|
ClanTable.getInstance().deleteClanWars(playerClan.getId(), enemyClan.getId());
|
||||||
for (Player member : playerClan.getOnlineMembers(0))
|
|
||||||
{
|
|
||||||
member.broadcastUserInfo();
|
|
||||||
}
|
|
||||||
|
|
||||||
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets.pledgeV3;
|
|||||||
import org.l2jmobius.commons.network.ReadablePacket;
|
import org.l2jmobius.commons.network.ReadablePacket;
|
||||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||||
import org.l2jmobius.gameserver.enums.ClanWarState;
|
import org.l2jmobius.gameserver.enums.ClanWarState;
|
||||||
import org.l2jmobius.gameserver.enums.UserInfoType;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
import org.l2jmobius.gameserver.model.clan.ClanMember;
|
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.clientpackets.ClientPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
public class RequestExPledgeEnemyRegister implements ClientPacket
|
public class RequestExPledgeEnemyRegister implements ClientPacket
|
||||||
{
|
{
|
||||||
private String _pledgeName;
|
private String _pledgeName;
|
||||||
@@ -50,8 +53,8 @@ public class RequestExPledgeEnemyRegister implements ClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clanDeclaringWar = player.getClan();
|
final Clan playerClan = player.getClan();
|
||||||
if (clanDeclaringWar == null)
|
if (playerClan == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -62,73 +65,94 @@ public class RequestExPledgeEnemyRegister implements ClientPacket
|
|||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(SystemMessageId.A_DECLARATION_OF_WAR_AGAINST_MORE_THAN_30_CLANS_CAN_T_BE_MADE_AT_THE_SAME_TIME);
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clanDeclaredWar = ClanTable.getInstance().getClanByName(_pledgeName);
|
final Clan enemyClan = ClanTable.getInstance().getClanByName(_pledgeName);
|
||||||
if (clanDeclaredWar == null)
|
if (enemyClan == null)
|
||||||
{
|
{
|
||||||
client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST));
|
client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (clanDeclaredWar == clanDeclaringWar)
|
|
||||||
|
if (enemyClan == playerClan)
|
||||||
{
|
{
|
||||||
client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN));
|
client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(new SystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(new SystemMessage(SystemMessageId.A_CLAN_WAR_CAN_NOT_BE_DECLARED_AGAINST_A_CLAN_THAT_IS_BEING_DISSOLVED));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ClanWar clanWar = clanDeclaringWar.getWarWith(clanDeclaredWar.getId());
|
final ClanWar clanWar = playerClan.getWarWith(enemyClan.getId());
|
||||||
if (clanWar != null)
|
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);
|
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(sm);
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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);
|
if ((clanWar.getClanWarState(playerClan) != ClanWarState.BLOOD_DECLARATION) || (clanWar.getAttackerClanId() == playerClan.getId()))
|
||||||
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())
|
|
||||||
{
|
{
|
||||||
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())
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -26,16 +26,20 @@ import org.l2jmobius.gameserver.network.GameClient;
|
|||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
|
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList;
|
||||||
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
|
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
public class RequestExPledgeEnemyDelete implements ClientPacket
|
public class RequestExPledgeEnemyDelete implements ClientPacket
|
||||||
{
|
{
|
||||||
private String _pledgeName;
|
private int _clanId;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(ReadablePacket packet)
|
public void read(ReadablePacket packet)
|
||||||
{
|
{
|
||||||
_pledgeName = packet.readString();
|
_clanId = packet.readInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -53,22 +57,21 @@ public class RequestExPledgeEnemyDelete implements ClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clan = ClanTable.getInstance().getClanByName(_pledgeName);
|
final Clan enemyClan = ClanTable.getInstance().getClan(_clanId);
|
||||||
if (clan == null)
|
if (enemyClan == null)
|
||||||
{
|
{
|
||||||
player.sendMessage("No such clan.");
|
player.sendPacket(SystemMessageId.THERE_IS_NO_SUCH_CLAN);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if player who does the request has the correct rights to do it
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
@@ -90,15 +93,28 @@ public class RequestExPledgeEnemyDelete implements ClientPacket
|
|||||||
|
|
||||||
// Reduce reputation.
|
// Reduce reputation.
|
||||||
playerClan.takeReputationScore(500);
|
playerClan.takeReputationScore(500);
|
||||||
ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId());
|
ClanTable.getInstance().deleteClanWars(playerClan.getId(), enemyClan.getId());
|
||||||
for (Player member : playerClan.getOnlineMembers(0))
|
|
||||||
{
|
|
||||||
member.broadcastUserInfo();
|
|
||||||
}
|
|
||||||
|
|
||||||
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets.pledgeV3;
|
|||||||
import org.l2jmobius.commons.network.ReadablePacket;
|
import org.l2jmobius.commons.network.ReadablePacket;
|
||||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||||
import org.l2jmobius.gameserver.enums.ClanWarState;
|
import org.l2jmobius.gameserver.enums.ClanWarState;
|
||||||
import org.l2jmobius.gameserver.enums.UserInfoType;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
import org.l2jmobius.gameserver.model.clan.ClanMember;
|
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.clientpackets.ClientPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
public class RequestExPledgeEnemyRegister implements ClientPacket
|
public class RequestExPledgeEnemyRegister implements ClientPacket
|
||||||
{
|
{
|
||||||
private String _pledgeName;
|
private String _pledgeName;
|
||||||
@@ -50,8 +53,8 @@ public class RequestExPledgeEnemyRegister implements ClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clanDeclaringWar = player.getClan();
|
final Clan playerClan = player.getClan();
|
||||||
if (clanDeclaringWar == null)
|
if (playerClan == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -62,73 +65,94 @@ public class RequestExPledgeEnemyRegister implements ClientPacket
|
|||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(SystemMessageId.A_DECLARATION_OF_WAR_AGAINST_MORE_THAN_30_CLANS_CAN_T_BE_MADE_AT_THE_SAME_TIME);
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clanDeclaredWar = ClanTable.getInstance().getClanByName(_pledgeName);
|
final Clan enemyClan = ClanTable.getInstance().getClanByName(_pledgeName);
|
||||||
if (clanDeclaredWar == null)
|
if (enemyClan == null)
|
||||||
{
|
{
|
||||||
client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST));
|
client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (clanDeclaredWar == clanDeclaringWar)
|
|
||||||
|
if (enemyClan == playerClan)
|
||||||
{
|
{
|
||||||
client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN));
|
client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(new SystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(new SystemMessage(SystemMessageId.A_CLAN_WAR_CAN_NOT_BE_DECLARED_AGAINST_A_CLAN_THAT_IS_BEING_DISSOLVED));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ClanWar clanWar = clanDeclaringWar.getWarWith(clanDeclaredWar.getId());
|
final ClanWar clanWar = playerClan.getWarWith(enemyClan.getId());
|
||||||
if (clanWar != null)
|
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);
|
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(sm);
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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);
|
if ((clanWar.getClanWarState(playerClan) != ClanWarState.BLOOD_DECLARATION) || (clanWar.getAttackerClanId() == playerClan.getId()))
|
||||||
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())
|
|
||||||
{
|
{
|
||||||
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())
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -26,16 +26,20 @@ import org.l2jmobius.gameserver.network.GameClient;
|
|||||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||||
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
|
import org.l2jmobius.gameserver.network.clientpackets.ClientPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList;
|
||||||
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
|
import org.l2jmobius.gameserver.taskmanager.AttackStanceTaskManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
public class RequestExPledgeEnemyDelete implements ClientPacket
|
public class RequestExPledgeEnemyDelete implements ClientPacket
|
||||||
{
|
{
|
||||||
private String _pledgeName;
|
private int _clanId;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void read(ReadablePacket packet)
|
public void read(ReadablePacket packet)
|
||||||
{
|
{
|
||||||
_pledgeName = packet.readString();
|
_clanId = packet.readInt();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -53,22 +57,21 @@ public class RequestExPledgeEnemyDelete implements ClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clan = ClanTable.getInstance().getClanByName(_pledgeName);
|
final Clan enemyClan = ClanTable.getInstance().getClan(_clanId);
|
||||||
if (clan == null)
|
if (enemyClan == null)
|
||||||
{
|
{
|
||||||
player.sendMessage("No such clan.");
|
player.sendPacket(SystemMessageId.THERE_IS_NO_SUCH_CLAN);
|
||||||
player.sendPacket(ActionFailed.STATIC_PACKET);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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);
|
player.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if player who does the request has the correct rights to do it
|
|
||||||
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
if (!player.hasClanPrivilege(ClanPrivilege.CL_PLEDGE_WAR))
|
||||||
{
|
{
|
||||||
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
player.sendPacket(SystemMessageId.YOU_ARE_NOT_AUTHORIZED_TO_DO_THAT);
|
||||||
@@ -90,15 +93,28 @@ public class RequestExPledgeEnemyDelete implements ClientPacket
|
|||||||
|
|
||||||
// Reduce reputation.
|
// Reduce reputation.
|
||||||
playerClan.takeReputationScore(500);
|
playerClan.takeReputationScore(500);
|
||||||
ClanTable.getInstance().deleteClanWars(playerClan.getId(), clan.getId());
|
ClanTable.getInstance().deleteClanWars(playerClan.getId(), enemyClan.getId());
|
||||||
for (Player member : playerClan.getOnlineMembers(0))
|
|
||||||
{
|
|
||||||
member.broadcastUserInfo();
|
|
||||||
}
|
|
||||||
|
|
||||||
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,7 +19,6 @@ package org.l2jmobius.gameserver.network.clientpackets.pledgeV3;
|
|||||||
import org.l2jmobius.commons.network.ReadablePacket;
|
import org.l2jmobius.commons.network.ReadablePacket;
|
||||||
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
import org.l2jmobius.gameserver.data.sql.ClanTable;
|
||||||
import org.l2jmobius.gameserver.enums.ClanWarState;
|
import org.l2jmobius.gameserver.enums.ClanWarState;
|
||||||
import org.l2jmobius.gameserver.enums.UserInfoType;
|
|
||||||
import org.l2jmobius.gameserver.model.actor.Player;
|
import org.l2jmobius.gameserver.model.actor.Player;
|
||||||
import org.l2jmobius.gameserver.model.clan.Clan;
|
import org.l2jmobius.gameserver.model.clan.Clan;
|
||||||
import org.l2jmobius.gameserver.model.clan.ClanMember;
|
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.clientpackets.ClientPacket;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
import org.l2jmobius.gameserver.network.serverpackets.ActionFailed;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
|
||||||
|
import org.l2jmobius.gameserver.network.serverpackets.pledgeV3.ExPledgeEnemyInfoList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Mobius
|
||||||
|
*/
|
||||||
public class RequestExPledgeEnemyRegister implements ClientPacket
|
public class RequestExPledgeEnemyRegister implements ClientPacket
|
||||||
{
|
{
|
||||||
private String _pledgeName;
|
private String _pledgeName;
|
||||||
@@ -50,8 +53,8 @@ public class RequestExPledgeEnemyRegister implements ClientPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clanDeclaringWar = player.getClan();
|
final Clan playerClan = player.getClan();
|
||||||
if (clanDeclaringWar == null)
|
if (playerClan == null)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -62,73 +65,94 @@ public class RequestExPledgeEnemyRegister implements ClientPacket
|
|||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(SystemMessageId.A_DECLARATION_OF_WAR_AGAINST_MORE_THAN_30_CLANS_CAN_T_BE_MADE_AT_THE_SAME_TIME);
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final Clan clanDeclaredWar = ClanTable.getInstance().getClanByName(_pledgeName);
|
final Clan enemyClan = ClanTable.getInstance().getClanByName(_pledgeName);
|
||||||
if (clanDeclaredWar == null)
|
if (enemyClan == null)
|
||||||
{
|
{
|
||||||
client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST));
|
client.sendPacket(new SystemMessage(SystemMessageId.A_CLAN_WAR_CANNOT_BE_DECLARED_AGAINST_A_CLAN_THAT_DOES_NOT_EXIST));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else if (clanDeclaredWar == clanDeclaringWar)
|
|
||||||
|
if (enemyClan == playerClan)
|
||||||
{
|
{
|
||||||
client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN));
|
client.sendPacket(new SystemMessage(SystemMessageId.FOOL_YOU_CANNOT_DECLARE_WAR_AGAINST_YOUR_OWN_CLAN));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(new SystemMessage(SystemMessageId.A_DECLARATION_OF_CLAN_WAR_AGAINST_AN_ALLIED_CLAN_CAN_T_BE_MADE));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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(new SystemMessage(SystemMessageId.A_CLAN_WAR_CAN_NOT_BE_DECLARED_AGAINST_A_CLAN_THAT_IS_BEING_DISSOLVED));
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
final ClanWar clanWar = clanDeclaringWar.getWarWith(clanDeclaredWar.getId());
|
final ClanWar clanWar = playerClan.getWarWith(enemyClan.getId());
|
||||||
if (clanWar != null)
|
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);
|
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(sm);
|
||||||
client.sendPacket(ActionFailed.STATIC_PACKET);
|
client.sendPacket(ActionFailed.STATIC_PACKET);
|
||||||
return;
|
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);
|
if ((clanWar.getClanWarState(playerClan) != ClanWarState.BLOOD_DECLARATION) || (clanWar.getAttackerClanId() == playerClan.getId()))
|
||||||
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())
|
|
||||||
{
|
{
|
||||||
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())
|
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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user