From cc88ec4dc86f6a73765275a3c483fff52f886d09 Mon Sep 17 00:00:00 2001 From: aabssmc Date: Sun, 10 Mar 2024 21:04:25 -0700 Subject: [PATCH] Added Types --- build.gradle | 4 +- .../java/lol/aabss/skhttp/elements/Types.java | 130 ++++++++++++++++++ .../elements/expressions/ExprVersion.java | 2 +- .../elements/sections/SecRequestBuilder.java | 1 + src/main/resources/lang/default.lang | 12 ++ 5 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 src/main/resources/lang/default.lang diff --git a/build.gradle b/build.gradle index ce9ba8d..24576ab 100644 --- a/build.gradle +++ b/build.gradle @@ -10,12 +10,14 @@ repositories { maven {url = "https://hub.spigotmc.org/nexus/content/repositories/snapshots/"} maven {url = "https://oss.sonatype.org/content/groups/public/"} maven {url = "https://repo.skriptlang.org/releases"} + maven {url = "https://jitpack.io"} } dependencies { - implementation 'org.jetbrains:annotations:24.0.0' + implementation "org.jetbrains:annotations:24.0.0" compileOnly "org.spigotmc:spigot-api:1.20.4-R0.1-SNAPSHOT" implementation "com.github.SkriptLang:Skript:2.7.0" + implementation "com.github.ItsRadiiX:Definity-Webhooks:f051e1fa3e" } def targetJavaVersion = 17 diff --git a/src/main/java/lol/aabss/skhttp/elements/Types.java b/src/main/java/lol/aabss/skhttp/elements/Types.java index fd450f5..05b3fdd 100644 --- a/src/main/java/lol/aabss/skhttp/elements/Types.java +++ b/src/main/java/lol/aabss/skhttp/elements/Types.java @@ -4,6 +4,11 @@ import ch.njol.skript.classes.Parser; import ch.njol.skript.lang.ParseContext; import ch.njol.skript.registrations.Classes; +import com.itsradiix.discordwebhook.DiscordWebHook; +import com.itsradiix.discordwebhook.embed.Embed; +import com.itsradiix.discordwebhook.embed.models.Author; +import com.itsradiix.discordwebhook.embed.models.Field; +import com.itsradiix.discordwebhook.embed.models.Footer; import org.jetbrains.annotations.NotNull; import java.net.http.HttpClient; @@ -84,5 +89,130 @@ public boolean canParse(@NotNull ParseContext context) { } ) ); + + Classes.registerClass(new ClassInfo<>(DiscordWebHook.class, "discordwebhook") + .name("Discord Webhook") + .description("Represents a discord webhook.") + .user("discord ?webhooks?") + .since("1.1") + .parser(new Parser<>() { + + @Override + public boolean canParse(@NotNull ParseContext context) { + return false; + } + + @Override + public @NotNull String toString(DiscordWebHook o, int flags) { + return toVariableNameString(o); + } + + @Override + public @NotNull String toVariableNameString(DiscordWebHook o) { + return o.getContent(); + } + } + ) + ); + + Classes.registerClass(new ClassInfo<>(Embed.class, "discordembed") + .name("Discord Embed") + .description("Represents a discord embed.") + .user("discord ?embeds?") + .since("1.1") + .parser(new Parser<>() { + + @Override + public boolean canParse(@NotNull ParseContext context) { + return false; + } + + @Override + public @NotNull String toString(Embed o, int flags) { + return toVariableNameString(o); + } + + @Override + public @NotNull String toVariableNameString(Embed o) { + return o.getTitle(); + } + } + ) + ); + + Classes.registerClass(new ClassInfo<>(Footer.class, "discordfooter") + .name("Discord Footer") + .description("Represents a discord embed footer.") + .user("discord ?footers?") + .since("1.1") + .parser(new Parser<>() { + + @Override + public boolean canParse(@NotNull ParseContext context) { + return false; + } + + @Override + public @NotNull String toString(Footer o, int flags) { + return toVariableNameString(o); + } + + @Override + public @NotNull String toVariableNameString(Footer o) { + return o.getText(); + } + } + ) + ); + + Classes.registerClass(new ClassInfo<>(Author.class, "discordauthor") + .name("Discord Author") + .description("Represents a discord embed author.") + .user("discord ?authors?") + .since("1.1") + .parser(new Parser<>() { + + @Override + public boolean canParse(@NotNull ParseContext context) { + return false; + } + + @Override + public @NotNull String toString(Author o, int flags) { + return toVariableNameString(o); + } + + @Override + public @NotNull String toVariableNameString(Author o) { + return o.getName(); + } + } + ) + ); + + Classes.registerClass(new ClassInfo<>(Field.class, "discordfield") + .name("Discord Field") + .description("Represents a discord embed field.") + .user("discord ?fields?") + .since("1.1") + .parser(new Parser<>() { + + @Override + public boolean canParse(@NotNull ParseContext context) { + return false; + } + + @Override + public @NotNull String toString(Field o, int flags) { + return toVariableNameString(o); + } + + @Override + public @NotNull String toVariableNameString(Field o) { + return o.getName(); + } + } + ) + ); } } diff --git a/src/main/java/lol/aabss/skhttp/elements/expressions/ExprVersion.java b/src/main/java/lol/aabss/skhttp/elements/expressions/ExprVersion.java index baf1f2c..74fd101 100644 --- a/src/main/java/lol/aabss/skhttp/elements/expressions/ExprVersion.java +++ b/src/main/java/lol/aabss/skhttp/elements/expressions/ExprVersion.java @@ -27,7 +27,7 @@ public class ExprVersion extends PropertyExpression { static { - register(ExprVersion.class, String.class, "[repsonse|request] ur(l|i)", "httpresponses/httprequests/httpclients"); + register(ExprVersion.class, String.class, "[repsonse|request] version", "httpresponses/httprequests/httpclients"); } @Override diff --git a/src/main/java/lol/aabss/skhttp/elements/sections/SecRequestBuilder.java b/src/main/java/lol/aabss/skhttp/elements/sections/SecRequestBuilder.java index 53a481f..9c48e2d 100644 --- a/src/main/java/lol/aabss/skhttp/elements/sections/SecRequestBuilder.java +++ b/src/main/java/lol/aabss/skhttp/elements/sections/SecRequestBuilder.java @@ -32,6 +32,7 @@ "\turl: \"https://www.someurl.com\"", "\tmethod: \"GET\"", "\tbody: \"some body text\"", + "\theaders: \"some header texts\"", "\tvariable: {_var}" }) @Since("1.0") diff --git a/src/main/resources/lang/default.lang b/src/main/resources/lang/default.lang new file mode 100644 index 0000000..f7875cf --- /dev/null +++ b/src/main/resources/lang/default.lang @@ -0,0 +1,12 @@ +version: 1.1 + +types: + httpclient: httpclient¦s @an + httprequest: httprequest¦s @an + httpresponse: httpresposne¦s @an + discordwebhook: discordwebhook¦s @a + + discordembed: discordembed¦s @a + discordfooter: discordfooter¦s @a + discordauthor: discordauthor¦s @a + discordfield: discordfiled¦s @a \ No newline at end of file