Pass replaced skills to player auto use settings.
This commit is contained in:
		@@ -70,9 +70,25 @@ public class ReplaceSkillBySkill extends AbstractEffect
 | 
			
		||||
			{
 | 
			
		||||
				final int slot = shortcut.getSlot();
 | 
			
		||||
				final int page = shortcut.getPage();
 | 
			
		||||
				final int characterType = shortcut.getCharacterType();
 | 
			
		||||
				final Shortcut newShortcut = new Shortcut(slot, page, ShortcutType.SKILL, addedSkill.getId(), addedSkill.getLevel(), addedSkill.getSubLevel(), shortcut.getCharacterType());
 | 
			
		||||
				if (shortcut.isAutoUse())
 | 
			
		||||
				{
 | 
			
		||||
					newShortcut.setAutoUse(true);
 | 
			
		||||
					if (knownSkill.isBad())
 | 
			
		||||
					{
 | 
			
		||||
						if (player.getAutoUseSettings().getAutoSkills().contains(knownSkill.getId()))
 | 
			
		||||
						{
 | 
			
		||||
							player.getAutoUseSettings().getAutoSkills().add(addedSkill.getId());
 | 
			
		||||
							player.getAutoUseSettings().getAutoSkills().remove(Integer.valueOf(knownSkill.getId()));
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					else if (player.getAutoUseSettings().getAutoBuffs().contains(knownSkill.getId()))
 | 
			
		||||
					{
 | 
			
		||||
						player.getAutoUseSettings().getAutoBuffs().add(addedSkill.getId());
 | 
			
		||||
						player.getAutoUseSettings().getAutoBuffs().remove(knownSkill.getId());
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				player.deleteShortCut(slot, page);
 | 
			
		||||
				final Shortcut newShortcut = new Shortcut(slot, page, ShortcutType.SKILL, addedSkill.getId(), addedSkill.getLevel(), addedSkill.getSubLevel(), characterType);
 | 
			
		||||
				player.registerShortCut(newShortcut);
 | 
			
		||||
				player.sendPacket(new ShortCutRegister(newShortcut));
 | 
			
		||||
			}
 | 
			
		||||
@@ -80,7 +96,11 @@ public class ReplaceSkillBySkill extends AbstractEffect
 | 
			
		||||
		
 | 
			
		||||
		player.removeSkill(knownSkill, false);
 | 
			
		||||
		player.sendSkillList();
 | 
			
		||||
		ThreadPool.schedule(() -> player.sendPacket(new ShortCutInit(player)), 1100);
 | 
			
		||||
		ThreadPool.schedule(() ->
 | 
			
		||||
		{
 | 
			
		||||
			player.sendPacket(new ShortCutInit(player));
 | 
			
		||||
			player.restoreAutoShortcutVisual();
 | 
			
		||||
		}, 1100);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@Override
 | 
			
		||||
@@ -102,9 +122,25 @@ public class ReplaceSkillBySkill extends AbstractEffect
 | 
			
		||||
			{
 | 
			
		||||
				final int slot = shortcut.getSlot();
 | 
			
		||||
				final int page = shortcut.getPage();
 | 
			
		||||
				final int characterType = shortcut.getCharacterType();
 | 
			
		||||
				final Shortcut newShortcut = new Shortcut(slot, page, ShortcutType.SKILL, addedSkill.getId(), addedSkill.getLevel(), addedSkill.getSubLevel(), shortcut.getCharacterType());
 | 
			
		||||
				if (shortcut.isAutoUse())
 | 
			
		||||
				{
 | 
			
		||||
					newShortcut.setAutoUse(true);
 | 
			
		||||
					if (knownSkill.isBad())
 | 
			
		||||
					{
 | 
			
		||||
						if (player.getAutoUseSettings().getAutoSkills().contains(knownSkill.getId()))
 | 
			
		||||
						{
 | 
			
		||||
							player.getAutoUseSettings().getAutoSkills().add(addedSkill.getId());
 | 
			
		||||
							player.getAutoUseSettings().getAutoSkills().remove(Integer.valueOf(knownSkill.getId()));
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					else if (player.getAutoUseSettings().getAutoBuffs().contains(knownSkill.getId()))
 | 
			
		||||
					{
 | 
			
		||||
						player.getAutoUseSettings().getAutoBuffs().add(addedSkill.getId());
 | 
			
		||||
						player.getAutoUseSettings().getAutoBuffs().remove(knownSkill.getId());
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
				player.deleteShortCut(slot, page);
 | 
			
		||||
				final Shortcut newShortcut = new Shortcut(slot, page, ShortcutType.SKILL, addedSkill.getId(), addedSkill.getLevel(), addedSkill.getSubLevel(), characterType);
 | 
			
		||||
				player.registerShortCut(newShortcut);
 | 
			
		||||
				player.sendPacket(new ShortCutRegister(newShortcut));
 | 
			
		||||
			}
 | 
			
		||||
@@ -112,6 +148,10 @@ public class ReplaceSkillBySkill extends AbstractEffect
 | 
			
		||||
		
 | 
			
		||||
		player.removeSkill(knownSkill, false);
 | 
			
		||||
		player.sendSkillList();
 | 
			
		||||
		ThreadPool.schedule(() -> player.sendPacket(new ShortCutInit(player)), 1100);
 | 
			
		||||
		ThreadPool.schedule(() ->
 | 
			
		||||
		{
 | 
			
		||||
			player.sendPacket(new ShortCutInit(player));
 | 
			
		||||
			player.restoreAutoShortcutVisual();
 | 
			
		||||
		}, 1100);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -225,16 +225,36 @@ public class TimedHunting extends AbstractInstance
 | 
			
		||||
				if ((shortcut.getType() == ShortcutType.SKILL) && (shortcut.getId() == normalSkillId))
 | 
			
		||||
				{
 | 
			
		||||
					final Shortcut newShortcut = new Shortcut(shortcut.getSlot(), shortcut.getPage(), ShortcutType.SKILL, transcendentSkillId, shortcut.getLevel(), shortcut.getSubLevel(), shortcut.getCharacterType());
 | 
			
		||||
					if (shortcut.isAutoUse())
 | 
			
		||||
					{
 | 
			
		||||
						newShortcut.setAutoUse(true);
 | 
			
		||||
						if (knownSkill.isBad())
 | 
			
		||||
						{
 | 
			
		||||
							if (player.getAutoUseSettings().getAutoSkills().contains(normalSkillId))
 | 
			
		||||
							{
 | 
			
		||||
								player.getAutoUseSettings().getAutoSkills().add(transcendentSkillId);
 | 
			
		||||
								player.getAutoUseSettings().getAutoSkills().remove(Integer.valueOf(normalSkillId));
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
						else if (player.getAutoUseSettings().getAutoBuffs().contains(normalSkillId))
 | 
			
		||||
						{
 | 
			
		||||
							player.getAutoUseSettings().getAutoBuffs().add(transcendentSkillId);
 | 
			
		||||
							player.getAutoUseSettings().getAutoBuffs().remove(normalSkillId);
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					player.deleteShortCut(shortcut.getSlot(), shortcut.getPage());
 | 
			
		||||
					player.registerShortCut(newShortcut);
 | 
			
		||||
					player.sendPacket(new ShortCutRegister(newShortcut));
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			player.removeSkill(knownSkill, false);
 | 
			
		||||
		}
 | 
			
		||||
		player.sendSkillList();
 | 
			
		||||
		ThreadPool.schedule(() -> player.sendPacket(new ShortCutInit(player)), 1100);
 | 
			
		||||
		ThreadPool.schedule(() ->
 | 
			
		||||
		{
 | 
			
		||||
			player.sendPacket(new ShortCutInit(player));
 | 
			
		||||
			player.restoreAutoShortcutVisual();
 | 
			
		||||
		}, 1100);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	@Override
 | 
			
		||||
@@ -268,6 +288,23 @@ public class TimedHunting extends AbstractInstance
 | 
			
		||||
				if ((shortcut.getType() == ShortcutType.SKILL) && (shortcut.getId() == transcendentSkillId))
 | 
			
		||||
				{
 | 
			
		||||
					final Shortcut newShortcut = new Shortcut(shortcut.getSlot(), shortcut.getPage(), ShortcutType.SKILL, normalSkillId, shortcut.getLevel(), shortcut.getSubLevel(), shortcut.getCharacterType());
 | 
			
		||||
					if (shortcut.isAutoUse())
 | 
			
		||||
					{
 | 
			
		||||
						newShortcut.setAutoUse(true);
 | 
			
		||||
						if (knownSkill.isBad())
 | 
			
		||||
						{
 | 
			
		||||
							if (player.getAutoUseSettings().getAutoSkills().contains(transcendentSkillId))
 | 
			
		||||
							{
 | 
			
		||||
								player.getAutoUseSettings().getAutoSkills().add(normalSkillId);
 | 
			
		||||
								player.getAutoUseSettings().getAutoSkills().remove(Integer.valueOf(transcendentSkillId));
 | 
			
		||||
							}
 | 
			
		||||
						}
 | 
			
		||||
						else if (player.getAutoUseSettings().getAutoBuffs().contains(transcendentSkillId))
 | 
			
		||||
						{
 | 
			
		||||
							player.getAutoUseSettings().getAutoBuffs().add(normalSkillId);
 | 
			
		||||
							player.getAutoUseSettings().getAutoBuffs().remove(transcendentSkillId);
 | 
			
		||||
						}
 | 
			
		||||
					}
 | 
			
		||||
					player.deleteShortCut(shortcut.getSlot(), shortcut.getPage());
 | 
			
		||||
					player.registerShortCut(newShortcut);
 | 
			
		||||
					player.sendPacket(new ShortCutRegister(newShortcut));
 | 
			
		||||
@@ -277,7 +314,11 @@ public class TimedHunting extends AbstractInstance
 | 
			
		||||
			player.removeSkill(knownSkill, false);
 | 
			
		||||
		}
 | 
			
		||||
		player.sendSkillList();
 | 
			
		||||
		ThreadPool.schedule(() -> player.sendPacket(new ShortCutInit(player)), 1100);
 | 
			
		||||
		ThreadPool.schedule(() ->
 | 
			
		||||
		{
 | 
			
		||||
			player.sendPacket(new ShortCutInit(player));
 | 
			
		||||
			player.restoreAutoShortcutVisual();
 | 
			
		||||
		}, 1100);
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	private void startEvent(Player player)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user