Open
Conversation
…loads from Discord into Java objects
…f an abstract class so that it can be used in records
Qodana Community for JVM1 new problem were found
💡 Qodana analysis was run in the pull request mode: only the changed files were checked Contact Qodana teamContact us at qodana-support@jetbrains.com
|
Member
Author
|
oops forgot about this |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR Details
What you've changed
Closes #0
Description
Added a new decoding and encoding system for discord.jar. This system is designed for better:
The main difference here is the removal of existing #decompile and #compile methods. These are replaced by a system built with Java Reflection to prevent repeated code and errors.
Documentation
When creating an object, you must implement the
DiscordObjectinterface. Then, for each of your fields, you must annotate them with@DiscordObjectParameter(you can customize the values to your liking). If you want one of your fields to automatically be filled with the DiscordJar instance, you can annotate it with@DiscordJarParameter, alongside the previous annotation. You must have a constructor annotated with@DiscordObjectConstructorwith the same types as the fields, in the same order.To assign custom values to a key, you may create a static method that takes a JSONObject and returns a HashMap<String, Object> that's annotated with
@DiscordObjectCustomAssignations.To decompile a JSON payload, use
discordJar.getParser().decompileObject(jsonObject, ExampleObject.class);An example object might look like this, meaning there's no need for a decompile or compile method:
Status