diff --git a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java index a4f250cf28..0f23e64b29 100644 --- a/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java +++ b/L2J_Mobius_07.0_PreludeOfWar/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java @@ -18,6 +18,7 @@ package handlers.effecthandlers; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.enums.SubclassInfoType; +import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -33,6 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowAll; import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowDeleteAll; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.ability.ExAcquireAPSkillList; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; /** * @author Sdw @@ -107,5 +109,47 @@ public class ClassChange extends AbstractEffect } } } + + // Stop auto use. + for (Shortcut shortcut : player.getAllShortCuts()) + { + if (!shortcut.isAutoUse()) + { + continue; + } + + player.removeAutoShortcut(shortcut.getSlot(), shortcut.getPage()); + + if (player.getAutoUseSettings().isAutoSkill(shortcut.getId())) + { + final Skill knownSkill = player.getKnownSkill(shortcut.getId()); + if (knownSkill != null) + { + if (knownSkill.isBad()) + { + AutoUseTaskManager.getInstance().removeAutoSkill(player, shortcut.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoBuff(player, shortcut.getId()); + } + } + } + else + { + final ItemInstance knownItem = player.getInventory().getItemByObjectId(shortcut.getId()); + if ((knownItem != null) && player.getAutoUseSettings().getAutoSupplyItems().contains(knownItem.getId())) + { + if (knownItem.isPotion()) + { + AutoUseTaskManager.getInstance().removeAutoPotionItem(player, knownItem.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, knownItem.getId()); + } + } + } + } } } diff --git a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java index a4f250cf28..0f23e64b29 100644 --- a/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java +++ b/L2J_Mobius_08.2_Homunculus/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java @@ -18,6 +18,7 @@ package handlers.effecthandlers; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.enums.SubclassInfoType; +import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -33,6 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowAll; import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowDeleteAll; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.ability.ExAcquireAPSkillList; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; /** * @author Sdw @@ -107,5 +109,47 @@ public class ClassChange extends AbstractEffect } } } + + // Stop auto use. + for (Shortcut shortcut : player.getAllShortCuts()) + { + if (!shortcut.isAutoUse()) + { + continue; + } + + player.removeAutoShortcut(shortcut.getSlot(), shortcut.getPage()); + + if (player.getAutoUseSettings().isAutoSkill(shortcut.getId())) + { + final Skill knownSkill = player.getKnownSkill(shortcut.getId()); + if (knownSkill != null) + { + if (knownSkill.isBad()) + { + AutoUseTaskManager.getInstance().removeAutoSkill(player, shortcut.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoBuff(player, shortcut.getId()); + } + } + } + else + { + final ItemInstance knownItem = player.getInventory().getItemByObjectId(shortcut.getId()); + if ((knownItem != null) && player.getAutoUseSettings().getAutoSupplyItems().contains(knownItem.getId())) + { + if (knownItem.isPotion()) + { + AutoUseTaskManager.getInstance().removeAutoPotionItem(player, knownItem.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, knownItem.getId()); + } + } + } + } } } diff --git a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java index a4f250cf28..0f23e64b29 100644 --- a/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java +++ b/L2J_Mobius_09.2_ReturnOfTheQueenAnt/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java @@ -18,6 +18,7 @@ package handlers.effecthandlers; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.enums.SubclassInfoType; +import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -33,6 +34,7 @@ import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowAll; import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowDeleteAll; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.ability.ExAcquireAPSkillList; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; /** * @author Sdw @@ -107,5 +109,47 @@ public class ClassChange extends AbstractEffect } } } + + // Stop auto use. + for (Shortcut shortcut : player.getAllShortCuts()) + { + if (!shortcut.isAutoUse()) + { + continue; + } + + player.removeAutoShortcut(shortcut.getSlot(), shortcut.getPage()); + + if (player.getAutoUseSettings().isAutoSkill(shortcut.getId())) + { + final Skill knownSkill = player.getKnownSkill(shortcut.getId()); + if (knownSkill != null) + { + if (knownSkill.isBad()) + { + AutoUseTaskManager.getInstance().removeAutoSkill(player, shortcut.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoBuff(player, shortcut.getId()); + } + } + } + else + { + final ItemInstance knownItem = player.getInventory().getItemByObjectId(shortcut.getId()); + if ((knownItem != null) && player.getAutoUseSettings().getAutoSupplyItems().contains(knownItem.getId())) + { + if (knownItem.isPotion()) + { + AutoUseTaskManager.getInstance().removeAutoPotionItem(player, knownItem.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, knownItem.getId()); + } + } + } + } } } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java index 960dc82bf2..0ee6701114 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java @@ -18,6 +18,7 @@ package handlers.effecthandlers; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.enums.SubclassInfoType; +import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -32,6 +33,7 @@ import org.l2jmobius.gameserver.network.serverpackets.ExSubjobInfo; import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowAll; import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowDeleteAll; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; /** * @author Sdw @@ -104,5 +106,47 @@ public class ClassChange extends AbstractEffect } } } + + // Stop auto use. + for (Shortcut shortcut : player.getAllShortCuts()) + { + if (!shortcut.isAutoUse()) + { + continue; + } + + player.removeAutoShortcut(shortcut.getSlot(), shortcut.getPage()); + + if (player.getAutoUseSettings().isAutoSkill(shortcut.getId())) + { + final Skill knownSkill = player.getKnownSkill(shortcut.getId()); + if (knownSkill != null) + { + if (knownSkill.isBad()) + { + AutoUseTaskManager.getInstance().removeAutoSkill(player, shortcut.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoBuff(player, shortcut.getId()); + } + } + } + else + { + final ItemInstance knownItem = player.getInventory().getItemByObjectId(shortcut.getId()); + if ((knownItem != null) && player.getAutoUseSettings().getAutoSupplyItems().contains(knownItem.getId())) + { + if (knownItem.isPotion()) + { + AutoUseTaskManager.getInstance().removeAutoPotionItem(player, knownItem.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, knownItem.getId()); + } + } + } + } } } diff --git a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java index 960dc82bf2..0ee6701114 100644 --- a/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java +++ b/L2J_Mobius_Essence_4.2_DwellingOfSpirits/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java @@ -18,6 +18,7 @@ package handlers.effecthandlers; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.enums.SubclassInfoType; +import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -32,6 +33,7 @@ import org.l2jmobius.gameserver.network.serverpackets.ExSubjobInfo; import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowAll; import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowDeleteAll; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; /** * @author Sdw @@ -104,5 +106,47 @@ public class ClassChange extends AbstractEffect } } } + + // Stop auto use. + for (Shortcut shortcut : player.getAllShortCuts()) + { + if (!shortcut.isAutoUse()) + { + continue; + } + + player.removeAutoShortcut(shortcut.getSlot(), shortcut.getPage()); + + if (player.getAutoUseSettings().isAutoSkill(shortcut.getId())) + { + final Skill knownSkill = player.getKnownSkill(shortcut.getId()); + if (knownSkill != null) + { + if (knownSkill.isBad()) + { + AutoUseTaskManager.getInstance().removeAutoSkill(player, shortcut.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoBuff(player, shortcut.getId()); + } + } + } + else + { + final ItemInstance knownItem = player.getInventory().getItemByObjectId(shortcut.getId()); + if ((knownItem != null) && player.getAutoUseSettings().getAutoSupplyItems().contains(knownItem.getId())) + { + if (knownItem.isPotion()) + { + AutoUseTaskManager.getInstance().removeAutoPotionItem(player, knownItem.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, knownItem.getId()); + } + } + } + } } } diff --git a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java index 960dc82bf2..0ee6701114 100644 --- a/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java +++ b/L2J_Mobius_Essence_5.2_FrostLord/dist/game/data/scripts/handlers/effecthandlers/ClassChange.java @@ -18,6 +18,7 @@ package handlers.effecthandlers; import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.enums.SubclassInfoType; +import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance; @@ -32,6 +33,7 @@ import org.l2jmobius.gameserver.network.serverpackets.ExSubjobInfo; import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowAll; import org.l2jmobius.gameserver.network.serverpackets.PartySmallWindowDeleteAll; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; +import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager; /** * @author Sdw @@ -104,5 +106,47 @@ public class ClassChange extends AbstractEffect } } } + + // Stop auto use. + for (Shortcut shortcut : player.getAllShortCuts()) + { + if (!shortcut.isAutoUse()) + { + continue; + } + + player.removeAutoShortcut(shortcut.getSlot(), shortcut.getPage()); + + if (player.getAutoUseSettings().isAutoSkill(shortcut.getId())) + { + final Skill knownSkill = player.getKnownSkill(shortcut.getId()); + if (knownSkill != null) + { + if (knownSkill.isBad()) + { + AutoUseTaskManager.getInstance().removeAutoSkill(player, shortcut.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoBuff(player, shortcut.getId()); + } + } + } + else + { + final ItemInstance knownItem = player.getInventory().getItemByObjectId(shortcut.getId()); + if ((knownItem != null) && player.getAutoUseSettings().getAutoSupplyItems().contains(knownItem.getId())) + { + if (knownItem.isPotion()) + { + AutoUseTaskManager.getInstance().removeAutoPotionItem(player, knownItem.getId()); + } + else + { + AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, knownItem.getId()); + } + } + } + } } }