Simplified how complete collections are checked.
This commit is contained in:
@@ -14619,13 +14619,12 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
private void restoreCollectionBonuses()
|
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 collection = CollectionData.getInstance().getCollection(collectionId);
|
||||||
final CollectionDataHolder template = CollectionData.getInstance().getCollection(uniqueCollection);
|
if (getCollections().stream().filter(it -> it.getCollectionId() == collectionId).count() == collection.getItems().size())
|
||||||
if (currentProgress.size() == template.getItems().size())
|
|
||||||
{
|
{
|
||||||
final Options options = OptionData.getInstance().getOptions(template.getOptionId());
|
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
|
||||||
if (options != null)
|
if (options != null)
|
||||||
{
|
{
|
||||||
options.apply(this);
|
options.apply(this);
|
||||||
|
|||||||
@@ -16,8 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.l2jmobius.gameserver.network.clientpackets.collection;
|
package org.l2jmobius.gameserver.network.clientpackets.collection;
|
||||||
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import org.l2jmobius.commons.network.PacketReader;
|
import org.l2jmobius.commons.network.PacketReader;
|
||||||
import org.l2jmobius.gameserver.data.xml.CollectionData;
|
import org.l2jmobius.gameserver.data.xml.CollectionData;
|
||||||
import org.l2jmobius.gameserver.data.xml.OptionData;
|
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));
|
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));
|
player.sendPacket(new ExCollectionComplete(_collectionId));
|
||||||
}
|
|
||||||
|
// Apply collection option if all requirements are met.
|
||||||
// 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());
|
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
|
||||||
if (options != null)
|
if (options != null)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -14880,13 +14880,12 @@ public class PlayerInstance extends Playable
|
|||||||
|
|
||||||
private void restoreCollectionBonuses()
|
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 collection = CollectionData.getInstance().getCollection(collectionId);
|
||||||
final CollectionDataHolder template = CollectionData.getInstance().getCollection(uniqueCollection);
|
if (getCollections().stream().filter(it -> it.getCollectionId() == collectionId).count() == collection.getItems().size())
|
||||||
if (currentProgress.size() == template.getItems().size())
|
|
||||||
{
|
{
|
||||||
final Options options = OptionData.getInstance().getOptions(template.getOptionId());
|
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
|
||||||
if (options != null)
|
if (options != null)
|
||||||
{
|
{
|
||||||
options.apply(this);
|
options.apply(this);
|
||||||
|
|||||||
@@ -16,8 +16,6 @@
|
|||||||
*/
|
*/
|
||||||
package org.l2jmobius.gameserver.network.clientpackets.collection;
|
package org.l2jmobius.gameserver.network.clientpackets.collection;
|
||||||
|
|
||||||
import java.util.stream.Collectors;
|
|
||||||
|
|
||||||
import org.l2jmobius.commons.network.PacketReader;
|
import org.l2jmobius.commons.network.PacketReader;
|
||||||
import org.l2jmobius.gameserver.data.xml.CollectionData;
|
import org.l2jmobius.gameserver.data.xml.CollectionData;
|
||||||
import org.l2jmobius.gameserver.data.xml.OptionData;
|
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));
|
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));
|
player.sendPacket(new ExCollectionComplete(_collectionId));
|
||||||
}
|
|
||||||
|
// Apply collection option if all requirements are met.
|
||||||
// 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());
|
final Options options = OptionData.getInstance().getOptions(collection.getOptionId());
|
||||||
if (options != null)
|
if (options != null)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user