Fixed FriendAddRequest.

This commit is contained in:
MobiusDev
2017-11-03 11:09:21 +00:00
parent 4812c878dc
commit 147e0f8a37
11 changed files with 7 additions and 488 deletions

View File

@@ -27,6 +27,7 @@ import com.l2jmobius.commons.network.IIncomingPackets;
import com.l2jmobius.gameserver.network.clientpackets.*;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDel;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendInvite;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendList;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestSendFriendMsg;

View File

@@ -1,122 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* 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.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.BlockList;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.ceremonyofchaos.CeremonyOfChaosEvent;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.FriendAddRequest;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
public final class RequestFriendInvite implements IClientIncomingPacket
{
private String _name;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_name = packet.readS();
return true;
}
@Override
public void run(L2GameClient client)
{
final L2PcInstance activeChar = client.getActiveChar();
if (activeChar == null)
{
return;
}
final L2PcInstance friend = L2World.getInstance().getPlayer(_name);
// Target is not found in the game.
if ((friend == null) || !friend.isOnline() || friend.isInvisible())
{
client.sendPacket(SystemMessageId.THE_USER_WHO_REQUESTED_TO_BECOME_FRIENDS_IS_NOT_FOUND_IN_THE_GAME);
return;
}
// You cannot add yourself to your own friend list.
if (friend == activeChar)
{
client.sendPacket(SystemMessageId.YOU_CANNOT_ADD_YOURSELF_TO_YOUR_OWN_FRIEND_LIST);
return;
}
// Target is in olympiad.
if (activeChar.isInOlympiadMode() || friend.isInOlympiadMode())
{
client.sendPacket(SystemMessageId.A_USER_CURRENTLY_PARTICIPATING_IN_THE_OLYMPIAD_CANNOT_SEND_PARTY_AND_FRIEND_INVITATIONS);
return;
}
// Cannot request friendship in Ceremony of Chaos event.
if (activeChar.isOnEvent(CeremonyOfChaosEvent.class))
{
client.sendPacket(SystemMessageId.YOU_CANNOT_INVITE_A_FRIEND_OR_PARTY_WHILE_PARTICIPATING_IN_THE_CEREMONY_OF_CHAOS);
return;
}
// Cannot request friendship in any custom event.
if (activeChar.isOnEvent()) // custom event message
{
activeChar.sendMessage("You cannot invite a friend while participating in an event.");
return;
}
// Target blocked active player.
if (BlockList.isBlocked(friend, activeChar))
{
activeChar.sendMessage("You are in target's block list.");
return;
}
SystemMessage sm;
// Target is blocked.
if (BlockList.isBlocked(activeChar, friend))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_BLOCKED_C1);
sm.addCharName(friend);
client.sendPacket(sm);
return;
}
// Target already in friend list.
if (activeChar.getFriendList().contains(friend.getObjectId()))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.THIS_PLAYER_IS_ALREADY_REGISTERED_ON_YOUR_FRIENDS_LIST);
sm.addString(_name);
client.sendPacket(sm);
return;
}
// Target is busy.
if (friend.isProcessingRequest())
{
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_IS_ON_ANOTHER_TASK_PLEASE_TRY_AGAIN_LATER);
sm.addString(_name);
client.sendPacket(sm);
return;
}
// Friend request sent.
activeChar.onTransactionRequest(friend);
friend.sendPacket(new FriendAddRequest(activeChar.getName()));
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_VE_REQUESTED_C1_TO_BE_ON_YOUR_FRIENDS_LIST);
sm.addString(_name);
client.sendPacket(sm);
}
}

View File

@@ -27,6 +27,7 @@ import com.l2jmobius.commons.network.IIncomingPackets;
import com.l2jmobius.gameserver.network.clientpackets.*;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDel;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendInvite;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendList;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestSendFriendMsg;

View File

