Standardize Module usage + add child modules#8346
Merged
sovdeeth merged 19 commits intoSkriptLang:dev/featurefrom Mar 20, 2026
Merged
Standardize Module usage + add child modules#8346sovdeeth merged 19 commits intoSkriptLang:dev/featurefrom
sovdeeth merged 19 commits intoSkriptLang:dev/featurefrom
Conversation
UnderscoreTud
requested changes
Jan 4, 2026
src/main/java/org/skriptlang/skript/bukkit/brewing/elements/ExprBrewingTime.java
Outdated
Show resolved
Hide resolved
...main/java/org/skriptlang/skript/bukkit/damagesource/elements/conditions/CondWasIndirect.java
Outdated
Show resolved
Hide resolved
.../org/skriptlang/skript/bukkit/damagesource/elements/expressions/ExprCreatedDamageSource.java
Outdated
Show resolved
Hide resolved
...main/java/org/skriptlang/skript/bukkit/damagesource/elements/expressions/ExprDamageType.java
Outdated
Show resolved
Hide resolved
...in/java/org/skriptlang/skript/bukkit/damagesource/elements/expressions/ExprDirectEntity.java
Outdated
Show resolved
Hide resolved
.../java/org/skriptlang/skript/bukkit/damagesource/elements/expressions/ExprFoodExhaustion.java
Outdated
Show resolved
Hide resolved
...in/java/org/skriptlang/skript/bukkit/damagesource/elements/expressions/ExprDirectEntity.java
Outdated
Show resolved
Hide resolved
.../java/org/skriptlang/skript/bukkit/damagesource/elements/expressions/ExprSourceLocation.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/bukkit/fishing/elements/conditions/CondFishingLure.java
Outdated
Show resolved
Hide resolved
APickledWalrus
requested changes
Jan 5, 2026
Member
APickledWalrus
left a comment
There was a problem hiding this comment.
Looks pretty good overall, just what I found from a Quick Look
src/main/java/org/skriptlang/skript/addon/ChildAddonModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/addon/ChildAddonModule.java
Outdated
Show resolved
Hide resolved
...n/java/org/skriptlang/skript/bukkit/damagesource/elements/expressions/ExprCausingEntity.java
Outdated
Show resolved
Hide resolved
...main/java/org/skriptlang/skript/bukkit/fishing/elements/expressions/ExprFishingBiteTime.java
Outdated
Show resolved
Hide resolved
...in/java/org/skriptlang/skript/bukkit/fishing/elements/expressions/ExprFishingHookEntity.java
Outdated
Show resolved
Hide resolved
...main/java/org/skriptlang/skript/bukkit/fishing/elements/expressions/ExprFishingWaitTime.java
Outdated
Show resolved
Hide resolved
...java/org/skriptlang/skript/bukkit/damagesource/elements/expressions/ExprSecDamageSource.java
Outdated
Show resolved
Hide resolved
APickledWalrus
requested changes
Feb 6, 2026
Member
APickledWalrus
left a comment
There was a problem hiding this comment.
Looking great!
Some other general notes:
- Lots of elements (such as Brewing) have ModuleOrigin imports (some added in an early version of this PR) that can be removed. We should clean those up.
- Fishing events can use ERS interface
- I don't think javadocs are necessary for the constructors of our actual modules
src/main/java/org/skriptlang/skript/addon/ChildAddonModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/bukkit/breeding/BreedingModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/bukkit/itemcomponents/ItemComponentModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/bukkit/loottables/elements/expressions/ExprLootContext.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/bukkit/potion/elements/events/EvtEntityPotion.java
Show resolved
Hide resolved
…nteraction modules into entity module, few other requested changes
Pesekjak
reviewed
Mar 10, 2026
src/main/java/org/skriptlang/skript/addon/HierarchicalAddonModule.java
Outdated
Show resolved
Hide resolved
UnderscoreTud
approved these changes
Mar 12, 2026
src/main/java/org/skriptlang/skript/addon/HierarchicalAddonModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/bukkit/loottables/elements/conditions/CondHasLootTable.java
Outdated
Show resolved
Hide resolved
APickledWalrus
requested changes
Mar 12, 2026
Member
APickledWalrus
left a comment
There was a problem hiding this comment.
This is looking really good! Should be just about ready.
Also, some Interaction syntaxes still have unnecessary Origin imports
src/main/java/org/skriptlang/skript/bukkit/breeding/BreedingModule.java
Outdated
Show resolved
Hide resolved
...ptlang/skript/bukkit/entity/displays/generic/elements/expressions/ExprDisplayBrightness.java
Show resolved
Hide resolved
.../skript/bukkit/entity/displays/text/elements/conditions/CondTextDisplaySeeThroughBlocks.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/bukkit/entity/displays/DisplayModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/bukkit/entity/interactions/InteractionModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/addon/HierarchicalAddonModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/addon/HierarchicalAddonModule.java
Outdated
Show resolved
Hide resolved
Pesekjak
approved these changes
Mar 16, 2026
src/main/java/org/skriptlang/skript/addon/HierarchicalAddonModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/addon/HierarchicalAddonModule.java
Outdated
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/addon/HierarchicalAddonModule.java
Outdated
Show resolved
Hide resolved
APickledWalrus
approved these changes
Mar 17, 2026
Member
APickledWalrus
left a comment
There was a problem hiding this comment.
Looks about ready to me! Great work!
src/main/java/org/skriptlang/skript/bukkit/block/furnace/elements/events/EvtFurnace.java
Show resolved
Hide resolved
src/main/java/org/skriptlang/skript/bukkit/entity/interactions/InteractionType.java
Show resolved
Hide resolved
sovdeeth
added a commit
that referenced
this pull request
Apr 2, 2026
* Add Origin-applying SyntaxRegistry (#8376) * Add reduce/fold Expression (#8353) * Location with Yaw/Pitch (#8351) * Test framework: support directory resources (#8377) * Test framework: support directory resources * use walkFileTree * oops forgot imports * Pattern Stringification Customization (#8391) * Implement StringificationProperties * Package cleanup * Fix missing call in GroupPatternElement stringification (#8449) Fix GroupPatternElement stringification * Stabilise damage source experiment (#8414) * Stabilise damage source experiment * Replace STABLE with MAINSTREAM * Remove experiment from damage source test * Remove unstable API usage supression --------- Co-authored-by: sovdee <10354869+sovdeeth@users.noreply.github.com> * Add vector(n) (#8412) * Init commit * Fix not registering overloading for old namespaces * Standardize Module usage + add child modules (#8346) * child module support * Create child modules and move over existing Bukkit addon modules. * Update newer modules * Clean up * Requested changes and additional conversions Just tags left! * convert last module * standardize package hierarchies * remove bad imports * fix bad examples * Replace ChildAddonModule with HierarchicalAddonModule, move display/interaction modules into entity module, few other requested changes * requested changes * varargs registrar (thanks blue!) * Use addonmodule javadocs to point to other useful tools * Requested Changes * Requested Changes * Added option to compress file backups (#8396) * Add fast path for integer strings in variable name comparator (#8483) * Initial conversion * Some more conversion * fixes * Update StructCommand.java * no tests --------- Co-authored-by: Patrick Miller <apickledwalrus@icloud.com> Co-authored-by: mibers <midaswoah2@gmail.com> Co-authored-by: _tud <98935832+UnderscoreTud@users.noreply.github.com> Co-authored-by: devdinc <234956748+devdinc@users.noreply.github.com> Co-authored-by: Tiberiu Sabău <96194994+tibisabau@users.noreply.github.com> Co-authored-by: Efnilite <35348263+Efnilite@users.noreply.github.com> Co-authored-by: Pesek <42549665+Pesekjak@users.noreply.github.com>
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.
Problem
Skript contains a lot of modules now, some properly using the registry api, some not, and all in a very flat structure.
It would be better to have all the bukkit modules under a single bukkit module parent, and it would be nice to standardize how modules are made in Skript.
Solution
Refactors all existing modules to fit the same standard for addon modules,
creating a required name() method for creating origins, using origins properly, and creating ChildAddonModules. These act nearly identically to AddonModules, but contain a reference to a parent module for use during loading or creating origins.Adds a HierarchicalAddonModule abstract class for module to extend if they contain child modules or are child modules themselves. It provides automatic handling of canload/init/load for child modules and generates origins based on the module hierarchy. Module origins can now have multiple providing modules, with the most specific first. Child modules will automatically handle this, providing origins that may have a list of modules like
[interactions, entities, bukkit].Moves some modules around to take advantage of the new hierarchical system.
Testing Completed
No new tests, just existing ones.
Supporting Information
Completes: none
Related: none
AI assistance: Claude code was used to help transfer old registration methods over to new ones.