3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-07-06 18:47:20 +00:00
This commit is contained in:
Laurenz 2025-07-01 11:24:47 +00:00 committed by GitHub
commit e50929cc8f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,154 +4,161 @@ import { TemplateFunction } from "./types.js";
export const TemplateFunctions: TemplateFunction[] = [ export const TemplateFunctions: TemplateFunction[] = [
{ {
name: "if", name: "if",
description: "Checks if a condition is true or false and returns the corresponding ifTrue or ifFalse", description: "Checks if a condition is true or false and returns the corresponding ifTrue or ifFalse.",
returnValue: "boolean", returnValue: "boolean",
arguments: ["condition", "ifTrue", "ifFalse"], arguments: ["condition", "ifTrue", "ifFalse"],
examples: ['if(user.bot, "User is a bot", "User is not a bot")'], examples: ['if(user.bot, "User is a bot", "User is not a bot")'],
}, },
{ {
name: "and", name: "and",
description: "Checks if all provided conditions are true", description: "Checks if all provided conditions are true.",
returnValue: "boolean", returnValue: "boolean",
arguments: ["condition1", "condition2", "..."], arguments: ["condition1", "condition2", "..."],
examples: ["and(user.bot, user.verified)"], examples: ["and(user.bot, user.verified)"],
}, },
{ {
name: "or", name: "or",
description: "Checks if atleast one of the provided conditions is true", description: "Checks if at least one of the provided conditions is true.",
returnValue: "boolean", returnValue: "boolean",
arguments: ["condition1", "condition2", "..."], arguments: ["condition1", "condition2", "..."],
examples: ["or(user.bot, user.verified)"], examples: ["or(user.bot, user.verified)"],
}, },
{ {
name: "not", name: "not",
description: "Checks if the provided condition is false", description: "Checks if the provided condition is false.",
returnValue: "boolean", returnValue: "boolean",
arguments: ["condition"], arguments: ["condition"],
examples: ["not(user.bot)"], examples: ["not(user.bot)"],
}, },
{ {
name: "concat", name: "concat",
description: "Concatenates several arguments into a string", description: "Concatenates several arguments into a string.",
returnValue: "string", returnValue: "string",
arguments: ["argument1", "argument2", "..."], arguments: ["argument1", "argument2", "..."],
examples: ['concat("Hello ", user.username, "!")'], examples: ['concat("Hello ", user.username, "!")'],
}, },
{ {
name: "concatArr", name: "concatArr",
description: "Joins a array with the provided separator", description: "Joins an array with the provided separator.",
returnValue: "string", returnValue: "string",
arguments: ["array", "separator"], arguments: ["array", "separator"],
examples: ['concatArr(["Hello", "World"], " ")'], examples: ['concatArr(["Hello", "World"], " ")'],
}, },
{ {
name: "eq", name: "eq",
description: "Checks if all provided arguments are equal to each other", description: "Checks if all provided arguments are equal to each other.",
returnValue: "boolean", returnValue: "boolean",
arguments: ["argument1", "argument2", "..."], arguments: ["argument1", "argument2", "..."],
examples: ['eq(user.id, "106391128718245888")'], examples: ['eq(user.id, "106391128718245888")'],
}, },
{ {
name: "gt", name: "gt",
description: "Checks if the first argument is greater than the second", description: "Checks if the first argument is greater than the second.",
returnValue: "boolean", returnValue: "boolean",
arguments: ["argument1", "argument2"], arguments: ["argument1", "argument2"],
examples: ["gt(5, 2)"], examples: ["gt(5, 2)"],
}, },
{ {
name: "gte", name: "gte",
description: "Checks if the first argument is greater or equal to the second", description: "Checks if the first argument is greater or equal to the second.",
returnValue: "boolean", returnValue: "boolean",
arguments: ["argument1", "argument2"], arguments: ["argument1", "argument2"],
examples: ["gte(2, 2)"], examples: ["gte(2, 2)"],
}, },
{ {
name: "lt", name: "lt",
description: "Checks if the first argument is smaller than the second", description: "Checks if the first argument is smaller than the second.",
returnValue: "boolean", returnValue: "boolean",
arguments: ["argument1", "argument2"], arguments: ["argument1", "argument2"],
examples: ["lt(2, 5)"], examples: ["lt(2, 5)"],
}, },
{ {
name: "lte", name: "lte",
description: "Checks if the first argument is smaller or equal to the second", description: "Checks if the first argument is smaller or equal to the second.",
returnValue: "boolean", returnValue: "boolean",
arguments: ["argument1", "argument2"], arguments: ["argument1", "argument2"],
examples: ["lte(2, 2)"], examples: ["lte(2, 2)"],
}, },
{ {
name: "slice", name: "slice",
description: "Slices a string argument at start and end", description: "Slices a string argument at start and end.",
returnValue: "string", returnValue: "string",
arguments: ["string", "start", "end"], arguments: ["string", "start", "end"],
examples: ['slice("Hello World", 0, 5)'], examples: ['slice("Hello World", 0, 5)'],
}, },
{ {
name: "lower", name: "lower",
description: "Converts a string argument to lowercase", description: "Converts a string argument to lowercase.",
returnValue: "string", returnValue: "string",
arguments: ["string"], arguments: ["string"],
examples: ['lower("Hello World")'], examples: ['lower("Hello World")'],
}, },
{ {
name: "upper", name: "upper",
description: "Converts a string argument to uppercase", description: "Converts a string argument to uppercase.",
returnValue: "string", returnValue: "string",
arguments: ["string"], arguments: ["string"],
examples: ['upper("Hello World")'], examples: ['upper("Hello World")'],
}, },
{ {
name: "upperFirst", name: "upperFirst",
description: "Converts the first character of a string argument to uppercase", description: "Converts the first character of a string argument to uppercase.",
returnValue: "string", returnValue: "string",
arguments: ["string"], arguments: ["string"],
examples: ['upperFirst("hello World")'], examples: ['upperFirst("hello World")'],
}, },
{
name: "strlen",
description: "Returns the length of a string argument.",
returnValue: "number",
arguments: ["string"],
examples: ['strlen("hello World")'],
},
{ {
name: "rand", name: "rand",
description: "Returns a random number between from and to, optionally using seed", description: "Returns a random number between from and to, optionally using seed.",
returnValue: "number", returnValue: "number",
arguments: ["from", "to", "seed"], arguments: ["from", "to", "seed"],
examples: ["rand(1, 10)"], examples: ["rand(1, 10)"],
}, },
{ {
name: "round", name: "round",
description: "Rounds a number to the given decimal places", description: "Rounds a number to the given decimal places.",
returnValue: "number", returnValue: "number",
arguments: ["number", "decimalPlaces"], arguments: ["number", "decimalPlaces"],
examples: ["round(1.2345, 2)"], examples: ["round(1.2345, 2)"],
}, },
{ {
name: "add", name: "add",
description: "Adds two or more numbers", description: "Adds two or more numbers.",
returnValue: "number", returnValue: "number",
arguments: ["number1", "number2", "..."], arguments: ["number1", "number2", "..."],
examples: ["add(1, 2)"], examples: ["add(1, 2)"],
}, },
{ {
name: "sub", name: "sub",
description: "Subtracts two or more numbers", description: "Subtracts two or more numbers.",
returnValue: "number", returnValue: "number",
arguments: ["number1", "number2", "..."], arguments: ["number1", "number2", "..."],
examples: ["sub(3, 1)"], examples: ["sub(3, 1)"],
}, },
{ {
name: "mul", name: "mul",
description: "Multiplies two or more numbers", description: "Multiplies two or more numbers.",
returnValue: "number", returnValue: "number",
arguments: ["number1", "number2", "..."], arguments: ["number1", "number2", "..."],
examples: ["mul(2, 3)"], examples: ["mul(2, 3)"],
}, },
{ {
name: "div", name: "div",
description: "Divides two or more numbers", description: "Divides two or more numbers.",
returnValue: "number", returnValue: "number",
arguments: ["number1", "number2", "..."], arguments: ["number1", "number2", "..."],
examples: ["div(6, 2)"], examples: ["div(6, 2)"],
}, },
{ {
name: "cases", name: "cases",
description: "Returns the argument at position", description: "Returns the argument at the position.",
returnValue: "any", returnValue: "any",
arguments: ["position", "argument1", "argument2", "..."], arguments: ["position", "argument1", "argument2", "..."],
examples: ['cases(1, "Hello", "World")'], examples: ['cases(1, "Hello", "World")'],
@ -163,4 +170,88 @@ export const TemplateFunctions: TemplateFunction[] = [
arguments: ["argument1", "argument2", "..."], arguments: ["argument1", "argument2", "..."],
examples: ['choose("Hello", "World", "!")'], examples: ['choose("Hello", "World", "!")'],
}, },
{
name: "tag",
description: "Returns the return value of an existing tag.",
returnValue: "any",
arguments: ["tagName", "optionalArgs"],
examples: ['tag("tagName", "Hello World")'],
},
{
name: "mention",
description: "Converts a user-id into a mention.",
returnValue: "string",
arguments: ["user-id"],
examples: ['mention(106391128718245888)'],
},
{
name: "isMention",
description: "Checks if the given string is a mention.",
returnValue: "boolean",
arguments: ["string"],
examples: ['isMention("<@!106391128718245888>'],
},
{
name: "parseDateTime",
description: "Parses a date string/unix timestamp into a unix.",
returnValue: "number",
arguments: ["date"],
examples: ['parseDateTime(1234567898765)', 'parseDateTime(2009-02-13T23:31:38Z)'],
},
{
name: "timeAdd",
description: "Adds a delay to a timestamp or to the current time.",
returnValue: "number",
arguments: ["timestamp", "delay"],
examples: ['timeAdd(123456789876, "1h")', 'timeAdd("1h")'],
},
{
name: "timeSub",
description: "Subtracts a delay from a timestamp or from the current time.",
returnValue: "number",
arguments: ["timestamp", "delay"],
examples: ['timeSub(123456789876, "1h")', 'timeSub("1h")'],
},
{
name: "timeAgo",
description: "Alias for timeSub.",
returnValue: "number",
arguments: ["delay"],
examples: ['timeAgo("1h")'],
},
{
name: "countdown",
description: "Returns a countdown string to target timestamp.",
returnValue: "string",
arguments: ["timestamp"],
examples: ['countdown(123456789876)'],
},
{
name: "formatTime",
description: "Formats a timestamp into a human readable string.",
returnValue: "string",
arguments: ["timestamp", "formatStyle"],
examples: ['{formatTime(now(), "YYYY-MM-DD HH")}'],
},
{
name: "set",
description: "Sets the value of a variable.",
returnValue: "any",
arguments: ["variableName", "value"],
examples: ['set("Hello", "World")'],
},
{
name: "setr",
description: "Sets and returns the value of a variable.",
returnValue: "any",
arguments: ["variableName", "value"],
examples: ['setr("Hello", "World")'],
},
{
name: "get",
description: "Gets and returns the value of a saved variable.",
returnValue: "any",
arguments: ["variableName"],
examples: ['get("variable")'],
},
]; ];