@@ -1,122 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* 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.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.BlockList;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.ceremonyofchaos.CeremonyOfChaosEvent;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.FriendAddRequest;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
public final class RequestFriendInvite implements IClientIncomingPacket
{
private String _name;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_name = packet.readS();
return true;
}
@Override
public void run(L2GameClient client)
{
final L2PcInstance activeChar = client.getActiveChar();
if (activeChar == null)
{
return;
}
final L2PcInstance friend = L2World.getInstance().getPlayer(_name);
// Target is not found in the game.
if ((friend == null) || !friend.isOnline() || friend.isInvisible())
{
client.sendPacket(SystemMessageId.THE_USER_WHO_REQUESTED_TO_BECOME_FRIENDS_IS_NOT_FOUND_IN_THE_GAME);
return;
}
// You cannot add yourself to your own friend list.
if (friend == activeChar)
{
client.sendPacket(SystemMessageId.YOU_CANNOT_ADD_YOURSELF_TO_YOUR_OWN_FRIEND_LIST);
return;
}
// Target is in olympiad.
if (activeChar.isInOlympiadMode() || friend.isInOlympiadMode())
{
client.sendPacket(SystemMessageId.A_USER_CURRENTLY_PARTICIPATING_IN_THE_OLYMPIAD_CANNOT_SEND_PARTY_AND_FRIEND_INVITATIONS);
return;
}
// Cannot request friendship in Ceremony of Chaos event.
if (activeChar.isOnEvent(CeremonyOfChaosEvent.class))
{
client.sendPacket(SystemMessageId.YOU_CANNOT_INVITE_A_FRIEND_OR_PARTY_WHILE_PARTICIPATING_IN_THE_CEREMONY_OF_CHAOS);
return;
}
// Cannot request friendship in any custom event.
if (activeChar.isOnEvent()) // custom event message
{
activeChar.sendMessage("You cannot invite a friend while participating in an event.");
return;
}
// Target blocked active player.
if (BlockList.isBlocked(friend, activeChar))
{
activeChar.sendMessage("You are in target's block list.");
return;
}
SystemMessage sm;
// Target is blocked.
if (BlockList.isBlocked(activeChar, friend))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_BLOCKED_C1);
sm.addCharName(friend);
client.sendPacket(sm);
return;
}
// Target already in friend list.
if (activeChar.getFriendList().contains(friend.getObjectId()))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.THIS_PLAYER_IS_ALREADY_REGISTERED_ON_YOUR_FRIENDS_LIST);
sm.addString(_name);
client.sendPacket(sm);
return;
}
// Target is busy.
if (friend.isProcessingRequest())
{
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_IS_ON_ANOTHER_TASK_PLEASE_TRY_AGAIN_LATER);
sm.addString(_name);
client.sendPacket(sm);
return;
}
// Friend request sent.
activeChar.onTransactionRequest(friend);
friend.sendPacket(new FriendAddRequest(activeChar.getName()));
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_VE_REQUESTED_C1_TO_BE_ON_YOUR_FRIENDS_LIST);
sm.addString(_name);
client.sendPacket(sm);
}
}

View File

@@ -34,6 +34,7 @@ public class FriendAddRequest implements IClientOutgoingPacket
{
OutgoingPackets.FRIEND_ADD_REQUEST.writeId(packet);
packet.writeC(0x00);
packet.writeS(_requestorName);
return true;
}

View File

@@ -27,6 +27,7 @@ import com.l2jmobius.commons.network.IIncomingPackets;
import com.l2jmobius.gameserver.network.clientpackets.*;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDel;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendInvite;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendList;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestSendFriendMsg;

View File

@@ -1,122 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* 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.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.BlockList;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.ceremonyofchaos.CeremonyOfChaosEvent;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.FriendAddRequest;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
public final class RequestFriendInvite implements IClientIncomingPacket
{
private String _name;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_name = packet.readS();
return true;
}
@Override
public void run(L2GameClient client)
{
final L2PcInstance activeChar = client.getActiveChar();
if (activeChar == null)
{
return;
}
final L2PcInstance friend = L2World.getInstance().getPlayer(_name);
// Target is not found in the game.
if ((friend == null) || !friend.isOnline() || friend.isInvisible())
{
client.sendPacket(SystemMessageId.THE_USER_WHO_REQUESTED_TO_BECOME_FRIENDS_IS_NOT_FOUND_IN_THE_GAME);
return;
}
// You cannot add yourself to your own friend list.
if (friend == activeChar)
{
client.sendPacket(SystemMessageId.YOU_CANNOT_ADD_YOURSELF_TO_YOUR_OWN_FRIEND_LIST);
return;
}
// Target is in olympiad.
if (activeChar.isInOlympiadMode() || friend.isInOlympiadMode())
{
client.sendPacket(SystemMessageId.A_USER_CURRENTLY_PARTICIPATING_IN_THE_OLYMPIAD_CANNOT_SEND_PARTY_AND_FRIEND_INVITATIONS);
return;
}
// Cannot request friendship in Ceremony of Chaos event.
if (activeChar.isOnEvent(CeremonyOfChaosEvent.class))
{
client.sendPacket(SystemMessageId.YOU_CANNOT_INVITE_A_FRIEND_OR_PARTY_WHILE_PARTICIPATING_IN_THE_CEREMONY_OF_CHAOS);
return;
}
// Cannot request friendship in any custom event.
if (activeChar.isOnEvent()) // custom event message
{
activeChar.sendMessage("You cannot invite a friend while participating in an event.");
return;
}
// Target blocked active player.
if (BlockList.isBlocked(friend, activeChar))
{
activeChar.sendMessage("You are in target's block list.");
return;
}
SystemMessage sm;
// Target is blocked.
if (BlockList.isBlocked(activeChar, friend))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_BLOCKED_C1);
sm.addCharName(friend);
client.sendPacket(sm);
return;
}
// Target already in friend list.
if (activeChar.getFriendList().contains(friend.getObjectId()))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.THIS_PLAYER_IS_ALREADY_REGISTERED_ON_YOUR_FRIENDS_LIST);
sm.addString(_name);
client.sendPacket(sm);
return;
}
// Target is busy.
if (friend.isProcessingRequest())
{
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_IS_ON_ANOTHER_TASK_PLEASE_TRY_AGAIN_LATER);
sm.addString(_name);
client.sendPacket(sm);
return;
}
// Friend request sent.
activeChar.onTransactionRequest(friend);
friend.sendPacket(new FriendAddRequest(activeChar.getName()));
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_VE_REQUESTED_C1_TO_BE_ON_YOUR_FRIENDS_LIST);
sm.addString(_name);
client.sendPacket(sm);
}
}

