Simplified how complete collections are checked.

This commit is contained in:
MobiusDevelopment 2021-09-09 21:58:29 +00:00
parent 078071e7bf
commit 70599aa1ec
4 changed files with 14 additions and 26 deletions

View File

@ -14619,13 +14619,12 @@ public class PlayerInstance extends Playable
private void restoreCollectionBonuses()
{
getCollections().stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet()).forEach(uniqueCollection ->
getCollections().stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet()).forEach(collectionId ->
{
final List<PlayerCollectionData> currentProgress = getCollections().stream().filter(it -> it.getCollectionId() == uniqueCollection).collect(Collectors.toList());
final CollectionDataHolder template = CollectionData.getInstance().getCollection(uniqueCollection);
if (currentProgress.size() == template.getItems().size())
final CollectionDataHolder collection = CollectionData.getInstance().getCollection(collectionId);
if (getCollections().stream().filter(it -> it.getCollectionId() == collectionId).count() == collection.getItems().size())
{
final Options options = OptionData.getInstance().getOptions(template.getOptionId());
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
if (options != null)
{
options.apply(this);

View File

@ -16,8 +16,6 @@
*/
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;
@ -94,14 +92,11 @@ public class RequestCollectionRegister implements IClientIncomingPacket
player.getCollections().add(new PlayerCollectionData(_collectionId, item.getId(), _index));
if (collection.getItems().size() == player.getCollections().stream().filter(it -> it.getCollectionId() == _collectionId).count())
if (player.getCollections().stream().filter(it -> it.getCollectionId() == _collectionId).count() == collection.getItems().size())
{
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())
{
// Apply collection option if all requirements are met.
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
if (options != null)
{

View File

@ -14880,13 +14880,12 @@ public class PlayerInstance extends Playable
private void restoreCollectionBonuses()
{
getCollections().stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet()).forEach(uniqueCollection ->
getCollections().stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet()).forEach(collectionId ->
{
final List<PlayerCollectionData> currentProgress = getCollections().stream().filter(it -> it.getCollectionId() == uniqueCollection).collect(Collectors.toList());
final CollectionDataHolder template = CollectionData.getInstance().getCollection(uniqueCollection);
if (currentProgress.size() == template.getItems().size())
final CollectionDataHolder collection = CollectionData.getInstance().getCollection(collectionId);
if (getCollections().stream().filter(it -> it.getCollectionId() == collectionId).count() == collection.getItems().size())
{
final Options options = OptionData.getInstance().getOptions(template.getOptionId());
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
if (options != null)
{
options.apply(this);

View File

@ -16,8 +16,6 @@
*/
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;
@ -94,14 +92,11 @@ public class RequestCollectionRegister implements IClientIncomingPacket
player.getCollections().add(new PlayerCollectionData(_collectionId, item.getId(), _index));
if (collection.getItems().size() == player.getCollections().stream().filter(it -> it.getCollectionId() == _collectionId).count())
if (player.getCollections().stream().filter(it -> it.getCollectionId() == _collectionId).count() == collection.getItems().size())
{
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())
{
// Apply collection option if all requirements are met.
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
if (options != null)
{