-
Notifications
You must be signed in to change notification settings - Fork 1
Building and Contributing
- Java 25
- included Maven Wrapper
- Git
No system Maven installation is required.
git clone https://github.com/AgentNoobff/VGui.git
cd VGUI
./mvnw clean verifyWindows:
git clone https://github.com/AgentNoobff/VGui.git
Set-Location VGUI
.\mvnw.cmd clean verifyThe build creates:
- main plugin jar;
- source jar;
- Javadoc jar;
- generated Javadocs under
target/reports/apidocs; - Surefire reports under
target/surefire-reports.
Artifact filenames use the Maven project version. GitHub releases rename copies to stable public asset names.
The Build workflow:
- checks out the exact commit;
- installs Temurin 25 with Maven caching;
- runs Maven Wrapper with batch mode, transfer suppression, and strict checksums;
- runs clean compilation, 45 focused tests, packaging, source jar, and Javadoc jar generation;
- verifies
velocity-plugin.jsonand the main public API class exist in the runtime jar; - verifies generated Javadocs have an index;
- uploads all jars as a short-retention workflow artifact;
- reviews dependency changes on public-repository pull requests.
Jobs have explicit timeouts and redundant runs for the same branch are cancelled.
Focused unit tests cover:
- view types and builders;
- layouts and slot math;
- item builder metadata;
- click decoding;
- context storage;
- pagination math;
- window type resolution;
- window id allocation.
Packet and lifecycle changes still require a live Velocity, backend, and client test. Unit tests cannot prove real protocol behavior.
Versions are centralized as POM properties. Dependabot checks Maven and GitHub Actions weekly and groups routine updates.
Stable major dependency updates are reviewed deliberately because they can change the Java baseline or runtime contract. Pre-release dependency lines remain excluded from routine automated updates.
Wiki pages are stored in docs/wiki. The GitHub Wiki repository receives the same files. Edit the canonical source and publish it with the rest of a documentation change.
Public APIs require Javadoc. Behavior changes require an update to the relevant guide, example, compatibility note, or troubleshooting entry.
- keep the change focused;
- explain user-visible behavior;
- run
clean verify; - add a regression test where practical;
- update Javadocs and Wiki pages;
- document compatibility impact;
- report live client and backend combinations tested;
- avoid committing generated
targetfiles, IDE files, or credentials.
Packet changes need extra review:
- confirm receive and send direction;
- verify cancellation behavior;
- verify old and modern protocol fields;
- test the lower player inventory during resync;
- test backend ownership transitions;
- test connection and shutdown cleanup;
- avoid blocking packet callbacks.
./mvnw javadoc:javadocOpen target/reports/apidocs/index.html.
-
CONTRIBUTING.mdcontains contribution policy. -
SECURITY.mdroutes vulnerabilities to private reporting. -
SUPPORT.mdlists information required for help. - issue and pull request templates collect reproducible context.
-
CODEOWNERSassigns review ownership.
- View Types and Builders
- Layouts and Slots
- Items and Skulls
- Click Handling
- Contents and Updates
- Context and State
- Navigation
- Pagination
- Anvil Input
- Lifecycle and Listeners
- API Reference