Skip to content

Conversation

@auriium
Copy link
Owner

@auriium auriium commented Jul 28, 2021

No description provided.

auriium added 8 commits May 31, 2021 16:49
The old message and anomaly system was inefficient and also didn't make much sense, so i've torn it apart and replaced it fully from the ground up

The new anomaly system requires you to define a few things:

MessageBoss, which handles communication from the framework to
both objects of the initial type (base input type of the manager, like CommandSender) and objects of the adapted type (objects desired by the framework user, like Player)

AnomalyCaptioner, which builds the base message objects for EACH anomaly

AnomalyPrinter, which adds messages to messages generated by the AnomalyCaptioner based on anomaly TYPE

and the AnomalyHandler, which delegates to the prior 3 in order to consume Anomalies and send them to the player.

The MessageBoss allows for you to use your own custom Message type, meaning that we can produce (MessageBoss, AnomalyCaptioner, AnomalyPrinter) implementations for existing user interfacing frameworks like Kyori-Adventure AND a homegrown implementation if users desire to not use existing frameworks.
@auriium
Copy link
Owner Author

auriium commented Jul 28, 2021

@A248 ur being replaced by sonarclod

@auriium auriium marked this pull request as draft July 28, 2021 21:36
auriium added 3 commits July 29, 2021 17:38
…ning

Not sure if this is the best way of going about things but i'm hoping it will prove an invaluable decision on the path to ~~destroying ACF~~ finishing work on Branch in order to phase out other command frameworks in the organization.

This commit also should phase out the use of blocks as a search argument - that's for strings: Instead, blocks are used as descriptive objects for help nodes and similar constructs to display information.

Currently working on implementing tests, continuing work on arguments, and soon implementing the multiadapter and help node.

Implementation of tests is extremely important to our future code quality and sustainability as it will allow for us to catch early bugs much faster as well as prototype and showcase working code. In the future, all pull requests for new features will require working tests with 60%+ test coverage. Additionally, in all additional projects i work on i will write tests alongside development as opposed to after completion since this is gonna be real tedious to do
Added experimental support for optional arguments into the argument node system.

If an argument requires more than one string, it will only be substituted with an optional if **NO** strings are given. If an argument that requires 2 strings is given one and is optional, it will still throw a NoInputProvidedInternalAnomaly.
A248 told me to add jpms, so i did. Suggestions are also now closer to a final product and not just wireframes. Additionally, packages have been refactored.
@sonarqubecloud
Copy link

sonarqubecloud bot commented Aug 8, 2021

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 1 Code Smell

No Coverage information No Coverage information
0.0% 0.0% Duplication

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants