===== MashLib =====
A collection of useful commands that are going to be necessary to run my future addons.
==== Support ====
If you need support with this library or just wanna chat, join my [Discord Server](https://discord.gg/CvA8zjNRnq)! :D
==== Structure ====
MashLib = {
Helpers, -- Helpful stuff
System, -- FFXIV related stuff (servers, regions, etc)
Powershell, -- Powershell related functions
Character, -- Character related stuff
API, -- API Requests
Crafting, -- Crafting related stuff
Gathering, -- Gathering related stuff
Misc, -- Temporary values
Battle, -- Battle related stuff
Hacks, -- Useful hacks
Hunt, -- The Hunt related stuff
Logging, -- Entity Logging
Space, -- 2D and 3D space related stuff
}
==== API ====
=== Helpers ===
--[[
Get current time
@param {type} type = 'epoch', 'formatted' or 'formatted_no_spec'
@return {string}
]]
function MashLib.Helpers.GetTime(type)
--[[
Get current date
@param {type} type 'formatted' or 'formatted_no_spec'
@return {string}
]]
function MashLib.Helpers.GetDate(type)
--[[
Returns the time since the param
@param {string} time
@return {int}
]]
function MashLib.Helpers.TimeSince(time)
--[[
Get a keyboard's key info
@param {string} key
@returns {table}
]]
function MashLib.Helpers.GetKeyInfo(key)
--[[
Get a map's name
@param {int} id
@param {string} mode - 'default' or 'to_log'
@returns {string}
]]
function MashLib.Helpers.GetMapName(id, mode)
--[[
Returns float with a specific decimal
@param {bool} float
@returns {int}
]]
function MashLib.Helpers.ToFixed(float, dec)
--[[
Return the size of the table
@param {table} tbl
@returns {int}
]]
function MashLib.Helpers.SizeOf(tbl)
--[[
Turns seconds into milliseconds
@param {int} time
@returns {int}
]]
function MashLib.Helpers.HandleCoolDowns(time)
--[[
Get the highest value from table
@param {table} tbl
@returns {int}
]]
function MashLib.Helpers.GetMax(tbl)
--[[
Get the lowest value from table
@param {table} tbl
@returns {int}
]]
function MashLib.Helpers.GetMin(tbl)
--[[
Get the normalization translation table
@returns {table}
]]
function MashLib.Helpers.GetNormalizationTable()
--[[
Get the special char normalization translation table
@returns {table}
]]
function MashLib.Helpers.GetSpecialCharTable()
--[[
Normalizes a string
@param {string} string
@param {boolean} parameterize
@returns {string}
]]
function MashLib.Helpers.Normalize(string, parameterize)
--[[
Returns the file name from path
@param {string} path
@returns {string}
]]
function MashLib.Helpers.GetFileNameFromPath(path)
--[[
Split string
@param {string} inputstr
@param {string} separator
@param {string} datatype
@returns {string}
]]
function MashLib.Helpers.SplitString(inputstr, sep, datatype)
--[[
Join table into a string
@param {string} delimiter
@param {table} table
@returns {table}
]]
function MashLib.Helpers.Join(delimiter, table)
--[[
Limit a string length
@param {string} string
@param {int} length
@returns {string}
]]
function MashLib.Helpers.LimitLength(string, length)
--[[
Validates an email string
@param {string} str
@returns {boolean}
]]
function MashLib.Helpers.ValidateEmail(str)
--[[
Returns the percentage of a value
@param {number} percent
@param {number} value
@returns {number}
]]
function MashLib.Helpers.PercentOf(percent, value)
--[[
Removes a value from a table
@param {table} table
@param {string} value
@returns {table}
]]
function MashLib.Helpers.RemoveByValue(table, value)
--[[
Gets a key/value from a value
@param {table} table
@param {string} value
@param {boolean} keyonly
@returns {table}
]]
function MashLib.Helpers.GetByValue(table, value, keyonly)
--[[
Formats a number with commas
@param {string} number
@returns {string}
]]
function MashLib.Helpers.FormatNumber(number)
--[[
Escapes slashes /
@param {string} string
]]
function MashLib.Helpers.EscapeSlash(string)
--[[
Returns the first entry in a table
@param {table} table
@param {bool} key
]]
function MashLib.Helpers.First(table, key)
--[[
Returns the last entry in a table
@param {table} table
@param {bool} key
]]
function MashLib.Helpers.Last(table, key)
--[[
Returns the table without empty key/values
@param {table} table
@return {table}
]]
function MashLib.Helpers.DeleteEmpty(table)
--[[
Returns a table without the key/value passed
@param {table} table
@param {string} key
@return {table}
]]
function MashLib.Helpers.DeleteByKey(table, key)
--[[
Returns a table without the key/value passed
@param {table} table
@param {any} value
@return {table}
]]
function MashLib.Helpers.DeleteByValue(table, value)
--[[
Returns minion's quest id from GarlandTools quest id
@param {int} questId
@return {int}
]]
function MashLib.Helpers.GetMinionQuestId(questId)
=== System ===
--[[
Get most common keys from the keyboard.
@returns {Table}
]]
function MashLib.System.GetCommonKeys()
--[[
Get a Server by it's ID
@param {int} id
@returns {table}
]]
function MashLib.System.GetServer(id)
--[[
Get channel list
@param {int} id
@returns {table}
]]
function MashLib.System.GetChannelList()
--[[
Get channel by id
@returns {table}
]]
function MashLib.System.GetChannel(id)
--[[
Get a Region by it's ID
@param {int} id
@returns {string}
]]
function MashLib.System.GetRegion(id)
--[[
Get a Job's name by it's ID
@param {int} id
@returns {string}
]]
function MashLib.System.GetJob(id)
--[[
Get a Job's ID by it's name
@param {string} name
@returns {int}
]]
function MashLib.System.GetJobId(name)
--[[
Get the job list by all or by dominion
@param {string} dominion - 'battle', 'h-l', 'any'
@returns {int}
]]
function MashLib.System.GetJobList(dominion)
--[[
Check if the character is logged in or not
@returns {boolean}
]]
function MashLib.System.CheckLogin()
--[[
Check if the game is loading
@returns {boolean}
]]
function MashLib.System.IsLoading()
--[[
Get map's ID by name
@param {string} name
@return {int}
]]
function MashLib.System.GetMapId(name)
--[[
Get current map's info by Id
@param {int} id
@return {table}
]]
function MashLib.System.GetMap(id)
--[[
Loads and run a lua file
@param {string} filePath
@return {variant} Code return
]]
function MashLib.System.Require(filePath)
--[[
Converts TerritoryId to MapId
@param {int} territoryid
@return {int}
]]
function MashLib.System.GetMapIDFromTerritoryID(id)
--[[
Get expansion list
@param {string} type
@return {table}
]]
function MashLib.System.GetExpansionList(type)
--[[
Get expansion by id
@param {int} expansionid
@return {table}
]]
function MashLib.System.GetExpansionByID(expansionid)
--[[
Returns the file names inside a folder, and the files inside subfolders
Thanks to xSalice! <3
@param {string} folder path
@return {table}
]]
function MashLib.System.GetFilesInside(folder)
--[[
Changes to and enables Assist Bot Mode
]]
function MashLib.System.EnableAssistMode()
--[[
Disables Bot Mode
]]
function MashLib.System.TurnOffBotMode()
--[[
Searchs for an action by Name
@param {int} type
@param {string} name
]]
function MashLib.System.SearchAction(type, name)
--[[
Searchs for an action by Id
@param {int} type
@param {int} id
]]
function MashLib.System.SearchActionById(type, id)
--[[
Searchs for an entity nearby
@param {int} contentId
]]
function MashLib.System.FindEntityAroundPlayer(contentId)
=== Powershell ===
--[[
Execute a powershell file (.ps1)
@param {string} path
]]
function MashLib.Powershell.ExecuteFile(path)
--[[
Downloads a file
@param {string} url
@param {string} path on system
]]
function MashLib.Powershell.DownloadFile(url, path)
--[[
Opens a url in your browser
@param {string} url
]]
function MashLib.Powershell.OpenLink(url)
--[[
Executes a command on powershell
@param {string} command
]]
function MashLib.Powershell.Execute(command)
--[[
Plays a sound
@NOTE: Not yet implemented
]]
function MashLib.Powershell.PlaySound()
=== Character ===
--[[
Get the list of buffs on your character
@return {table}
]]
function MashLib.Character.GetBuffList()
--[[
Get the list of buffs on your character
@return {table}
]]
function MashLib.Character.HasBuff(id)
--[[
Teleports the player to the map with corresponding id
@param {int} aetheryteid
]]
function MashLib.Character.TeleportTo(aetheryteid)
--[[
Teleports the player to the first aetheryte of a map
@param {int} mapid
]]
function MashLib.Character.TeleportToFirst(mapid)
--[[
Teleports the player to the first aetheryte of a map, skips if already there
@param {int} mapid
]]
function MashLib.Character.TeleportToMap(mapid)
--[[
Checks if character is casting teleport
@return {boolean}
]]
function MashLib.Character.IsCastingTeleport()
--[[
Switch between Standard (0) and Legacy (1) move modes
@param {int} id
]]
function MashLib.Character.SetMoveModeTo(id)
=== Character.Inventory ===
--[[
Return an inventory item info by id
@param {int} id
@returns {table}
ResultObject
.category
.uicategory
.searchcategory
.name
.max
.level
.requiredlevel
.canequip
.equipslot
.class
.price
.rarity
.isunique
.desynthvalue
.replairclassjob
.repairitem
.iscollectable
.isuntradeable
.isbinding
]]
function MashLib.Character.Inventory.GetItemDetails(id)
--[[
Get inventory item list to a txt file for speeder
@param {string} search
@param {string} norepeat
]]
function MashLib.Character.Inventory.GetSpeederInventory(search, norepeat)
--[[
Get inventory item list or search
@param {string} search
@param {string} norepeat
@return {table} items
]]
function MashLib.Character.Inventory.Get(search, norepeat)
--[[
Get item from inventory by Id if quantity == 1
@param {string} id
@return {table}
]]
function MashLib.Character.Inventory.GetOneById(id)
--[[
Get item from inventory by Id
@param {string} id
@param {string} norepeat
@return {table}
]]
function MashLib.Character.Inventory.GetById(id, norepeat)
--[[
Get item list or search in a specific inventory
@param {string} inventory
@param {string} search
@param {boolean} norepeat
@return {table} items
]]
function MashLib.Character.Inventory.GetFromSpecific(inventory, search, norepeat)
--[[
Move an item to another slot
@param {int} inventory
@param {int} slot
@param {int} toinventory
@param {int} toslot
]]
function MashLib.Character.Inventory.Move(inventory, slot, toinventory, toslot)
--[[
Move an item object to another slot
@param {int} toinventory
@param {int} toslot
]]
function MashLib.Character.Inventory.MoveObject(object, toinventory, toslot)
=== API ===
--[[
Get an API endpoint's info by name
@param {string} name
@return {table}
]]
function MashLib.API.GetEndpoint(name)
=== Crafting ===
--[[
Get a craft condition by name
@param {string} name
@return {table}
]]
function MashLib.Crafting.GetCondition(name)
=== Gathering ===
=== Battle ===
--[[
Get an encounter info by ID
@param {int} id
@return {table}
]]
function MashLib.Battle.GetEncounter(id)
--[[
Get a list of skills on a specific job
@param {int} job
@return {table}
]]
function MashLib.Battle.GetSkillListByJobID(job)
=== Hacks ===
--[[
Set character's speed
@param {int|nil} fly
@param {int|nil} walk
@param {int|nil} mount
]]
function MashLib.Hacks.Speed.Set(fly, walk, mount)
=== Hunt ===
--[[
Get a mark's name by it's id
@param {string} expansion
@param {string} rank
@param {int} contentid
@retun {string}
]]
function MashLib.Hunt.GetMarkNameByID(expansion, rank, contentid)
--[[
Get mark list
@param {string} expansion
@param {string} rank
@retun {table}
]]
function MashLib.Hunt.GetMarkList(expansion, rank)
--[[
Gets the mark list on a map
@param {int} mapid
@retun {table}
]]
function MashLib.Hunt.GetMarkListOnMap(mapid)
--[[
Gets the mark list per map
@param {string} option | to_combo
@retun {table}
]]
function MashLib.Hunt.GetMarkListPerMap(option)
=== Space ===
--[[
Moves character to coords
@param {table} coords
]]
function MashLib.Space.MoveTo(coords)
--[[
Stops character from moving
]]
function MashLib.Space.Stop()
--[[
Get random coordinates around another coordinates, in a circular area
Thanks to Kitanoi <3
@param {table} coords
@param {int} radius
@return {table}
]]
function MashLib.Space.RandomPosCloseToCoords(coords, radius)
--[[
Calculates the 2D distance between two points
Thanks to Kali <3
@param {table} pos
@param {table} pos2
@param {bool} ignoreradius
@return {int}
]]
function MashLib.Space.Distance2D(pos, pos2, ignoreradius)
--[[
Calculates the 3D distance between two points
Thanks to Kali <3
@param {table} pos
@param {table} pos2
@param {bool} ignoreradius
@return {int}
]]
function MashLib.Space.Distance3D(pos, pos2, ignoreradius)
--[[
Places a flag in the map
@param {int} territoryid
@param {table} world coords -> x, z
@param optinal {int} mapid
]]
function MashLib.Space.SetMapFlag(territoryid, coords, mapid)
--[[
Gets the flag position in the map
@return {table}
]]
function MashLib.Space.GetMapFlag()
--[[
Converts world coordinates to map coordinates
@param optional {table} world coords
@param optional {int} mapid
@param optional {bool} exact
@return {table}
]]
function MashLib.Space.WorldToMap(coords, mapid, exact)
--[[
Converts map coordinates to world coordinates
Thanks to Kali and Kitano <3
@param {table} map coords
@param {int} scale
@return {table}
]]
function MashLib.Space.MapToWorld(coords, mapid)
--[[
Gets a specific map's scale
@param {int} mapid
@return {int}
]]
function MashLib.Space.GetMapScale(id)
=== Logging ===
--[[
Logs an entity
@param {table} target
@return {table}
]]
function MashLib.Logging.Entity(target)