From 147e0f8a370e4bf88ec3e17b49d1b2755f63f261 Mon Sep 17 00:00:00 2001 From: MobiusDev <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 3 Nov 2017 11:09:21 +0000 Subject: [PATCH] Fixed FriendAddRequest. --- .../gameserver/network/IncomingPackets.java | 1 + .../clientpackets/RequestFriendInvite.java | 122 ------------------ .../gameserver/network/IncomingPackets.java | 1 + .../clientpackets/RequestFriendInvite.java | 122 ------------------ .../friend/FriendAddRequest.java | 1 + .../gameserver/network/IncomingPackets.java | 1 + .../clientpackets/RequestFriendInvite.java | 122 ------------------ .../friend/FriendAddRequest.java | 1 + .../gameserver/network/IncomingPackets.java | 1 + .../clientpackets/RequestFriendInvite.java | 122 ------------------ .../friend/FriendAddRequest.java | 1 + 11 files changed, 7 insertions(+), 488 deletions(-) delete mode 100644 L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java delete mode 100644 L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java delete mode 100644 L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java delete mode 100644 L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/network/IncomingPackets.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/network/IncomingPackets.java index c8387d170c..98362130f8 100644 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/network/IncomingPackets.java +++ b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/network/IncomingPackets.java @@ -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; diff --git a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java b/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java deleted file mode 100644 index 1eeab4cc93..0000000000 --- a/L2J_Mobius_1.0_Ertheia/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java +++ /dev/null @@ -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 . - */ -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); - } -} diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/IncomingPackets.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/IncomingPackets.java index c8387d170c..98362130f8 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/IncomingPackets.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/IncomingPackets.java @@ -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; diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java deleted file mode 100644 index 1eeab4cc93..0000000000 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java +++ /dev/null @@ -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 . - */ -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); - } -} diff --git a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java index db44aaafc0..2b83e8a83a 100644 --- a/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java +++ b/L2J_Mobius_2.5_Underground/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java @@ -34,6 +34,7 @@ public class FriendAddRequest implements IClientOutgoingPacket { OutgoingPackets.FRIEND_ADD_REQUEST.writeId(packet); + packet.writeC(0x00); packet.writeS(_requestorName); return true; } diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/IncomingPackets.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/IncomingPackets.java index c8387d170c..98362130f8 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/IncomingPackets.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/IncomingPackets.java @@ -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; diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java deleted file mode 100644 index 1eeab4cc93..0000000000 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java +++ /dev/null @@ -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 . - */ -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); - } -} diff --git a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java index db44aaafc0..2b83e8a83a 100644 --- a/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java +++ b/L2J_Mobius_3.0_Helios/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java @@ -34,6 +34,7 @@ public class FriendAddRequest implements IClientOutgoingPacket { OutgoingPackets.FRIEND_ADD_REQUEST.writeId(packet); + packet.writeC(0x00); packet.writeS(_requestorName); return true; } diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/IncomingPackets.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/IncomingPackets.java index c8387d170c..98362130f8 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/IncomingPackets.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/IncomingPackets.java @@ -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; diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java deleted file mode 100644 index 1eeab4cc93..0000000000 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/clientpackets/RequestFriendInvite.java +++ /dev/null @@ -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 . - */ -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); - } -} diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java index db44aaafc0..2b83e8a83a 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/com/l2jmobius/gameserver/network/serverpackets/friend/FriendAddRequest.java @@ -34,6 +34,7 @@ public class FriendAddRequest implements IClientOutgoingPacket { OutgoingPackets.FRIEND_ADD_REQUEST.writeId(packet); + packet.writeC(0x00); packet.writeS(_requestorName); return true; }