-Misc clean up/refactor.

-Removed unnecessary Map.containsKey calls
-Using java 8 methods where possible to avoid external checks.

Source L2J HighFive branch:
9d0fee8537
This commit is contained in:
mobius 2015-02-09 13:49:08 +00:00
parent 2dd69863cc
commit f9a65fe3c1
13 changed files with 36 additions and 99 deletions

View File

@ -153,11 +153,7 @@ public class UIData implements IXmlReader
*/
public static void addCategory(Map<Integer, List<Integer>> map, int cat, int cmd)
{
if (!map.containsKey(cat))
{
map.put(cat, new ArrayList<Integer>());
}
map.get(cat).add(cmd);
map.computeIfAbsent(cat, k -> new ArrayList<>()).add(cmd);
}
/**
@ -168,11 +164,7 @@ public class UIData implements IXmlReader
*/
public static void addKey(Map<Integer, List<ActionKey>> map, int cat, ActionKey akey)
{
if (!map.containsKey(cat))
{
map.put(cat, new ArrayList<ActionKey>());
}
map.get(cat).add(akey);
map.computeIfAbsent(cat, k -> new ArrayList<>()).add(akey);
}
/**

View File

@ -154,15 +154,9 @@ public final class AntiFeedManager
}
final Integer addrHash = Integer.valueOf(client.getConnectionAddress().hashCode());
int limit = max;
if (Config.L2JMOD_DUALBOX_CHECK_WHITELIST.containsKey(addrHash))
{
limit += Config.L2JMOD_DUALBOX_CHECK_WHITELIST.get(addrHash);
}
final AtomicInteger connectionCount = event.computeIfAbsent(addrHash, k -> new AtomicInteger());
return connectionCount.getAndIncrement() < limit;
return connectionCount.getAndIncrement() < (max + Config.L2JMOD_DUALBOX_CHECK_WHITELIST.getOrDefault(addrHash, 0));
}
/**

View File

@ -95,22 +95,8 @@ public class RaidBossPointsManager
public final void addPoints(L2PcInstance player, int bossId, int points)
{
int ownerId = player.getObjectId();
Map<Integer, Integer> tmpPoint = _list.get(ownerId);
if (tmpPoint == null)
{
tmpPoint = new HashMap<>();
tmpPoint.put(bossId, points);
updatePointsInDB(player, bossId, points);
}
else
{
int currentPoins = tmpPoint.containsKey(bossId) ? tmpPoint.get(bossId) : 0;
currentPoins += points;
tmpPoint.put(bossId, currentPoins);
updatePointsInDB(player, bossId, currentPoins);
}
_list.put(ownerId, tmpPoint);
final Map<Integer, Integer> tmpPoint = _list.computeIfAbsent(player.getObjectId(), k -> new HashMap<>());
updatePointsInDB(player, bossId, tmpPoint.merge(bossId, points, Integer::sum));
}
public final int getPointsByOwnerId(int ownerId)

View File

@ -176,13 +176,12 @@ public class RaidBossSpawnManager
*/
public void updateStatus(L2RaidBossInstance boss, boolean isBossDead)
{
if (!_storedInfo.containsKey(boss.getId()))
final StatsSet info = _storedInfo.get(boss.getId());
if (info == null)
{
return;
}
final StatsSet info = _storedInfo.get(boss.getId());
if (isBossDead)
{
boss.setRaidStatus(StatusEnum.DEAD);

View File

@ -334,9 +334,9 @@ public final class WalkingManager implements IXmlReader
*/
public synchronized void cancelMoving(L2Npc npc)
{
if (_activeRoutes.containsKey(npc.getObjectId()))
final WalkInfo walk = _activeRoutes.remove(npc.getObjectId());
if (walk != null)
{
final WalkInfo walk = _activeRoutes.remove(npc.getObjectId());
walk.getWalkCheckTask().cancel(true);
npc.getKnownList().stopTrackingTask();
}
@ -348,15 +348,13 @@ public final class WalkingManager implements IXmlReader
*/
public void resumeMoving(final L2Npc npc)
{
if (!_activeRoutes.containsKey(npc.getObjectId()))
{
return;
}
final WalkInfo walk = _activeRoutes.get(npc.getObjectId());
walk.setSuspended(false);
walk.setStoppedByAttack(false);
startMoving(npc, walk.getRoute().getName());
if (walk != null)
{
walk.setSuspended(false);
walk.setStoppedByAttack(false);
startMoving(npc, walk.getRoute().getName());
}
}
/**

View File

@ -28,10 +28,9 @@ public final class DamageDoneInfo
private final L2PcInstance _attacker;
private int _damage = 0;
public DamageDoneInfo(L2PcInstance attacker, int damage)
public DamageDoneInfo(L2PcInstance attacker)
{
_attacker = attacker;
_damage = damage;
}
public L2PcInstance getAttacker()

View File

@ -426,16 +426,8 @@ public class L2Attackable extends L2Npc
totalDamage += damage;
// Calculate real damages (Summoners should get own damage plus summon's damage)
DamageDoneInfo reward = rewards.get(attacker);
if (reward == null)
{
reward = new DamageDoneInfo(attacker, damage);
rewards.put(attacker, reward);
}
else
{
reward.addDamage(damage);
}
final DamageDoneInfo reward = rewards.computeIfAbsent(attacker, DamageDoneInfo::new);
reward.addDamage(damage);
if (reward.getDamage() > maxDamage)
{
@ -710,12 +702,7 @@ public class L2Attackable extends L2Npc
final L2PcInstance targetPlayer = attacker.getActingPlayer();
// Get the AggroInfo of the attacker L2Character from the _aggroList of the L2Attackable
AggroInfo ai = getAggroList().get(attacker);
if (ai == null)
{
ai = new AggroInfo(attacker);
getAggroList().put(attacker, ai);
}
final AggroInfo ai = getAggroList().computeIfAbsent(attacker, AggroInfo::new);
ai.addDamage(damage);
// traps does not cause aggro
// making this hack because not possible to determine if damage made by trap

View File

@ -22,6 +22,7 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.Future;
import java.util.logging.Level;
@ -1015,10 +1016,7 @@ public class L2PetInstance extends L2Summon
}
// Clear list for overwrite
if (SummonEffectsTable.getInstance().getPetEffects().containsKey(getControlObjectId()))
{
SummonEffectsTable.getInstance().getPetEffects().get(getControlObjectId()).clear();
}
SummonEffectsTable.getInstance().getPetEffects().getOrDefault(getControlObjectId(), Collections.emptyList()).clear();
try (Connection con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement ps1 = con.prepareStatement(DELETE_SKILL_SAVE);

View File

@ -22,6 +22,7 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -282,9 +283,9 @@ public class L2ServitorInstance extends L2Summon implements Runnable
}
// Clear list for overwrite
if (SummonEffectsTable.getInstance().getServitorEffectsOwner().containsKey(getOwner().getObjectId()) && SummonEffectsTable.getInstance().getServitorEffectsOwner().get(getOwner().getObjectId()).containsKey(getOwner().getClassIndex()) && SummonEffectsTable.getInstance().getServitorEffects(getOwner()).containsKey(getReferenceSkill()))
if (SummonEffectsTable.getInstance().getServitorEffectsOwner().getOrDefault(getOwner().getObjectId(), Collections.emptyMap()).containsKey(getOwner().getClassIndex()))
{
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).get(getReferenceSkill()).clear();
SummonEffectsTable.getInstance().getServitorEffects(getOwner()).getOrDefault(getReferenceSkill(), Collections.emptyList()).clear();
}
try (Connection con = L2DatabaseFactory.getInstance().getConnection();

View File

@ -841,13 +841,10 @@ public final class Instance
public void cancelEjectDeadPlayer(L2PcInstance player)
{
if (_ejectDeadTasks.containsKey(player.getObjectId()))
final ScheduledFuture<?> task = _ejectDeadTasks.remove(player.getObjectId());
if (task != null)
{
final ScheduledFuture<?> task = _ejectDeadTasks.remove(player.getObjectId());
if (task != null)
{
task.cancel(true);
}
task.cancel(true);
}
}

View File

@ -39,12 +39,8 @@ public final class PunishmentHolder
{
if (!task.isExpired())
{
String key = String.valueOf(task.getKey());
if (!_holder.containsKey(key))
{
_holder.put(key, new ConcurrentHashMap<PunishmentType, PunishmentTask>());
}
_holder.get(key).put(task.getType(), task);
final String key = String.valueOf(task.getKey());
_holder.computeIfAbsent(key, k -> new ConcurrentHashMap<>()).put(task.getType(), task);
}
}

View File

@ -238,7 +238,7 @@ public abstract class ItemContainer
item = olditem;
// Updates database
float adenaRate = Config.RATE_DROP_AMOUNT_MULTIPLIER.containsKey(Inventory.ADENA_ID) ? Config.RATE_DROP_AMOUNT_MULTIPLIER.get(Inventory.ADENA_ID) : 1;
float adenaRate = Config.RATE_DROP_AMOUNT_MULTIPLIER.getOrDefault(Inventory.ADENA_ID, 1f);
if (actor.hasPremiumStatus() && Config.PREMIUM_RATE_DROP_AMOUNT_BY_ID.containsKey(Inventory.ADENA_ID))
{
adenaRate *= Config.PREMIUM_RATE_DROP_AMOUNT_BY_ID.get(Inventory.ADENA_ID);
@ -294,7 +294,7 @@ public abstract class ItemContainer
item.setLastChange(L2ItemInstance.MODIFIED);
// Updates database
// If Adena drop rate is not present it will be x1.
float adenaRate = Config.RATE_DROP_AMOUNT_MULTIPLIER.containsKey(Inventory.ADENA_ID) ? Config.RATE_DROP_AMOUNT_MULTIPLIER.get(Inventory.ADENA_ID) : 1;
float adenaRate = Config.RATE_DROP_AMOUNT_MULTIPLIER.getOrDefault(Inventory.ADENA_ID, 1f);
if (actor.hasPremiumStatus() && Config.PREMIUM_RATE_DROP_AMOUNT_BY_ID.containsKey(Inventory.ADENA_ID))
{
adenaRate *= Config.PREMIUM_RATE_DROP_AMOUNT_BY_ID.get(Inventory.ADENA_ID);

View File

@ -18,6 +18,7 @@
*/
package com.l2jserver.gameserver.model.skills;
import java.util.Collections;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@ -32,33 +33,22 @@ public final class SkillChannelized
public void addChannelizer(int skillId, L2Character channelizer)
{
if (!_channelizers.containsKey(skillId))
{
_channelizers.put(skillId, new ConcurrentHashMap<Integer, L2Character>());
}
_channelizers.get(skillId).put(channelizer.getObjectId(), channelizer);
_channelizers.computeIfAbsent(skillId, k -> new ConcurrentHashMap<>()).put(channelizer.getObjectId(), channelizer);
}
public void removeChannelizer(int skillId, L2Character channelizer)
{
if (_channelizers.containsKey(skillId))
{
_channelizers.get(skillId).remove(channelizer.getObjectId());
}
getChannelizers(skillId).remove(channelizer.getObjectId());
}
public int getChannerlizersSize(int skillId)
{
if (_channelizers.containsKey(skillId))
{
return _channelizers.get(skillId).size();
}
return 0;
return getChannelizers(skillId).size();
}
public Map<Integer, L2Character> getChannelizers(int skillId)
{
return _channelizers.get(skillId);
return _channelizers.getOrDefault(skillId, Collections.emptyMap());
}
public void abortChannelization()