Apply collection option upon register if all requirements are met.

This commit is contained in:
MobiusDevelopment
2021-09-09 21:47:54 +00:00
parent 3aa0fb8e0d
commit 078071e7bf
2 changed files with 28 additions and 0 deletions

View File

@@ -16,13 +16,17 @@
*/
package org.l2jmobius.gameserver.network.clientpackets.collection;
import java.util.stream.Collectors;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.xml.CollectionData;
import org.l2jmobius.gameserver.data.xml.OptionData;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.CollectionDataHolder;
import org.l2jmobius.gameserver.model.holders.ItemCollectionData;
import org.l2jmobius.gameserver.model.holders.PlayerCollectionData;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.options.Options;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.collection.ExCollectionComplete;
@@ -94,5 +98,15 @@ public class RequestCollectionRegister implements IClientIncomingPacket
{
player.sendPacket(new ExCollectionComplete(_collectionId));
}
// Apply collection option if all requirements are met.
if (player.getCollections().stream().filter(it -> it.getCollectionId() == _collectionId).collect(Collectors.toList()).size() == collection.getItems().size())
{
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
if (options != null)
{
options.apply(player);
}
}
}
}

View File

@@ -16,13 +16,17 @@
*/
package org.l2jmobius.gameserver.network.clientpackets.collection;
import java.util.stream.Collectors;
import org.l2jmobius.commons.network.PacketReader;
import org.l2jmobius.gameserver.data.xml.CollectionData;
import org.l2jmobius.gameserver.data.xml.OptionData;
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
import org.l2jmobius.gameserver.model.holders.CollectionDataHolder;
import org.l2jmobius.gameserver.model.holders.ItemCollectionData;
import org.l2jmobius.gameserver.model.holders.PlayerCollectionData;
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
import org.l2jmobius.gameserver.model.options.Options;
import org.l2jmobius.gameserver.network.GameClient;
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
import org.l2jmobius.gameserver.network.serverpackets.collection.ExCollectionComplete;
@@ -94,5 +98,15 @@ public class RequestCollectionRegister implements IClientIncomingPacket
{
player.sendPacket(new ExCollectionComplete(_collectionId));
}
// Apply collection option if all requirements are met.
if (player.getCollections().stream().filter(it -> it.getCollectionId() == _collectionId).collect(Collectors.toList()).size() == collection.getItems().size())
{
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
if (options != null)
{
options.apply(player);
}
}
}
}