Removed stream usage from ExCollectionInfo serverpacket.

This commit is contained in:
MobiusDevelopment
2023-01-08 11:57:48 +00:00
parent 003a68a7e1
commit 03b65b170b
6 changed files with 262 additions and 178 deletions

View File

@@ -16,9 +16,10 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets.collection; package org.l2jmobius.gameserver.network.serverpackets.collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.l2jmobius.gameserver.data.xml.CollectionData; import org.l2jmobius.gameserver.data.xml.CollectionData;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -27,55 +28,68 @@ import org.l2jmobius.gameserver.network.ServerPackets;
import org.l2jmobius.gameserver.network.serverpackets.ServerPacket; import org.l2jmobius.gameserver.network.serverpackets.ServerPacket;
/** /**
* Written by Berezkin Nikolay, on 12.04.2021 * @author Berezkin Nikolay, Mobius
*/ */
public class ExCollectionInfo extends ServerPacket public class ExCollectionInfo extends ServerPacket
{ {
final Player _Player; final Player _player;
final List<PlayerCollectionData> _categoryList;
final Set<Integer> _collections;
final List<Integer> _favoriteList;
final int _category; final int _category;
final Set<Integer> _collectionIds = new HashSet<>();
final List<Integer> _favoriteIds;
public ExCollectionInfo(Player player, int category) public ExCollectionInfo(Player player, int category)
{ {
_Player = player; _player = player;
_categoryList = player.getCollections().stream().filter(it -> CollectionData.getInstance().getCollection(it.getCollectionId()).getCategory() == category).collect(Collectors.toList());
_collections = _categoryList.stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet());
_favoriteList = player.getCollectionFavorites();
_category = category; _category = category;
for (PlayerCollectionData collection : player.getCollections())
{
if (CollectionData.getInstance().getCollection(collection.getCollectionId()).getCategory() == category)
{
_collectionIds.add(collection.getCollectionId());
}
}
_favoriteIds = player.getCollectionFavorites();
} }
@Override @Override
public void write() public void write()
{ {
ServerPackets.EX_COLLECTION_INFO.writeId(this); ServerPackets.EX_COLLECTION_INFO.writeId(this);
writeInt(_collections.size()); // size writeInt(_collectionIds.size()); // size
for (Integer collection : _collections) final List<PlayerCollectionData> currentCollection = new LinkedList<>();
for (int id : _collectionIds)
{ {
final List<PlayerCollectionData> collectionCurrent = _categoryList.stream().filter(it -> it.getCollectionId() == collection).collect(Collectors.toList()); currentCollection.clear();
writeInt(collectionCurrent.size()); for (PlayerCollectionData collection : _player.getCollections())
for (PlayerCollectionData current : collectionCurrent)
{ {
writeByte(current.getIndex()); if (collection.getCollectionId() == id)
writeInt(current.getItemId());
writeShort(CollectionData.getInstance().getCollection(collection).getItems().get(current.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // unk flag for item
writeInt(1); // count
}
writeShort(collection);
}
writeInt(_favoriteList.size()); // favourite size
for (int favoriteCollection : _favoriteList)
{ {
writeShort(favoriteCollection); currentCollection.add(collection);
} }
}
writeInt(currentCollection.size());
for (PlayerCollectionData collection : currentCollection)
{
writeByte(collection.getIndex());
writeInt(collection.getItemId());
writeShort(CollectionData.getInstance().getCollection(id).getItems().get(collection.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // bless
writeInt(1); // amount
}
writeShort(id);
}
// favoriteList
writeInt(_favoriteIds.size());
for (int id : _favoriteIds)
{
writeShort(id);
}
// rewardList
writeInt(0); writeInt(0);
// loop unk
// 1 h
// d
// h
// loop end
writeByte(_category); writeByte(_category);
writeShort(0); writeShort(0);
} }

View File

@@ -16,9 +16,10 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets.collection; package org.l2jmobius.gameserver.network.serverpackets.collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.l2jmobius.gameserver.data.xml.CollectionData; import org.l2jmobius.gameserver.data.xml.CollectionData;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -27,56 +28,69 @@ import org.l2jmobius.gameserver.network.ServerPackets;
import org.l2jmobius.gameserver.network.serverpackets.ServerPacket; import org.l2jmobius.gameserver.network.serverpackets.ServerPacket;
/** /**
* @author Berezkin Nikolay * @author Berezkin Nikolay, Mobius
*/ */
public class ExCollectionInfo extends ServerPacket public class ExCollectionInfo extends ServerPacket
{ {
final Player _Player; final Player _player;
final List<PlayerCollectionData> _categoryList;
final Set<Integer> _collections;
final List<Integer> _favoriteList;
final int _category; final int _category;
final Set<Integer> _collectionIds = new HashSet<>();
final List<Integer> _favoriteIds;
public ExCollectionInfo(Player player, int category) public ExCollectionInfo(Player player, int category)
{ {
_Player = player; _player = player;
_categoryList = player.getCollections().stream().filter(it -> CollectionData.getInstance().getCollection(it.getCollectionId()).getCategory() == category).collect(Collectors.toList());
_collections = _categoryList.stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet());
_favoriteList = player.getCollectionFavorites();
_category = category; _category = category;
for (PlayerCollectionData collection : player.getCollections())
{
if (CollectionData.getInstance().getCollection(collection.getCollectionId()).getCategory() == category)
{
_collectionIds.add(collection.getCollectionId());
}
}
_favoriteIds = player.getCollectionFavorites();
} }
@Override @Override
public void write() public void write()
{ {
ServerPackets.EX_COLLECTION_INFO.writeId(this); ServerPackets.EX_COLLECTION_INFO.writeId(this);
writeInt(_collections.size()); // size writeInt(_collectionIds.size()); // size
for (Integer collection : _collections) final List<PlayerCollectionData> currentCollection = new LinkedList<>();
for (int id : _collectionIds)
{ {
final List<PlayerCollectionData> collectionCurrent = _categoryList.stream().filter(it -> it.getCollectionId() == collection).collect(Collectors.toList()); currentCollection.clear();
writeInt(collectionCurrent.size()); for (PlayerCollectionData collection : _player.getCollections())
for (PlayerCollectionData current : collectionCurrent)
{ {
writeByte(current.getIndex()); if (collection.getCollectionId() == id)
writeInt(current.getItemId());
writeByte(CollectionData.getInstance().getCollection(collection).getItems().get(current.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // unk flag for item
writeByte(0); // unk flag for item
writeInt(1); // count
}
writeShort(collection);
}
writeInt(_favoriteList.size()); // favourite size
for (int favoriteCollection : _favoriteList)
{ {
writeShort(favoriteCollection); currentCollection.add(collection);
} }
}
writeInt(currentCollection.size());
for (PlayerCollectionData collection : currentCollection)
{
writeByte(collection.getIndex());
writeInt(collection.getItemId());
writeByte(CollectionData.getInstance().getCollection(id).getItems().get(collection.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // bless
writeByte(0); // bless Condition
writeInt(1); // amount
}
writeShort(id);
}
// favoriteList
writeInt(_favoriteIds.size());
for (int id : _favoriteIds)
{
writeShort(id);
}
// rewardList
writeInt(0); writeInt(0);
// loop unk
// 1 h
// d
// h
// loop end
writeByte(_category); writeByte(_category);
writeShort(0); writeShort(0);
} }

View File

@@ -16,9 +16,10 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets.collection; package org.l2jmobius.gameserver.network.serverpackets.collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.l2jmobius.gameserver.data.xml.CollectionData; import org.l2jmobius.gameserver.data.xml.CollectionData;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -27,56 +28,69 @@ import org.l2jmobius.gameserver.network.ServerPackets;
import org.l2jmobius.gameserver.network.serverpackets.ServerPacket; import org.l2jmobius.gameserver.network.serverpackets.ServerPacket;
/** /**
* @author Berezkin Nikolay * @author Berezkin Nikolay, Mobius
*/ */
public class ExCollectionInfo extends ServerPacket public class ExCollectionInfo extends ServerPacket
{ {
final Player _Player; final Player _player;
final List<PlayerCollectionData> _categoryList;
final Set<Integer> _collections;
final List<Integer> _favoriteList;
final int _category; final int _category;
final Set<Integer> _collectionIds = new HashSet<>();
final List<Integer> _favoriteIds;
public ExCollectionInfo(Player player, int category) public ExCollectionInfo(Player player, int category)
{ {
_Player = player; _player = player;
_categoryList = player.getCollections().stream().filter(it -> CollectionData.getInstance().getCollection(it.getCollectionId()).getCategory() == category).collect(Collectors.toList());
_collections = _categoryList.stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet());
_favoriteList = player.getCollectionFavorites();
_category = category; _category = category;
for (PlayerCollectionData collection : player.getCollections())
{
if (CollectionData.getInstance().getCollection(collection.getCollectionId()).getCategory() == category)
{
_collectionIds.add(collection.getCollectionId());
}
}
_favoriteIds = player.getCollectionFavorites();
} }
@Override @Override
public void write() public void write()
{ {
ServerPackets.EX_COLLECTION_INFO.writeId(this); ServerPackets.EX_COLLECTION_INFO.writeId(this);
writeInt(_collections.size()); // size writeInt(_collectionIds.size()); // size
for (Integer collection : _collections) final List<PlayerCollectionData> currentCollection = new LinkedList<>();
for (int id : _collectionIds)
{ {
final List<PlayerCollectionData> collectionCurrent = _categoryList.stream().filter(it -> it.getCollectionId() == collection).collect(Collectors.toList()); currentCollection.clear();
writeInt(collectionCurrent.size()); for (PlayerCollectionData collection : _player.getCollections())
for (PlayerCollectionData current : collectionCurrent)
{ {
writeByte(current.getIndex()); if (collection.getCollectionId() == id)
writeInt(current.getItemId());
writeByte(CollectionData.getInstance().getCollection(collection).getItems().get(current.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // unk flag for item
writeByte(0); // unk flag for item
writeInt(1); // count
}
writeShort(collection);
}
writeInt(_favoriteList.size()); // favourite size
for (int favoriteCollection : _favoriteList)
{ {
writeShort(favoriteCollection); currentCollection.add(collection);
} }
}
writeInt(currentCollection.size());
for (PlayerCollectionData collection : currentCollection)
{
writeByte(collection.getIndex());
writeInt(collection.getItemId());
writeByte(CollectionData.getInstance().getCollection(id).getItems().get(collection.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // bless
writeByte(0); // bless Condition
writeInt(1); // amount
}
writeShort(id);
}
// favoriteList
writeInt(_favoriteIds.size());
for (int id : _favoriteIds)
{
writeShort(id);
}
// rewardList
writeInt(0); writeInt(0);
// loop unk
// 1 h
// d
// h
// loop end
writeByte(_category); writeByte(_category);
writeShort(0); writeShort(0);
} }

View File

@@ -16,9 +16,10 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets.collection; package org.l2jmobius.gameserver.network.serverpackets.collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.l2jmobius.gameserver.data.xml.CollectionData; import org.l2jmobius.gameserver.data.xml.CollectionData;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -27,55 +28,68 @@ import org.l2jmobius.gameserver.network.ServerPackets;
import org.l2jmobius.gameserver.network.serverpackets.ServerPacket; import org.l2jmobius.gameserver.network.serverpackets.ServerPacket;
/** /**
* Written by Berezkin Nikolay, on 12.04.2021 * @author Berezkin Nikolay, Mobius
*/ */
public class ExCollectionInfo extends ServerPacket public class ExCollectionInfo extends ServerPacket
{ {
final Player _Player; final Player _player;
final List<PlayerCollectionData> _categoryList;
final Set<Integer> _collections;
final List<Integer> _favoriteList;
final int _category; final int _category;
final Set<Integer> _collectionIds = new HashSet<>();
final List<Integer> _favoriteIds;
public ExCollectionInfo(Player player, int category) public ExCollectionInfo(Player player, int category)
{ {
_Player = player; _player = player;
_categoryList = player.getCollections().stream().filter(it -> CollectionData.getInstance().getCollection(it.getCollectionId()).getCategory() == category).collect(Collectors.toList());
_collections = _categoryList.stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet());
_favoriteList = player.getCollectionFavorites();
_category = category; _category = category;
for (PlayerCollectionData collection : player.getCollections())
{
if (CollectionData.getInstance().getCollection(collection.getCollectionId()).getCategory() == category)
{
_collectionIds.add(collection.getCollectionId());
}
}
_favoriteIds = player.getCollectionFavorites();
} }
@Override @Override
public void write() public void write()
{ {
ServerPackets.EX_COLLECTION_INFO.writeId(this); ServerPackets.EX_COLLECTION_INFO.writeId(this);
writeInt(_collections.size()); // size writeInt(_collectionIds.size()); // size
for (Integer collection : _collections) final List<PlayerCollectionData> currentCollection = new LinkedList<>();
for (int id : _collectionIds)
{ {
final List<PlayerCollectionData> collectionCurrent = _categoryList.stream().filter(it -> it.getCollectionId() == collection).collect(Collectors.toList()); currentCollection.clear();
writeInt(collectionCurrent.size()); for (PlayerCollectionData collection : _player.getCollections())
for (PlayerCollectionData current : collectionCurrent)
{ {
writeByte(current.getIndex()); if (collection.getCollectionId() == id)
writeInt(current.getItemId());
writeShort(CollectionData.getInstance().getCollection(collection).getItems().get(current.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // unk flag for item
writeInt(1); // count
}
writeShort(collection);
}
writeInt(_favoriteList.size()); // favourite size
for (int favoriteCollection : _favoriteList)
{ {
writeShort(favoriteCollection); currentCollection.add(collection);
} }
}
writeInt(currentCollection.size());
for (PlayerCollectionData collection : currentCollection)
{
writeByte(collection.getIndex());
writeInt(collection.getItemId());
writeShort(CollectionData.getInstance().getCollection(id).getItems().get(collection.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // bless
writeInt(1); // amount
}
writeShort(id);
}
// favoriteList
writeInt(_favoriteIds.size());
for (int id : _favoriteIds)
{
writeShort(id);
}
// rewardList
writeInt(0); writeInt(0);
// loop unk
// 1 h
// d
// h
// loop end
writeByte(_category); writeByte(_category);
writeShort(0); writeShort(0);
} }

View File

@@ -16,9 +16,10 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets.collection; package org.l2jmobius.gameserver.network.serverpackets.collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.l2jmobius.gameserver.data.xml.CollectionData; import org.l2jmobius.gameserver.data.xml.CollectionData;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -27,56 +28,69 @@ import org.l2jmobius.gameserver.network.ServerPackets;
import org.l2jmobius.gameserver.network.serverpackets.ServerPacket; import org.l2jmobius.gameserver.network.serverpackets.ServerPacket;
/** /**
* @author Berezkin Nikolay * @author Berezkin Nikolay, Mobius
*/ */
public class ExCollectionInfo extends ServerPacket public class ExCollectionInfo extends ServerPacket
{ {
final Player _Player; final Player _player;
final List<PlayerCollectionData> _categoryList;
final Set<Integer> _collections;
final List<Integer> _favoriteList;
final int _category; final int _category;
final Set<Integer> _collectionIds = new HashSet<>();
final List<Integer> _favoriteIds;
public ExCollectionInfo(Player player, int category) public ExCollectionInfo(Player player, int category)
{ {
_Player = player; _player = player;
_categoryList = player.getCollections().stream().filter(it -> CollectionData.getInstance().getCollection(it.getCollectionId()).getCategory() == category).collect(Collectors.toList());
_collections = _categoryList.stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet());
_favoriteList = player.getCollectionFavorites();
_category = category; _category = category;
for (PlayerCollectionData collection : player.getCollections())
{
if (CollectionData.getInstance().getCollection(collection.getCollectionId()).getCategory() == category)
{
_collectionIds.add(collection.getCollectionId());
}
}
_favoriteIds = player.getCollectionFavorites();
} }
@Override @Override
public void write() public void write()
{ {
ServerPackets.EX_COLLECTION_INFO.writeId(this); ServerPackets.EX_COLLECTION_INFO.writeId(this);
writeInt(_collections.size()); // size writeInt(_collectionIds.size()); // size
for (Integer collection : _collections) final List<PlayerCollectionData> currentCollection = new LinkedList<>();
for (int id : _collectionIds)
{ {
final List<PlayerCollectionData> collectionCurrent = _categoryList.stream().filter(it -> it.getCollectionId() == collection).collect(Collectors.toList()); currentCollection.clear();
writeInt(collectionCurrent.size()); for (PlayerCollectionData collection : _player.getCollections())
for (PlayerCollectionData current : collectionCurrent)
{ {
writeByte(current.getIndex()); if (collection.getCollectionId() == id)
writeInt(current.getItemId());
writeByte(CollectionData.getInstance().getCollection(collection).getItems().get(current.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // unk flag for item
writeByte(0); // unk flag for item
writeInt(1); // count
}
writeShort(collection);
}
writeInt(_favoriteList.size()); // favourite size
for (int favoriteCollection : _favoriteList)
{ {
writeShort(favoriteCollection); currentCollection.add(collection);
} }
}
writeInt(currentCollection.size());
for (PlayerCollectionData collection : currentCollection)
{
writeByte(collection.getIndex());
writeInt(collection.getItemId());
writeByte(CollectionData.getInstance().getCollection(id).getItems().get(collection.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // bless
writeByte(0); // bless Condition
writeInt(1); // amount
}
writeShort(id);
}
// favoriteList
writeInt(_favoriteIds.size());
for (int id : _favoriteIds)
{
writeShort(id);
}
// rewardList
writeInt(0); writeInt(0);
// loop unk
// 1 h
// d
// h
// loop end
writeByte(_category); writeByte(_category);
writeShort(0); writeShort(0);
} }

View File

@@ -16,9 +16,10 @@
*/ */
package org.l2jmobius.gameserver.network.serverpackets.collection; package org.l2jmobius.gameserver.network.serverpackets.collection;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
import java.util.stream.Collectors;
import org.l2jmobius.gameserver.data.xml.CollectionData; import org.l2jmobius.gameserver.data.xml.CollectionData;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
@@ -27,56 +28,69 @@ import org.l2jmobius.gameserver.network.ServerPackets;
import org.l2jmobius.gameserver.network.serverpackets.ServerPacket; import org.l2jmobius.gameserver.network.serverpackets.ServerPacket;
/** /**
* @author Berezkin Nikolay * @author Berezkin Nikolay, Mobius
*/ */
public class ExCollectionInfo extends ServerPacket public class ExCollectionInfo extends ServerPacket
{ {
final Player _Player; final Player _player;
final List<PlayerCollectionData> _categoryList;
final Set<Integer> _collections;
final List<Integer> _favoriteList;
final int _category; final int _category;
final Set<Integer> _collectionIds = new HashSet<>();
final List<Integer> _favoriteIds;
public ExCollectionInfo(Player player, int category) public ExCollectionInfo(Player player, int category)
{ {
_Player = player; _player = player;
_categoryList = player.getCollections().stream().filter(it -> CollectionData.getInstance().getCollection(it.getCollectionId()).getCategory() == category).collect(Collectors.toList());
_collections = _categoryList.stream().map(PlayerCollectionData::getCollectionId).collect(Collectors.toSet());
_favoriteList = player.getCollectionFavorites();
_category = category; _category = category;
for (PlayerCollectionData collection : player.getCollections())
{
if (CollectionData.getInstance().getCollection(collection.getCollectionId()).getCategory() == category)
{
_collectionIds.add(collection.getCollectionId());
}
}
_favoriteIds = player.getCollectionFavorites();
} }
@Override @Override
public void write() public void write()
{ {
ServerPackets.EX_COLLECTION_INFO.writeId(this); ServerPackets.EX_COLLECTION_INFO.writeId(this);
writeInt(_collections.size()); // size writeInt(_collectionIds.size()); // size
for (Integer collection : _collections) final List<PlayerCollectionData> currentCollection = new LinkedList<>();
for (int id : _collectionIds)
{ {
final List<PlayerCollectionData> collectionCurrent = _categoryList.stream().filter(it -> it.getCollectionId() == collection).collect(Collectors.toList()); currentCollection.clear();
writeInt(collectionCurrent.size()); for (PlayerCollectionData collection : _player.getCollections())
for (PlayerCollectionData current : collectionCurrent)
{ {
writeByte(current.getIndex()); if (collection.getCollectionId() == id)
writeInt(current.getItemId());
writeByte(CollectionData.getInstance().getCollection(collection).getItems().get(current.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // unk flag for item
writeByte(0); // unk flag for item
writeInt(1); // count
}
writeShort(collection);
}
writeInt(_favoriteList.size()); // favourite size
for (int favoriteCollection : _favoriteList)
{ {
writeShort(favoriteCollection); currentCollection.add(collection);
} }
}
writeInt(currentCollection.size());
for (PlayerCollectionData collection : currentCollection)
{
writeByte(collection.getIndex());
writeInt(collection.getItemId());
writeByte(CollectionData.getInstance().getCollection(id).getItems().get(collection.getIndex()).getEnchantLevel()); // enchant level
writeByte(0); // bless
writeByte(0); // bless Condition
writeInt(1); // amount
}
writeShort(id);
}
// favoriteList
writeInt(_favoriteIds.size());
for (int id : _favoriteIds)
{
writeShort(id);
}
// rewardList
writeInt(0); writeInt(0);
// loop unk
// 1 h
// d
// h
// loop end
writeByte(_category); writeByte(_category);
writeShort(0); writeShort(0);
} }