Sync with L2jServer HighFive Mar 25th 2015.

This commit is contained in:
MobiusDev
2015-03-25 06:48:51 +00:00
parent e0c66b1412
commit 82606870c0
194 changed files with 2619 additions and 2869 deletions

View File

@@ -21,9 +21,9 @@ package com.l2jserver.gameserver.model;
import java.time.Duration;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.CopyOnWriteArrayList;
@@ -83,7 +83,7 @@ public class L2Party extends AbstractPlayerGroup
private static final Duration PARTY_POSITION_BROADCAST_INTERVAL = Duration.ofSeconds(12);
private static final Duration PARTY_DISTRIBUTION_TYPE_REQUEST_TIMEOUT = Duration.ofSeconds(15);
private final List<L2PcInstance> _members;
private final List<L2PcInstance> _members = new CopyOnWriteArrayList<>();
private boolean _pendingInvitation = false;
private long _pendingInviteTimeout;
private int _partyLvl = 0;
@@ -116,7 +116,6 @@ public class L2Party extends AbstractPlayerGroup
*/
public L2Party(L2PcInstance leader, PartyDistributionType partyDistributionType)
{
_members = new CopyOnWriteArrayList<>();
_members.add(leader);
_partyLvl = leader.getLevel();
_distributionType = partyDistributionType;
@@ -768,33 +767,26 @@ public class L2Party extends AbstractPlayerGroup
*/
public void distributeAdena(L2PcInstance player, long adena, L2Character target)
{
// Get all the party members
final List<L2PcInstance> membersList = getMembers();
// Check the number of party members that must be rewarded
// (The party member must be in range to receive its reward)
final List<L2PcInstance> ToReward = new ArrayList<>();
for (L2PcInstance member : membersList)
final List<L2PcInstance> toReward = new LinkedList<>();
for (L2PcInstance member : getMembers())
{
if (!Util.checkIfInRange(Config.ALT_PARTY_RANGE2, target, member, true))
if (Util.checkIfInRange(Config.ALT_PARTY_RANGE2, target, member, true))
{
continue;
toReward.add(member);
}
ToReward.add(member);
}
// Avoid null exceptions, if any
if (ToReward.isEmpty())
if (!toReward.isEmpty())
{
return;
}
// Now we can actually distribute the adena reward
// (Total adena splitted by the number of party members that are in range and must be rewarded)
final long count = adena / ToReward.size();
for (L2PcInstance member : ToReward)
{
member.addAdena("Party", count, player, true);
// Now we can actually distribute the adena reward
// (Total adena splitted by the number of party members that are in range and must be rewarded)
long count = adena / toReward.size();
for (L2PcInstance member : toReward)
{
member.addAdena("Party", count, player, true);
}
}
}
@@ -1044,14 +1036,7 @@ public class L2Party extends AbstractPlayerGroup
@Override
public L2PcInstance getLeader()
{
try
{
return _members.get(0);
}
catch (NoSuchElementException e)
{
return null;
}
return _members.get(0);
}
public synchronized void requestLootChange(PartyDistributionType partyDistributionType)