Difference between revisions of "EncodeString"

From Multi Theft Auto: Wiki
m
m
 
(2 intermediate revisions by one other user not shown)
Line 1: Line 1:
 
__NOTOC__
 
__NOTOC__
 
{{Shared function}}
 
{{Shared function}}
{{New feature/item|3.0160|1.6|11849|
+
{{New feature/item|3.0156|1.5.5|11849|
This function encodes a string using a specified algorithm.
+
This function encodes a [[string]] using the specified algorithm. The counterpart of this function is [[decodeString]].
 
}}
 
}}
  
 
==Syntax==  
 
==Syntax==  
 
<syntaxhighlight lang="lua">
 
<syntaxhighlight lang="lua">
string|false encodeString ( string algorithm, string input, table options )   
+
string encodeString ( string algorithm, string input, table options )   
 
</syntaxhighlight>  
 
</syntaxhighlight>  
  
Line 13: Line 13:
 
*'''algorithm:''' The algorithm to use.
 
*'''algorithm:''' The algorithm to use.
 
*'''input:''' The input to encode.
 
*'''input:''' The input to encode.
*'''options :''' A table with options and other neccessary data for the algorithm, as detailed below
+
*'''options:''' A [[table]] with options and other neccessary data for the algorithm, as detailed below.
  
 
===Options for each algorithm===
 
===Options for each algorithm===
* ''tea'':
+
* ''tea'' ([https://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm Tiny Encryption Algorithm])
** ''key'' (string) A key to tea-encode the input with
+
** ''key'': A key to encode the input with.
  
 
===Returns===
 
===Returns===
 
Returns the encoded string if successful, ''false'' otherwise.
 
Returns the encoded string if successful, ''false'' otherwise.
  
==Example==
+
==Example==  
{{Needs 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.
 +
 
 +
<section name="Server" class="server" show="true">
 +
<syntaxhighlight lang="lua">
 +
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
 +
)
 +
</syntaxhighlight>
 +
</section>
 +
<section name="Client" class="client" show="true">
 +
<syntaxhighlight lang="lua">
 +
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
 +
)
 +
</syntaxhighlight>
 +
</section>
  
 
==See Also==
 
==See Also==
 
{{Utility functions}}
 
{{Utility functions}}

Latest revision as of 23:52, 1 July 2018

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 )  

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

Returns

Returns the encoded string if successful, false otherwise.

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