diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index b50a1f5888..cca3a913d3 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10459,6 +10459,15 @@ public class PlayerInstance extends Playable { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); } + + // send info to nearby players + World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> + { + if (isVisibleFor(player)) + { + sendInfo(player); + } + }); } @Override diff --git a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index f598be2377..98a389d991 100644 --- a/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_1.0_Ertheia/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -154,7 +154,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -168,55 +168,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -421,7 +413,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index bb145e7534..4fc59b3b7a 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10466,6 +10466,15 @@ public class PlayerInstance extends Playable { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); } + + // send info to nearby players + World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> + { + if (isVisibleFor(player)) + { + sendInfo(player); + } + }); } @Override diff --git a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 5db72c696e..9eaa022d60 100644 --- a/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_2.5_Underground/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -159,7 +159,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -173,55 +173,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index f08e004775..3690540a5c 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10468,6 +10468,15 @@ public class PlayerInstance extends Playable { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); } + + // send info to nearby players + World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> + { + if (isVisibleFor(player)) + { + sendInfo(player); + } + }); } @Override diff --git a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 5db72c696e..9eaa022d60 100644 --- a/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_3.0_Helios/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -159,7 +159,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -173,55 +173,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 2c3903a204..985953b314 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10458,6 +10458,15 @@ public class PlayerInstance extends Playable { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); } + + // send info to nearby players + World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> + { + if (isVisibleFor(player)) + { + sendInfo(player); + } + }); } @Override diff --git a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 802ae44f41..6319bfebcd 100644 --- a/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_4.0_GrandCrusade/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -159,7 +159,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -173,55 +173,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index f9fa73eb8f..0de2aed83c 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10448,6 +10448,15 @@ public class PlayerInstance extends Playable { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); } + + // send info to nearby players + World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> + { + if (isVisibleFor(player)) + { + sendInfo(player); + } + }); } @Override diff --git a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index c2104d6d94..e04c53c17f 100644 --- a/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_5.0_Salvation/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -157,7 +157,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -171,55 +171,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index b05d5965c9..dcdb2af200 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10452,7 +10452,10 @@ public class PlayerInstance extends Playable // send info to nearby players World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> { - sendInfo(player); + if (isVisibleFor(player)) + { + sendInfo(player); + } }); } diff --git a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 6bbb9ea10a..3807c5511a 100644 --- a/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_5.5_EtinasFate/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -157,7 +157,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -171,55 +171,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index a1ba4a4948..383a4f8d30 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10458,7 +10458,10 @@ public class PlayerInstance extends Playable // send info to nearby players World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> { - sendInfo(player); + if (isVisibleFor(player)) + { + sendInfo(player); + } }); } diff --git a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 6bbb9ea10a..3807c5511a 100644 --- a/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_6.0_Fafurion/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -157,7 +157,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -171,55 +171,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -426,7 +418,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 848f882b4a..05d6c8fdf3 100644 --- a/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_C6_Interlude/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -586,49 +586,46 @@ public class EnterWorld extends GameClientPacket { 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.getAppearance().setInvisible(); - - BuilderUtil.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + player.setInRefusalMode(true); + player.setIsInvul(true); + player.getAppearance().setInvisible(); - if (Config.GM_STARTUP_INVULNERABLE && AdminCommandAccessRights.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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) { diff --git a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 8cdbe0ba85..10a7c3a84e 100644 --- a/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_CT_2.6_HighFive/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -17,7 +17,6 @@ package org.l2jmobius.gameserver.network.clientpackets; import org.l2jmobius.Config; -import org.l2jmobius.commons.concurrent.ThreadPool; import org.l2jmobius.commons.network.PacketReader; import org.l2jmobius.gameserver.LoginServerThread; import org.l2jmobius.gameserver.SevenSigns; @@ -149,6 +148,8 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); + player.spawnMe(player.getX(), player.getY(), player.getZ()); + // Restore to instanced area if enabled 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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(); - } + // 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; } - }, 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())) { @@ -434,7 +427,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index ab273ba6ea..80da0e314a 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10394,6 +10394,15 @@ public class PlayerInstance extends Playable { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); } + + // send info to nearby players + World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> + { + if (isVisibleFor(player)) + { + sendInfo(player); + } + }); } @Override diff --git a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 92aa9c178f..0a3b9259f3 100644 --- a/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_Classic_2.0_Saviors/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -423,7 +415,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index ec9be33c8a..bed3e69f14 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10401,6 +10401,15 @@ public class PlayerInstance extends Playable { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); } + + // send info to nearby players + World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> + { + if (isVisibleFor(player)) + { + sendInfo(player); + } + }); } @Override diff --git a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index 3b99bd4139..30bb2e7493 100644 --- a/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_Classic_2.1_Zaken/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -423,7 +415,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index f3dcf6c045..6d63b5a6ea 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10386,6 +10386,15 @@ public class PlayerInstance extends Playable { sendPacket(new ExStartScenePlayer(_movieHolder.getMovie())); } + + // send info to nearby players + World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> + { + if (isVisibleFor(player)) + { + sendInfo(player); + } + }); } @Override diff --git a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index e2ca4d368f..e3a57aefde 100644 --- a/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_Classic_2.2_Antharas/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -425,7 +417,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index 1dee2bcd06..a9dd1fd428 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10417,7 +10417,10 @@ public class PlayerInstance extends Playable // send info to nearby players World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> { - sendInfo(player); + if (isVisibleFor(player)) + { + sendInfo(player); + } }); } diff --git a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index e2ca4d368f..e3a57aefde 100644 --- a/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_Classic_2.3_SevenSigns/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -425,7 +417,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index ffbc7c4101..d341ad5541 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10417,7 +10417,10 @@ public class PlayerInstance extends Playable // send info to nearby players World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> { - sendInfo(player); + if (isVisibleFor(player)) + { + sendInfo(player); + } }); } diff --git a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index e2ca4d368f..e3a57aefde 100644 --- a/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_Classic_2.4_SecretOfEmpire/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -425,7 +417,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills(); diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java index ffbc7c4101..d341ad5541 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/model/actor/instance/PlayerInstance.java @@ -10417,7 +10417,10 @@ public class PlayerInstance extends Playable // send info to nearby players World.getInstance().forEachVisibleObject(this, PlayerInstance.class, player -> { - sendInfo(player); + if (isVisibleFor(player)) + { + sendInfo(player); + } }); } diff --git a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java index e2ca4d368f..e3a57aefde 100644 --- a/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java +++ b/L2J_Mobius_Classic_3.0_TheKamael/java/org/l2jmobius/gameserver/network/clientpackets/EnterWorld.java @@ -156,7 +156,7 @@ public class EnterWorld implements IClientIncomingPacket client.setClientTracert(tracert); - player.broadcastUserInfo(); + player.spawnMe(player.getX(), player.getY(), player.getZ()); // Restore to instanced area if enabled if (Config.RESTORE_PLAYER_INSTANCE) @@ -170,55 +170,47 @@ public class EnterWorld implements IClientIncomingPacket 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); // Apply special GM properties to the GM when entering 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.sendSysMessage(player, "hide is default for builder."); - BuilderUtil.sendSysMessage(player, "FriendAddOff 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. - break gmStartupProcess; - } + BuilderUtil.setHiding(player, true); - if (Config.GM_STARTUP_INVULNERABLE && AdminData.getInstance().hasAccess("admin_invul", player.getAccessLevel())) - { - player.setIsInvul(true); - } + BuilderUtil.sendSysMessage(player, "hide is default for builder."); + BuilderUtil.sendSysMessage(player, "FriendAddOff is default for builder."); + BuilderUtil.sendSysMessage(player, "whisperoff is default for builder."); - 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); - } + // 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; } - }, 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())) { @@ -425,7 +417,6 @@ public class EnterWorld implements IClientIncomingPacket player.setSpawnProtection(true); } - player.spawnMe(player.getX(), player.getY(), player.getZ()); player.sendPacket(new ExRotation(player.getObjectId(), player.getHeading())); player.getInventory().applyItemSkills();