View File

@@ -34,6 +34,7 @@ public class FriendAddRequest implements IClientOutgoingPacket
{
OutgoingPackets.FRIEND_ADD_REQUEST.writeId(packet);
packet.writeC(0x00);
packet.writeS(_requestorName);
return true;
}

View File

@@ -27,6 +27,7 @@ import com.l2jmobius.commons.network.IIncomingPackets;
import com.l2jmobius.gameserver.network.clientpackets.*;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestAnswerFriendInvite;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendDel;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendInvite;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestFriendList;
import com.l2jmobius.gameserver.network.clientpackets.friend.RequestSendFriendMsg;

View File

@@ -1,122 +0,0 @@
/*
* This file is part of the L2J Mobius project.
*
* 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.l2jmobius.gameserver.network.clientpackets;
import com.l2jmobius.commons.network.PacketReader;
import com.l2jmobius.gameserver.model.BlockList;
import com.l2jmobius.gameserver.model.L2World;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.ceremonyofchaos.CeremonyOfChaosEvent;
import com.l2jmobius.gameserver.network.L2GameClient;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.FriendAddRequest;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
public final class RequestFriendInvite implements IClientIncomingPacket
{
private String _name;
@Override
public boolean read(L2GameClient client, PacketReader packet)
{
_name = packet.readS();
return true;
}
@Override
public void run(L2GameClient client)
{
final L2PcInstance activeChar = client.getActiveChar();
if (activeChar == null)
{
return;
}
final L2PcInstance friend = L2World.getInstance().getPlayer(_name);
// Target is not found in the game.
if ((friend == null) || !friend.isOnline() || friend.isInvisible())
{
client.sendPacket(SystemMessageId.THE_USER_WHO_REQUESTED_TO_BECOME_FRIENDS_IS_NOT_FOUND_IN_THE_GAME);
return;
}
// You cannot add yourself to your own friend list.
if (friend == activeChar)
{
client.sendPacket(SystemMessageId.YOU_CANNOT_ADD_YOURSELF_TO_YOUR_OWN_FRIEND_LIST);
return;
}
// Target is in olympiad.
if (activeChar.isInOlympiadMode() || friend.isInOlympiadMode())
{
client.sendPacket(SystemMessageId.A_USER_CURRENTLY_PARTICIPATING_IN_THE_OLYMPIAD_CANNOT_SEND_PARTY_AND_FRIEND_INVITATIONS);
return;
}
// Cannot request friendship in Ceremony of Chaos event.
if (activeChar.isOnEvent(CeremonyOfChaosEvent.class))
{
client.sendPacket(SystemMessageId.YOU_CANNOT_INVITE_A_FRIEND_OR_PARTY_WHILE_PARTICIPATING_IN_THE_CEREMONY_OF_CHAOS);
return;
}
// Cannot request friendship in any custom event.
if (activeChar.isOnEvent()) // custom event message
{
activeChar.sendMessage("You cannot invite a friend while participating in an event.");
return;
}
// Target blocked active player.
if (BlockList.isBlocked(friend, activeChar))
{
activeChar.sendMessage("You are in target's block list.");
return;
}
SystemMessage sm;
// Target is blocked.
if (BlockList.isBlocked(activeChar, friend))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_HAVE_BLOCKED_C1);
sm.addCharName(friend);
client.sendPacket(sm);
return;
}
// Target already in friend list.
if (activeChar.getFriendList().contains(friend.getObjectId()))
{
sm = SystemMessage.getSystemMessage(SystemMessageId.THIS_PLAYER_IS_ALREADY_REGISTERED_ON_YOUR_FRIENDS_LIST);
sm.addString(_name);
client.sendPacket(sm);
return;
}
// Target is busy.
if (friend.isProcessingRequest())
{
sm = SystemMessage.getSystemMessage(SystemMessageId.C1_IS_ON_ANOTHER_TASK_PLEASE_TRY_AGAIN_LATER);
sm.addString(_name);
client.sendPacket(sm);
return;
}
// Friend request sent.
activeChar.onTransactionRequest(friend);
friend.sendPacket(new FriendAddRequest(activeChar.getName()));
sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_VE_REQUESTED_C1_TO_BE_ON_YOUR_FRIENDS_LIST);
sm.addString(_name);
client.sendPacket(sm);
}
}

View File

@@ -34,6 +34,7 @@ public class FriendAddRequest implements IClientOutgoingPacket
{
OutgoingPackets.FRIEND_ADD_REQUEST.writeId(packet);
packet.writeC(0x00);
packet.writeS(_requestorName);
return true;
}