From f312103193744e1db60545de094ea1b1b48384c9 Mon Sep 17 00:00:00 2001 From: MobiusDevelopment <8391001+MobiusDevelopment@users.noreply.github.com> Date: Fri, 2 Dec 2022 06:22:55 +0000 Subject: [PATCH] Avoid unlikely AggroInfo number limit memory overflows. --- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- .../l2jmobius/gameserver/model/AggroInfo.java | 31 +++++++++++++++++-- 29 files changed, 841 insertions(+), 58 deletions(-) diff --git a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_01.0_Ertheia/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_02.5_Underground/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_03.0_Helios/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_04.0_GrandCrusade/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_05.0_Salvation/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_05.5_EtinasFate/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_06.0_Fafurion/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_07.0_PreludeOfWar/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_08.2_Homunculus/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_10.2_MasterClass/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_10.3_MasterClass/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_CT_0_Interlude/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_CT_2.4_Epilogue/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_1.0/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_1.5_AgeOfSplendor/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_2.5_Zaken/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_2.7_Antharas/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_2.8_SevenSigns/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_2.9.5_Saviors/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_2.9_SecretOfEmpire/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Classic_Interlude/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Essence_6.2_Vanguard/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override diff --git a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/AggroInfo.java b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/AggroInfo.java index 43cd57517a..a3b6ace8bf 100644 --- a/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/AggroInfo.java +++ b/L2J_Mobius_Essence_6.3_Crusader/java/org/l2jmobius/gameserver/model/AggroInfo.java @@ -23,6 +23,9 @@ import org.l2jmobius.gameserver.model.actor.Creature; */ public class AggroInfo { + private static final long MAX_VALUE = 1000000000000000L; + private static final long MIN_VALUE = -1000000000000000L; + private final Creature _attacker; private long _hate = 0; private long _damage = 0; @@ -53,7 +56,19 @@ public class AggroInfo public void addHate(long value) { - _hate = Math.min(_hate + value, Long.MAX_VALUE); + final long sum = _hate + value; + if (sum > MAX_VALUE) + { + _hate = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _hate = MIN_VALUE; + } + else + { + _hate = sum; + } } public void stopHate() @@ -68,7 +83,19 @@ public class AggroInfo public void addDamage(long value) { - _damage = Math.min(_damage + value, Long.MAX_VALUE); + final long sum = _damage + value; + if (sum > MAX_VALUE) + { + _damage = MAX_VALUE; + } + else if (sum < MIN_VALUE) + { + _damage = MIN_VALUE; + } + else + { + _damage = sum; + } } @Override