Should remove auto use when adding a new shortcut.
Contributed by nasseka.
This commit is contained in:
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
@@ -27,6 +27,7 @@ import org.l2jmobius.gameserver.model.variables.PlayerVariables;
|
|||||||
import org.l2jmobius.gameserver.network.GameClient;
|
import org.l2jmobius.gameserver.network.GameClient;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
import org.l2jmobius.gameserver.network.serverpackets.ShortCutRegister;
|
||||||
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
import org.l2jmobius.gameserver.network.serverpackets.autoplay.ExActivateAutoShortcut;
|
||||||
|
import org.l2jmobius.gameserver.taskmanager.AutoUseTaskManager;
|
||||||
|
|
||||||
public class RequestShortCutReg implements IClientIncomingPacket
|
public class RequestShortCutReg implements IClientIncomingPacket
|
||||||
{
|
{
|
||||||
@@ -69,6 +70,58 @@ public class RequestShortCutReg implements IClientIncomingPacket
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Delete the shortcut.
|
||||||
|
final Shortcut oldShortcut = player.getShortCut(_slot, _page);
|
||||||
|
player.deleteShortCut(_slot, _page);
|
||||||
|
if (oldShortcut != null)
|
||||||
|
{
|
||||||
|
boolean removed = true;
|
||||||
|
// Keep other similar shortcuts activated.
|
||||||
|
if (oldShortcut.isAutoUse())
|
||||||
|
{
|
||||||
|
player.removeAutoShortcut(_slot, _page);
|
||||||
|
for (Shortcut shortcut : player.getAllShortCuts())
|
||||||
|
{
|
||||||
|
if ((oldShortcut.getId() == shortcut.getId()) && (oldShortcut.getType() == shortcut.getType()))
|
||||||
|
{
|
||||||
|
player.addAutoShortcut(shortcut.getSlot(), shortcut.getPage());
|
||||||
|
removed = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Remove auto used ids.
|
||||||
|
if (removed)
|
||||||
|
{
|
||||||
|
switch (oldShortcut.getType())
|
||||||
|
{
|
||||||
|
case SKILL:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoBuff(player, oldShortcut.getId());
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSkill(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ITEM:
|
||||||
|
{
|
||||||
|
if (player.getInventory().getItemByObjectId(oldShortcut.getId()).isPotion())
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoPotionItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoSupplyItem(player, oldShortcut.getId());
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case ACTION:
|
||||||
|
{
|
||||||
|
AutoUseTaskManager.getInstance().removeAutoAction(player, oldShortcut.getId());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
player.restoreAutoShortcutVisual();
|
||||||
|
|
||||||
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
final Shortcut sc = new Shortcut(_slot, _page, _type, _id, _level, _subLevel, _characterType);
|
||||||
sc.setAutoUse(_active);
|
sc.setAutoUse(_active);
|
||||||
player.registerShortCut(sc);
|
player.registerShortCut(sc);
|
||||||
|
Reference in New Issue
Block a user