ClassChange effect using a small delay.

This commit is contained in:
MobiusDevelopment
2021-10-28 07:18:20 +00:00
parent 7f43985680
commit d0c5cfe4c7
19 changed files with 1017 additions and 922 deletions

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -61,6 +62,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -106,5 +110,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -61,6 +62,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -106,5 +110,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -61,6 +62,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -106,5 +110,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -61,6 +62,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -106,5 +110,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -61,6 +62,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -106,5 +110,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -61,6 +62,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -106,5 +110,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -61,6 +62,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -106,5 +110,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.Shortcut;
@@ -63,6 +64,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -151,5 +155,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.Shortcut;
@@ -63,6 +64,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -151,5 +155,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.Shortcut;
@@ -63,6 +64,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -151,5 +155,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -60,6 +61,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -104,5 +108,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -60,6 +61,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -104,5 +108,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -60,6 +61,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -104,5 +108,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -60,6 +61,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -104,5 +108,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -60,6 +61,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -104,5 +108,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.Shortcut;
@@ -62,6 +63,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -148,5 +152,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.StatSet;
@@ -60,6 +61,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -104,5 +108,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.Shortcut;
@@ -62,6 +63,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -148,5 +152,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }

View File

@@ -16,6 +16,7 @@
*/ */
package handlers.effecthandlers; package handlers.effecthandlers;
import org.l2jmobius.commons.threads.ThreadPool;
import org.l2jmobius.gameserver.data.xml.SkillData; import org.l2jmobius.gameserver.data.xml.SkillData;
import org.l2jmobius.gameserver.enums.SubclassInfoType; import org.l2jmobius.gameserver.enums.SubclassInfoType;
import org.l2jmobius.gameserver.model.Shortcut; import org.l2jmobius.gameserver.model.Shortcut;
@@ -62,6 +63,9 @@ public class ClassChange extends AbstractEffect
return; return;
} }
// Executing later otherwise interrupted exception during storeCharBase.
ThreadPool.schedule(() ->
{
final PlayerInstance player = effected.getActingPlayer(); final PlayerInstance player = effected.getActingPlayer();
if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID)) if (player.isTransformed() || player.isSubclassLocked() || player.isAffectedBySkill(IDENTITY_CRISIS_SKILL_ID))
{ {
@@ -148,5 +152,6 @@ public class ClassChange extends AbstractEffect
} }
} }
} }
}, 500);
} }
} }