From df5159e34c320d2dd5c6d4682671cd7a9a43d9bf Mon Sep 17 00:00:00 2001 From: P0nk Date: Wed, 7 Sep 2022 19:25:30 +0200 Subject: [PATCH] MobSkillFactory throws exception instead of returning null --- src/main/java/client/Character.java | 4 +--- src/main/java/server/life/MobSkillFactory.java | 4 +++- src/test/java/server/life/MobSkillFactoryTest.java | 6 ++---- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/main/java/client/Character.java b/src/main/java/client/Character.java index 1a2f148638..5404d41530 100644 --- a/src/main/java/client/Character.java +++ b/src/main/java/client/Character.java @@ -7327,9 +7327,7 @@ public class Character extends AbstractCharacterObject { final long length = rs.getInt("length"); MobSkill ms = MobSkillFactory.getMobSkill(MobSkillType.from(skillid), skilllv); - if (ms != null) { - loadedDiseases.put(disease, new Pair<>(length, ms)); - } + loadedDiseases.put(disease, new Pair<>(length, ms)); } } } diff --git a/src/main/java/server/life/MobSkillFactory.java b/src/main/java/server/life/MobSkillFactory.java index 2d8ce8e7a4..ac02cfa2d2 100644 --- a/src/main/java/server/life/MobSkillFactory.java +++ b/src/main/java/server/life/MobSkillFactory.java @@ -58,7 +58,9 @@ public class MobSkillFactory { readLock.unlock(); } - return loadMobSkill(type, level).orElse(null); + return loadMobSkill(type, level).orElseThrow( + () -> new IllegalArgumentException("No MobSkill exists for type %s, level %d".formatted(type, level)) + ); } private static Optional loadMobSkill(final MobSkillType type, final int level) { diff --git a/src/test/java/server/life/MobSkillFactoryTest.java b/src/test/java/server/life/MobSkillFactoryTest.java index 2917ab6a5c..09b4f7fbbe 100644 --- a/src/test/java/server/life/MobSkillFactoryTest.java +++ b/src/test/java/server/life/MobSkillFactoryTest.java @@ -61,10 +61,8 @@ class MobSkillFactoryTest { } @Test - void shouldReturnNullForNonExistingMobSkill() { - MobSkill mobSkill = MobSkillFactory.getMobSkill(MobSkillType.DEFENSE_UP, 1); - - assertNull(mobSkill); + void shouldThrowExceptionOnNonExisting() { + assertThrows(IllegalArgumentException.class, () -> MobSkillFactory.getMobSkill(MobSkillType.DEFENSE_UP, 1)); } } \ No newline at end of file