Removed most stream filter uses.
This commit is contained in:
@@ -802,7 +802,15 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
||||
}
|
||||
else
|
||||
{
|
||||
final ClassChangeData data = _classChangeData.stream().filter(ccd -> ccd.isInCategory(player)).findFirst().get();
|
||||
ClassChangeData data = null;
|
||||
for (ClassChangeData ccd : _classChangeData)
|
||||
{
|
||||
if (ccd.isInCategory(player))
|
||||
{
|
||||
data = ccd;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (data != null)
|
||||
{
|
||||
// Required items.
|
||||
@@ -1100,11 +1108,35 @@ public class ClassMaster extends AbstractNpcAI implements IXmlReader
|
||||
|
||||
private boolean checkIfClassChangeHasOptions(PlayerInstance player)
|
||||
{
|
||||
boolean showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRequired().isEmpty()).anyMatch(ccd -> ccd.isInCategory(player)); // Check if there are requirements
|
||||
boolean showOptions = false;
|
||||
|
||||
// Check if there are requirements
|
||||
for (ClassChangeData ccd : _classChangeData)
|
||||
{
|
||||
if (!ccd.getItemsRequired().isEmpty() && ccd.isInCategory(player))
|
||||
{
|
||||
showOptions = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!showOptions)
|
||||
{
|
||||
showOptions = _classChangeData.stream().filter(ccd -> !ccd.getItemsRewarded().isEmpty()).filter(ccd -> ccd.isInCategory(player)).count() > 1; // Check if there is more than 1 reward to chose.
|
||||
// Check if there is more than 1 reward to chose.
|
||||
int count = 0;
|
||||
for (ClassChangeData ccd : _classChangeData)
|
||||
{
|
||||
if (!ccd.getItemsRewarded().isEmpty() && ccd.isInCategory(player))
|
||||
{
|
||||
count++;
|
||||
}
|
||||
}
|
||||
if (count > 1)
|
||||
{
|
||||
showOptions = true;
|
||||
}
|
||||
}
|
||||
|
||||
return showOptions;
|
||||
}
|
||||
|
||||
|
@@ -216,12 +216,15 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
final SellBuffHolder holder = player.getSellingBuffs().stream().filter(h -> (h.getSkillId() == skillToChange.getId())).findFirst().orElse(null);
|
||||
if ((holder != null))
|
||||
for (SellBuffHolder holder : player.getSellingBuffs())
|
||||
{
|
||||
player.sendMessage("Price of " + player.getKnownSkill(holder.getSkillId()).getName() + " has been changed to " + price + "!");
|
||||
holder.setPrice(price);
|
||||
SellBuffsManager.getInstance().sendBuffEditMenu(player);
|
||||
if (holder.getSkillId() == skillToChange.getId())
|
||||
{
|
||||
player.sendMessage("Price of " + player.getKnownSkill(holder.getSkillId()).getName() + " has been changed to " + price + "!");
|
||||
holder.setPrice(price);
|
||||
SellBuffsManager.getInstance().sendBuffEditMenu(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -250,11 +253,14 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
final SellBuffHolder holder = player.getSellingBuffs().stream().filter(h -> (h.getSkillId() == skillToRemove.getId())).findFirst().orElse(null);
|
||||
if ((holder != null) && player.getSellingBuffs().remove(holder))
|
||||
for (SellBuffHolder holder : player.getSellingBuffs())
|
||||
{
|
||||
player.sendMessage("Skill " + player.getKnownSkill(holder.getSkillId()).getName() + " has been removed!");
|
||||
SellBuffsManager.getInstance().sendBuffEditMenu(player);
|
||||
if ((holder.getSkillId() == skillToRemove.getId()) && player.getSellingBuffs().remove(holder))
|
||||
{
|
||||
player.sendMessage("Skill " + player.getKnownSkill(holder.getSkillId()).getName() + " has been removed!");
|
||||
SellBuffsManager.getInstance().sendBuffEditMenu(player);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -399,29 +405,33 @@ public class SellBuff implements IVoicedCommandHandler, IBypassHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
final SellBuffHolder holder = seller.getSellingBuffs().stream().filter(h -> (h.getSkillId() == skillToBuy.getId())).findFirst().orElse(null);
|
||||
if (holder != null)
|
||||
for (SellBuffHolder holder : player.getSellingBuffs())
|
||||
{
|
||||
if (AbstractScript.getQuestItemsCount(player, Config.SELLBUFF_PAYMENT_ID) >= holder.getPrice())
|
||||
if (holder.getSkillId() == skillToBuy.getId())
|
||||
{
|
||||
AbstractScript.takeItems(player, Config.SELLBUFF_PAYMENT_ID, holder.getPrice());
|
||||
AbstractScript.giveItems(seller, Config.SELLBUFF_PAYMENT_ID, holder.getPrice());
|
||||
seller.reduceCurrentMp(skillToBuy.getMpConsume() * Config.SELLBUFF_MP_MULTIPLER);
|
||||
skillToBuy.activateSkill(seller, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
final Item item = ItemTable.getInstance().getTemplate(Config.SELLBUFF_PAYMENT_ID);
|
||||
if (item != null)
|
||||
if (AbstractScript.getQuestItemsCount(player, Config.SELLBUFF_PAYMENT_ID) >= holder.getPrice())
|
||||
{
|
||||
player.sendMessage("Not enough " + item.getName() + "!");
|
||||
AbstractScript.takeItems(player, Config.SELLBUFF_PAYMENT_ID, holder.getPrice());
|
||||
AbstractScript.giveItems(seller, Config.SELLBUFF_PAYMENT_ID, holder.getPrice());
|
||||
seller.reduceCurrentMp(skillToBuy.getMpConsume() * Config.SELLBUFF_MP_MULTIPLER);
|
||||
skillToBuy.activateSkill(seller, player);
|
||||
}
|
||||
else
|
||||
{
|
||||
player.sendMessage("Not enough items!");
|
||||
final Item item = ItemTable.getInstance().getTemplate(Config.SELLBUFF_PAYMENT_ID);
|
||||
if (item != null)
|
||||
{
|
||||
player.sendMessage("Not enough " + item.getName() + "!");
|
||||
}
|
||||
else
|
||||
{
|
||||
player.sendMessage("Not enough items!");
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
SellBuffsManager.getInstance().sendBuffMenu(player, seller, index);
|
||||
}
|
||||
break;
|
||||
|
@@ -297,7 +297,13 @@ public class AdminAdmin implements IAdminCommandHandler
|
||||
}
|
||||
|
||||
final CreatureSay cs = new CreatureSay(activeChar, ChatType.WORLD, activeChar.getName(), sb.toString());
|
||||
World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
|
||||
for (PlayerInstance player : World.getInstance().getPlayers())
|
||||
{
|
||||
if (player.isNotBlocked(activeChar))
|
||||
{
|
||||
cs.sendTo(player);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case "see":
|
||||
|
@@ -98,16 +98,34 @@ public class ChatWorld implements IChatHandler
|
||||
{
|
||||
if (activeChar.isGood())
|
||||
{
|
||||
World.getInstance().getAllGoodPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
|
||||
for (PlayerInstance player : World.getInstance().getAllGoodPlayers())
|
||||
{
|
||||
if (player.isNotBlocked(activeChar))
|
||||
{
|
||||
cs.sendTo(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (activeChar.isEvil())
|
||||
{
|
||||
World.getInstance().getAllEvilPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
|
||||
for (PlayerInstance player : World.getInstance().getAllEvilPlayers())
|
||||
{
|
||||
if (player.isNotBlocked(activeChar))
|
||||
{
|
||||
cs.sendTo(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
World.getInstance().getPlayers().stream().filter(activeChar::isNotBlocked).forEach(cs::sendTo);
|
||||
for (PlayerInstance player : World.getInstance().getPlayers())
|
||||
{
|
||||
if (player.isNotBlocked(activeChar))
|
||||
{
|
||||
cs.sendTo(player);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
activeChar.setWorldChatUsed(activeChar.getWorldChatUsed() + 1);
|
||||
|
@@ -218,16 +218,19 @@ public class HomeBoard implements IParseBoardHandler
|
||||
{
|
||||
continue;
|
||||
}
|
||||
targets.stream().filter(target -> !target.isSummon() || !skill.isSharedWithSummon()).forEach(target ->
|
||||
for (Creature target : targets)
|
||||
{
|
||||
skill.applyEffects(player, target);
|
||||
if (Config.COMMUNITYBOARD_CAST_ANIMATIONS)
|
||||
if (skill.isSharedWithSummon() || target.isPlayer())
|
||||
{
|
||||
player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));
|
||||
// not recommend broadcast
|
||||
// player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));
|
||||
skill.applyEffects(player, target);
|
||||
if (Config.COMMUNITYBOARD_CAST_ANIMATIONS)
|
||||
{
|
||||
player.sendPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));
|
||||
// not recommend broadcast
|
||||
// player.broadcastPacket(new MagicSkillUse(player, target, skill.getId(), skill.getLevel(), skill.getHitTime(), skill.getReuseDelay()));
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -88,7 +88,13 @@ public class BossDailyMissionHandler extends AbstractDailyMissionHandler
|
||||
{
|
||||
final CommandChannel channel = party.getCommandChannel();
|
||||
final List<PlayerInstance> members = channel != null ? channel.getMembers() : party.getMembers();
|
||||
members.stream().filter(member -> member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE).forEach(this::processPlayerProgress);
|
||||
for (PlayerInstance member : members)
|
||||
{
|
||||
if (member.calculateDistance3D(monster) <= Config.ALT_PARTY_RANGE)
|
||||
{
|
||||
processPlayerProgress(member);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -18,15 +18,14 @@ package handlers.effecthandlers;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.HashSet;
|
||||
import java.util.Objects;
|
||||
import java.util.Set;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.WorldObject;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.items.instance.ItemInstance;
|
||||
import org.l2jmobius.gameserver.model.skills.AbnormalType;
|
||||
import org.l2jmobius.gameserver.model.skills.BuffInfo;
|
||||
import org.l2jmobius.gameserver.model.skills.Skill;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
|
||||
@@ -94,19 +93,25 @@ public class AbnormalTimeChange extends AbstractEffect
|
||||
{
|
||||
if (_abnormals.isEmpty())
|
||||
{
|
||||
effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b ->
|
||||
for (BuffInfo info : effected.getEffectList().getEffects())
|
||||
{
|
||||
b.resetAbnormalTime(b.getTime() + _time);
|
||||
asu.addSkill(b);
|
||||
});
|
||||
if (info.getSkill().canBeDispelled())
|
||||
{
|
||||
info.resetAbnormalTime(info.getTime() + _time);
|
||||
asu.addSkill(info);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
effected.getEffectList().getEffects().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b ->
|
||||
for (BuffInfo info : effected.getEffectList().getEffects())
|
||||
{
|
||||
b.resetAbnormalTime(b.getTime() + _time);
|
||||
asu.addSkill(b);
|
||||
});
|
||||
if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType()))
|
||||
{
|
||||
info.resetAbnormalTime(info.getTime() + _time);
|
||||
asu.addSkill(info);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -114,19 +119,25 @@ public class AbnormalTimeChange extends AbstractEffect
|
||||
{
|
||||
if (_abnormals.isEmpty())
|
||||
{
|
||||
effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled()).forEach(b ->
|
||||
for (BuffInfo info : effected.getEffectList().getDebuffs())
|
||||
{
|
||||
b.resetAbnormalTime(b.getAbnormalTime());
|
||||
asu.addSkill(b);
|
||||
});
|
||||
if (info.getSkill().canBeDispelled())
|
||||
{
|
||||
info.resetAbnormalTime(info.getAbnormalTime());
|
||||
asu.addSkill(info);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
effected.getEffectList().getDebuffs().stream().filter(b -> b.getSkill().canBeDispelled() && _abnormals.contains(b.getSkill().getAbnormalType())).forEach(b ->
|
||||
for (BuffInfo info : effected.getEffectList().getDebuffs())
|
||||
{
|
||||
b.resetAbnormalTime(b.getAbnormalTime());
|
||||
asu.addSkill(b);
|
||||
});
|
||||
if (info.getSkill().canBeDispelled() && _abnormals.contains(info.getSkill().getAbnormalType()))
|
||||
{
|
||||
info.resetAbnormalTime(info.getAbnormalTime());
|
||||
asu.addSkill(info);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -135,14 +146,13 @@ public class AbnormalTimeChange extends AbstractEffect
|
||||
effected.sendPacket(asu);
|
||||
|
||||
final ExAbnormalStatusUpdateFromTarget upd = new ExAbnormalStatusUpdateFromTarget(effected);
|
||||
|
||||
// @formatter:off
|
||||
effected.getStatus().getStatusListener().stream()
|
||||
.filter(Objects::nonNull)
|
||||
.filter(WorldObject::isPlayer)
|
||||
.map(Creature::getActingPlayer)
|
||||
.forEach(upd::sendTo);
|
||||
// @formatter:on
|
||||
for (Creature creature : effected.getStatus().getStatusListener())
|
||||
{
|
||||
if ((creature != null) && creature.isPlayer())
|
||||
{
|
||||
upd.sendTo(creature.getActingPlayer());
|
||||
}
|
||||
}
|
||||
|
||||
if (effected.isPlayer() && (effected.getTarget() == effected))
|
||||
{
|
||||
|
@@ -52,7 +52,13 @@ public class CallTargetParty extends AbstractEffect
|
||||
final Party party = player.getParty();
|
||||
if (party != null)
|
||||
{
|
||||
party.getMembers().stream().filter(p -> (p != player) && CallPc.checkSummonTargetStatus(p, effector)).forEach(p -> p.teleToLocation(player.getLocation(), true));
|
||||
for (PlayerInstance member : party.getMembers())
|
||||
{
|
||||
if ((member != player) && CallPc.checkSummonTargetStatus(member, effector))
|
||||
{
|
||||
member.teleToLocation(player.getLocation(), true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -173,7 +173,13 @@ public class SummonNpc extends AbstractEffect
|
||||
// If only single instance is allowed, delete previous NPCs.
|
||||
if (_singleInstance)
|
||||
{
|
||||
player.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).forEach(Npc::deleteMe);
|
||||
for (Npc npc : player.getSummonedNpcs())
|
||||
{
|
||||
if (npc.getId() == _npcId)
|
||||
{
|
||||
npc.deleteMe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final Npc npc = spawn.doSpawn(_isSummonSpawn);
|
||||
|
@@ -93,13 +93,19 @@ public class Synergy extends AbstractEffect
|
||||
}
|
||||
}
|
||||
|
||||
final int abnormalCount = (int) _optionalSlots.stream().filter(effector::hasAbnormalType).count();
|
||||
int abnormalCount = 0;
|
||||
for (AbnormalType abnormalType : _optionalSlots)
|
||||
{
|
||||
if (effector.hasAbnormalType(abnormalType))
|
||||
{
|
||||
abnormalCount++;
|
||||
}
|
||||
}
|
||||
|
||||
if (abnormalCount >= _minSlot)
|
||||
{
|
||||
final SkillHolder partyBuff = new SkillHolder(_partyBuffSkillId, Math.min(abnormalCount - 1, _skillLevelScaleTo));
|
||||
final Skill partyBuffSkill = partyBuff.getSkill();
|
||||
|
||||
if (partyBuffSkill != null)
|
||||
{
|
||||
final WorldObject target = partyBuffSkill.getTarget(effector, effected, false, false, false);
|
||||
|
@@ -20,6 +20,8 @@ import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||
import org.l2jmobius.gameserver.model.Party;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.actor.Creature;
|
||||
import org.l2jmobius.gameserver.model.actor.Npc;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.model.effects.AbstractEffect;
|
||||
import org.l2jmobius.gameserver.model.effects.EffectType;
|
||||
import org.l2jmobius.gameserver.model.interfaces.ILocational;
|
||||
@@ -59,13 +61,24 @@ public class TeleportToNpc extends AbstractEffect
|
||||
@Override
|
||||
public void instant(Creature effector, Creature effected, Skill skill, ItemInstance item)
|
||||
{
|
||||
final ILocational teleLocation = effector.getSummonedNpcs().stream().filter(npc -> npc.getId() == _npcId).findAny().orElse(null);
|
||||
ILocational teleLocation = null;
|
||||
for (Npc npc : effector.getSummonedNpcs())
|
||||
{
|
||||
if (npc.getId() == _npcId)
|
||||
{
|
||||
teleLocation = npc;
|
||||
}
|
||||
}
|
||||
|
||||
if (teleLocation != null)
|
||||
{
|
||||
final Party party = effected.getParty();
|
||||
if (_party && (party != null))
|
||||
{
|
||||
party.getMembers().forEach(p -> teleport(p, teleLocation));
|
||||
for (PlayerInstance member : party.getMembers())
|
||||
{
|
||||
teleport(member, teleLocation);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -16,8 +16,8 @@
|
||||
*/
|
||||
package handlers.itemhandlers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.ItemSkillType;
|
||||
import org.l2jmobius.gameserver.enums.ShotType;
|
||||
@@ -60,7 +60,15 @@ public class BeastSoulShot implements IItemHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
final List<Summon> aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList());
|
||||
final List<Summon> aliveServitor = new ArrayList<>();
|
||||
for (Summon s : playable.getServitors().values())
|
||||
{
|
||||
if (!s.isDead())
|
||||
{
|
||||
aliveServitor.add(s);
|
||||
}
|
||||
}
|
||||
|
||||
if ((pet == null) && aliveServitor.isEmpty())
|
||||
{
|
||||
activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT);
|
||||
|
@@ -16,8 +16,8 @@
|
||||
*/
|
||||
package handlers.itemhandlers;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.l2jmobius.gameserver.enums.ItemSkillType;
|
||||
import org.l2jmobius.gameserver.enums.ShotType;
|
||||
@@ -60,7 +60,15 @@ public class BeastSpiritShot implements IItemHandler
|
||||
return false;
|
||||
}
|
||||
|
||||
final List<Summon> aliveServitor = playable.getServitors().values().stream().filter(s -> !s.isDead()).collect(Collectors.toList());
|
||||
final List<Summon> aliveServitor = new ArrayList<>();
|
||||
for (Summon s : playable.getServitors().values())
|
||||
{
|
||||
if (!s.isDead())
|
||||
{
|
||||
aliveServitor.add(s);
|
||||
}
|
||||
}
|
||||
|
||||
if ((pet == null) && aliveServitor.isEmpty())
|
||||
{
|
||||
activeOwner.sendPacket(SystemMessageId.SOULSHOTS_AND_SPIRITSHOTS_ARE_NOT_AVAILABLE_FOR_A_DEAD_PET_OR_SERVITOR_SAD_ISN_T_IT);
|
||||
|
@@ -18,6 +18,7 @@ package handlers.playeractions;
|
||||
|
||||
import org.l2jmobius.gameserver.handler.IPlayerActionHandler;
|
||||
import org.l2jmobius.gameserver.model.ActionDataHolder;
|
||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
|
||||
@@ -32,7 +33,13 @@ public class ServitorAttack implements IPlayerActionHandler
|
||||
{
|
||||
if (player.hasServitors())
|
||||
{
|
||||
player.getServitors().values().stream().filter(s -> s.canAttack(player.getTarget(), ctrlPressed)).forEach(s -> s.doAttack(player.getTarget()));
|
||||
for (Summon summon : player.getServitors().values())
|
||||
{
|
||||
if (summon.canAttack(player.getTarget(), ctrlPressed))
|
||||
{
|
||||
summon.doAttack(player.getTarget());
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@@ -19,6 +19,7 @@ package handlers.playeractions;
|
||||
import org.l2jmobius.gameserver.ai.CtrlIntention;
|
||||
import org.l2jmobius.gameserver.handler.IPlayerActionHandler;
|
||||
import org.l2jmobius.gameserver.model.ActionDataHolder;
|
||||
import org.l2jmobius.gameserver.model.actor.Summon;
|
||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
|
||||
import org.l2jmobius.gameserver.network.SystemMessageId;
|
||||
|
||||
@@ -39,17 +40,20 @@ public class ServitorMove implements IPlayerActionHandler
|
||||
|
||||
if (player.getTarget() != null)
|
||||
{
|
||||
player.getServitors().values().stream().filter(s -> (s != player.getTarget()) && !s.isMovementDisabled()).forEach(s ->
|
||||
for (Summon summon : player.getServitors().values())
|
||||
{
|
||||
if (s.isBetrayed())
|
||||
if ((summon != player.getTarget()) && !summon.isMovementDisabled())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS);
|
||||
return;
|
||||
if (summon.isBetrayed())
|
||||
{
|
||||
player.sendPacket(SystemMessageId.YOUR_PET_SERVITOR_IS_UNRESPONSIVE_AND_WILL_NOT_OBEY_ANY_ORDERS);
|
||||
return;
|
||||
}
|
||||
|
||||
summon.setFollowStatus(false);
|
||||
summon.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation());
|
||||
}
|
||||
|
||||
s.setFollowStatus(false);
|
||||
s.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation());
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user