Skip to content

Instantly share code, notes, and snippets.

@pushedx
Created November 3, 2015 03:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pushedx/4f7c10f0266cf903b179 to your computer and use it in GitHub Desktop.
Save pushedx/4f7c10f0266cf903b179 to your computer and use it in GitHub Desktop.
[spoiler]
#1143 [24 Oct 15 06:26] (2.0.4.5)
[list]
[*]ComponentInformation.PortalComponent added as it was missing.
[*]BotGui will now handle the --autostart parameter to start the bot once it is fully loaded.
[*]InventoryPanel.UseItem allows portals to be used in the map room.
[/list]
#1142 [22 Oct 15 02:51] (2.0.4.5)
[list]
[*]Updates for 2.0.4.5.
[/list]
#1141 [16 Oct 15 01:24] (2.0.4.3)
[list]
[*]Updates for 2.0.4.3.
[/list]
#1140 [13 Oct 15 23:09] (2.0.4.2)
[list]
[*]Added Map.Tier.
[*]Item.Name and Item.Rarity have some caching added.
[*]NextTab, PreviousTab fixes for checking PHM being enabled and resetting key state.
[*]HandleDoorsTask now resets PHM to be consistent with the other tasks.
[*]OpenChestTask updated to do a simple distance check before moving before trying to raycast and pathfinding to open it.
[*]GuiSettings.NoHideOnMinimize added to prevent the hide on minimize behavior of the gui.
[*]CreatePortalToTown allows portals in the map room.
[*]StashPanel.WaitForStashTabContents updated to prevent some infinite loops due to client issues.
[/list]
#1136 [02 Oct 15 09:58] (2.0.4.2)
[list]
[*]Updates for 2.0.4.2.
[*]Updates for 2.0.4.1.
[*]PluginManager.Load now correctly disables plugins that fail to Load.
[*]Buddy.Overlay added.
[*]Added a new Overlay plugin that shows some basics of using Buddy.Overlay. These examples are not catered towards EB/PoE yet.
[*]GlobalSettings.EnableOverlay added to enable loading of Buddy.Overlay. It defaults to false (overlay is not auto-initialized). Users must enable this setting then restart the bot to use the overlay functionality.
[*]The default delay after failure for StashTask and SellTask has been lowered from 30s to 15s.
[*]Loki.Bot.Logic.Bots.OldGrindBot.SellTask.DelayAfterFailureMs / Loki.Bot.Logic.Bots.OldGrindBot.StashTask.DelayAfterFailureMs can now be set to control the delay after failure. The lowest they can be set to is 1000 ms.
[*]Added InGameState.CardTradePanel. This API provides the basics for working with the Card Trade UI.
[/list]
#1121 [29 Sep 15 19:02] (2.0.3.4)
[list]
[*]OpenSkillsPanel, OpenSocialPanel, and OpenInventoryPanel updated to handle a timeout to prevent infinite looping. These functions will now return false on failure and true on success.
[*]SkillsPanel.OnPassiveDump added for users to be notified when a passive node is manually dumped.
[*]AutoPassives updated with an example of using the new OnPassiveDump event.
[*]InGameState.KeyPickup added to return the correct KeyPickupType based on client settings.
[*]InGameState.IsKeyPickupEnabled updated to return the correct value.
[/list]
#1119 [25 Sep 15 20:01] (2.0.3.4)
[list]
[*][URL="https://www.thebuddyforum.com/the-buddy-bots/announcements/226856-introducing-regional-server-infrastructure.html"]BuddyAuth updated.[/URL]
[*]ChatManager should now be able to handle more than 500 messages in the client properly.
[*]EnterArenaTask bug fix for when the interaction fails.
[*]TemporaryCacheState disabled to see if it makes any difference performance wise.
[*]UseHardlock now logs changes to be consistent with other important settings.
[*]ObjectManager updated to read the NetworkObject first and make sure it's needed before constructing real copies of it to cut down on overhead from objects that will never be used.
[/list]
#1116 [22 Sep 15 03:53] (2.0.3.4)
[list]
[*]HandleDeshretSeal now closes blocking windows in town before executing.
[*]Skill.SpellCost updated to account for one of the mana reduction mods on items.
[*]GridExplorer should now properly clear the current location if it's ignored.
[*]GuildStashPanel updated to not throw exceptions due to a data layout change.
[*]IsOnLastTab added to StashPanel/GuildStashPanel so users know when the stash is on the last page and should not call NextTab.
[*]Added SetWindowTitle to set the Exilebuddy window title for the taskbar.
[/list]
#1115 [10 Sep 15 00:04] (2.0.3.4)
[list]
[*]Updates for 2.0.3.4.
[*]LoadPassiveTree updated to fix some nodes being unusable. The API will now 'scroll' more to ensure the entire graph is loaded.
[*]OldRoutine updated to use reflection to expose int/bool settings though Execute as Get/Set properties.
[*]Added SkillBarPanel functions for multi-frame casting: BeginUseAt, BeginUse, and BeginUse. These functions don't release the skill use key, so it's the callers responsibility to do that in their skill casting logic (LokiPoe.ProcessHookManager.ClearAllKeyStates()).
[/list]
#1113 [07 Sep 15 10:37] (2.0.3.3)
[list]
[*]Updates for 2.0.3.3.
[/list]
#1112 [03 Sep 15 18:01] (2.0.3.2)
[list]
[*]Updates for 2.0.3.2.
[/list]
#1111 [03 Sep 15 04:08] (2.0.3.1)
[list]
[*]Updates for 2.0.3.1.
[*]HandleA3Q1 should now move closer to Clarissa before waiting for her to become targetable.
[*]Added Coroutines.MinSleepDelay and Coroutines.MaxSleepDelay as a temp fix for being able to speed up v3 coroutine waits. This is only for advanced users who know what they are doing. The following -tasks- use waits that are not configurable: ClearCursorTask, HandleInventoryItemsTask, MergeInventoryTask, and SortInventoryTask.
[/list]
#1098 [31 Aug 15 11:07] (2.0.2.6)
[list]
[*]Updates for 2.0.2.6.
[/list]
#1097 [28 Aug 15 12:49] (2.0.2.5)
[list]
[*]Updates for 2.0.2.5.
[*]OldRoutine.Execute logic added for GetCombatRange and SetCombatRange getters/setters.
[*]"Ancient Catacomb" area transition is now handled the same as "The Catacombs" to avoid getting stuck behind the model.
[/list]
#1096 [26 Aug 15 09:00] (2.0.2.4)
[list]
[*]Updates for 2.0.2.4.
[/list]
#1095 [21 Aug 15 07:48] (2.0.2.3)
[list]
[*]Updates for 2.0.2.3.
[/list]
#1094 [20 Aug 15 23:20] (2.0.2.2)
[list]
[*]PurchasePanel and StashPanel updated to handle a gui layout change.
[*]SocialPanel updated to fix some issues with gui changes.
[/list]
#1093 [20 Aug 15 19:19] (2.0.2.2)
[list]
[*]Updates for 2.0.2.2.
[*]Updates for 2.0.2.1.
[/list]
#1091 [17 Aug 15 15:05] (2.0.1.8)
[list]
[*]BotManager will now invoke the OnClientFrozen event as soon as an InjectionDesyncException is detected. In addition, it will no longer stop the bot, but rather keep trying so execution can resume if there's a long loading screen. However, if an InjectionDesyncException is detected on Start, the bot will still stop.
[*]OpenChestTask has a band-aid fix to not execute when The Harvest bosses are detected as being alive, so the bot doesn't try to leave the locked arena to open a chest.
[*]MinimapIconComponent.IsVisible added.
[*]MissionMarker.IsVisible added.
[*]NpcComponent.IsMinimapLabelVisible/IsIgnoreHidden added.
[*]NetworkObject.IsMinimapLabelVisible added.
[*]Stuck issue fixed from HandleA3Q1 where Clarissa always exists in the area, but is invisible.
[*]EnterArenaTask formatting fix.
[*]Exilebuddy is now compiled with VS 2015 to take advantage of C# 6 features.
[*]Buddy.Coroutines updated to take advantage of C# 6 features.
[/list]
#1087 [11 Aug 15 10:23] (2.0.1.8)
[list]
[*]TakeCorruptedAreaTask logic updated to avoid a cycle issue when the corrupted area transition object is known, but then disappears while traveling to it (was happening in The Library frequently). As a result, the bot would cycle between trying to perform another task, then the area transition was valid again, thus locking up the bot.
[*]OpenChestTask will now timeout after 1 minute. This is a minor bandaid for any issues related to task cycling where the bot wants to open a chest as well.
[*]GlobalSettings.DebugLastTask added to the Global Settings GUI tab. When checked, it will log the current task execution chain so various stuck issues or task cycles can be identified.
[*]Added BotManager.ExceptionCount to keep track of the exception count each minute of bot execution.
[*]Fixed a bug in LockstepPlayerMover where the path could be null, but the PathfindingCommand was not reset.
[*]DevNotes\Hooks\wndproc_hook.txt updated to mention the correct class for AllowExternalAccess (GlobalSettings, not GuiSettings).
[*]SelectCharacterState.SelectCharacter updated to hopefully avoid an exception issue where leagues were not loaded yet. Debugging info has been added in case it breaks.
[*]TrackMoreMobs now avoids tracking the locations of Golems to avoid stuck issues in Tempest areas.
[*]HandleDominusArea now logs what it is doing to track down a stuck issue under certain cases.
[*]LocalPlayer.IsInCorruptedArea/HasSkillOnBarByName are no longer static to be consistent with the other properties in that class.
[*]Added HandleVaalVessel to open Vaal Vessels at the end of the corrupted area. The bot will try to kill all mobs first, then open it before leaving.[/list]
#1085 [07 Aug 15 13:44] (2.0.1.8)
[list]
[*]Updates for 2.0.1.8.
[/list]
#1084 [07 Aug 15 02:31] (2.0.1.7)
[list]
[*]HandleDominusArea updated to hopefully fix stuck issues during the start of phase 2.
[*]SellItemsCoroutine logic updated to avoid an infinite loop issue if an action fails.
[*][COLOR="#FF0000"][B]*** Interface Break *** [/B][/COLOR] IItemEvaluator.Name added so users can know which item filter is being used without messing with types. All existing code needs to be updated simply by implementing this interface member. For example, the ItemFilterEditor plugin now has: [url]http://gyazo.com/9ac5fd4a7e15bff25eb43bf8a8d4d85a[/url]
[*]Skill.CanUse now takes into account Eldritch Battery for skills that do not use reserved power. Other mana cost inaccuracies are still being looked into.
[/list]
#1083 [04 Aug 15 03:08] (2.0.1.7)
[list]
[*]Updates for 2.0.1.7.
[*]Added an option to OldRoutine, LeaveFrame. This allows users to change a default setting to perform pathfinding operations out of the current frame. The downside to doing this, is the possibility of memory exceptions when objects are no longer valid.
[*]Various functions in ExilePather now support the dontLeaveFrame parameter.
[*]Input.Binding updated to cache all key binds on bot start (via Binding.Update) rather than do the lookups each time. That was one source of unnecessary overhead.
[*]All Input functions now log how long they are about to sleep outside a frame to ensure input actions are not being sent too fast. Input.DebugSleepTimes is the flag that can be set to output this or not. By default, it's not logged.
[/list]
#1082 [03 Aug 15 02:17] (2.0.1.4)
[list]
[*]Actor.GetBuff and Actor.HasBuff added.
[*]GameData.BuffDefinitionsEnum added for a revamp in how buffs are handled.
[*]Aura.Charges should now be correct.
[*]Added Scripts/GenerateBuffDefinitions.
[*]DatWorldAreaWrapper.IsMap updated to be correct.
[*]Input.UseItemHighlight added so the bot won't use the client's highlight. This is for users who are using item filters with key pickup off.
[*]HasArcticArmourBuff updated to check the correct buff.
[*]ArcticArmourCastMode removed from OldRoutine as the mechanics for AA changed. It will still need it's own slot until the new CR is done which allows aura like skills to share a slot.
[/list]
#1081 [01 Aug 15 02:36] (2.0.1.4)
[list]
[*]Updates for 2.0.1.4.
[*]AutoLogin *should* work again now.
[*]HandleA2Q9 and HandleA2Q11 no longer update if you're not in Act 2 to try and avoid the client from freezing up due to quest states not being loaded.
[*]Added the old StuckDetection plugin. This plugin logic was basic and allowed you to Stop or Logout if a stuck was detected.
[*]Added the old GrindZoneChanger plugin. It has been slightly updated. This one at least comes with a GUI now so users ca change the settings without recompiling the code.
[*]LokiPoe.GetZoneId added to replace the code in OldGrindBotSettings.GrindZoneId. This takes a difficulty and name to return the area id.
[/list]
#1079 [30 Jul 15 08:22 (2.0.0.21)
[list]
[*]Updates for 2.0.0.21.
[/list]
#1078 [29 Jul 15 04:58] (2.0.0.19)
[list]
[*]Updates for 2.0.0.19.
[*]HandleDominusArea has a reset counter to avoid getting stuck.
[/list]
#1077 [28 Jul 15 13:21] (2.0.0.16)
[list]
[*]All old delays have been re-added to town tasks to slow down the bot actions in town.
[*]SocketableItem.DisplayString -> SocketableItem.SocketedDisplayString to avoid confusion.
[*]Cold snap should now delay a bit in OldRoutine to prevent too fast casting.
[*]LevelSkillGemTask updated to do case insensitive name checks.
[/list]
#1076 [27 Jul 15 23:40] (2.0.0.16)
[spoiler]
[list]
[*]Updates for 2.0.0.16.
[*]Updates for 2.0.0.15.
[*]Updates for 2.0.0.13.
[*]SkillsPanel.IsResetAllPassivesVisible added.
[*]NativeInGameStateSteam updated.
[*]AssignPassivesTask updated to not run if there's a full passive tree reset possible.
[*]Added ColoredTempestStorm, which has a property, Color to tell the tempest color.
[*]Area info in ObjectExplorer now shows the current area mods.
[*]Added LightningTempestStorm/FireTempestStorm/IceTempestStorm.
[*]Added ObjectManager.StrangeGlyphWall.
[*]Added HandleGlyphWall to interact with the glyph wall if you have all quest items in your inventory.
[*]Support for changing the Gateway on the login screen has been dropped again.
[*]Coroutines.LogoutToCharacterSelection -> Coroutines.LogoutToTitleScreen.
[*]EscapeState.LogoutToCharacterSelection is no longer exposed. The client's means of handling dcing with character selection is too buddy to continue providing this APU function.
[*]Added the Chicken plugin back.
[*]The default routine will ignore Piety's portals now.
[*]Added ObjectManager.DeshretSeal.
[*]Added HandleDeshretSeal so the bot can leave Act 4 once the quest item is in the inventory.
[*]Quest debugging added to ObjectExplorer. Quest states are listed for quests in the current act only, to avoid client issues with data not loaded.
[*]Updates for 2.0.0.11.
[*]Added ObjectManager.LockedDoor.
[*]Added HandleLockedDoor task to open the tower door in act 3.
[*]Added HandleUndyingBlockage.
[*]Added ObjectManager.SewerGrating.
[*]Added a HandleSewers task to click on the Sewer Grating in The Slums if you have the Sewer Keys in your inventory.
[*]Added ObjectManager.Clarissa.
[*]TravelToGrindZoneTask now can handle the long delay for the City of Sarn transition as well.
[*]Added HandleA3Q1 to talk to Clarrisa when possible after saving her. Still needs some more testing as it can only be tested once per character per difficulty.
[*]AncientSeal is no longer a TriggerableBlockage.
[*]Added HandleA2Q9 to handle progression with Tree Roots.
[*]Added HandleA2Q9b to handle progression with the Ancient Seal.
[*]IsToraMissionBeast -> IsMissionMob.
[*]LifeComponent now dumps Auras in ToStrong.
[*]ObjectManager.Weaver added.
[*]SkillsPanel now supports the jewel sockets.
[*]HandleWeaverArea added for the weaver fight.
[*]NpcDialogPanel.CanConverse was added to support knowing if "Daily Mission" is usable or not, or any other chat entries that might be disabled.
[*]NpcDialogPanel.Converse will now return ConverseError.ChatEntryDisabled if the chat entry is unusable.
[*]LocalData.TileHash/DoodadHash -> RawTileHash/RawDoodadHash.
[*]LocalData.AreaHash added to replace previous usages of LocalData.TileHash. This is to avoid an issue where the act 3 town would have the same tile hash across difficulties, so area traversal could fail from the act 2 cruel town if it needs to go to act 3 merci. This change should help avoid such issues in the future.
[*]Added a DevNote for core_exploration_complete_event.
[*]HandlePietyArea updates since Piety doesn't always have a dead body it seems.
[*]ExplorationCompleteTask old Completed event handler removed and replaced with the new coroutine event system. The event is now core_exploration_complete_event.
[*]LokiPoe.Runtime added to track total program uptime.
[*]Added a basic Stats plugin example. Long overdue.
[*]Added Item.IsDivinationCardType.
[*]IItemFilter now implements a Match function. This is to allow code based filters more easily than before.
[*]DefaultItemEvaluator updated to implement some basic hard-coded filter matching.
[*]Updates for 2.0.0.10.
[*]ItemFilterEditor gui and logic removed to be updated to be compatible with the new changes.
[*]GoToFirstTab now tries a total of two times to changing the tab to the previous before returning an error.
[*]ItemEvaluator.OnSaved is now ItemEvaluator.OnRefreshed.
[*]ItemEvaluator.GetItemEvaluator is replaced with ItemEvaluator.Instance, which follows the same design as PlayerMover.
[*]The default item eval now has a static instance, DefaultItemEvaluator.Instance. The ctor of DefaultItemEvaluator is private so users do not create more than one copy.
[*]IItemEvaluator and IItemFilter have been added to the bot interfaces. New item filters should implement these to be compatible.
[*]TravelToGrindZoneTask now goes to town correctly if it needs to rather than looking for an area transition.
[*]HandleDaressoArea now doesn't execute if the grind zone isn't set to The Grand Arena.
[*]ExplorationCompleteTask now has an override to ignore a specific path in TranstionToTake. However, this approach is flawed as it could apply to other areas. For now, it won't change but it should in the future.
[*]Added TrackMoreMobs as a default task so the bot full clears areas (needed in daresso areas).
[*]Removed connection of Grand Arena -> Daresso's Dream since it's not traversable (still testing).
[*]Added EnterArenaTask so the bot can enter each boss arena in The Harvest and trigger the boss fights.
[*]Added Ledge specific logic to ExplorationCompleteTask.
[*]OldGrindBot now assigns a player mover based on lockstep or predictive.
[*]Added LockstepPlayerMover and PredictivePlayerMover which will replace DefaultPlayerMover. These will be further expanded in the future, as per area tweaks are needed in each.
[*]Added a BruteDeathExplosion object so users can know when Brutus is dead.
[*]Added HandleVaalArea and HandlePietyArea so the bot can handle those boss fights naturally better.
[*]ExplorationCompleteTask now handles the long delay for City of Sarn.
[*]Added LimitedLifespanComponent.
[*]Updates for 2.0.0.9.
[*]ObjectExplorer updated to have a refresh button for the current entry.
[*]HandleMerveilArea added so the bot can stay in the boss fight normally.
[*]Added BaseEventsComponent and UsableComponent.
[*]Updates for 2.0.0.7.
[*]ObjectExplorer updated to show inventory information as well. Component ToString is used to dump data rather than the higher level objects.
[*]Item.Tags and Item.MaxQuality added.
[*]Flask charges changed to int from uint.
[*]Components now have a ToString that dumps all relevant data.
[*]Various component cleanup and updates.
[*]ObjectExplorer logic updated to handle a billion objects in the Belly of the Beast areas. Before, multiple enumeration of objects would cause the client to freeze too long and DC.
[*]Added convenience properties to ObjectManager for various bosses.
[*]Added support for the Kaom boss fight and travelling there.
[*]Lowered weight of a secondary mob added in act 4 that would cause the bot to fight endlessly.
[*]Static locations added for some of the new Act 4 areas.
[*]Updated Skill logic for IsOnCooldown.
[*]Added HandleDominusArea to the core OldGrindBot.
[*]Removed Skill.ChargesLeft because math.
[*]Close is now an API function for InstanceManagerPanel and SocialPanel.
[*]Updates for 2.0.0.4.
[*]AssignPassivesTask now checks IsPassiveTreeWarningOverlayOpen.
[*]InstanceManagerPanel API updated to support joining any instance.
[*]JoinNewError -> JoinError.
[*]AssignMoveSkillTask now closes blocking windows so the skill can be assigned correctly.
[*]Added Item.FitsEquipRequirements.
[*]Assembly loader revamp to support order loading to avoid type resolving issues for more complicated dev setups. Plugins are now loaded based on load order in settings, then based on a text file, then everything else.
[*]object replaced with dynamic for interfaces.
[*]Updated PurchasePanel with some inventory processing from StashPanel.
[*]Added Coroutines.WaitForPurchasePanel.
[*]Docs now build a CHM that will be included with the bot.
[*]BasicRoutine updated with compiled python examples to use in the new CR design.
[*]ScriptManager.SetupScriptScope can now take no custom namespaces.
[*]Added a ForceStopBot button to the main GUI.
[*]Added an ExternalCommunication plugin to show off the new feature support.
[*]Added a ExternalCommunicationTester project to demo the new ExternalCommunication plugin.
[*]Added BotManager.TimeOfLastTick to track the last time Tick ran, in order to detect pathfinding lockups that happen in specific maps.
[*]LokiPoe.BotFullyLoaded added so users can know when the bot is fully loaded.
[*]AvailableWaypoints moved from WorldPanel into InstanceInfo.
[*]The old waypoint workaround removed since it was finally fixed in the client.
[*]Various coroutines that can create an instance through the InstanceManagerPanel for waypoints and area transitions now have a parameter that can limit how many instances can be listed at a time.
[*]TravelToGrindZoneTask.MaxInstances added in as a temp solution to ensure the bot won't make too many instances. It defaults to 10, and the bot will stop if there are more than this number of instances available when a new instance is desired from a waypoint/areatransition.
[*]Added GlobalSettings.PluginOrder; a way for users to specify the order in which plugins are processed once loaded.
[*]EnabledPlugins replaced with OrderedEnabledPlugins in most places.
[*]Added PluginManager.OrderedPlugins, which returns a list of plugins ordered by GlobalSettings.PluginOrder.
[*]The TaskManager in OldGrindBot.cs is no longer Frozen to not completely break people's code that relies on modifying the task list. However, the new bot implementation's TaskManager will be frozen.
[*]Utility CalculatePoint functions moved into Vector2/i.
[*]StaticLocationManager added so it's separate from AreaStateCache, which will be changing.
[*]Utility.Random moved into LokiPoe for a common random instance.
[*]GemLeveler now closes blocking windows if there are HUD skillgem icons to level.
[*]AutoPassives now closes the Skills window if it's open when it's logic has completed but is unable to run.
[*]InGameState.AreLevelSkillGemIconsDisplayed added to know if there are skillgem icons on the HUD.
[*]AutoPassives and GemLeveler updated to new coroutine hook design.
[*]TaskManager now supports freezing to prevent changes to tasks past a certain point.
[*]TaskManager is no longer a static class.
[*]TaskManager.Execute now returns true if a task was executed and false otherwise.
[*]PostCombatHookTask added to BasicGrindBot for the new coroutine hook design.
[*]IExplorer is no longer an IAuthored.
[*]IExplorer.AreaChange removed; it's handled internally now, and wasn't properly called before.
[*]Various aspects of GridExplorer reworked to address some potential issues with order of operations and tasks that use it.
[*]Removed GameEventManager in favor of a new dynamic event system though coroutines. All plugins and code updated to use this system.
[*]Added the CommonEvents plugin, which will be replacing GameEventManager.
[*]The old "execute" logic string is now "task_execute".
[*]Plugins now have a "plugin_coroutine_event" invocation before the task manager's "task_execute" invocation takes place in BasicGrindBot.
[*]TaskManager now checks for "_event" as the last substring in the type to ensure the event is passed to all tasks rather than the first that returns true.
[*]InGameState.AreLevelSkillGemIconsDisplayed added to know if there are skillgem icons on the HUD.
[*]Utility CalculatePoint functions moved into Vector2/i.
[*]Added ChatManager, a class that tracks chat messages so users can be notified when the client receives new ones.
[*]Input.ScrollMouseDown and Input.ScrollMouseUp added.
[*]Added LokiPoe.DecomposeBuildUrl to break down a passive build into skill ids.
[*]Added AutoPassives, a simple plugin for using the new SkillsPanel API.
[*]Added support for starting trades with party members who are in the same area and have a frame on the gui. The current code is a WIP but it does work.
[*]Implemented TradePanel logic, which is roughly the same as SellPanel, except for confirming items.
[*]HandlePendingPartyInvites now works from account names and takes an IEnumerable of strings to accept.
[*]Added LokiPoe.Paste, a function to paste in chat rather than having to use LokiPoe.Type.
[*]InGameState.IsNotificationActive added to know if any notification is currently being shown.
[*]InGameState.HandlePendingNotification added to handle trade requests.
[*]Implemented SocialPanel logic for joining/leaving parties.
[*]CloseBlockingWindows now closes the passive skills window.
[*]SettingsWindow now comes to the foreground when the Settings button is pressed on the main gui.
[*]InGameState.FrameUnderCursorPtr -> InGameState.FrameUnderCursor and is now public.
[*]Added Input.CtrlV(), which simulates a ctrl + v key press.
[*]SocialPanel.PublicParties can only return data while the gui is active.
[*]SocialPanel.JoinPublicParty logic updated.
[*]Added SocialPanel.IsFriendsTabSelected, IsGuildTabSelected, IsPartyTabSelected, and IsPublicPartiesTabSelected to know which tab is currently selected.
[*]Implemented SocialPanel.JoinPublicParty to join a party. Support is not present for scrolling.
[*]Added ClientApi.GetSettingString. This function can be used to get a string setting. Containers.DeleteStdStringW added to clean up memory, so it's not leaked as a string object is returned.
[*]Added InGameState.IsUsingLockstep and InGameState.IsUsingPredictive.
[*]All hard sleeps in v3 coroutines have been replaced with logic that detects the necessary change before continuing.
[*]WpfRtfAppender updated to not double execute timer calls.
[*]AsyncAppender updated to clear the last logged line after 1s.
[*]AsyncAppender updated to always process logging messages in order.
[*]StashPanel.UseItemOnItemInMainInventory updated to support shift clicking the same item more than once.
[*]InventoryPanel.UseItemOnItemInStash and InventoryPanel.UseItemOnItemInMainInventory updated to support shift clicking the same item more than once.
[*]Removed StatType and changing to StatTypeGGG rather than ints for other version compatibility.
[*]GemLeveler updated to handle the gui not updated when not opened any more.
[*]Added convenience Affix properties to match Stats.
[*]VendorItem.CanAfford is now properly working again.
[*]GetObjectFromComponents now uses the right comparison mode.
[*]Implemented Act 3 static location TGTs.
[*]Implemented Act 2 static location TGTs.
[*]Added a BloodPool object for Tora's missions.
[*]Added ObjectManager.AncientSeal for convenience.
[*]BotManager now has an IsStopping property. IsRunning is now locked to prevent issues across multiple threads. RequestStopEvent is now a ManualResetEvent so IsStopping works.
[*]Added ObjectManager.TreeRoots for convenience.
[*]Added PointerComponent and an Arrow object. This is for the Tora missions.
[*]TransitionType now has an enum for the different known types.
[*]Added a new LatencyTracker class to help with latency sensitive logic (for future support of the new client desync model).
[*]Added Actor.IsRelicInactive.
[*]Added a MissionMarker object.
[*]Added an object for Merveil's geysers.
[*]Added various ground effects as objects for more advanced logic. E.g., not standing in fire patches.
[*]ExilePather.Raycast now has a flag to not leave the current frame. This is to avoid memory exception errors in CRs that has long been an issue with the previous design. Other functions need similar.
[*]Actor.HasAura overload added that processes multiple aura names at a time for convenience.
[*]Plugins should now create one instance of their Gui and return that as requested rather than creating a new each time.
[*]TimePicker styling added so it shows up now, but needs compatibility fixes for MahApps.
[*]Moved Crypto from GlobalSettings into Loki so other setting instances can use it.
[*]Added the AutoLogin plugin to replace the hard coded auto-login functionality of the old bot.
[*]Bug fix in PHM Disable where State was assigned before Reset, causing it unable to Reset properly.
[*]Removed Tools menu since it's no longer needed.
[*]Removed the old ActionKey system in favour of just using Keys. This should reduce input API complexity for users.
[*]Added Input.Binding, a static class that exposes action key to key mappings.
[*]Added DevTab as a plugin now rather than being hard coded into the GUI.
[*]Plugin design updated slightly to correctly manage plugin's enabled state. Before, users would have to manage it themselves.
[*]GUI updated to use MahApps.
[/list]
[/spoiler]
[/spoiler]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment