Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### Eclipse Workspace Patch 1.0
- #P L2J_DataPack
- Index: dist/game/data/scripts/handlers/effecthandlers/VitalityPointUp.java
- ===================================================================
- --- dist/game/data/scripts/handlers/effecthandlers/VitalityPointUp.java (revision 39189)
- +++ dist/game/data/scripts/handlers/effecthandlers/VitalityPointUp.java (working copy)
- @@ -22,7 +22,6 @@
- import com.l2jserver.gameserver.model.conditions.Condition;
- import com.l2jserver.gameserver.model.effects.AbstractEffect;
- import com.l2jserver.gameserver.model.skills.BuffInfo;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- /**
- * Vitality Point Up effect implementation.
- @@ -51,7 +50,7 @@
- if ((info.getEffected() != null) && info.getEffected().isPlayer())
- {
- info.getEffected().getActingPlayer().updateVitalityPoints(_value, false, false);
- - info.getEffected().getActingPlayer().sendPacket(new UserInfo(info.getEffected().getActingPlayer()));
- + info.getEffected().getActingPlayer().sendUserInfo(true);
- }
- }
- }
- Index: dist/game/data/scripts/handlers/telnethandlers/PlayerHandler.java
- ===================================================================
- --- dist/game/data/scripts/handlers/telnethandlers/PlayerHandler.java (revision 39189)
- +++ dist/game/data/scripts/handlers/telnethandlers/PlayerHandler.java (working copy)
- @@ -37,11 +37,8 @@
- import com.l2jserver.gameserver.model.punishment.PunishmentTask;
- import com.l2jserver.gameserver.model.punishment.PunishmentType;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.CharInfo;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.GMAudit;
- import com.l2jserver.gameserver.util.Util;
- @@ -317,9 +314,7 @@
- InventoryUpdate iu = new InventoryUpdate();
- iu.addModifiedItem(itemInstance);
- activeChar.sendPacket(iu);
- - activeChar.broadcastPacket(new CharInfo(activeChar));
- - activeChar.sendPacket(new UserInfo(activeChar));
- - activeChar.broadcastPacket(new ExBrExtraUserInfo(activeChar));
- + activeChar.broadcastUserInfo();
- // informations
- activeChar.sendMessage("Changed enchantment of " + activeChar.getName() + "'s " + itemInstance.getItem().getName() + " from " + curEnchant + " to " + ench + ".");
- Index: dist/game/data/scripts/handlers/admincommandhandlers/AdminEventEngine.java
- ===================================================================
- --- dist/game/data/scripts/handlers/admincommandhandlers/AdminEventEngine.java (revision 39189)
- +++ dist/game/data/scripts/handlers/admincommandhandlers/AdminEventEngine.java (working copy)
- @@ -34,11 +34,8 @@
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.model.entity.L2Event;
- import com.l2jserver.gameserver.model.entity.L2Event.EventState;
- -import com.l2jserver.gameserver.network.serverpackets.CharInfo;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
- import com.l2jserver.gameserver.network.serverpackets.PlaySound;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Broadcast;
- import com.l2jserver.util.Rnd;
- import com.l2jserver.util.StringUtil;
- @@ -327,11 +324,7 @@
- {
- player.getPoly().setPolyInfo("npc", polyIds[Rnd.get(polyIds.length)]);
- player.teleToLocation(player.getLocation(), true);
- - CharInfo info1 = new CharInfo(player);
- - player.broadcastPacket(info1);
- - UserInfo info2 = new UserInfo(player);
- - player.sendPacket(info2);
- - player.broadcastPacket(new ExBrExtraUserInfo(player));
- + activeChar.broadcastUserInfo();
- }
- showEventControl(activeChar);
- }
- @@ -344,11 +337,7 @@
- player.getPoly().setPolyInfo(null, "1");
- player.decayMe();
- player.spawnMe(player.getX(), player.getY(), player.getZ());
- - CharInfo info1 = new CharInfo(player);
- - player.broadcastPacket(info1);
- - UserInfo info2 = new UserInfo(player);
- - player.sendPacket(info2);
- - player.broadcastPacket(new ExBrExtraUserInfo(player));
- + activeChar.broadcastUserInfo();
- }
- }
- showEventControl(activeChar);
- Index: dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java
- ===================================================================
- --- dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java (revision 39189)
- +++ dist/game/data/scripts/handlers/admincommandhandlers/AdminEffects.java (working copy)
- @@ -34,9 +34,7 @@
- import com.l2jserver.gameserver.model.skills.AbnormalVisualEffect;
- import com.l2jserver.gameserver.model.skills.Skill;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.CharInfo;
- import com.l2jserver.gameserver.network.serverpackets.Earthquake;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExRedSky;
- import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
- import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
- @@ -45,15 +43,25 @@
- import com.l2jserver.gameserver.network.serverpackets.SocialAction;
- import com.l2jserver.gameserver.network.serverpackets.SunRise;
- import com.l2jserver.gameserver.network.serverpackets.SunSet;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Broadcast;
- import com.l2jserver.gameserver.util.Util;
- /**
- - * This class handles following admin commands: <li>invis/invisible/vis/visible = makes yourself invisible or visible <li>earthquake = causes an earthquake of a given intensity and duration around you <li>bighead/shrinkhead = changes head size <li>gmspeed = temporary Super Haste effect. <li>
- - * para/unpara = paralyze/remove paralysis from target <li>para_all/unpara_all = same as para/unpara, affects the whole world. <li>polyself/unpolyself = makes you look as a specified mob. <li>changename = temporary change name <li>clearteams/setteam_close/setteam = team related commands <li>social =
- - * forces an L2Character instance to broadcast social action packets. <li>effect = forces an L2Character instance to broadcast MSU packets. <li>abnormal = force changes over an L2Character instance's abnormal state. <li>play_sound/play_sounds = Music broadcasting related commands <li>atmosphere =
- - * sky change related commands.
- + * This class handles following admin commands:
- + * <li>invis/invisible/vis/visible = makes yourself invisible or visible
- + * <li>earthquake = causes an earthquake of a given intensity and duration around you
- + * <li>bighead/shrinkhead = changes head size
- + * <li>gmspeed = temporary Super Haste effect.
- + * <li>para/unpara = paralyze/remove paralysis from target
- + * <li>para_all/unpara_all = same as para/unpara, affects the whole world.
- + * <li>polyself/unpolyself = makes you look as a specified mob.
- + * <li>changename = temporary change name
- + * <li>clearteams/setteam_close/setteam = team related commands
- + * <li>social = forces an L2Character instance to broadcast social action packets.
- + * <li>effect = forces an L2Character instance to broadcast MSU packets.
- + * <li>abnormal = force changes over an L2Character instance's abnormal state.
- + * <li>play_sound/play_sounds = Music broadcasting related commands
- + * <li>atmosphere = sky change related commands.
- */
- public class AdminEffects implements IAdminCommandHandler
- {
- @@ -112,18 +120,14 @@
- if (!activeChar.isInvisible())
- {
- activeChar.setInvisible(true);
- - activeChar.broadcastUserInfo();
- activeChar.decayMe();
- activeChar.spawnMe();
- - activeChar.sendMessage("You are now invisible.");
- }
- else
- {
- activeChar.setInvisible(false);
- - activeChar.broadcastUserInfo();
- - activeChar.sendMessage("You are now visible.");
- }
- -
- + activeChar.broadcastUserInfo();
- command = "";
- AdminHtml.showAdminHtml(activeChar, "gm_menu.htm");
- }
- @@ -374,11 +378,7 @@
- String id = st.nextToken();
- activeChar.getPoly().setPolyInfo("npc", id);
- activeChar.teleToLocation(activeChar.getLocation());
- - CharInfo info1 = new CharInfo(activeChar);
- - activeChar.broadcastPacket(info1);
- - UserInfo info2 = new UserInfo(activeChar);
- - activeChar.sendPacket(info2);
- - activeChar.broadcastPacket(new ExBrExtraUserInfo(activeChar));
- + activeChar.broadcastUserInfo();
- }
- catch (Exception e)
- {
- @@ -390,11 +390,7 @@
- activeChar.getPoly().setPolyInfo(null, "1");
- activeChar.decayMe();
- activeChar.spawnMe(activeChar.getX(), activeChar.getY(), activeChar.getZ());
- - CharInfo info1 = new CharInfo(activeChar);
- - activeChar.broadcastPacket(info1);
- - UserInfo info2 = new UserInfo(activeChar);
- - activeChar.sendPacket(info2);
- - activeChar.broadcastPacket(new ExBrExtraUserInfo(activeChar));
- + activeChar.broadcastUserInfo();
- }
- else if (command.equals("admin_clearteams"))
- {
- Index: dist/game/data/scripts/handlers/admincommandhandlers/AdminEnchant.java
- ===================================================================
- --- dist/game/data/scripts/handlers/admincommandhandlers/AdminEnchant.java (revision 39189)
- +++ dist/game/data/scripts/handlers/admincommandhandlers/AdminEnchant.java (working copy)
- @@ -27,10 +27,7 @@
- import com.l2jserver.gameserver.model.itemcontainer.Inventory;
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.CharInfo;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- /**
- * This class handles following admin commands: - enchant_armor
- @@ -216,9 +213,7 @@
- InventoryUpdate iu = new InventoryUpdate();
- iu.addModifiedItem(itemInstance);
- player.sendPacket(iu);
- - player.broadcastPacket(new CharInfo(player));
- - player.sendPacket(new UserInfo(player));
- - player.broadcastPacket(new ExBrExtraUserInfo(player));
- + activeChar.broadcastUserInfo();
- // informations
- activeChar.sendMessage("Changed enchantment of " + player.getName() + "'s " + itemInstance.getItem().getName() + " from " + curEnchant + " to " + ench + ".");
- Index: dist/game/data/scripts/ai/npc/TerritoryManagers/TerritoryManagers.java
- ===================================================================
- --- dist/game/data/scripts/ai/npc/TerritoryManagers/TerritoryManagers.java (revision 39189)
- +++ dist/game/data/scripts/ai/npc/TerritoryManagers/TerritoryManagers.java (working copy)
- @@ -18,8 +18,6 @@
- */
- package ai.npc.TerritoryManagers;
- -import ai.npc.AbstractNpcAI;
- -
- import com.l2jserver.gameserver.data.xml.impl.MultisellData;
- import com.l2jserver.gameserver.enums.Race;
- import com.l2jserver.gameserver.instancemanager.CastleManager;
- @@ -32,10 +30,10 @@
- import com.l2jserver.gameserver.model.quest.QuestState;
- import com.l2jserver.gameserver.model.quest.State;
- import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- +import ai.npc.AbstractNpcAI;
- +
- /**
- * Retail AI for Territory Managers.
- * @author Zoey76
- @@ -155,8 +153,7 @@
- player.addItem(event, 7694, 1, npc, true);
- // Set Noblesse status to the player.
- player.setNoble(true);
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- + player.sendUserInfo(true);
- // Complete the sub-class related quest.
- // Complete quest Seeds of Chaos (236) for Kamael characters.
- // Complete quest Mimir's Elixir (235) for other races characters.
- Index: dist/game/data/scripts/handlers/effecthandlers/GiveRecommendation.java
- ===================================================================
- --- dist/game/data/scripts/handlers/effecthandlers/GiveRecommendation.java (revision 39189)
- +++ dist/game/data/scripts/handlers/effecthandlers/GiveRecommendation.java (working copy)
- @@ -26,7 +26,6 @@
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.ExVoteSystemInfo;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- /**
- * Give Recommendation effect implementation.
- @@ -73,7 +72,7 @@
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_OBTAINED_S1_RECOMMENDATIONS);
- sm.addInt(recommendationsGiven);
- target.sendPacket(sm);
- - target.sendPacket(new UserInfo(target));
- + target.sendUserInfo(true);
- target.sendPacket(new ExVoteSystemInfo(target));
- }
- else
- Index: dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java
- ===================================================================
- --- dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java (revision 39189)
- +++ dist/game/data/scripts/handlers/admincommandhandlers/AdminEditChar.java (working copy)
- @@ -45,14 +45,12 @@
- import com.l2jserver.gameserver.model.base.ClassId;
- import com.l2jserver.gameserver.network.L2GameClient;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExVoteSystemInfo;
- import com.l2jserver.gameserver.network.serverpackets.GMViewItemList;
- import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
- import com.l2jserver.gameserver.network.serverpackets.PartySmallWindowAll;
- import com.l2jserver.gameserver.network.serverpackets.PartySmallWindowDeleteAll;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.HtmlUtil;
- import com.l2jserver.gameserver.util.Util;
- import com.l2jserver.util.StringUtil;
- @@ -233,8 +231,6 @@
- L2PcInstance player = (L2PcInstance) target;
- player.setPkKills(pk);
- player.broadcastUserInfo();
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- player.sendMessage("A GM changed your PK count to " + pk);
- activeChar.sendMessage(player.getName() + "'s PK count changed to " + pk);
- }
- @@ -264,8 +260,6 @@
- L2PcInstance player = (L2PcInstance) target;
- player.setPvpKills(pvp);
- player.broadcastUserInfo();
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- player.sendMessage("A GM changed your PVP count to " + pvp);
- activeChar.sendMessage(player.getName() + "'s PVP count changed to " + pvp);
- }
- @@ -295,8 +289,6 @@
- L2PcInstance player = (L2PcInstance) target;
- player.setFame(fame);
- player.broadcastUserInfo();
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- player.sendMessage("A GM changed your Reputation points to " + fame);
- activeChar.sendMessage(player.getName() + "'s Fame changed to " + fame);
- }
- @@ -326,8 +318,6 @@
- L2PcInstance player = (L2PcInstance) target;
- player.setRecomHave(recVal);
- player.broadcastUserInfo();
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- player.sendPacket(new ExVoteSystemInfo(player));
- player.sendMessage("A GM changed your Recommend points to " + recVal);
- activeChar.sendMessage(player.getName() + "'s Recommend changed to " + recVal);
- Index: dist/game/data/scripts/ai/npc/FameManager/FameManager.java
- ===================================================================
- --- dist/game/data/scripts/ai/npc/FameManager/FameManager.java (revision 39189)
- +++ dist/game/data/scripts/ai/npc/FameManager/FameManager.java (working copy)
- @@ -18,13 +18,12 @@
- */
- package ai.npc.FameManager;
- -import ai.npc.AbstractNpcAI;
- -
- import com.l2jserver.gameserver.model.actor.L2Npc;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- +import ai.npc.AbstractNpcAI;
- +
- /**
- * Fame Manager AI.
- * @author St3eT
- @@ -76,7 +75,7 @@
- {
- player.setFame(player.getFame() - DECREASE_COST);
- player.setPkKills(player.getPkKills() - 1);
- - player.sendPacket(new UserInfo(player));
- + player.sendUserInfo(true);
- htmltext = npc.getId() + "-06.html";
- }
- else
- @@ -98,7 +97,7 @@
- {
- player.setFame(player.getFame() - REPUTATION_COST);
- player.getClan().addReputationScore(50, true);
- - player.sendPacket(new UserInfo(player));
- + player.sendUserInfo(true);
- player.sendPacket(SystemMessageId.ACQUIRED_50_CLAN_FAME_POINTS);
- htmltext = npc.getId() + "-04.html";
- }
- #P L2J_Server
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExRemoveItemAttribute.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExRemoveItemAttribute.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExRemoveItemAttribute.java (working copy)
- @@ -26,7 +26,6 @@
- import com.l2jserver.gameserver.network.serverpackets.ExBaseAttributeCancelResult;
- import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- public class RequestExRemoveItemAttribute extends L2GameClientPacket
- {
- @@ -75,7 +74,7 @@
- targetItem.getElemental(_element).removeBonus(activeChar);
- }
- targetItem.clearElementAttr(_element);
- - activeChar.sendPacket(new UserInfo(activeChar));
- + activeChar.sendUserInfo(true);
- InventoryUpdate iu = new InventoryUpdate();
- iu.addModifiedItem(targetItem);
- Index: src/main/java/com/l2jserver/gameserver/model/actor/tasks/player/RecoGiveTask.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/actor/tasks/player/RecoGiveTask.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/actor/tasks/player/RecoGiveTask.java (working copy)
- @@ -21,7 +21,6 @@
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- /**
- * Task dedicated to increase player's recommendation bonus.
- @@ -55,7 +54,7 @@
- final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.YOU_OBTAINED_S1_RECOMMENDATIONS);
- sm.addInt(recoToGive);
- _player.sendPacket(sm);
- - _player.sendPacket(new UserInfo(_player));
- + _player.sendUserInfo(true);
- }
- }
- }
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestRecordInfo.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestRecordInfo.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestRecordInfo.java (working copy)
- @@ -23,9 +23,7 @@
- import com.l2jserver.gameserver.model.L2Object;
- import com.l2jserver.gameserver.model.actor.L2Character;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.SpawnItem;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- public class RequestRecordInfo extends L2GameClientPacket
- {
- @@ -46,8 +44,7 @@
- return;
- }
- - activeChar.sendPacket(new UserInfo(activeChar));
- - activeChar.sendPacket(new ExBrExtraUserInfo(activeChar));
- + activeChar.sendUserInfo(true);
- Collection<L2Object> objs = activeChar.getKnownList().getKnownObjects().values();
- for (L2Object object : objs)
- Index: src/main/java/com/l2jserver/gameserver/model/CharEffectList.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/CharEffectList.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/CharEffectList.java (working copy)
- @@ -27,12 +27,14 @@
- import java.util.Set;
- import java.util.concurrent.ConcurrentHashMap;
- import java.util.concurrent.ConcurrentLinkedQueue;
- +import java.util.concurrent.ScheduledFuture;
- import java.util.concurrent.atomic.AtomicInteger;
- import java.util.function.Consumer;
- import java.util.function.Function;
- import java.util.logging.Logger;
- import com.l2jserver.Config;
- +import com.l2jserver.gameserver.ThreadPoolManager;
- import com.l2jserver.gameserver.model.actor.L2Character;
- import com.l2jserver.gameserver.model.actor.L2Summon;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- @@ -1369,11 +1371,30 @@
- updateEffectList(true);
- }
- + private ScheduledFuture<?> _effectIconsUpdate;
- +
- + protected void updateEffectIcons()
- + {
- + if (_owner == null)
- + {
- + return;
- + }
- +
- + // Check if the previous call hasn't finished, if so, don't send packets uselessly again.
- + if ((_effectIconsUpdate != null) && !_effectIconsUpdate.isDone())
- + {
- + return;
- + }
- +
- + // Schedule the icon update packets 333 miliseconds ahead, so it can gather-up most of the changes.
- + _effectIconsUpdate = ThreadPoolManager.getInstance().scheduleGeneral(() -> updateEffectIconsTask(), 333);
- + }
- +
- /**
- * Update effect icons.<br>
- * Prevents initialization.
- */
- - private void updateEffectIcons()
- + private void updateEffectIconsTask()
- {
- if (_owner == null)
- {
- Index: src/main/java/com/l2jserver/gameserver/network/serverpackets/PledgeShowMemberListAll.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/serverpackets/PledgeShowMemberListAll.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/serverpackets/PledgeShowMemberListAll.java (working copy)
- @@ -59,9 +59,7 @@
- }
- // unless this is sent sometimes, the client doesn't recognise the player as the leader
- - _activeChar.sendPacket(new UserInfo(_activeChar));
- - _activeChar.sendPacket(new ExBrExtraUserInfo(_activeChar));
- -
- + _activeChar.sendUserInfo(true);
- }
- private void writePledge(int mainOrSubpledge)
- Index: src/main/java/com/l2jserver/gameserver/model/actor/L2Character.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/actor/L2Character.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/actor/L2Character.java (working copy)
- @@ -3745,11 +3745,11 @@
- {
- if (broadcastFull)
- {
- - getActingPlayer().updateAndBroadcastStatus(2);
- + getActingPlayer().updateAndBroadcastStatus();
- }
- else
- {
- - getActingPlayer().updateAndBroadcastStatus(1);
- + getActingPlayer().updateAndBroadcastStatus();
- if (su.hasAttributes())
- {
- broadcastPacket(su);
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/EnterWorld.java (working copy)
- @@ -185,7 +185,6 @@
- if (Config.GM_STARTUP_DIET_MODE && AdminData.getInstance().hasAccess("admin_diet", activeChar.getAccessLevel()))
- {
- activeChar.setDietMode(true);
- - activeChar.refreshOverloaded();
- }
- if (Config.GM_STARTUP_AUTO_LIST && AdminData.getInstance().hasAccess("admin_gmliston", activeChar.getAccessLevel()))
- @@ -349,7 +348,9 @@
- activeChar.checkRecoBonusTask();
- - activeChar.broadcastUserInfo();
- + activeChar.entering = false;
- + activeChar.sendUserInfo(true);
- + activeChar.sendPacket(new EtcStatusUpdate(activeChar));
- // Send Macro List
- activeChar.getMacros().sendUpdate();
- @@ -412,6 +413,10 @@
- activeChar.updateEffectIcons();
- + // We will force server to send one more update with low priority
- + // Just in case to avoid invisible cartoons
- + activeChar.broadcastUserInfo(false);
- +
- activeChar.sendPacket(new EtcStatusUpdate(activeChar));
- // Expand Skill
- Index: src/main/java/com/l2jserver/gameserver/model/actor/tasks/player/PacketSenderTask.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/actor/tasks/player/PacketSenderTask.java (revision 0)
- +++ src/main/java/com/l2jserver/gameserver/model/actor/tasks/player/PacketSenderTask.java (working copy)
- @@ -0,0 +1,79 @@
- +/*
- + * Copyright (C) 2004-2015 L2J Server
- + *
- + * This file is part of L2J Server.
- + *
- + * L2J Server is free software: you can redistribute it and/or modify
- + * it under the terms of the GNU General Public License as published by
- + * the Free Software Foundation, either version 3 of the License, or
- + * (at your option) any later version.
- + *
- + * L2J Server is distributed in the hope that it will be useful,
- + * but WITHOUT ANY WARRANTY; without even the implied warranty of
- + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- + * General Public License for more details.
- + *
- + * You should have received a copy of the GNU General Public License
- + * along with this program. If not, see <http://www.gnu.org/licenses/>.
- + */
- +package com.l2jserver.gameserver.model.actor.tasks.player;
- +
- +import com.l2jserver.gameserver.instancemanager.TerritoryWarManager;
- +import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- +import com.l2jserver.gameserver.network.serverpackets.CharInfo;
- +import com.l2jserver.gameserver.network.serverpackets.EtcStatusUpdate;
- +import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- +import com.l2jserver.gameserver.network.serverpackets.ExDominionWarStart;
- +import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- +
- +/**
- + * This class is dedicated to manage some packets priority.
- + * @author valanths1990
- + */
- +public class PacketSenderTask
- +{
- + public static void sendUserInfoImpl(L2PcInstance player)
- + {
- + if (player.entering)
- + {
- + return;
- + }
- +
- + player.sendPacket(new UserInfo(player));
- + player.sendPacket(new ExBrExtraUserInfo(player));
- +
- + if (TerritoryWarManager.getInstance().isTWInProgress() && (TerritoryWarManager.getInstance().checkIsRegistered(-1, player.getObjectId()) || TerritoryWarManager.getInstance().checkIsRegistered(-1, player.getClan())))
- + {
- + player.broadcastPacket(new ExDominionWarStart(player));
- + }
- + }
- +
- + public static void updateAndBroadcastStatus(L2PcInstance player)
- + {
- + player.refreshOverloaded(false);
- + player.refreshExpertisePenalty(false);
- +
- + if (player.entering)
- + {
- + return;
- + }
- +
- + // Send a Server->Client packet UserInfo to this L2PcInstance and CharInfo to all L2PcInstance in its _KnownPlayers (broadcast)
- + broadcastUserInfo(player, false);
- + player.sendPacket(new EtcStatusUpdate(player));
- + }
- +
- + public static void broadcastUserInfo(L2PcInstance player, boolean force)
- + {
- + // Send a Server->Client packet UserInfo to this L2PcInstance
- + player.sendUserInfo(force);
- + player.sendCharInfo(force);
- + }
- +
- + public static void sendCharInfoImpl(L2PcInstance player)
- + {
- + // Send a Server->Client packet CharInfo to all L2PcInstance in _KnownPlayers of the L2PcInstance
- + player.broadcastPacket(new CharInfo(player));
- + player.broadcastPacket(new ExBrExtraUserInfo(player));
- + }
- +}
- Index: src/main/java/com/l2jserver/gameserver/model/entity/Siege.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/entity/Siege.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/entity/Siege.java (working copy)
- @@ -60,11 +60,9 @@
- import com.l2jserver.gameserver.model.events.impl.sieges.castle.OnCastleSiegeOwnerChange;
- import com.l2jserver.gameserver.model.events.impl.sieges.castle.OnCastleSiegeStart;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.RelationChanged;
- import com.l2jserver.gameserver.network.serverpackets.SiegeInfo;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Broadcast;
- public class Siege implements Siegable
- @@ -590,8 +588,7 @@
- member.startFameTask(Config.CASTLE_ZONE_FAME_TASK_FREQUENCY * 1000, Config.CASTLE_ZONE_FAME_AQUIRE_POINTS);
- }
- }
- - member.sendPacket(new UserInfo(member));
- - member.sendPacket(new ExBrExtraUserInfo(member));
- + member.sendUserInfo(true);
- for (L2PcInstance player : member.getKnownList().getKnownPlayers().values())
- {
- if (player == null)
- @@ -639,8 +636,7 @@
- member.startFameTask(Config.CASTLE_ZONE_FAME_TASK_FREQUENCY * 1000, Config.CASTLE_ZONE_FAME_AQUIRE_POINTS);
- }
- }
- - member.sendPacket(new UserInfo(member));
- - member.sendPacket(new ExBrExtraUserInfo(member));
- + member.sendUserInfo(true);
- for (L2PcInstance player : member.getKnownList().getKnownPlayers().values())
- {
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillUntrain.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillUntrain.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillUntrain.java (working copy)
- @@ -32,12 +32,10 @@
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.model.skills.Skill;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillInfoDetail;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillResult;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- /**
- * Format (ch) dd c: (id) 0xD0 h: (subid) 0x33 d: skill id d: skill lvl
- @@ -173,9 +171,6 @@
- _log.fine("Learned skill ID: " + _skillId + " Level: " + _skillLvl + " for " + requiredSp + " SP, " + requireditems + " Adena.");
- }
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- -
- if (_skillLvl > 100)
- {
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.UNTRAIN_SUCCESSFUL_SKILL_S1_ENCHANT_LEVEL_DECREASED_BY_ONE);
- @@ -193,6 +188,8 @@
- player.sendPacket(new ExEnchantSkillInfo(_skillId, afterUntrainSkillLevel));
- player.sendPacket(new ExEnchantSkillInfoDetail(2, _skillId, afterUntrainSkillLevel - 1, player));
- player.updateShortCuts(_skillId, afterUntrainSkillLevel);
- +
- + player.sendUserInfo(true);
- }
- @Override
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantItemAttribute.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantItemAttribute.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantItemAttribute.java (working copy)
- @@ -25,10 +25,8 @@
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.ExAttributeEnchantResult;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Util;
- import com.l2jserver.util.Rnd;
- @@ -251,9 +249,8 @@
- }
- player.sendPacket(new ExAttributeEnchantResult(powerToAdd));
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- player.setActiveEnchantAttrItemId(L2PcInstance.ID_NONE);
- + player.sendUserInfo(true);
- }
- public int getLimit(L2ItemInstance item, int sotneId)
- Index: src/main/java/com/l2jserver/gameserver/data/sql/impl/ClanTable.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/data/sql/impl/ClanTable.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/data/sql/impl/ClanTable.java (working copy)
- @@ -55,12 +55,10 @@
- import com.l2jserver.gameserver.model.events.impl.clan.OnClanWarFinish;
- import com.l2jserver.gameserver.model.events.impl.clan.OnClanWarStart;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.PledgeShowInfoUpdate;
- import com.l2jserver.gameserver.network.serverpackets.PledgeShowMemberListAll;
- import com.l2jserver.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Util;
- import com.l2jserver.util.EnumIntBitmask;
- @@ -208,10 +206,9 @@
- // should be update packet only
- player.sendPacket(new PledgeShowInfoUpdate(clan));
- player.sendPacket(new PledgeShowMemberListAll(clan, player));
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- player.sendPacket(new PledgeShowMemberListUpdate(player));
- player.sendPacket(SystemMessageId.CLAN_CREATED);
- + player.sendUserInfo(true);
- // Notify to scripts
- EventDispatcher.getInstance().notifyEventAsync(new OnPlayerClanCreate(player, clan));
- Index: src/main/java/com/l2jserver/gameserver/model/actor/stat/PcStat.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/actor/stat/PcStat.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/actor/stat/PcStat.java (working copy)
- @@ -38,14 +38,12 @@
- import com.l2jserver.gameserver.model.stats.Stats;
- import com.l2jserver.gameserver.model.zone.ZoneId;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExVitalityPointInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExVoteSystemInfo;
- import com.l2jserver.gameserver.network.serverpackets.PledgeShowMemberListUpdate;
- import com.l2jserver.gameserver.network.serverpackets.SocialAction;
- import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Util;
- public class PcStat extends PlayableStat
- @@ -109,8 +107,7 @@
- }
- // EXP status update currently not used in retail
- - activeChar.sendPacket(new UserInfo(activeChar));
- - activeChar.sendPacket(new ExBrExtraUserInfo(activeChar));
- + activeChar.sendUserInfo(true);
- return true;
- }
- @@ -313,12 +310,11 @@
- getActiveChar().sendPacket(su);
- // Update the overloaded status of the L2PcInstance
- - getActiveChar().refreshOverloaded();
- + getActiveChar().refreshOverloaded(false);
- // Update the expertise status of the L2PcInstance
- getActiveChar().refreshExpertisePenalty();
- // Send a Server->Client packet UserInfo to the L2PcInstance
- - getActiveChar().sendPacket(new UserInfo(getActiveChar()));
- - getActiveChar().sendPacket(new ExBrExtraUserInfo(getActiveChar()));
- + getActiveChar().broadcastUserInfo();
- getActiveChar().sendPacket(new ExVoteSystemInfo(getActiveChar()));
- return levelIncreased;
- Index: src/main/java/com/l2jserver/gameserver/model/entity/L2Event.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/entity/L2Event.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/entity/L2Event.java (working copy)
- @@ -43,11 +43,8 @@
- import com.l2jserver.gameserver.model.actor.L2Npc;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.model.holders.PlayerEventHolder;
- -import com.l2jserver.gameserver.network.serverpackets.CharInfo;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
- import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- /**
- * @author Nik
- @@ -290,12 +287,7 @@
- player.getPoly().setPolyInfo(null, "1");
- player.decayMe();
- player.spawnMe(player.getX(), player.getY(), player.getZ());
- - CharInfo info1 = new CharInfo(player);
- - player.broadcastPacket(info1);
- - UserInfo info2 = new UserInfo(player);
- - player.sendPacket(info2);
- - player.broadcastPacket(new ExBrExtraUserInfo(player));
- -
- + player.broadcastUserInfo();
- player.stopTransformation(true);
- }
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestVoteNew.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestVoteNew.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestVoteNew.java (working copy)
- @@ -21,10 +21,8 @@
- import com.l2jserver.gameserver.model.L2Object;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExVoteSystemInfo;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- public final class RequestVoteNew extends L2GameClientPacket
- {
- @@ -98,9 +96,8 @@
- sm.addPcName(activeChar);
- target.sendPacket(sm);
- - activeChar.sendPacket(new UserInfo(activeChar));
- - sendPacket(new ExBrExtraUserInfo(activeChar));
- - target.broadcastUserInfo();
- + activeChar.sendUserInfo(true);
- + target.sendUserInfo(true);
- activeChar.sendPacket(new ExVoteSystemInfo(activeChar));
- target.sendPacket(new ExVoteSystemInfo(target));
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestPreviewItem.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestPreviewItem.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestPreviewItem.java (working copy)
- @@ -40,7 +40,6 @@
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
- import com.l2jserver.gameserver.network.serverpackets.ShopPreviewInfo;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Util;
- /**
- @@ -71,7 +70,7 @@
- try
- {
- activeChar.sendPacket(SystemMessageId.NO_LONGER_TRYING_ON);
- - activeChar.sendPacket(new UserInfo(activeChar));
- + activeChar.sendUserInfo(true);
- }
- catch (Exception e)
- {
- Index: src/main/java/com/l2jserver/gameserver/data/xml/impl/MultisellData.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/data/xml/impl/MultisellData.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/data/xml/impl/MultisellData.java (working copy)
- @@ -38,10 +38,8 @@
- import com.l2jserver.gameserver.model.multisell.ListContainer;
- import com.l2jserver.gameserver.model.multisell.PreparedListContainer;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.MultiSellList;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Util;
- import com.l2jserver.util.data.xml.IXmlReader;
- import com.l2jserver.util.file.filter.NumericNameFilter;
- @@ -322,8 +320,7 @@
- return true;
- case FAME:
- player.setFame(player.getFame() - (int) amount);
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- + player.sendUserInfo(true);
- return true;
- }
- return false;
- @@ -338,8 +335,7 @@
- break;
- case FAME:
- player.setFame((int) (player.getFame() + amount));
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- + player.sendUserInfo(true);
- break;
- }
- }
- Index: src/main/java/com/l2jserver/gameserver/model/actor/tasks/player/FameTask.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/actor/tasks/player/FameTask.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/actor/tasks/player/FameTask.java (working copy)
- @@ -22,7 +22,6 @@
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- /**
- * Task dedicated to reward player with fame while standing on siege zone.
- @@ -54,6 +53,6 @@
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.ACQUIRED_S1_REPUTATION_SCORE);
- sm.addInt(_value);
- _player.sendPacket(sm);
- - _player.sendPacket(new UserInfo(_player));
- + _player.sendUserInfo(true);
- }
- }
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkill.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkill.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkill.java (working copy)
- @@ -32,12 +32,10 @@
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.model.skills.Skill;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillInfoDetail;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillResult;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.util.Rnd;
- /**
- @@ -195,13 +193,13 @@
- }
- }
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- player.sendSkillList();
- final int afterEnchantSkillLevel = player.getSkillLevel(_skillId);
- player.sendPacket(new ExEnchantSkillInfo(_skillId, afterEnchantSkillLevel));
- player.sendPacket(new ExEnchantSkillInfoDetail(0, _skillId, afterEnchantSkillLevel + 1, player));
- player.updateShortCuts(_skillId, afterEnchantSkillLevel);
- +
- + player.sendUserInfo(true);
- }
- else
- {
- Index: src/main/java/com/l2jserver/gameserver/model/L2Clan.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/L2Clan.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/L2Clan.java (working copy)
- @@ -62,7 +62,6 @@
- import com.l2jserver.gameserver.model.zone.ZoneId;
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.CreatureSay;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExSubPledgeSkillAdd;
- import com.l2jserver.gameserver.network.serverpackets.ItemList;
- import com.l2jserver.gameserver.network.serverpackets.L2GameServerPacket;
- @@ -76,7 +75,6 @@
- import com.l2jserver.gameserver.network.serverpackets.PledgeSkillListAdd;
- import com.l2jserver.gameserver.network.serverpackets.StatusUpdate;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Util;
- import com.l2jserver.util.EnumIntBitmask;
- @@ -2051,8 +2049,7 @@
- if (cm.getPlayerInstance() != null)
- {
- cm.getPlayerInstance().getClanPrivileges().setBitmask(privs);
- - cm.getPlayerInstance().sendPacket(new UserInfo(cm.getPlayerInstance()));
- - cm.getPlayerInstance().sendPacket(new ExBrExtraUserInfo(cm.getPlayerInstance()));
- + cm.getPlayerInstance().sendUserInfo(true);
- }
- }
- }
- @@ -2461,8 +2458,7 @@
- setAllyPenaltyExpiryTime(0, 0);
- updateClanInDB();
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- + player.sendUserInfo(true);
- // TODO: Need correct message id
- player.sendMessage("Alliance " + allyName + " has been created.");
- Index: src/main/java/com/l2jserver/gameserver/model/actor/L2Decoy.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/actor/L2Decoy.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/actor/L2Decoy.java (working copy)
- @@ -65,7 +65,7 @@
- {
- if (player != null)
- {
- - player.sendPacket(new CharInfo(this));
- + sendInfo(player);
- }
- }
- }
- @@ -132,7 +132,6 @@
- public synchronized void unSummon(L2PcInstance owner)
- {
- -
- if (isVisible() && !isDead())
- {
- if (getWorldRegion() != null)
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/Appearing.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/Appearing.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/Appearing.java (working copy)
- @@ -19,8 +19,6 @@
- package com.l2jserver.gameserver.network.clientpackets;
- import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- /**
- * Appearing Packet Handler
- @@ -54,8 +52,7 @@
- activeChar.onTeleported();
- }
- - sendPacket(new UserInfo(activeChar));
- - sendPacket(new ExBrExtraUserInfo(activeChar));
- + activeChar.sendUserInfo(true);
- }
- @Override
- Index: src/main/java/com/l2jserver/gameserver/model/entity/Hero.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/entity/Hero.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/entity/Hero.java (working copy)
- @@ -51,12 +51,10 @@
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.model.olympiad.Olympiad;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.InventoryUpdate;
- import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
- import com.l2jserver.gameserver.network.serverpackets.SocialAction;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.util.StringUtil;
- /**
- @@ -944,8 +942,6 @@
- player.setHero(true);
- player.broadcastPacket(new SocialAction(player.getObjectId(), 20016)); // Hero Animation
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- player.broadcastUserInfo();
- // Set Gained hero and reload data
- setHeroGained(player.getObjectId());
- Index: src/main/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterInstance.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterInstance.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/actor/instance/L2VillageMasterInstance.java (working copy)
- @@ -51,12 +51,10 @@
- import com.l2jserver.gameserver.network.SystemMessageId;
- import com.l2jserver.gameserver.network.serverpackets.AcquireSkillList;
- import com.l2jserver.gameserver.network.serverpackets.ActionFailed;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.MagicSkillLaunched;
- import com.l2jserver.gameserver.network.serverpackets.MagicSkillUse;
- import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Util;
- import com.l2jserver.util.StringUtil;
- @@ -1066,8 +1064,7 @@
- if (leaderPlayer != null)
- {
- leaderPlayer.setPledgeClass(L2ClanMember.calculatePledgeClass(leaderPlayer));
- - leaderPlayer.sendPacket(new UserInfo(leaderPlayer));
- - leaderPlayer.sendPacket(new ExBrExtraUserInfo(leaderPlayer));
- + leaderPlayer.sendUserInfo(true);
- }
- }
- }
- @@ -1153,8 +1150,7 @@
- if (leaderPlayer != null)
- {
- leaderPlayer.setPledgeClass(L2ClanMember.calculatePledgeClass(leaderPlayer));
- - leaderPlayer.sendPacket(new UserInfo(leaderPlayer));
- - leaderPlayer.sendPacket(new ExBrExtraUserInfo(leaderPlayer));
- + leaderPlayer.sendUserInfo(true);
- }
- clan.broadcastClanStatus();
- Index: src/main/java/com/l2jserver/gameserver/ai/L2ControllableMobAI.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/ai/L2ControllableMobAI.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/ai/L2ControllableMobAI.java (working copy)
- @@ -23,8 +23,10 @@
- import java.util.Collection;
- import java.util.List;
- +import java.util.concurrent.Future;
- import java.util.stream.Collectors;
- +import com.l2jserver.gameserver.ThreadPoolManager;
- import com.l2jserver.gameserver.model.L2Object;
- import com.l2jserver.gameserver.model.MobGroup;
- import com.l2jserver.gameserver.model.MobGroupTable;
- @@ -53,6 +55,8 @@
- public static final int AI_CAST = 5;
- public static final int AI_ATTACK_GROUP = 6;
- + private Future<?> followTask;
- +
- private int _alternateAI;
- private boolean _isThinking; // to prevent thinking recursively
- @@ -69,17 +73,23 @@
- protected void thinkFollow()
- {
- - L2Attackable me = (L2Attackable) _actor;
- + if ((followTask != null) && !followTask.isDone())
- + {
- + return;
- + }
- - if (!Util.checkIfInRange(MobGroupTable.FOLLOW_RANGE, me, getForcedTarget(), true))
- + followTask = ThreadPoolManager.getInstance().scheduleGeneral(() ->
- {
- - int signX = (Rnd.nextInt(2) == 0) ? -1 : 1;
- - int signY = (Rnd.nextInt(2) == 0) ? -1 : 1;
- - int randX = Rnd.nextInt(MobGroupTable.FOLLOW_RANGE);
- - int randY = Rnd.nextInt(MobGroupTable.FOLLOW_RANGE);
- -
- - moveTo(getForcedTarget().getX() + (signX * randX), getForcedTarget().getY() + (signY * randY), getForcedTarget().getZ());
- - }
- + if (!Util.checkIfInRange(MobGroupTable.FOLLOW_RANGE, _actor, getForcedTarget(), true))
- + {
- + int signX = (Rnd.nextInt(2) == 0) ? -1 : 1;
- + int signY = (Rnd.nextInt(2) == 0) ? -1 : 1;
- + int randX = Rnd.nextInt(MobGroupTable.FOLLOW_RANGE);
- + int randY = Rnd.nextInt(MobGroupTable.FOLLOW_RANGE);
- +
- + moveTo(getForcedTarget().getX() + (signX * randX), getForcedTarget().getY() + (signY * randY), getForcedTarget().getZ());
- + }
- + } , 200);
- }
- @Override
- Index: src/main/java/com/l2jserver/gameserver/model/actor/instance/L2ClassMasterInstance.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/actor/instance/L2ClassMasterInstance.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/actor/instance/L2ClassMasterInstance.java (working copy)
- @@ -27,12 +27,10 @@
- import com.l2jserver.gameserver.model.base.ClassId;
- import com.l2jserver.gameserver.model.holders.ItemHolder;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.NpcHtmlMessage;
- import com.l2jserver.gameserver.network.serverpackets.TutorialCloseHtml;
- import com.l2jserver.gameserver.network.serverpackets.TutorialShowHtml;
- import com.l2jserver.gameserver.network.serverpackets.TutorialShowQuestionMark;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.util.StringUtil;
- /**
- @@ -100,8 +98,7 @@
- if (!player.isNoble())
- {
- player.setNoble(true);
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- + player.sendUserInfo(true);
- final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
- html.setFile(player.getHtmlPrefix(), "data/html/classmaster/nobleok.htm");
- player.sendPacket(html);
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillRouteChange.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillRouteChange.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillRouteChange.java (working copy)
- @@ -32,12 +32,10 @@
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.model.skills.Skill;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillInfoDetail;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillResult;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.util.Rnd;
- /**
- @@ -190,9 +188,6 @@
- _log.fine("Learned skill ID: " + _skillId + " Level: " + _skillLvl + " for " + requiredSp + " SP, " + requireditems + " Adena.");
- }
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- -
- if (levelPenalty == 0)
- {
- SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.SKILL_ENCHANT_CHANGE_SUCCESSFUL_S1_LEVEL_WILL_REMAIN);
- @@ -211,6 +206,8 @@
- player.sendPacket(new ExEnchantSkillInfo(_skillId, afterEnchantSkillLevel));
- player.sendPacket(new ExEnchantSkillInfoDetail(3, _skillId, afterEnchantSkillLevel, player));
- player.updateShortCuts(_skillId, afterEnchantSkillLevel);
- +
- + player.sendUserInfo(true);
- }
- else
- {
- Index: src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillSafe.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillSafe.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/network/clientpackets/RequestExEnchantSkillSafe.java (working copy)
- @@ -32,12 +32,10 @@
- import com.l2jserver.gameserver.model.items.instance.L2ItemInstance;
- import com.l2jserver.gameserver.model.skills.Skill;
- import com.l2jserver.gameserver.network.SystemMessageId;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillInfoDetail;
- import com.l2jserver.gameserver.network.serverpackets.ExEnchantSkillResult;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.util.Rnd;
- /**
- @@ -195,13 +193,13 @@
- player.sendPacket(ExEnchantSkillResult.valueOf(false));
- }
- - player.sendPacket(new UserInfo(player));
- - player.sendPacket(new ExBrExtraUserInfo(player));
- player.sendSkillList();
- final int afterEnchantSkillLevel = player.getSkillLevel(_skillId);
- player.sendPacket(new ExEnchantSkillInfo(_skillId, afterEnchantSkillLevel));
- player.sendPacket(new ExEnchantSkillInfoDetail(1, _skillId, afterEnchantSkillLevel + 1, player));
- player.updateShortCuts(_skillId, afterEnchantSkillLevel);
- +
- + player.sendUserInfo(true);
- }
- else
- {
- Index: src/main/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/actor/instance/L2PcInstance.java (working copy)
- @@ -168,6 +168,7 @@
- import com.l2jserver.gameserver.model.actor.tasks.player.GameGuardCheckTask;
- import com.l2jserver.gameserver.model.actor.tasks.player.InventoryEnableTask;
- import com.l2jserver.gameserver.model.actor.tasks.player.LookingForFishTask;
- +import com.l2jserver.gameserver.model.actor.tasks.player.PacketSenderTask;
- import com.l2jserver.gameserver.model.actor.tasks.player.PetFeedTask;
- import com.l2jserver.gameserver.model.actor.tasks.player.PvPFlagTask;
- import com.l2jserver.gameserver.model.actor.tasks.player.RecoBonusTaskEnd;
- @@ -264,8 +265,6 @@
- import com.l2jserver.gameserver.network.serverpackets.ConfirmDlg;
- import com.l2jserver.gameserver.network.serverpackets.EtcStatusUpdate;
- import com.l2jserver.gameserver.network.serverpackets.ExAutoSoulShot;
- -import com.l2jserver.gameserver.network.serverpackets.ExBrExtraUserInfo;
- -import com.l2jserver.gameserver.network.serverpackets.ExDominionWarStart;
- import com.l2jserver.gameserver.network.serverpackets.ExDuelUpdateUserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ExFishingEnd;
- import com.l2jserver.gameserver.network.serverpackets.ExFishingStart;
- @@ -321,7 +320,6 @@
- import com.l2jserver.gameserver.network.serverpackets.TradeDone;
- import com.l2jserver.gameserver.network.serverpackets.TradeOtherDone;
- import com.l2jserver.gameserver.network.serverpackets.TradeStart;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.network.serverpackets.ValidateLocation;
- import com.l2jserver.gameserver.taskmanager.AttackStanceTaskManager;
- import com.l2jserver.gameserver.util.Broadcast;
- @@ -1670,8 +1668,7 @@
- }
- setPvpFlag(value);
- - sendPacket(new UserInfo(this));
- - sendPacket(new ExBrExtraUserInfo(this));
- + sendUserInfo(true);
- // If this player has a pet update the pets pvp flag as well
- if (hasSummon())
- @@ -2011,6 +2008,15 @@
- */
- public void refreshOverloaded()
- {
- + refreshOverloaded(true);
- + }
- +
- + /**
- + * Update the overloaded status of the L2PcInstance.
- + * @param broadcast
- + */
- + public void refreshOverloaded(boolean broadcast)
- + {
- int maxLoad = getMaxLoad();
- if (maxLoad > 0)
- {
- @@ -2050,16 +2056,21 @@
- removeSkill(getKnownSkill(4270), false, true);
- setIsOverloaded(false);
- }
- - sendPacket(new UserInfo(this));
- - sendPacket(new EtcStatusUpdate(this));
- - broadcastPacket(new CharInfo(this));
- - broadcastPacket(new ExBrExtraUserInfo(this));
- + if (broadcast)
- + {
- + sendUserInfo(true);
- + }
- }
- }
- }
- public void refreshExpertisePenalty()
- {
- + refreshExpertisePenalty(true);
- + }
- +
- + public void refreshExpertisePenalty(boolean broadcast)
- + {
- if (!Config.EXPERTISE_PENALTY)
- {
- return;
- @@ -2129,7 +2140,7 @@
- changed = true;
- }
- - if (changed)
- + if (changed && broadcast)
- {
- sendPacket(new EtcStatusUpdate(this));
- }
- @@ -4172,32 +4183,20 @@
- }
- }
- - /**
- - * Send a Server->Client packet UserInfo to this L2PcInstance and CharInfo to all L2PcInstance in its _KnownPlayers. <B><U> Concept</U> :</B> Others L2PcInstance in the detection area of the L2PcInstance are identified in <B>_knownPlayers</B>. In order to inform other players of this
- - * L2PcInstance state modifications, server just need to go through _knownPlayers to send Server->Client Packet <B><U> Actions</U> :</B>
- - * <li>Send a Server->Client packet UserInfo to this L2PcInstance (Public and Private Data)</li>
- - * <li>Send a Server->Client packet CharInfo to all L2PcInstance in _KnownPlayers of the L2PcInstance (Public data only)</li> <FONT COLOR=#FF0000><B> <U>Caution</U> : DON'T SEND UserInfo packet to other players instead of CharInfo packet. Indeed, UserInfo packet contains PRIVATE DATA as MaxHP,
- - * STR, DEX...</B></FONT>
- - */
- public final void broadcastUserInfo()
- {
- - // Send a Server->Client packet UserInfo to this L2PcInstance
- - sendPacket(new UserInfo(this));
- -
- - // Send a Server->Client packet CharInfo to all L2PcInstance in _KnownPlayers of the L2PcInstance
- - broadcastPacket(new CharInfo(this));
- - broadcastPacket(new ExBrExtraUserInfo(this));
- - if (TerritoryWarManager.getInstance().isTWInProgress() && (TerritoryWarManager.getInstance().checkIsRegistered(-1, getObjectId()) || TerritoryWarManager.getInstance().checkIsRegistered(-1, getClan())))
- - {
- - broadcastPacket(new ExDominionWarStart(this));
- - }
- + broadcastUserInfo(true);
- }
- + public final void broadcastUserInfo(boolean force)
- + {
- + PacketSenderTask.broadcastUserInfo(this, force);
- + }
- +
- public final void broadcastTitleInfo()
- {
- // Send a Server->Client packet UserInfo to this L2PcInstance
- - sendPacket(new UserInfo(this));
- - sendPacket(new ExBrExtraUserInfo(this));
- + sendUserInfo(true);
- // Send a Server->Client packet TitleUpdate to all L2PcInstance in _KnownPlayers of the L2PcInstance
- @@ -5447,8 +5446,7 @@
- setPvpKills(getPvpKills() + 1);
- // Send a Server->Client UserInfo packet to attacker with its Karma and PK Counter
- - sendPacket(new UserInfo(this));
- - sendPacket(new ExBrExtraUserInfo(this));
- + sendUserInfo(true);
- }
- }
- @@ -5474,8 +5472,7 @@
- }
- // Update player's UI.
- - sendPacket(new UserInfo(this));
- - sendPacket(new ExBrExtraUserInfo(this));
- + sendUserInfo(true);
- }
- public void updatePvPStatus()
- @@ -6578,34 +6575,115 @@
- return _accessLevel;
- }
- + // packet system configuration
- + private final int updateDelay = 333; // Delay after 50 packets sent in milliseconds
- + public boolean entering = true;
- +
- + private Future<?> _updateAndBroadcastStatus;
- + protected Future<?> _userInfoTask;
- + protected Future<?> _charInfoTask;
- +
- /**
- * Update Stats of the L2PcInstance client side by sending Server->Client packet UserInfo/StatusUpdate to this L2PcInstance and CharInfo/StatusUpdate to all L2PcInstance in its _KnownPlayers (broadcast).
- - * @param broadcastType
- */
- - public void updateAndBroadcastStatus(int broadcastType)
- + public void updateAndBroadcastStatus()
- {
- - refreshOverloaded();
- - refreshExpertisePenalty();
- - // Send a Server->Client packet UserInfo to this L2PcInstance and CharInfo to all L2PcInstance in its _KnownPlayers (broadcast)
- - if (broadcastType == 1)
- + if ((_updateAndBroadcastStatus != null) && !_updateAndBroadcastStatus.isDone())
- {
- - sendPacket(new UserInfo(this));
- - sendPacket(new ExBrExtraUserInfo(this));
- + return;
- }
- - if (broadcastType == 2)
- +
- + _updateAndBroadcastStatus = ThreadPoolManager.getInstance().scheduleGeneral(() -> PacketSenderTask.updateAndBroadcastStatus(this), updateDelay);
- + }
- +
- + protected class UserInfoTask implements Runnable
- + {
- + L2PcInstance _player;
- +
- + protected UserInfoTask(L2PcInstance player)
- {
- - broadcastUserInfo();
- + _player = player;
- }
- +
- + @Override
- + public void run()
- + {
- + PacketSenderTask.sendUserInfoImpl(_player);
- + _userInfoTask = null;
- + }
- }
- + public void sendUserInfo(boolean force)
- + {
- + if ((updateDelay == 0) || force)
- + {
- + if (_userInfoTask != null)
- + {
- + _userInfoTask.cancel(false);
- + _userInfoTask = null;
- + }
- + PacketSenderTask.sendUserInfoImpl(this);
- + return;
- + }
- +
- + if (_userInfoTask != null)
- + {
- + return;
- + }
- +
- + _userInfoTask = ThreadPoolManager.getInstance().scheduleGeneral(new UserInfoTask(this), updateDelay);
- + }
- +
- + protected class CharInfoTask implements Runnable
- + {
- + L2PcInstance _player;
- +
- + protected CharInfoTask(L2PcInstance player)
- + {
- + _player = player;
- + }
- +
- + @Override
- + public void run()
- + {
- + PacketSenderTask.sendCharInfoImpl(_player);
- + _charInfoTask = null;
- + }
- + }
- +
- + public void sendCharInfo()
- + {
- + sendCharInfo(false);
- + }
- +
- + public void sendCharInfo(boolean force)
- + {
- + if ((updateDelay == 0) || force)
- + {
- + if (_charInfoTask != null)
- + {
- + _charInfoTask.cancel(false);
- + _charInfoTask = null;
- + }
- + PacketSenderTask.sendCharInfoImpl(this);
- + return;
- + }
- +
- + if (_charInfoTask != null)
- + {
- + return;
- + }
- +
- + _charInfoTask = ThreadPoolManager.getInstance().scheduleGeneral(new CharInfoTask(this), updateDelay);
- + }
- +
- /**
- * Send a Server->Client StatusUpdate packet with Karma and PvP Flag to the L2PcInstance and all L2PcInstance to inform (broadcast).
- * @param flag
- */
- public void setKarmaFlag(int flag)
- {
- - sendPacket(new UserInfo(this));
- - sendPacket(new ExBrExtraUserInfo(this));
- + sendUserInfo(true);
- Collection<L2PcInstance> plrs = getKnownList().getKnownPlayers().values();
- for (L2PcInstance player : plrs)
- {
- @@ -8029,8 +8107,7 @@
- sendPacket(new HennaInfo(this));
- // Send Server->Client UserInfo packet to this L2PcInstance
- - sendPacket(new UserInfo(this));
- - sendPacket(new ExBrExtraUserInfo(this));
- + sendUserInfo(true);
- // Add the recovered dyes to the player's inventory and notify them.
- getInventory().addItem("Henna", henna.getDyeItemId(), henna.getCancelCount(), this, null);
- reduceAdena("Henna", henna.getCancelFee(), this, false);
- @@ -8080,8 +8157,7 @@
- sendPacket(new HennaInfo(this));
- // Send Server->Client UserInfo packet to this L2PcInstance
- - sendPacket(new UserInfo(this));
- - sendPacket(new ExBrExtraUserInfo(this));
- + sendUserInfo(true);
- // Notify to scripts
- EventDispatcher.getInstance().notifyEventAsync(new OnPlayerHennaRemove(this, henna), this);
- @@ -9043,20 +9119,20 @@
- public final void stopAllEffects()
- {
- super.stopAllEffects();
- - updateAndBroadcastStatus(2);
- + updateAndBroadcastStatus();
- }
- @Override
- public final void stopAllEffectsExceptThoseThatLastThroughDeath()
- {
- super.stopAllEffectsExceptThoseThatLastThroughDeath();
- - updateAndBroadcastStatus(2);
- + updateAndBroadcastStatus();
- }
- public final void stopAllEffectsNotStayOnSubclassChange()
- {
- getEffectList().stopAllEffectsNotStayOnSubclassChange();
- - updateAndBroadcastStatus(2);
- + updateAndBroadcastStatus();
- }
- public final void stopCubics()
- @@ -9110,7 +9186,12 @@
- @Override
- public void updateAbnormalEffect()
- {
- - broadcastUserInfo();
- + if ((_updateAndBroadcastStatus != null) && !_updateAndBroadcastStatus.isDone())
- + {
- + return;
- + }
- +
- + _updateAndBroadcastStatus = ThreadPoolManager.getInstance().scheduleGeneral(() -> broadcastUserInfo(true), updateDelay);
- }
- /**
- @@ -10237,7 +10318,7 @@
- setCurrentCp(getMaxCp());
- }
- - refreshOverloaded();
- + refreshOverloaded(false);
- refreshExpertisePenalty();
- broadcastUserInfo();
- @@ -13094,7 +13172,7 @@
- if (isTransformed())
- {
- // Required double send for fix Mounted H5+
- - sendPacket(new CharInfo(activeChar));
- + broadcastUserInfo();
- }
- }
- Index: src/main/java/com/l2jserver/gameserver/model/CursedWeapon.java
- ===================================================================
- --- src/main/java/com/l2jserver/gameserver/model/CursedWeapon.java (revision 20882)
- +++ src/main/java/com/l2jserver/gameserver/model/CursedWeapon.java (working copy)
- @@ -47,7 +47,6 @@
- import com.l2jserver.gameserver.network.serverpackets.ItemList;
- import com.l2jserver.gameserver.network.serverpackets.SocialAction;
- import com.l2jserver.gameserver.network.serverpackets.SystemMessage;
- -import com.l2jserver.gameserver.network.serverpackets.UserInfo;
- import com.l2jserver.gameserver.util.Broadcast;
- import com.l2jserver.util.Rnd;
- @@ -541,7 +540,7 @@
- if ((_player != null) && _player.isOnline())
- {
- _player.setPkKills(_nbKills);
- - _player.sendPacket(new UserInfo(_player));
- + _player.sendUserInfo(true);
- if (((_nbKills % _stageKills) == 0) && (_nbKills <= (_stageKills * (_skillMaxLevel - 1))))
- {
Advertisement
Add Comment
Please, Sign In to add comment