MCPcopy Create free account
hub / github.com/Kruiser8/Kruiz-Control / getInputs

Method getInputs

js/parser.js:93–128  ·  view source on GitHub ↗

* Get the input values for the given line. * @param {array} lineData input to grab the action * @param {array} inputNames the list of input names to grab * @param {false} supportsAliases true if the input allows aliases * @param {numeric} optionalInputs number of optional inputs to check

(lineData, inputNames, supportsAliases, optionalInputs)

Source from the content-addressed store, hash-verified

91 * @param {numeric} optionalInputs number of optional inputs to check
92 */
93 static getInputs(lineData, inputNames, supportsAliases, optionalInputs) {
94 supportsAliases = supportsAliases || false;
95 optionalInputs = optionalInputs || 0;
96 var res = {};
97
98 var totalPossibleInputs = inputNames.length;
99 if (supportsAliases) {
100 res[inputNames[totalPossibleInputs-1]] = [];
101 }
102
103 if (lineData.length > totalPossibleInputs - optionalInputs) {
104 if (!supportsAliases && lineData.length > totalPossibleInputs + 1) {
105 console.error(`Kruiz Control: Too many inputs provided for ${lineData[0]}.\r\nExpected (${totalPossibleInputs} inputs): ${JSON.stringify(inputNames)}\r\nFound (${lineData.length - 1} inputs): ${JSON.stringify(lineData.slice(1))}`);
106 }
107
108 lineData.forEach((item, i) => {
109 if (i != 0) {
110 if (i < totalPossibleInputs) {
111 res[inputNames[i-1]] = item;
112 } else if (i == totalPossibleInputs && supportsAliases) {
113 res[inputNames[i-1]] = lineData.slice(i);
114 } else if (i == totalPossibleInputs) {
115 res[inputNames[i-1]] = lineData.slice(i).join(' ');
116 }
117 }
118 });
119
120 if (Debug.All || Debug.Parser) {
121 console.error(`Values parsed from ${JSON.stringify(lineData)}: ${JSON.stringify(res)}`);
122 }
123 return res;
124 }
125
126 console.error(`Kruiz Control: Unable to retrieve enough inputs for ${lineData[0]}.\r\nExpected (${totalPossibleInputs} inputs): ${JSON.stringify(inputNames)}\r\nFound (${lineData.length - 1} inputs): ${JSON.stringify(lineData.slice(1))}`);
127 return {};
128 }
129}

Callers 15

ControllerClass · 0.80
RandomHandlerClass · 0.80
CooldownHandlerClass · 0.80
TwitchHandlerClass · 0.80
DiscordHandlerClass · 0.80
OBSHandlerClass · 0.80
ChatHandlerClass · 0.80
VoicemodHandlerClass · 0.80
DebugHandlerClass · 0.80
ActionHandlerClass · 0.80
SLOBSHandlerClass · 0.80
ListHandlerClass · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected