Avoid packet flood from class change.

This commit is contained in:
MobiusDevelopment
2021-12-28 01:38:52 +00:00
parent 744c8ba9e5
commit bfb606730d
42 changed files with 840 additions and 378 deletions
@@ -2482,6 +2482,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9575,6 +9577,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9671,6 +9675,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9942,6 +9948,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2484,6 +2484,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9578,6 +9580,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9674,6 +9678,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9945,6 +9951,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2486,6 +2486,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9580,6 +9582,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9676,6 +9680,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9947,6 +9953,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2494,6 +2494,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9571,6 +9573,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9667,6 +9671,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9938,6 +9944,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2523,6 +2523,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9595,6 +9597,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9691,6 +9695,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9962,6 +9968,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2523,6 +2523,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9595,6 +9597,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9691,6 +9695,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9962,6 +9968,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2523,6 +2523,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9601,6 +9603,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9697,6 +9701,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9968,6 +9974,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2459,6 +2459,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9616,6 +9618,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9712,6 +9716,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9990,6 +9996,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2490,6 +2490,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9718,6 +9720,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9814,6 +9818,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -10092,6 +10098,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2507,6 +2507,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9744,6 +9746,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9840,6 +9844,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -10118,6 +10124,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2509,6 +2509,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9794,6 +9796,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9890,6 +9894,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -10168,6 +10174,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2449,6 +2449,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9477,6 +9479,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9573,6 +9577,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9844,6 +9850,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2449,6 +2449,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9477,6 +9479,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9573,6 +9577,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9844,6 +9850,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2447,6 +2447,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9463,6 +9465,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9559,6 +9563,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9830,6 +9836,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2461,6 +2461,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9490,6 +9492,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9586,6 +9590,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9857,6 +9863,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2461,6 +2461,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9490,6 +9492,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9586,6 +9590,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9857,6 +9863,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2387,6 +2387,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9444,6 +9446,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9540,6 +9544,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9813,6 +9819,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2446,6 +2446,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9465,6 +9467,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9561,6 +9565,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9832,6 +9838,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2464,6 +2464,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9609,6 +9611,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9705,6 +9709,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -9978,6 +9984,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2495,6 +2495,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9675,6 +9677,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9771,6 +9775,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -10044,6 +10050,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }
@@ -2495,6 +2495,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9675,6 +9677,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -9771,6 +9775,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
return addSubClass(newClassId, classIndex, isDualClass); return addSubClass(newClassId, classIndex, isDualClass);
@@ -10044,6 +10050,8 @@ public class Player extends Playable
{ {
_subclassLock = false; _subclassLock = false;
getStat().recalculateStats(false); getStat().recalculateStats(false);
updateAbnormalVisualEffects();
sendSkillList();
} }
} }
@@ -46,11 +46,16 @@ import org.l2jmobius.gameserver.model.World;
import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.actor.Player;
import org.l2jmobius.gameserver.model.clan.Clan; import org.l2jmobius.gameserver.model.clan.Clan;
import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder; import org.l2jmobius.gameserver.model.holders.ClientHardwareInfoHolder;
import org.l2jmobius.gameserver.network.serverpackets.AbnormalStatusUpdate;
import org.l2jmobius.gameserver.network.serverpackets.AcquireSkillList;
import org.l2jmobius.gameserver.network.serverpackets.ExAbnormalStatusUpdateFromTarget;
import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage; import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
import org.l2jmobius.gameserver.network.serverpackets.ExUserInfoAbnormalVisualEffect;
import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket; import org.l2jmobius.gameserver.network.serverpackets.IClientOutgoingPacket;
import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld; import org.l2jmobius.gameserver.network.serverpackets.LeaveWorld;
import org.l2jmobius.gameserver.network.serverpackets.NpcInfo; import org.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import org.l2jmobius.gameserver.network.serverpackets.NpcSay; import org.l2jmobius.gameserver.network.serverpackets.NpcSay;
import org.l2jmobius.gameserver.network.serverpackets.SkillList;
import org.l2jmobius.gameserver.network.serverpackets.SystemMessage; import org.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import org.l2jmobius.gameserver.security.SecondaryPasswordAuth; import org.l2jmobius.gameserver.security.SecondaryPasswordAuth;
import org.l2jmobius.gameserver.util.FloodProtectors; import org.l2jmobius.gameserver.util.FloodProtectors;
@@ -222,27 +227,36 @@ public class GameClient extends ChannelInboundHandler<GameClient>
return; return;
} }
// TODO: Set as parameter to packets used? if (_player != null)
if (Config.MULTILANG_ENABLE && (_player != null))
{ {
final String lang = _player.getLang(); // Avoid flood from class change.
if ((lang != null) && !lang.equals("en")) if (_player.isChangingClass() && ((packet instanceof SkillList) || (packet instanceof AcquireSkillList) || (packet instanceof ExUserInfoAbnormalVisualEffect) || (packet instanceof AbnormalStatusUpdate) || (packet instanceof ExAbnormalStatusUpdateFromTarget)))
{ {
if (packet instanceof SystemMessage) return;
}
// TODO: Set as parameter to packets used?
if (Config.MULTILANG_ENABLE)
{
final String lang = _player.getLang();
if ((lang != null) && !lang.equals("en"))
{ {
((SystemMessage) packet).setLang(lang); if (packet instanceof SystemMessage)
} {
else if (packet instanceof NpcSay) ((SystemMessage) packet).setLang(lang);
{ }
((NpcSay) packet).setLang(lang); else if (packet instanceof NpcSay)
} {
else if (packet instanceof ExShowScreenMessage) ((NpcSay) packet).setLang(lang);
{ }
((ExShowScreenMessage) packet).setLang(lang); else if (packet instanceof ExShowScreenMessage)
} {
else if (packet instanceof NpcInfo) ((ExShowScreenMessage) packet).setLang(lang);
{ }
((NpcInfo) packet).setLang(lang); else if (packet instanceof NpcInfo)
{
((NpcInfo) packet).setLang(lang);
}
} }
} }
} }