Fixed visible GM characters.

This commit is contained in:
MobiusDevelopment
2019-08-17 23:03:45 +00:00
parent bfeaf1cd7c
commit e8987367c0
28 changed files with 575 additions and 616 deletions
@@ -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
@@ -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();
@@ -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
@@ -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();
@@ -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
@@ -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();
@@ -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
@@ -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();
@@ -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
@@ -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();
@@ -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);
}
}); });
} }
@@ -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();
@@ -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);
}
}); });
} }
@@ -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();
@@ -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)
{ {
@@ -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();
@@ -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
@@ -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();
@@ -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
@@ -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();
@@ -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
@@ -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();
@@ -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);
}
}); });
} }
@@ -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();
@@ -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);
}
}); });
} }
@@ -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();
@@ -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);
}
}); });
} }
@@ -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();