Skip to content

Commit 82c5ac4

Browse files
committed
Handle NoSuchSkillException
1 parent 3476464 commit 82c5ac4

File tree

1 file changed

+12
-1
lines changed
  • modules/modlauncher/src/main/java/org/gotti/wurmunlimited/modsupport/actions

1 file changed

+12
-1
lines changed

modules/modlauncher/src/main/java/org/gotti/wurmunlimited/modsupport/actions/ModActions.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import com.wurmonline.server.behaviours.ActionEntry;
1313
import com.wurmonline.server.behaviours.Actions;
1414
import com.wurmonline.server.behaviours.Behaviour;
15+
import com.wurmonline.server.creatures.Creature;
16+
import com.wurmonline.server.skills.NoSuchSkillException;
17+
import com.wurmonline.server.skills.Skill;
1518

1619
import javassist.CannotCompileException;
1720
import javassist.ClassPool;
@@ -129,7 +132,7 @@ public void edit(FieldAccess f) throws CannotCompileException {
129132
code.append(" com.wurmonline.server.creatures.Creature creature = comm.getPlayer();\n");
130133
code.append(" com.wurmonline.server.behaviours.Behaviour behaviour = com.wurmonline.server.behaviours.Action.getBehaviour(target, creature.isOnSurface());\n");
131134
code.append(" org.gotti.wurmunlimited.modsupport.actions.BehaviourProvider behaviourProvider = org.gotti.wurmunlimited.modsupport.actions.ModActions.getBehaviourProvider(behaviour);\n");
132-
code.append(" com.wurmonline.server.skills.Skill skill = creature.getSkills().getSkill(skillid);\n");
135+
code.append(" com.wurmonline.server.skills.Skill skill = org.gotti.wurmunlimited.modsupport.actions.ModActions.getSkillOrNull(creature, skillid);\n");
133136
code.append(" if (skill != null && behaviourProvider != null) {\n");
134137
code.append(" $_ = behaviourProvider.getBehavioursFor(creature, skill);\n");
135138
code.append(" } else {\n");
@@ -180,4 +183,12 @@ public static BehaviourProvider getBehaviourProvider(Behaviour behaviour) {
180183

181184
return new ChainedBehaviourProvider(new WrappedBehaviourProvider(behaviour), behaviourProviders);
182185
}
186+
187+
public static Skill getSkillOrNull(Creature creature, int skillId) {
188+
try {
189+
return creature.getSkills().getSkill(skillId);
190+
} catch (NoSuchSkillException e) {
191+
return null;
192+
}
193+
}
183194
}

0 commit comments

Comments
 (0)