diff --git a/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.java b/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.java
deleted file mode 100644
index 5da38be3a..000000000
--- a/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/***********************************************************************************
- * Copyright (c) 2018 /// Project SWG /// www.projectswg.com *
- * *
- * ProjectSWG is the first NGE emulator for Star Wars Galaxies founded on *
- * July 7th, 2011 after SOE announced the official shutdown of Star Wars Galaxies. *
- * Our goal is to create an emulator which will provide a server for players to *
- * continue playing a game similar to the one they used to play. We are basing *
- * it on the final publish of the game prior to end-game events. *
- * *
- * This file is part of Holocore. *
- * *
- * --------------------------------------------------------------------------------*
- * *
- * Holocore is free software: you can redistribute it and/or modify *
- * it under the terms of the GNU Affero General Public License as *
- * published by the Free Software Foundation, either version 3 of the *
- * License, or (at your option) any later version. *
- * *
- * Holocore is distributed in the hope that it will be useful, *
- * but WITHOUT ANY WARRANTY; without even the implied warranty of *
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
- * GNU Affero General Public License for more details. *
- * *
- * You should have received a copy of the GNU Affero General Public License *
- * along with Holocore. If not, see . *
- ***********************************************************************************/
-package com.projectswg.holocore.services.gameplay.player.experience.skills.skillmod;
-
-import com.projectswg.holocore.intents.gameplay.player.experience.skills.SkillModIntent;
-import com.projectswg.holocore.intents.support.objects.swg.ContainerTransferIntent;
-import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject;
-import com.projectswg.holocore.resources.support.objects.swg.tangible.TangibleObject;
-import me.joshlarson.jlcommon.control.IntentHandler;
-import me.joshlarson.jlcommon.control.Service;
-
-import java.util.Map;
-
-public class SkillModService extends Service {
-
- public SkillModService() {
-
- }
-
- @IntentHandler
- private void handleContainerTransferIntent(ContainerTransferIntent cti){
- if (cti.getObject().getOwner() == null)
- return;
-
- CreatureObject creature = cti.getObject().getOwner().getCreatureObject();
-
- if (cti.getObj() instanceof TangibleObject tangibleObject) {
- Map skillMods = tangibleObject.getSkillMods();
-
- for (Map.Entry entry : skillMods.entrySet()) {
- String modName = entry.getKey();
- int modValue = entry.getValue();
-
- if(cti.getContainer().getObjectId() == creature.getObjectId()){
- adjustSkillmod(creature, modName, 0, modValue);
- }else if(cti.getOldContainer() != null){
- if(cti.getOldContainer().getObjectId() == creature.getObjectId()){
- adjustSkillmod(creature, modName, 0, -modValue);
- }
- }
- }
- }
- }
-
- @IntentHandler
- private void handleSkillModIntent(SkillModIntent smi) {
- for (CreatureObject creature : smi.getAffectedCreatures()) {
- String skillModName = smi.getSkillModName();
-
- int adjustBase = smi.getAdjustBase();
- int adjustModifier = smi.getAdjustModifier();
-
- adjustSkillmod(creature, skillModName, adjustBase, adjustModifier);
- }
- }
-
- private void adjustSkillmod(CreatureObject creature, String skillModName, int adjustBase, int adjustModifier) {
- creature.adjustSkillmod(skillModName, adjustBase, adjustModifier);
- }
-
-}
diff --git a/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.kt b/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.kt
new file mode 100644
index 000000000..eb6025f6e
--- /dev/null
+++ b/src/main/java/com/projectswg/holocore/services/gameplay/player/experience/skills/skillmod/SkillModService.kt
@@ -0,0 +1,52 @@
+package com.projectswg.holocore.services.gameplay.player.experience.skills.skillmod
+
+import com.projectswg.holocore.intents.gameplay.player.experience.skills.SkillModIntent
+import com.projectswg.holocore.intents.support.objects.swg.ContainerTransferIntent
+import com.projectswg.holocore.resources.support.objects.swg.SWGObject
+import com.projectswg.holocore.resources.support.objects.swg.creature.CreatureObject
+import com.projectswg.holocore.resources.support.objects.swg.tangible.TangibleObject
+import me.joshlarson.jlcommon.control.IntentHandler
+import me.joshlarson.jlcommon.control.Service
+
+class SkillModService : Service() {
+
+ @IntentHandler
+ private fun handlehandleContainerTransferIntent(cti: ContainerTransferIntent) {
+ val owner = cti.`object`.owner ?: return
+ val creature = owner.creatureObject
+
+ val obj = cti.obj
+ if (obj is TangibleObject) {
+ val skillMods: Map = obj.skillMods
+
+ for (skillMod in skillMods) {
+ val modName = skillMod.key
+ val modValue = skillMod.value
+
+ if (isEquippingItem(cti.container, creature)) {
+ creature.adjustSkillmod(modName, 0, modValue)
+ } else if (isUnequippingItem(cti.oldContainer, creature)) {
+ creature.adjustSkillmod(modName, 0, -modValue)
+ }
+ }
+ }
+ }
+
+ private fun isEquippingItem(container: SWGObject?, creature: CreatureObject): Boolean {
+ return container != null && container.objectId == creature.objectId
+ }
+
+ private fun isUnequippingItem(oldContainer: SWGObject?, creature: CreatureObject): Boolean {
+ return oldContainer != null && oldContainer.objectId == creature.objectId
+ }
+
+ @IntentHandler
+ private fun handleSkillModIntent(smi: SkillModIntent) {
+ for (creature in smi.affectedCreatures) {
+ val skillModName = smi.skillModName
+ val adjustBase = smi.adjustBase
+ val adjustModifier = smi.adjustModifier
+ creature.adjustSkillmod(skillModName, adjustBase, adjustModifier)
+ }
+ }
+}
\ No newline at end of file