Skip to content

Conversation

@Zoriot
Copy link
Collaborator

@Zoriot Zoriot commented Jan 10, 2026

This PR contains major changes to the plugin, making it ready for the next release.
We also switched to Gradle now, which allows us to do more things in the future & improves building performance.
Build's now have a distinct name to tracker better what version is currently running.

@Zoriot Zoriot added this to the Release v0.2.0 milestone Jan 10, 2026
@Zoriot Zoriot requested a review from Copilot January 10, 2026 21:05
@Zoriot Zoriot self-assigned this Jan 10, 2026
@Zoriot Zoriot added 🚨 high priority This currently has high priority. 🐻 medium size This is a medium issue. labels Jan 10, 2026
@Zoriot Zoriot linked an issue Jan 10, 2026 that may be closed by this pull request
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request prepares the BuildTeamTools plugin for version 0.2.0 by migrating the build system from Maven to Gradle and implementing various code improvements. The migration enables better build performance and versioning through Git-based version naming. Key changes include centralized wiki documentation links, module system enhancements, disabled broken generators (Rail and Field), updated dependency management, and code modernization with switch expressions and improved error handling.

Changes:

  • Migrated build system from Maven to Gradle with automatic versioning based on Git commits
  • Centralized wiki documentation URLs into WikiLinks.java utility class
  • Disabled broken Rail and Field generators with user-facing messages
  • Modernized code with switch expressions, improved exception handling, and Path API usage

Reviewed changes

Copilot reviewed 48 out of 51 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
build.gradle.kts New Gradle build configuration with dependency management and shadowing
settings.gradle.kts, gradle.properties, libs.versions.toml Gradle project configuration and version catalog
gradlew, gradlew.bat, gradle/wrapper/* Gradle wrapper for consistent builds
plugin.yml Dynamic version and description from Gradle properties
WikiLinks.java Centralized wiki URL constants for documentation
Module.java, GeneratorComponent.java Enhanced with WikiDocumented interface
GeneratorCollections.java Improved file handling with Path API and better error logging
Item.java Updated skull texture handling for Minecraft 1.21+
Field/Rail generators Disabled with UnsupportedOperationException
Various menu classes Refactored to use centralized wiki links
README.md Updated documentation and contributor information

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +48 to 50
@Getter
private final String wikiPage;

Copy link

Copilot AI Jan 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method overrides WikiDocumented.getWikiPage; it is advisable to add an Override annotation.

Suggested change
@Getter
private final String wikiPage;
private final String wikiPage;
@Override
public String getWikiPage() {
return this.wikiPage;
}

Copilot uses AI. Check for mistakes.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't really agree with that. What are the other opinions? Maybe a Comment would be nice? But adding the extra method seems bad/useless

@@ -194,4 +173,8 @@ protected void convertArgsToSettings(Player p, String[] args){
if(getPlayerSettings().get(p.getUniqueId()).getValues().isEmpty() && args.length > 1)
sendHelp(p);
}

public String getWikiPage() {
Copy link

Copilot AI Jan 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This method overrides WikiDocumented.getWikiPage; it is advisable to add an Override annotation.

Copilot uses AI. Check for mistakes.
Comment on lines +17 to +18
net-daporkchop-lib-binary = "0.5.7-SNAPSHOT"
net-wesjd-anvilgui = "1.10.8-SNAPSHOT"
Copy link

Copilot AI Jan 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The dependencies net.daporkchop.lib:binary:0.5.7-SNAPSHOT and net.wesjd:anvilgui:1.10.8-SNAPSHOT are pinned to -SNAPSHOT versions from third-party Maven repositories, which are mutable and can be replaced upstream without any change to the version string. If an attacker compromises the publisher or repository, they can silently ship a new JAR under the same coordinate, and your builds will automatically include and ship that untrusted code. To reduce this supply-chain risk, switch to immutable released versions (non-SNAPSHOT) or otherwise pin to artifacts whose content cannot change without updating the version you depend on.

Copilot uses AI. Check for mistakes.
@Zoriot Zoriot linked an issue Jan 11, 2026 that may be closed by this pull request
@Zoriot Zoriot requested a review from DonatiFilippo January 11, 2026 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🚨 high priority This currently has high priority. 🐻 medium size This is a medium issue.

Projects

None yet

3 participants