<?xml version="1.0"?>
<doc>
    <assembly>
        <name>ECommons</name>
    </assembly>
    <members>
        <member name="T:ECommons.Automation.AutoCutsceneSkipper">
            <summary>
            Provides automatic cutscene skipping trigger. Does not includes cutscene skipping confirmation.
            </summary>
        </member>
        <member name="F:ECommons.Automation.AutoCutsceneSkipper.Condition">
            <summary>
            Condition which will be checked to determine if the cutscene should be skipped. Can be null to skip everything unconditionally.
            </summary>
        </member>
        <member name="M:ECommons.Automation.AutoCutsceneSkipper.Init(System.Func{System.IntPtr,System.Boolean})">
            <summary>
            Initializes cutscene skipper trigger. 
            </summary>
            <param name="cutsceneSkipCondition">Condition which will be checked to determine if the cutscene should be skipped. Can be null to skip everything unconditionally.</param>
            <exception cref="T:System.Exception">If already initialized</exception>
        </member>
        <member name="M:ECommons.Automation.AutoCutsceneSkipper.Disable">
            <summary>
            Disables cutscene skipper trigger. Note that you do not need to call this in Dispose of the plugin, it is disposed automatically.
            </summary>
        </member>
        <member name="M:ECommons.Automation.AutoCutsceneSkipper.Enable">
            <summary>
            Enables previously disabled cutscene trigger. Note that you do not have to call this in constructor of the plugin, it is enabled automatically.
            </summary>
        </member>
        <member name="T:ECommons.Automation.Chat">
            <summary>
            A class containing chat functionality
            </summary>
        </member>
        <member name="M:ECommons.Automation.Chat.SendMessageUnsafe(System.Byte[])">
            <summary>
            <para>
            Send a given message to the chat box. <b>This can send chat to the server.</b>
            </para>
            <para>
            <b>This method is unsafe.</b> This method does no checking on your input and
            may send content to the server that the normal client could not. You must
            verify what you're sending and handle content and length to properly use
            this.
            </para>
            </summary>
            <param name="message">Message to send</param>
            <exception cref="T:System.InvalidOperationException">If the signature for this function could not be found</exception>
        </member>
        <member name="M:ECommons.Automation.Chat.SendMessage(System.String)">
            <summary>
            <para>
            Send a given message to the chat box. <b>This can send chat to the server.</b>
            </para>
            <para>
            This method is slightly less unsafe than <see cref="M:ECommons.Automation.Chat.SendMessageUnsafe(System.Byte[])"/>. It
            will throw exceptions for certain inputs that the client can't normally send,
            but it is still possible to make mistakes. Use with caution.
            </para>
            </summary>
            <param name="message">message to send</param>
            <exception cref="T:System.ArgumentException">If <paramref name="message"/> is empty, longer than 500 bytes in UTF-8, or contains invalid characters.</exception>
            <exception cref="T:System.InvalidOperationException">If the signature for this function could not be found</exception>
        </member>
        <member name="M:ECommons.Automation.Chat.SanitiseText(System.String)">
            <summary>
            <para>
            Sanitises a string by removing any invalid input.
            </para>
            <para>
            The result of this method is safe to use with
            <see cref="M:ECommons.Automation.Chat.SendMessage(System.String)"/>, provided that it is not empty or too
            long.
            </para>
            </summary>
            <param name="text">text to sanitise</param>
            <returns>sanitised text</returns>
            <exception cref="T:System.InvalidOperationException">If the signature for this function could not be found</exception>
        </member>
        <member name="P:ECommons.Automation.TaskManager.MaxTasks">
            <summary>
            Number of tasks that were registered in current cycle. Increases each time a task is enqueued and resets once there are no more tasks.
            </summary>
        </member>
        <member name="F:ECommons.Automation.TaskManager.TimeLimitMS">
            <summary>
            After this time limit has passed, a task will be given up.
            </summary>
        </member>
        <member name="F:ECommons.Automation.TaskManager.AbortOnTimeout">
            <summary>
            Whether to abort execution on timeout and clear all remaining tasks or not.
            </summary>
        </member>
        <member name="P:ECommons.Automation.TaskManager.AbortAt">
            <summary>
            Tick count (<see cref="P:System.Environment.TickCount64"/>) at which current task will be aborted
            </summary>
        </member>
        <member name="P:ECommons.Automation.TaskManager.NumQueuedTasks">
            <summary>
            Amount of currently queued tasks, including one that is currently being executed
            </summary>
        </member>
        <member name="F:ECommons.Automation.TaskManager.TimeoutSilently">
            <summary>
            Whether to redirect timeout errors into Verbose channel
            </summary>
        </member>
        <member name="F:ECommons.Automation.TaskManager.ShowDebug">
            <summary>
            Whether to output debug information into PluginLog
            </summary>
        </member>
        <member name="M:ECommons.Automation.TaskManager.#ctor">
            <summary>
            Initializes new instance of <see cref="T:ECommons.Automation.TaskManager"/>.
            </summary>
        </member>
        <member name="M:ECommons.Automation.TaskManager.SetStepMode(System.Boolean)">
            <summary>
            Sets step mode, when enabled task manager won't execute tasks automatically and will wait for Step command from you.
            </summary>
            <param name="enabled"></param>
        </member>
        <member name="M:ECommons.Automation.TaskManager.Step">
            <summary>
            Manually execute task manager cycle.
            </summary>
        </member>
        <member name="M:ECommons.Automation.TaskManager.Dispose">
            <summary>
            Disposes task manager, stopping all tasks immediately.
            </summary>
        </member>
        <member name="P:ECommons.Automation.TaskManager.IsBusy">
            <summary>
            Whether TaskManager is currently executing a task.
            </summary>
        </member>
        <member name="T:ECommons.CircularBuffers.CircularBuffer`1">
            <inheritdoc/>
            <summary>
            Circular buffer.
            
            When writing to a full buffer:
            PushBack -> removes this[0] / Front()
            PushFront -> removes this[Size-1] / Back()
            
            this implementation is inspired by
            http://www.boost.org/doc/libs/1_53_0/libs/circular_buffer/doc/circular_buffer.html
            because I liked their interface.
            </summary>
        </member>
        <member name="F:ECommons.CircularBuffers.CircularBuffer`1._start">
            <summary>
            The _start. Index of the first element in buffer.
            </summary>
        </member>
        <member name="F:ECommons.CircularBuffers.CircularBuffer`1._end">
            <summary>
            The _end. Index after the last element in the buffer.
            </summary>
        </member>
        <member name="F:ECommons.CircularBuffers.CircularBuffer`1._size">
            <summary>
            The _size. Buffer size.
            </summary>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.#ctor(System.Int32)">
            <summary>
            Initializes a new instance of the <see cref="T:ECommons.CircularBuffers.CircularBuffer`1"/> class.
            
            </summary>
            <param name='capacity'>
            Buffer capacity. Must be positive.
            </param>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.#ctor(System.Int32,`0[])">
            <summary>
            Initializes a new instance of the <see cref="T:ECommons.CircularBuffers.CircularBuffer`1"/> class.
            
            </summary>
            <param name='capacity'>
            Buffer capacity. Must be positive.
            </param>
            <param name='items'>
            Items to fill buffer with. Items length must be less than capacity.
            Suggestion: use Skip(x).Take(y).ToArray() to build this argument from
            any enumerable.
            </param>
        </member>
        <member name="P:ECommons.CircularBuffers.CircularBuffer`1.Capacity">
            <summary>
            Maximum capacity of the buffer. Elements pushed into the buffer after
            maximum capacity is reached (IsFull = true), will remove an element.
            </summary>
        </member>
        <member name="P:ECommons.CircularBuffers.CircularBuffer`1.IsFull">
            <summary>
            Boolean indicating if Circular is at full capacity.
            Adding more elements when the buffer is full will
            cause elements to be removed from the other end
            of the buffer.
            </summary>
        </member>
        <member name="P:ECommons.CircularBuffers.CircularBuffer`1.IsEmpty">
            <summary>
            True if has no elements.
            </summary>
        </member>
        <member name="P:ECommons.CircularBuffers.CircularBuffer`1.Size">
            <summary>
            Current buffer size (the number of elements that the buffer has).
            </summary>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.Front">
            <summary>
            Element at the front of the buffer - this[0].
            </summary>
            <returns>The value of the element of type T at the front of the buffer.</returns>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.Back">
            <summary>
            Element at the back of the buffer - this[Size - 1].
            </summary>
            <returns>The value of the element of type T at the back of the buffer.</returns>
        </member>
        <member name="P:ECommons.CircularBuffers.CircularBuffer`1.Item(System.Int32)">
            <summary>
            Index access to elements in buffer.
            Index does not loop around like when adding elements,
            valid interval is [0;Size[
            </summary>
            <param name="index">Index of element to access.</param>
            <exception cref="T:System.IndexOutOfRangeException">Thrown when index is outside of [; Size[ interval.</exception>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.PushBack(`0)">
            <summary>
            Pushes a new element to the back of the buffer. Back()/this[Size-1]
            will now return this element.
            
            When the buffer is full, the element at Front()/this[0] will be 
            popped to allow for this new element to fit.
            </summary>
            <param name="item">Item to push to the back of the buffer</param>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.PushFront(`0)">
            <summary>
            Pushes a new element to the front of the buffer. Front()/this[0]
            will now return this element.
            
            When the buffer is full, the element at Back()/this[Size-1] will be 
            popped to allow for this new element to fit.
            </summary>
            <param name="item">Item to push to the front of the buffer</param>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.PopBack">
            <summary>
            Removes the element at the back of the buffer. Decreasing the 
            Buffer size by 1.
            </summary>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.PopFront">
            <summary>
            Removes the element at the front of the buffer. Decreasing the 
            Buffer size by 1.
            </summary>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.Clear">
            <summary>
            Clears the contents of the array. Size = 0, Capacity is unchanged.
            </summary>
            <exception cref="T:System.NotImplementedException"></exception>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.ToArray">
            <summary>
            Copies the buffer contents to an array, according to the logical
            contents of the buffer (i.e. independent of the internal 
            order/contents)
            </summary>
            <returns>A new array with a copy of the buffer contents.</returns>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.ToArraySegments">
             <summary>
             Get the contents of the buffer as 2 ArraySegments.
             Respects the logical contents of the buffer, where
             each segment and items in each segment are ordered
             according to insertion.
            
             Fast: does not copy the array elements.
             Useful for methods like <c>Send(IList&lt;ArraySegment&lt;Byte&gt;&gt;)</c>.
             
             <remarks>Segments may be empty.</remarks>
             </summary>
             <returns>An IList with 2 segments corresponding to the buffer content.</returns>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.GetEnumerator">
            <summary>
            Returns an enumerator that iterates through this buffer.
            </summary>
            <returns>An enumerator that can be used to iterate this collection.</returns>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.Increment(System.Int32@)">
            <summary>
            Increments the provided index variable by one, wrapping
            around if necessary.
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.Decrement(System.Int32@)">
            <summary>
            Decrements the provided index variable by one, wrapping
            around if necessary.
            </summary>
            <param name="index"></param>
        </member>
        <member name="M:ECommons.CircularBuffers.CircularBuffer`1.InternalIndex(System.Int32)">
            <summary>
            Converts the index in the argument to an index in <code>_buffer</code>
            </summary>
            <returns>
            The transformed index.
            </returns>
            <param name='index'>
            External index.
            </param>
        </member>
        <member name="M:ECommons.Commands.CmdAttribute.#ctor(System.String,System.String,System.Boolean,System.Boolean)">
            <summary>
            
            </summary>
            <param name="command"></param>
            <param name="helpMessage"></param>
            <param name="showInHelp"></param>
            <param name="showInHelpPanel">Whether show the major command help on the <seealso cref="T:ImGuiNET.ImGui"/> window</param>
        </member>
        <member name="M:ECommons.Commands.CmdManager.DrawHelp(System.Single)">
            <summary>
            Draw the help panel into the <seealso cref="T:ImGuiNET.ImGui"/> window.
            </summary>
            <param name="indent">The indent of value. 0 means no index, -1 means next line.</param>
        </member>
        <member name="T:ECommons.ExcelResolver`1">
            <summary>
            This object resolves a rowID within an Excel sheet.
            </summary>
            <typeparam name="T">The type of Lumina sheet to resolve.</typeparam>
        </member>
        <member name="M:ECommons.ExcelResolver`1.#ctor(System.UInt32)">
            <summary>
            Initializes a new instance of the <see cref="T:ECommons.ExcelResolver`1"/> class.
            </summary>
            <param name="id">The ID of the classJob.</param>
        </member>
        <member name="P:ECommons.ExcelResolver`1.Id">
            <summary>
            Gets the ID to be resolved.
            </summary>
        </member>
        <member name="P:ECommons.ExcelResolver`1.GameData">
            <summary>
            Gets GameData linked to this excel row.
            </summary>
        </member>
        <member name="M:ECommons.ExcelResolver`1.GetWithLanguage(Dalamud.ClientLanguage)">
            <summary>
            Gets GameData linked to this excel row with the specified language.
            </summary>
            <param name="language">The language.</param>
            <returns>The ExcelRow in the specified language.</returns>
        </member>
        <member name="M:ECommons.ExcelServices.ExcelTerritoryHelper.IsSanctuary(System.UInt32)">
            <summary>
            Checks if territory belongs to main cities, inns, residential areas or houses. 
            </summary>
            <param name="territoryType"></param>
            <returns></returns>
        </member>
        <member name="M:ECommons.ExcelServices.ExcelTerritoryHelper.GetName(System.UInt32,System.Boolean)">
            <summary>
            Gets fancy name for a territory.
            </summary>
            <param name="TerritoryType">Zone ID</param>
            <param name="includeID">Whether to include an ID into name</param>
            <returns>Content finder condition if exists; otherwise - zone name if exists; otherwise - zone ID as a string</returns>
        </member>
        <member name="F:ECommons.ExcelServices.Job.ADV">
            <summary>
            Adventurer 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.GLA">
            <summary>
            Gladiator 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.PGL">
            <summary>
            Pugilist 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.MRD">
            <summary>
            Marauder 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.LNC">
            <summary>
            Lancer 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.ARC">
            <summary>
            Archer 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.CNJ">
            <summary>
            Conjurer 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.THM">
            <summary>
            Thaumaturge
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.CRP">
            <summary>
            Carpenter
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.BSM">
            <summary>
            Blacksmith
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.ARM">
            <summary>
            Armorer
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.GSM">
            <summary>
            Goldsmith
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.LTW">
            <summary>
            Leatherworker
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.WVR">
            <summary>
            Weaver
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.ALC">
            <summary>
            Alchemist
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.CUL">
            <summary>
            Culinarian
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.MIN">
            <summary>
            Miner
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.BTN">
            <summary>
            Botanist
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.FSH">
            <summary>
            Fisher
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.PLD">
            <summary>
            Paladin 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.MNK">
            <summary>
            Monk 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.WAR">
            <summary>
            Warrior 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.DRG">
            <summary>
            Dragoon 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.BRD">
            <summary>
            Bard 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.WHM">
            <summary>
            WhiteMage 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.BLM">
            <summary>
            BlackMage
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.ACN">
            <summary>
            Arcanist 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.SMN">
            <summary>
            Summoner 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.SCH">
            <summary>
            Scholar 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.ROG">
            <summary>
            Rogue 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.NIN">
            <summary>
            Ninja 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.MCH">
            <summary>
            Machinist 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.DRK">
            <summary>
            DarkKnight 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.AST">
            <summary>
            Astrologian 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.SAM">
            <summary>
            Samurai 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.RDM">
            <summary>
            RedMage 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.BLU">
            <summary>
            BlueMage 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.GNB">
            <summary>
            Gunbreaker 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.DNC">
            <summary>
            Dancer 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.RPR">
            <summary>
            Reaper 
            </summary>
        </member>
        <member name="F:ECommons.ExcelServices.Job.SGE">
            <summary>
            Sage 
            </summary>
        </member>
        <member name="F:ECommons.Gamepad.GamePad.ControllerButtons">
            <summary>
            Dictionary containing a mapping of <see cref="T:Dalamud.Game.ClientState.GamePad.GamepadButtons"/> to Playstation / Xbox button names.
            </summary>
        </member>
        <member name="M:ECommons.Gamepad.GamePad.IsControllerEnabled">
            <summary>
            Gets the "Enable gamepad" option from FFXIV to indicate if the gamepad has been enabled in FFXIV.
            </summary>
            <returns>FFXIV is using a controller.</returns>
        </member>
        <member name="M:ECommons.Gamepad.GamePad.IsButtonPressed(Dalamud.Game.ClientState.GamePad.GamepadButtons)">
            <summary>
            Checks if a controller button has been pressed. Only true on the first frame it has been pressed.
            </summary>
            <param name="button">Button to check.</param>
            <returns>Button has just been pressed.</returns>
        </member>
        <member name="M:ECommons.Gamepad.GamePad.IsButtonHeld(Dalamud.Game.ClientState.GamePad.GamepadButtons)">
            <summary>
            Checks if a controller button is currently held. Returns true for every frame it's held down.
            </summary>
            <param name="button">Button to check.</param>
            <returns>Button is being held down.</returns>
        </member>
        <member name="M:ECommons.Gamepad.GamePad.IsButtonJustReleased(Dalamud.Game.ClientState.GamePad.GamepadButtons)">
            <summary>
            Checks if a controller button has just been released. Only true on the first frame after releasing.
            </summary>
            <param name="button">Button to check.</param>
            <returns>Button has just been released.</returns>
        </member>
        <member name="M:ECommons.GenericHelpers.NullWhenFalse(System.String,System.Boolean)">
            <summary>
            Returns <paramref name="s"/> when <paramref name="b"/> is <see langword="true"/>, <see langword="null"/> otherwise
            </summary>
            <param name="s"></param>
            <param name="b"></param>
            <returns></returns>
        </member>
        <member name="M:ECommons.GenericHelpers.AsUInt32(System.Single)">
            <summary>
            Returns <see cref="T:System.UInt32"/> representation of <see cref="T:System.Single"/>.
            </summary>
            <param name="f"></param>
            <returns></returns>
        </member>
        <member name="M:ECommons.GenericHelpers.AsFloat(System.UInt32)">
            <summary>
            Converts <see cref="T:System.UInt32"/> representation of <see cref="T:System.Single"/> into <see cref="T:System.Single"/>.
            </summary>
            <param name="u"></param>
            <returns></returns>
        </member>
        <member name="M:ECommons.GenericHelpers.Add``1(System.Collections.Generic.ICollection{``0},``0[])">
            <summary>
            Tries to add multiple items to collection
            </summary>
            <typeparam name="T">Collection type</typeparam>
            <param name="collection">Collection</param>
            <param name="values">Items</param>
        </member>
        <member name="M:ECommons.GenericHelpers.Remove``1(System.Collections.Generic.ICollection{``0},``0[])">
            <summary>
            Tries to remove multiple items to collection. In case if few of the same values are present in the collection, only first will be removed.
            </summary>
            <typeparam name="T">Collection type</typeparam>
            <param name="collection">Collection</param>
            <param name="values">Items</param>
        </member>
        <member name="F:ECommons.GenericHelpers.UseAsyncKeyCheck">
            <summary>
            Sets whether <see cref="M:PInvoke.User32.GetKeyState(System.Int32)"/> or <see cref="M:PInvoke.User32.GetAsyncKeyState(System.Int32)"/> will be used when calling <see cref="M:ECommons.GenericHelpers.IsKeyPressed(System.Windows.Forms.Keys)"/> or <see cref="M:ECommons.GenericHelpers.IsKeyPressed(ECommons.Interop.LimitedKeys)"/>
            </summary>
        </member>
        <member name="M:ECommons.GenericHelpers.IsKeyPressed(System.Windows.Forms.Keys)">
            <summary>
            Checks if a key is pressed via winapi.
            </summary>
            <param name="key">Key</param>
            <returns>Whether the key is currently pressed</returns>
        </member>
        <member name="M:ECommons.GenericHelpers.IsKeyPressed(ECommons.Interop.LimitedKeys)">
            <summary>
            Checks if a key is pressed via winapi.
            </summary>
            <param name="key">Key</param>
            <returns>Whether the key is currently pressed</returns>
        </member>
        <member name="M:ECommons.GenericHelpers.IsTarget(Dalamud.Game.ClientState.Objects.Types.GameObject)">
            <summary>
            Checks if you are targeting object <paramref name="obj"/>.
            </summary>
            <param name="obj">Object to check</param>
            <returns>Whether you are targeting object <paramref name="obj"/>; <see langword="false"/> if <paramref name="obj"/> is <see langword="null"/></returns>
        </member>
        <member name="M:ECommons.GenericHelpers.JSONClone``1(``0)">
            <summary>
            Serializes and then deserializes object, returning result of deserialization using <see cref="N:Newtonsoft.Json"/>
            </summary>
            <typeparam name="T"></typeparam>
            <param name="obj"></param>
            <returns>Deserialized copy of <paramref name="obj"/></returns>
        </member>
        <member name="M:ECommons.GenericHelpers.ParseInt(System.String)">
            <summary>
            Attempts to parse integer
            </summary>
            <param name="number">Input string</param>
            <returns>Integer if parsing was successful, <see langword="null"/> if failed</returns>
        </member>
        <member name="M:ECommons.GenericHelpers.GetOrCreate``2(System.Collections.Generic.IDictionary{``0,``1},``0)">
            <summary>
            Retrieves a value from dictionary, adding it first if it doesn't exists yet.
            </summary>
            <typeparam name="K"></typeparam>
            <typeparam name="V"></typeparam>
            <param name="dictionary"></param>
            <param name="key"></param>
            <returns></returns>
        </member>
        <member name="M:ECommons.GenericHelpers.Each``1(System.Collections.Generic.IEnumerable{``0},System.Action{``0})">
            <summary>
            Executes action for each element of collection.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="collection"></param>
            <param name="function"></param>
        </member>
        <member name="M:ECommons.GenericHelpers.TryDecodeSender(Dalamud.Game.Text.SeStringHandling.SeString,ECommons.ChatMethods.Sender@)">
            <summary>
            Attempts to parse player in a <see cref="T:Dalamud.Game.Text.SeStringHandling.SeString"/>. 
            </summary>
            <param name="sender"><see cref="T:Dalamud.Game.Text.SeStringHandling.SeString"/> from which to read player</param>
            <param name="senderStruct">Resulting player data</param>
            <returns>Whether operation succeeded</returns>
        </member>
        <member name="M:ECommons.GenericHelpers.ExtractText(Lumina.Text.SeString,System.Boolean)">
            <summary>
            Discards any non-text payloads from <see cref="T:Dalamud.Game.Text.SeStringHandling.SeString"/>
            </summary>
            <param name="s"></param>
            <param name="onlyFirst">Whether to find first text payload and only return it</param>
            <returns>String that only includes text payloads</returns>
        </member>
        <member name="M:ECommons.GenericHelpers.ExtractText(FFXIVClientStructs.FFXIV.Client.System.String.Utf8String,System.Boolean)">
            <summary>
            Reads SeString from unmanaged memory and discards any non-text payloads from <see cref="T:Dalamud.Game.Text.SeStringHandling.SeString"/>
            </summary>
            <param name="s"></param>
            <param name="onlyFirst">Whether to find first text payload and only return it</param>
            <returns>String that only includes text payloads</returns>
        </member>
        <member name="M:ECommons.GenericHelpers.ExtractText(Dalamud.Game.Text.SeStringHandling.SeString,System.Boolean)">
            <summary>
            Discards any non-text payloads from <see cref="T:Dalamud.Game.Text.SeStringHandling.SeString"/>
            </summary>
            <param name="seStr"></param>
            <param name="onlyFirst">Whether to find first text payload and only return it</param>
            <returns>String that only includes text payloads</returns>
        </member>
        <member name="M:ECommons.GenericHelpers.Toggle``1(System.Collections.Generic.HashSet{``0},``0)">
            <summary>
            Adds <paramref name="value"/> into <see cref="!:HashSet"/> if it doesn't exists yet or removes if it exists.
            </summary>
            <typeparam name="T"></typeparam>
            <param name="hashSet"></param>
            <param name="value"></param>
            <returns>Whether <paramref name="hashSet"/> contains <paramref name="value"/> after function has been executed.</returns>
        </member>
        <member name="M:ECommons.Hooks.ActionEffect.Init(System.Action{System.UInt32,System.UInt16,ECommons.Hooks.ActionEffectTypes.ActionEffectType,System.UInt32,System.UInt64,System.UInt32},System.Boolean)">
            <summary>
            
            </summary>
            <param name="fullParamsCallback">uint ActionID, ushort animationID, ActionEffectType type, uint sourceID, ulong targetOID, uint damage</param>
            <param name="logging"></param>
            <exception cref="T:System.Exception"></exception>
        </member>
        <member name="P:ECommons.Hooks.ActionEffectTypes.TargetEffect.Item(System.Int32)">
            <summary>
            Get Effect.
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="T:ECommons.ImGuiMethods.EColor">
            <summary>
            A set of fancy color for use in plugins. You can redefine them to match necessary style!
            </summary>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.ButtonCheckbox(System.String,System.Nullable{System.Boolean}@,System.Nullable{System.Numerics.Vector4},System.Nullable{System.Numerics.Vector4},System.Boolean)">
            <summary>
            Provides a button that can be used to switch <see langword="bool"/>? variables. Left click - to toggle between <see langword="true"/> and <see langword="null"/>, right click - to toggle between <see langword="false"/> and <see langword="null"/>.
            </summary>
            <param name="name"></param>
            <param name="value"></param>
            <param name="TrueColor">Color when <paramref name="value"/> is true</param>
            <param name="FalseColor">Color when <paramref name="value"/> is false</param>
            <param name="smallButton">Whether a button should be small</param>
            <returns></returns>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.Vector4FromRGB(System.UInt32,System.Single)">
            <summary>
            Converts RGB color to <see cref="T:System.Numerics.Vector4"/> for ImGui
            </summary>
            <param name="col">Color in format 0xRRGGBB</param>
            <param name="alpha">Optional transparency value between 0 and 1</param>
            <returns>Color in <see cref="T:System.Numerics.Vector4"/> format ready to be used with <see cref="T:ImGuiNET.ImGui"/> functions</returns>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.Vector4FromRGBA(System.UInt32)">
            <summary>
            Converts RGBA color to <see cref="T:System.Numerics.Vector4"/> for ImGui
            </summary>
            <param name="col">Color in format 0xRRGGBBAA</param>
            <returns>Color in <see cref="T:System.Numerics.Vector4"/> format ready to be used with <see cref="T:ImGuiNET.ImGui"/> functions</returns>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.ButtonCheckbox(System.String,System.Boolean@,System.Boolean)">
            <summary>
            Draws a button that acts like a checkbox.
            </summary>
            <param name="name">Button text</param>
            <param name="value">Value</param>
            <param name="smallButton">Whether button should be small</param>
            <returns>true when clicked, otherwise false</returns>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.ButtonCheckbox(System.String,System.Boolean@,System.UInt32,System.Boolean)">
            <summary>
            Draws a button that acts like a checkbox.
            </summary>
            <param name="name">Button text</param>
            <param name="value">Value</param>
            <param name="color">Active button color</param>
            <param name="smallButton">Whether button should be small</param>
            <returns>true when clicked, otherwise false</returns>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.ButtonCheckbox(System.String,System.Boolean@,System.Numerics.Vector4,System.Boolean)">
            <summary>
            Draws a button that acts like a checkbox.
            </summary>
            <param name="name">Button text</param>
            <param name="value">Value</param>
            <param name="color">Active button color</param>
            <param name="smallButton">Whether button should be small</param>
            <returns>true when clicked, otherwise false</returns>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.RadioButtonBool(System.String,System.String,System.Boolean@,System.Boolean,System.Action,System.Action)">
            <summary>
            Draws two radio buttons for a boolean value.
            </summary>
            <param name="labelTrue">True choice radio button text</param>
            <param name="labelFalse">False choice radio button text</param>
            <param name="value">Value</param>
            <param name="sameLine">Whether to draw radio buttons on the same line</param>
            <param name="prefix">Will be invoked before each radio button draw</param>
            <param name="suffix">Will be invoked after each radio button draw</param>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.EzTableColumns(System.String,System.Action[])">
            <summary>
            Draws equally sized columns without ability to resize
            </summary>
            <param name="id">Unique ImGui ID</param>
            <param name="values">List of actions for each column</param>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.ButtonCtrl(System.String,System.Nullable{System.Numerics.Vector2},System.String)">
            <summary>
            Button that is disabled unless CTRL key is held
            </summary>
            <param name="text">Button ID</param>
            <param name="affix">Button affix</param>
            <returns></returns>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.SliderIntAsFloat(System.String,System.Int32@,System.Int32,System.Int32,System.Single)">
            <summary>
            Displays ImGui.SliderFloat for internal int value.
            </summary>
            <param name="id">ImGui ID</param>
            <param name="value">Integer value</param>
            <param name="min">Minimal value</param>
            <param name="max">Maximum value</param>
            <param name="divider">Value is divided by divider before being presented to user</param>
            <returns></returns>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.InputWithRightButtonsArea(System.String,System.Action,System.Action)">
            <summary>
            Convenient way to display stretched input with button or other elements on it's right side.
            </summary>
            <param name="id">Unique ID</param>
            <param name="inputAction">A single element that accepts transformation by ImGui.SetNextItemWidth method</param>
            <param name="rightAction">A line of elements on the right side. Can contain multiple elements but only one line.</param>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.TextV(System.Nullable{System.Numerics.Vector4},System.String)">
            <summary>
            Aligns text vertically to a standard size button.
            </summary>
            <param name="col">Color</param>
            <param name="s">Text</param>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.TextV(System.String)">
            <summary>
            Aligns text vertically to a standard size button.
            </summary>
            <param name="s">Text</param>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.EnumCombo``1(System.String,``0@,System.Collections.Generic.IDictionary{``0,System.String})">
            <summary>
            Draws an easy combo selector for an enum with a search field for long lists.
            </summary>
            <typeparam name="T">Enum</typeparam>
            <param name="name">ImGui ID</param>
            <param name="refConfigField">Value</param>
            <param name="names">Optional Name overrides</param>
        </member>
        <member name="M:ECommons.ImGuiMethods.ImGuiEx.EnumCombo``1(System.String,``0@,System.Func{``0,System.Boolean},System.Collections.Generic.IDictionary{``0,System.String})">
            <summary>
            Draws an easy combo selector for an enum with a search field for long lists.
            </summary>
            <typeparam name="T">Enum</typeparam>
            <param name="name">ImGui ID</param>
            <param name="refConfigField">Value</param>
            <param name="filter">Optional filter</param>
            <param name="names">Optional Name overrides</param>
            <returns></returns>
        </member>
        <member name="M:ECommons.Interop.WindowFunctions.ApplicationIsActivated">
            <summary>Returns true if the current application has focus, false otherwise</summary>
        </member>
        <member name="P:ECommons.SplatoonAPI.Element.refX">
            <summary>
            When type is fixed coordinate element: specifies coordinate of that element, otherwise has no effect
            </summary>
        </member>
        <member name="P:ECommons.SplatoonAPI.Element.refY">
            <summary>
            When type is fixed coordinate element: specifies coordinate of that element, otherwise has no effect
            </summary>
        </member>
        <member name="P:ECommons.SplatoonAPI.Element.refZ">
            <summary>
            When type is fixed coordinate element: specifies coordinate of that element, otherwise has no effect
            </summary>
        </member>
        <member name="P:ECommons.SplatoonAPI.Element.offX">
            <summary>
            Specifies offset from targeted object or fixed coordinate
            </summary>
        </member>
        <member name="P:ECommons.SplatoonAPI.Element.offY">
            <summary>
            Specifies offset from targeted object or fixed coordinate
            </summary>
        </member>
        <member name="P:ECommons.SplatoonAPI.Element.offZ">
            <summary>
            Specifies offset from targeted object or fixed coordinate
            </summary>
        </member>
        <member name="T:ECommons.SplatoonAPI.ElementType">
            <summary>
            0: Object at fixed coordinates |
            1: Object relative to actor position | 
            2: Line between two fixed coordinates | 
            3: Line relative to object pos | 
            4: Cone relative to object position |
            5: Cone at fixed coordinates
            </summary>
        </member>
        <member name="T:ECommons.SplatoonAPI.RefActorComparisonType">
            <summary>
            0: Name |
            1: Model ID |
            2: Object ID |
            3: Data ID | 
            4: NPC ID |
            5: Placeholder |
            6: Name ID | 
            7: VFX Path
            </summary>
        </member>
        <member name="T:ECommons.SplatoonAPI.RefActorType">
            0: Game object with specific name |
            1: Self |
            2: Targeted enemy
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.SetOnConnect(System.Action)">
            <summary>
            Executed when connected or reconnected to Splatoon. Create and recreate your elements here. Once this event is fired, all already created elements become invalid.
            </summary>
            <param name="action">Action to be executed on connect</param>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.IsConnected">
            <returns>Whether currently connected to Splatoon</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.AddDynamicElement(System.String,ECommons.SplatoonAPI.Element,System.Int64[])">
            <summary>
            Add persistent dynamic element.
            </summary>
            <param name="name">Non-unique namespace of the element</param>
            <param name="e">Element or array of elements</param>
            <param name="DestroyCondition">Destroy condition or array of them where: -2 is destroy on zone change; -1 is destroy on combat end; 0 is never destroy; any other number - system tick at which it should be destroyed, where current system tick can be obtained with Environment.TickCount64 parameter.</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.AddDynamicElement(System.String,ECommons.SplatoonAPI.Element,System.Int64)">
            <summary>
            Add persistent dynamic element.
            </summary>
            <param name="name">Non-unique namespace of the element</param>
            <param name="e">Element or array of elements</param>
            <param name="DestroyCondition">Destroy condition or array of them where: -2 is destroy on zone change; -1 is destroy on combat end; 0 is never destroy; any other number - system tick at which it should be destroyed, where current system tick can be obtained with Environment.TickCount64 parameter.</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.AddDynamicElements(System.String,ECommons.SplatoonAPI.Element[],System.Int64)">
            <summary>
            Add persistent dynamic element.
            </summary>
            <param name="name">Non-unique namespace of the element</param>
            <param name="e">Element or array of elements</param>
            <param name="DestroyCondition">Destroy condition or array of them where: -2 is destroy on zone change; -1 is destroy on combat end; 0 is never destroy; any other number - system tick at which it should be destroyed, where current system tick can be obtained with Environment.TickCount64 parameter.</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.AddDynamicElement(System.String,ECommons.SplatoonAPI.Element,System.Single[])">
            <summary>
            Add persistent dynamic element.
            </summary>
            <param name="name">Non-unique namespace of the element</param>
            <param name="e">Element or array of elements</param>
            <param name="DestroyCondition">Destroy condition or array of them where: -2 is destroy on zone change; -1 is destroy on combat end; 0 is never destroy; any other number - amount of seconds before element will be destroyed from the moment of it's addition.</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.AddDynamicElement(System.String,ECommons.SplatoonAPI.Element,System.Single)">
            <summary>
            Add persistent dynamic element.
            </summary>
            <param name="name">Non-unique namespace of the element</param>
            <param name="e">Element or array of elements</param>
            <param name="DestroyCondition">Destroy condition or array of them where: -2 is destroy on zone change; -1 is destroy on combat end; 0 is never destroy; any other number - amount of seconds before element will be destroyed from the moment of it's addition.</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.AddDynamicElements(System.String,ECommons.SplatoonAPI.Element[],System.Single)">
            <summary>
            Add persistent dynamic element.
            </summary>
            <param name="name">Non-unique namespace of the element</param>
            <param name="e">Element or array of elements</param>
            <param name="DestroyCondition">Destroy condition or array of them where: -2 is destroy on zone change; -1 is destroy on combat end; 0 is never destroy; any other number - amount of seconds before element will be destroyed from the moment of it's addition.</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.AddDynamicElements(System.String,ECommons.SplatoonAPI.Element[],System.Single[])">
            <summary>
            Add persistent dynamic element.
            </summary>
            <param name="name">Non-unique namespace of the element</param>
            <param name="e">Element or array of elements</param>
            <param name="DestroyConditionF">Destroy condition or array of them where: -2 is destroy on zone change; -1 is destroy on combat end; 0 is never destroy; any other number - amount of seconds before element will be destroyed from the moment of it's addition.</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.AddDynamicElements(System.String,ECommons.SplatoonAPI.Element[],System.Int64[])">
            <summary>
            Add persistent dynamic element.
            </summary>
            <param name="name">Non-unique namespace of the element</param>
            <param name="e">Element or array of elements</param>
            <param name="DestroyCondition">Destroy condition or array of them where: -2 is destroy on zone change; -1 is destroy on combat end; 0 is never destroy; any other number - system tick at which it should be destroyed, where current system tick can be obtained with Environment.TickCount64 parameter.</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.DisplayOnce(ECommons.SplatoonAPI.Element)">
            <summary>
            Display certain element in next frame only. 
            </summary>
            <param name="e">Element to display</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.RemoveDynamicElements(System.String)">
            <summary>
            Removes dynamic elements with specific name. If more than one element was registered under certain name, all of these elements will be removed.
            </summary>
            <param name="name">Name of element(s)</param>
            <returns>Whether operation was successful</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.DecodeElement(System.String)">
            <summary>
            Attempts to decode element that was encoded into JSON.
            </summary>
            <param name="input">Input string, you can export it from Splatoon. Make sure element is enabled!</param>
            <returns>Element that is ready for use or null if failed</returns>
        </member>
        <member name="M:ECommons.SplatoonAPI.Splatoon.DecodeLayout(System.String)">
            <summary>
            Work in progress on this function
            </summary>
            <param name="input"></param>
            <returns></returns>
        </member>
    </members>
</doc>
