EncodeString: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
mNo edit summary
No edit summary
Line 7: Line 7:
==Syntax==  
==Syntax==  
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
string encodeString ( string algorithm, string input, table options )   
string encodeString ( string algorithm, string input, table options [, function callback ] )   
</syntaxhighlight>  
</syntaxhighlight>  


Line 19: Line 19:
** ''key'': A key to encode the input with.
** ''key'': A key to encode the input with.


===Optional Arguments===
{{New feature/item|3.0160|1.5.7|20394|
*'''callback:''' providing a callback will run this function asynchronously, the arguments to the callback are the same as the returned values below.
}}
===Returns===
===Returns===
Returns the encoded string if successful, ''false'' otherwise.
Returns the encoded string if successful, ''false'' otherwise. If a callback was provided, the encoded string is argument to the callback.


==Example==  
==Example==  

Revision as of 09:27, 25 January 2020

This function encodes a string using the specified algorithm. The counterpart of this function is decodeString.

Syntax

string encodeString ( string algorithm, string input, table options [, function callback ] )  

Required Arguments

  • algorithm: The algorithm to use.
  • input: The input to encode.
  • options: A table with options and other neccessary data for the algorithm, as detailed below.

Options for each algorithm

Optional Arguments

  • callback: providing a callback will run this function asynchronously, the arguments to the callback are the same as the returned values below.

Returns

Returns the encoded string if successful, false otherwise. If a callback was provided, the encoded string is argument to the callback.

Example

Adds an /encode command in which you can provide an algorithm, key and data to encode. Below is the example provided as both server-side and client-side variations.

Click to collapse [-]
Server
addCommandHandler("encode", 
    function(player, _, algorithm, key, ...)
        if algorithm and key then
            local text = table.concat({...}, " ")
            if type(text) == "string" and text ~= "" then
                local encoded = encodeString(algorithm, text, { key = key })
                if encoded then
                    outputChatBox("The result of " .. algorithm .. " encoding is: " .. encoded, player)
                else
                    outputChatBox("Failed to encode. Make sure that all arguments are valid.", player, 255, 0, 0)
                end
            else
                outputChatBox("Please specify text in the command.", player, 255, 0, 0)
            end
        else
            outputChatBox("Invalid algorithm and/or key.", player, 255, 0, 0)
        end
    end
)
Click to collapse [-]
Client
addCommandHandler("encode", 
    function(_, algorithm, key, ...)
        if algorithm and key then
            local text = table.concat({...}, " ")
            if type(text) == "string" and text ~= "" then
                local encoded = encodeString(algorithm, text, { key = key })
                if encoded then
                    outputChatBox("The result of " .. algorithm .. " encoding is: " .. encoded)
                else
                    outputChatBox("Failed to encode. Make sure that all arguments are valid.", 255, 0, 0)
                end
            else
                outputChatBox("Please specify text in the command.", 255, 0, 0)
            end
        else
            outputChatBox("Invalid algorithm and/or key.", 255, 0, 0)
        end
    end
)

See Also