Code cleanup after latest PlayerInstance changes.
This commit is contained in:
+28
-59
@@ -597,12 +597,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
private boolean _minimapAllowed = false;
|
||||
|
||||
@@ -671,10 +671,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -691,7 +691,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -11733,7 +11733,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13215,14 +13215,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13258,14 +13255,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13277,14 +13271,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13296,14 +13287,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13669,7 +13657,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13678,7 +13666,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13688,7 +13676,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13701,7 +13689,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13712,18 +13700,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13732,7 +13716,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13741,10 +13725,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13872,10 +13853,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13886,10 +13863,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13898,10 +13871,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+28
-59
@@ -599,12 +599,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
private boolean _minimapAllowed = false;
|
||||
|
||||
@@ -673,10 +673,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -693,7 +693,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -11740,7 +11740,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13222,14 +13222,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13265,14 +13262,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13284,14 +13278,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13303,14 +13294,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13676,7 +13664,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13685,7 +13673,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13695,7 +13683,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13708,7 +13696,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13719,18 +13707,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13739,7 +13723,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13748,10 +13732,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13879,10 +13860,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13893,10 +13870,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13905,10 +13878,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+28
-59
@@ -601,12 +601,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
private boolean _minimapAllowed = false;
|
||||
|
||||
@@ -675,10 +675,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -695,7 +695,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -11742,7 +11742,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13225,14 +13225,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13268,14 +13265,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13287,14 +13281,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13306,14 +13297,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13679,7 +13667,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13688,7 +13676,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13698,7 +13686,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13711,7 +13699,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13722,18 +13710,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13742,7 +13726,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13751,10 +13735,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13882,10 +13863,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13896,10 +13873,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13908,10 +13881,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+29
-60
@@ -605,12 +605,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
// client radar
|
||||
// TODO: This needs to be better integrated and saved/loaded
|
||||
@@ -677,10 +677,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -701,7 +701,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -724,7 +724,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
private final BlockList _blockList = new BlockList(this);
|
||||
|
||||
private Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
private ScheduledFuture<?> _taskRentPet;
|
||||
private ScheduledFuture<?> _taskWater;
|
||||
|
||||
@@ -11722,7 +11722,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13204,14 +13204,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13247,14 +13244,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13266,14 +13260,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13285,14 +13276,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13650,7 +13638,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13659,7 +13647,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13669,7 +13657,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13682,7 +13670,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13693,18 +13681,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13713,7 +13697,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13722,10 +13706,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13853,10 +13834,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13867,10 +13844,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13879,10 +13852,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+29
-60
@@ -603,12 +603,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
// client radar
|
||||
// TODO: This needs to be better integrated and saved/loaded
|
||||
@@ -675,10 +675,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -699,7 +699,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -722,7 +722,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
private final BlockList _blockList = new BlockList(this);
|
||||
|
||||
private Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
private ScheduledFuture<?> _taskRentPet;
|
||||
private ScheduledFuture<?> _taskWater;
|
||||
|
||||
@@ -11712,7 +11712,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13194,14 +13194,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13237,14 +13234,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13256,14 +13250,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13275,14 +13266,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13640,7 +13628,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13649,7 +13637,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13659,7 +13647,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13672,7 +13660,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13683,18 +13671,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13703,7 +13687,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13712,10 +13696,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13842,10 +13823,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13856,10 +13833,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13868,10 +13841,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+29
-60
@@ -603,12 +603,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
// client radar
|
||||
// TODO: This needs to be better integrated and saved/loaded
|
||||
@@ -675,10 +675,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -699,7 +699,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -722,7 +722,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
private final BlockList _blockList = new BlockList(this);
|
||||
|
||||
private Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
private ScheduledFuture<?> _taskRentPet;
|
||||
private ScheduledFuture<?> _taskWater;
|
||||
|
||||
@@ -11712,7 +11712,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13194,14 +13194,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13237,14 +13234,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13256,14 +13250,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13275,14 +13266,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13640,7 +13628,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13649,7 +13637,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13659,7 +13647,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13672,7 +13660,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13683,18 +13671,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13703,7 +13687,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13712,10 +13696,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13842,10 +13823,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13856,10 +13833,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13868,10 +13841,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+29
-60
@@ -603,12 +603,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
// client radar
|
||||
// TODO: This needs to be better integrated and saved/loaded
|
||||
@@ -675,10 +675,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -699,7 +699,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -722,7 +722,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
private final BlockList _blockList = new BlockList(this);
|
||||
|
||||
private Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
private ScheduledFuture<?> _taskRentPet;
|
||||
private ScheduledFuture<?> _taskWater;
|
||||
|
||||
@@ -11718,7 +11718,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13200,14 +13200,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13243,14 +13240,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13262,14 +13256,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13281,14 +13272,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13646,7 +13634,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13655,7 +13643,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13665,7 +13653,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13678,7 +13666,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13689,18 +13677,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13709,7 +13693,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13718,10 +13702,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13848,10 +13829,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13862,10 +13839,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13874,10 +13847,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -518,7 +518,7 @@ public final class PlayerInstance extends Playable
|
||||
private long _offlineShopStart = 0;
|
||||
|
||||
private Transform _transformation;
|
||||
private volatile Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
private final Map<Integer, Skill> _transformSkills = new ConcurrentHashMap<>();
|
||||
|
||||
/** The table containing all RecipeList of the PlayerInstance */
|
||||
private final Map<Integer, RecipeList> _dwarvenRecipeBook = new ConcurrentHashMap<>();
|
||||
|
||||
+28
-59
@@ -595,12 +595,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
private boolean _minimapAllowed = false;
|
||||
|
||||
@@ -669,10 +669,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -689,7 +689,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -11575,7 +11575,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13058,14 +13058,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13101,14 +13098,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13120,14 +13114,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13139,14 +13130,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13512,7 +13500,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13521,7 +13509,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13531,7 +13519,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13544,7 +13532,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13555,18 +13543,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13575,7 +13559,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13584,10 +13568,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13715,10 +13696,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13729,10 +13706,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13741,10 +13714,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+28
-59
@@ -596,12 +596,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
private boolean _minimapAllowed = false;
|
||||
|
||||
@@ -670,10 +670,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -690,7 +690,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -11582,7 +11582,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13065,14 +13065,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13108,14 +13105,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13127,14 +13121,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13146,14 +13137,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13519,7 +13507,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13528,7 +13516,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13538,7 +13526,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13551,7 +13539,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13562,18 +13550,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13582,7 +13566,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13591,10 +13575,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13722,10 +13703,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13736,10 +13713,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13748,10 +13721,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+28
-59
@@ -594,12 +594,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
private boolean _minimapAllowed = false;
|
||||
|
||||
@@ -668,10 +668,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -688,7 +688,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -11567,7 +11567,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13050,14 +13050,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13093,14 +13090,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13112,14 +13106,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13131,14 +13122,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13504,7 +13492,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13513,7 +13501,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13523,7 +13511,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13536,7 +13524,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13547,18 +13535,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13567,7 +13551,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13576,10 +13560,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13706,10 +13687,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13720,10 +13697,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13732,10 +13705,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+28
-59
@@ -594,12 +594,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
private boolean _minimapAllowed = false;
|
||||
|
||||
@@ -668,10 +668,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -688,7 +688,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -11567,7 +11567,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13050,14 +13050,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13093,14 +13090,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13112,14 +13106,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13131,14 +13122,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13504,7 +13492,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13513,7 +13501,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13523,7 +13511,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13536,7 +13524,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13547,18 +13535,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13567,7 +13551,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13576,10 +13560,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13706,10 +13687,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13720,10 +13697,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13732,10 +13705,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
+28
-59
@@ -594,12 +594,12 @@ public final class PlayerInstance extends Playable
|
||||
/** The Pet of the PlayerInstance */
|
||||
private PetInstance _pet = null;
|
||||
/** Servitors of the PlayerInstance */
|
||||
private volatile Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
private final Map<Integer, Summon> _servitors = new ConcurrentHashMap<>(1);
|
||||
/** The Agathion of the PlayerInstance */
|
||||
private int _agathionId = 0;
|
||||
// apparently, a PlayerInstance CAN have both a summon AND a tamed beast at the same time!!
|
||||
// after Freya players can control more than one tamed beast
|
||||
private volatile Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
private final Set<TamedBeastInstance> _tamedBeast = ConcurrentHashMap.newKeySet();
|
||||
|
||||
private boolean _minimapAllowed = false;
|
||||
|
||||
@@ -668,10 +668,10 @@ public final class PlayerInstance extends Playable
|
||||
private long _spawnProtectEndTime = 0;
|
||||
private long _teleportProtectEndTime = 0;
|
||||
|
||||
private volatile Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos;
|
||||
private final Map<Integer, ExResponseCommissionInfo> _lastCommissionInfos = new ConcurrentHashMap<>();
|
||||
|
||||
@SuppressWarnings("rawtypes")
|
||||
private volatile Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractEvent>, AbstractEvent<?>> _events = new ConcurrentHashMap<>();
|
||||
private boolean _isOnCustomEvent = false;
|
||||
|
||||
// protects a char from aggro mobs when getting up from fake death
|
||||
@@ -688,7 +688,7 @@ public final class PlayerInstance extends Playable
|
||||
private int _expertiseWeaponPenalty = 0;
|
||||
private int _expertisePenaltyBonus = 0;
|
||||
|
||||
private volatile Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
private final Map<Class<? extends AbstractRequest>, AbstractRequest> _requests = new ConcurrentHashMap<>();
|
||||
|
||||
protected boolean _inventoryDisable = false;
|
||||
/** Player's cubics. */
|
||||
@@ -11567,7 +11567,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasTransformSkill(Skill skill)
|
||||
{
|
||||
return !_transformSkills.isEmpty() && (_transformSkills.get(skill.getId()) == skill);
|
||||
return _transformSkills.get(skill.getId()) == skill;
|
||||
}
|
||||
|
||||
public boolean hasTransformSkills()
|
||||
@@ -13050,14 +13050,11 @@ public final class PlayerInstance extends Playable
|
||||
@Override
|
||||
public boolean canRevive()
|
||||
{
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && !listener.canRevive(this))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return _canRevive;
|
||||
@@ -13093,14 +13090,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
if (listener.isOnEvent(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return super.isOnEvent();
|
||||
@@ -13112,14 +13106,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingExit(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
@@ -13131,14 +13122,11 @@ public final class PlayerInstance extends Playable
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!_events.isEmpty())
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
{
|
||||
for (AbstractEvent<?> listener : _events.values())
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
if (listener.isOnEvent(this) && listener.isBlockingDeathPenalty(this))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return isAffected(EffectFlag.PROTECT_DEATH_PENALTY);
|
||||
@@ -13504,7 +13492,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean canRequest(AbstractRequest request)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().allMatch(request::canWorkWith);
|
||||
return _requests.values().stream().allMatch(request::canWorkWith);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13513,7 +13501,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeRequest(Class<? extends AbstractRequest> clazz)
|
||||
{
|
||||
return !_requests.isEmpty() && (_requests.remove(clazz) != null);
|
||||
return _requests.remove(clazz) != null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13523,7 +13511,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractRequest> T getRequest(Class<T> requestClass)
|
||||
{
|
||||
return !_requests.isEmpty() ? requestClass.cast(_requests.get(requestClass)) : null;
|
||||
return requestClass.cast(_requests.get(requestClass));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13536,7 +13524,7 @@ public final class PlayerInstance extends Playable
|
||||
|
||||
public boolean hasItemRequest()
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
return _requests.values().stream().anyMatch(AbstractRequest::isItemRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13547,18 +13535,14 @@ public final class PlayerInstance extends Playable
|
||||
@SafeVarargs
|
||||
public final boolean hasRequest(Class<? extends AbstractRequest> requestClass, Class<? extends AbstractRequest>... classes)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
{
|
||||
for (Class<? extends AbstractRequest> clazz : classes)
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
if (_requests.containsKey(clazz))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
return false;
|
||||
return _requests.containsKey(requestClass);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13567,7 +13551,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean isProcessingItem(int objectId)
|
||||
{
|
||||
return !_requests.isEmpty() && _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
return _requests.values().stream().anyMatch(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13576,10 +13560,7 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public void removeRequestsThatProcessesItem(int objectId)
|
||||
{
|
||||
if (!_requests.isEmpty())
|
||||
{
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
_requests.values().removeIf(req -> req.isUsing(objectId));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -13706,10 +13687,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public boolean removeFromEvent(AbstractEvent<?> event)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return _events.remove(event.getClass()) != null;
|
||||
}
|
||||
|
||||
@@ -13720,10 +13697,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public <T extends AbstractEvent<?>> T getEvent(Class<T> clazz)
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().filter(event -> clazz.isAssignableFrom(event.getClass())).map(clazz::cast).findFirst().orElse(null);
|
||||
}
|
||||
|
||||
@@ -13732,10 +13705,6 @@ public final class PlayerInstance extends Playable
|
||||
*/
|
||||
public AbstractEvent<?> getEvent()
|
||||
{
|
||||
if (_events.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
return _events.values().stream().findFirst().orElse(null);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user