Fixed visible GM characters.
This commit is contained in:
+9
@@ -10459,6 +10459,15 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send info to nearby players
|
||||||
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
|
{
|
||||||
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+32
-41
@@ -154,7 +154,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -168,55 +168,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -421,7 +413,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+9
@@ -10466,6 +10466,15 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send info to nearby players
|
||||||
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
|
{
|
||||||
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+32
-41
@@ -159,7 +159,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -173,55 +173,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+9
@@ -10468,6 +10468,15 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send info to nearby players
|
||||||
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
|
{
|
||||||
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+32
-41
@@ -159,7 +159,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -173,55 +173,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+9
@@ -10458,6 +10458,15 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send info to nearby players
|
||||||
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
|
{
|
||||||
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+32
-41
@@ -159,7 +159,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -173,55 +173,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+9
@@ -10448,6 +10448,15 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send info to nearby players
|
||||||
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
|
{
|
||||||
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+32
-41
@@ -157,7 +157,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -171,55 +171,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+4
-1
@@ -10452,7 +10452,10 @@ public class PlayerInstance extends Playable
|
|||||||
// send info to nearby players
|
// send info to nearby players
|
||||||
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
{
|
{
|
||||||
sendInfo(player);
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+32
-41
@@ -157,7 +157,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -171,55 +171,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+4
-1
@@ -10458,7 +10458,10 @@ public class PlayerInstance extends Playable
|
|||||||
// send info to nearby players
|
// send info to nearby players
|
||||||
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
{
|
{
|
||||||
sendInfo(player);
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+32
-41
@@ -157,7 +157,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -171,55 +171,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+35
-38
@@ -586,49 +586,46 @@ public class EnterWorld extends GameClientPacket
|
|||||||
{
|
{
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminCommandAccessRights.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminCommandAccessRights.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
player.setInRefusalMode(true);
|
||||||
{
|
player.setIsInvul(true);
|
||||||
player.setInRefusalMode(true);
|
player.getAppearance().setInvisible();
|
||||||
player.setIsInvul(true);
|
|
||||||
player.getAppearance().setInvisible();
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminCommandAccessRights.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminCommandAccessRights.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.getAppearance().setInvisible();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminCommandAccessRights.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInRefusalMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminCommandAccessRights.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
GmListTable.getInstance().addGm(player, false);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
GmListTable.getInstance().addGm(player, true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminCommandAccessRights.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminCommandAccessRights.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.getAppearance().setInvisible();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminCommandAccessRights.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInRefusalMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_AUTO_LIST && AdminCommandAccessRights.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
GmListTable.getInstance().addGm(player, false);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
GmListTable.getInstance().addGm(player, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_SPECIAL_EFFECT)
|
if (Config.GM_SPECIAL_EFFECT)
|
||||||
{
|
{
|
||||||
|
|||||||
+32
-40
@@ -17,7 +17,6 @@
|
|||||||
package org.l2jmobius.gameserver.network.clientpackets;
|
package org.l2jmobius.gameserver.network.clientpackets;
|
||||||
|
|
||||||
import org.l2jmobius.Config;
|
import org.l2jmobius.Config;
|
||||||
import org.l2jmobius.commons.concurrent.ThreadPool;
|
|
||||||
import org.l2jmobius.commons.network.PacketReader;
|
import org.l2jmobius.commons.network.PacketReader;
|
||||||
import org.l2jmobius.gameserver.LoginServerThread;
|
import org.l2jmobius.gameserver.LoginServerThread;
|
||||||
import org.l2jmobius.gameserver.SevenSigns;
|
import org.l2jmobius.gameserver.SevenSigns;
|
||||||
@@ -149,6 +148,8 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
{
|
{
|
||||||
@@ -163,54 +164,46 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -434,7 +427,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+9
@@ -10394,6 +10394,15 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send info to nearby players
|
||||||
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
|
{
|
||||||
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+32
-41
@@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -423,7 +415,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+9
@@ -10401,6 +10401,15 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send info to nearby players
|
||||||
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
|
{
|
||||||
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+32
-41
@@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -423,7 +415,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+9
@@ -10386,6 +10386,15 @@ public class PlayerInstance extends Playable
|
|||||||
{
|
{
|
||||||
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
sendPacket(new ExStartScenePlayer(_movieHolder.getMovie()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// send info to nearby players
|
||||||
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
|
{
|
||||||
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
+32
-41
@@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -425,7 +417,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+4
-1
@@ -10417,7 +10417,10 @@ public class PlayerInstance extends Playable
|
|||||||
// send info to nearby players
|
// send info to nearby players
|
||||||
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
{
|
{
|
||||||
sendInfo(player);
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+32
-41
@@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -425,7 +417,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+4
-1
@@ -10417,7 +10417,10 @@ public class PlayerInstance extends Playable
|
|||||||
// send info to nearby players
|
// send info to nearby players
|
||||||
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
{
|
{
|
||||||
sendInfo(player);
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+32
-41
@@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -425,7 +417,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
+4
-1
@@ -10417,7 +10417,10 @@ public class PlayerInstance extends Playable
|
|||||||
// send info to nearby players
|
// send info to nearby players
|
||||||
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player ->
|
||||||
{
|
{
|
||||||
sendInfo(player);
|
if (isVisibleFor(player))
|
||||||
|
{
|
||||||
|
sendInfo(player);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+32
-41
@@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
|
|
||||||
client.setClientTracert(tracert);
|
client.setClientTracert(tracert);
|
||||||
|
|
||||||
player.broadcastUserInfo();
|
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
||||||
|
|
||||||
// Restore to instanced area if enabled
|
// Restore to instanced area if enabled
|
||||||
if (Config.RESTORE_PLAYER_INSTANCE)
|
if (Config.RESTORE_PLAYER_INSTANCE)
|
||||||
@@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
vars.remove("INSTANCE_RESTORE");
|
vars.remove("INSTANCE_RESTORE");
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (World.getInstance().findObject(player.getObjectId()) != null)
|
|
||||||
// {
|
|
||||||
// LOGGER.warning("User already exists in Object ID map! User " + player.getName() + " is a character clone.");
|
|
||||||
// }
|
|
||||||
|
|
||||||
player.updatePvpTitleAndColor(false);
|
player.updatePvpTitleAndColor(false);
|
||||||
|
|
||||||
// Apply special GM properties to the GM when entering
|
// Apply special GM properties to the GM when entering
|
||||||
if (player.isGM())
|
if (player.isGM())
|
||||||
{
|
{
|
||||||
ThreadPool.schedule(() -> // Needs a small delay.
|
gmStartupProcess:
|
||||||
{
|
{
|
||||||
gmStartupProcess:
|
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
if (Config.GM_STARTUP_BUILDER_HIDE && AdminData.getInstance().hasAccess("admin_hide", player.getAccessLevel()))
|
BuilderUtil.setHiding(player, true);
|
||||||
{
|
|
||||||
BuilderUtil.setHiding(player, true);
|
|
||||||
|
|
||||||
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
BuilderUtil.sendSysMessage(player, "hide is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder.");
|
||||||
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
BuilderUtil.sendSysMessage(player, "whisperoff is default for builder.");
|
||||||
|
|
||||||
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
// It isn't recommend to use the below custom L2J GMStartup functions together with retail-like GMStartupBuilderHide, so breaking the process at that stage.
|
||||||
break gmStartupProcess;
|
break gmStartupProcess;
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setIsInvul(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setInvisible(true);
|
|
||||||
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setSilenceMode(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
|
||||||
{
|
|
||||||
player.setDietMode(true);
|
|
||||||
player.refreshOverloaded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}, 15);
|
|
||||||
|
if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setIsInvul(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_INVISIBLE && AdminData.getInstance().hasAccess("admin_invisible", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setInvisible(true);
|
||||||
|
player.getEffectList().startAbnormalVisualEffect(AbnormalVisualEffect.STEALTH);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_SILENCE && AdminData.getInstance().hasAccess("admin_silence", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setSilenceMode(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", player.getAccessLevel()))
|
||||||
|
{
|
||||||
|
player.setDietMode(true);
|
||||||
|
player.refreshOverloaded(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", player.getAccessLevel()))
|
||||||
{
|
{
|
||||||
@@ -425,7 +417,6 @@ public class EnterWorld implements IClientIncomingPacket
|
|||||||
player.setSpawnProtection(true);
|
player.setSpawnProtection(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
player.spawnMe(player.getX(), player.getY(), player.getZ());
|
|
||||||
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading()));
|
||||||
|
|
||||||
player.getInventory().applyItemSkills();
|
player.getInventory().applyItemSkills();
|
||||||
|
|||||||
Reference in New Issue
Block a user