diff --git a/trunk/java/com/l2jserver/gameserver/data/xml/impl/UIData.java b/trunk/java/com/l2jserver/gameserver/data/xml/impl/UIData.java index 885944977f..c0596c2789 100644 --- a/trunk/java/com/l2jserver/gameserver/data/xml/impl/UIData.java +++ b/trunk/java/com/l2jserver/gameserver/data/xml/impl/UIData.java @@ -153,11 +153,7 @@ public class UIData implements IXmlReader */ public static void addCategory(Map> map, int cat, int cmd) { - if (!map.containsKey(cat)) - { - map.put(cat, new ArrayList()); - } - 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> map, int cat, ActionKey akey) { - if (!map.containsKey(cat)) - { - map.put(cat, new ArrayList()); - } - map.get(cat).add(akey); + map.computeIfAbsent(cat, k -> new ArrayList<>()).add(akey); } /** diff --git a/trunk/java/com/l2jserver/gameserver/instancemanager/AntiFeedManager.java b/trunk/java/com/l2jserver/gameserver/instancemanager/AntiFeedManager.java index 82280d8088..99db521b8a 100644 --- a/trunk/java/com/l2jserver/gameserver/instancemanager/AntiFeedManager.java +++ b/trunk/java/com/l2jserver/gameserver/instancemanager/AntiFeedManager.java @@ -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)); } /** diff --git a/trunk/java/com/l2jserver/gameserver/instancemanager/RaidBossPointsManager.java b/trunk/java/com/l2jserver/gameserver/instancemanager/RaidBossPointsManager.java index abf90310ea..f34a628b0b 100644 --- a/trunk/java/com/l2jserver/gameserver/instancemanager/RaidBossPointsManager.java +++ b/trunk/java/com/l2jserver/gameserver/instancemanager/RaidBossPointsManager.java @@ -95,22 +95,8 @@ public class RaidBossPointsManager public final void addPoints(L2PcInstance player, int bossId, int points) { - int ownerId = player.getObjectId(); - Map 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 tmpPoint = _list.computeIfAbsent(player.getObjectId(), k -> new HashMap<>()); + updatePointsInDB(player, bossId, tmpPoint.merge(bossId, points, Integer::sum)); } public final int getPointsByOwnerId(int ownerId) diff --git a/trunk/java/com/l2jserver/gameserver/instancemanager/RaidBossSpawnManager.java b/trunk/java/com/l2jserver/gameserver/instancemanager/RaidBossSpawnManager.java index b1f3f54aed..aa3c59305b 100644 --- a/trunk/java/com/l2jserver/gameserver/instancemanager/RaidBossSpawnManager.java +++ b/trunk/java/com/l2jserver/gameserver/instancemanager/RaidBossSpawnManager.java @@ -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); diff --git a/trunk/java/com/l2jserver/gameserver/instancemanager/WalkingManager.java b/trunk/java/com/l2jserver/gameserver/instancemanager/WalkingManager.java index 7cd5e1c6a0..43f5bac387 100644 --- a/trunk/java/com/l2jserver/gameserver/instancemanager/WalkingManager.java +++ b/trunk/java/com/l2jserver/gameserver/instancemanager/WalkingManager.java @@ -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()); + } } /** diff --git a/trunk/java/com/l2jserver/gameserver/model/DamageDoneInfo.java b/trunk/java/com/l2jserver/gameserver/model/DamageDoneInfo.java index 40a2be63b5..e65c864d44 100644 --- a/trunk/java/com/l2jserver/gameserver/model/DamageDoneInfo.java +++ b/trunk/java/com/l2jserver/gameserver/model/DamageDoneInfo.java @@ -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() diff --git a/trunk/java/com/l2jserver/gameserver/model/actor/L2Attackable.java b/trunk/java/com/l2jserver/gameserver/model/actor/L2Attackable.java index 0161981560..3ee0478766 100644 --- a/trunk/java/com/l2jserver/gameserver/model/actor/L2Attackable.java +++ b/trunk/java/com/l2jserver/gameserver/model/actor/L2Attackable.java @@ -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 diff --git a/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2PetInstance.java b/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2PetInstance.java index 7e9586a9b4..ef2ffb8915 100644 --- a/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2PetInstance.java +++ b/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2PetInstance.java @@ -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); diff --git a/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2ServitorInstance.java b/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2ServitorInstance.java index a15491f11e..0310c8cf96 100644 --- a/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2ServitorInstance.java +++ b/trunk/java/com/l2jserver/gameserver/model/actor/instance/L2ServitorInstance.java @@ -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(); diff --git a/trunk/java/com/l2jserver/gameserver/model/entity/Instance.java b/trunk/java/com/l2jserver/gameserver/model/entity/Instance.java index 165d0b04c3..f1933bff15 100644 --- a/trunk/java/com/l2jserver/gameserver/model/entity/Instance.java +++ b/trunk/java/com/l2jserver/gameserver/model/entity/Instance.java @@ -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); } } diff --git a/trunk/java/com/l2jserver/gameserver/model/holders/PunishmentHolder.java b/trunk/java/com/l2jserver/gameserver/model/holders/PunishmentHolder.java index 053c6e8e7c..e8d43cd023 100644 --- a/trunk/java/com/l2jserver/gameserver/model/holders/PunishmentHolder.java +++ b/trunk/java/com/l2jserver/gameserver/model/holders/PunishmentHolder.java @@ -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()); - } - _holder.get(key).put(task.getType(), task); + final String key = String.valueOf(task.getKey()); + _holder.computeIfAbsent(key, k -> new ConcurrentHashMap<>()).put(task.getType(), task); } } diff --git a/trunk/java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java b/trunk/java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java index a9ed673a23..c3813db9c2 100644 --- a/trunk/java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java +++ b/trunk/java/com/l2jserver/gameserver/model/itemcontainer/ItemContainer.java @@ -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); diff --git a/trunk/java/com/l2jserver/gameserver/model/skills/SkillChannelized.java b/trunk/java/com/l2jserver/gameserver/model/skills/SkillChannelized.java index 9b550a8c72..450dbfcba5 100644 --- a/trunk/java/com/l2jserver/gameserver/model/skills/SkillChannelized.java +++ b/trunk/java/com/l2jserver/gameserver/model/skills/SkillChannelized.java @@ -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()); - } - _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 getChannelizers(int skillId) { - return _channelizers.get(skillId); + return _channelizers.getOrDefault(skillId, Collections.emptyMap()); } public void abortChannelization()