DISCLAIMER (if you somehow stumbled upon this repo):
Framework is not considered for everyone/production ready anymore and in the foreseeable future. Basically it is just for me now. Say thanks to everything that happens with minecraft nowadays.
Repository private status reverted because some folks still from time to time want to tinker with ANCAPMINE plugins all of which require framework.
Building software is generally complicated, especially big software like AncapFramework, to combat this I tried to extract the complexity into external tools, so you need to install a bunch, but other than that it should be straightforward.
mvn3 andmvnd1 installed system-wide*justinstalled system-wide*nushellinstalled system-wide*JDK 21installed and connected tojselect
* system-wide installation requirement should be fine for all of these tools since neither of them break backward compatibility and you can install any last version and it should work, if issues will arise their support will be added to jselect
** things may break on dying external repos until project-level mirror will be created, contact me with those issues
AF builds with just with nushell over maven with jselect java
just shootfor parallel incremental Artifex jar buildjust releasefor full tested build and local repo installationjust reloadtry if you have daemon/cache related problems
You also can use maven directly
jh21 mvnd installfor full build (with driver pot; not needed in 99% cases)
Paper API supporting platformMC 1.21.4+JDK 21+installedpacketeventsplugin installed
Just make sure your server environment matches requirements and install Artifex plugin on it. You can obtain pre-built jars on github releases or build it yourself.
If you experience any bugs, you can check if everything works correctly specifically in your environment with /artifex status.
AncapFramework is not published to repositories at the time. You need to build it yourself (its easy because build system is maven), and then add local dependency on Artifex:
<dependency>
<groupId>ru.ancap</groupId>
<artifactId>Artifex</artifactId>
<version>current version</version>
<scope>provided</scope>
</dependency>or selected modules to not use internals accidentally:
<dependency>
<groupId>ru.ancap</groupId>
<artifactId>CommandAPI</artifactId>
<version>current version</version>
<scope>provided</scope>
</dependency>Minecraft development framework, currently based on Paper 1.21.4+. Yes, Paper is huge pile of toxic totalitarian shit, and modern minecraft versions are even bigger shit, but doing anything about it in the context of framework requires a lof of effort that I cant provide now.
There are no strict goals, but simplicity, safety, inclusivity and community orientation are "what" and deep reflection is "how".
You don't need to worry about parsing arguments in commands, writing SQL queries, manually reading configs, or dealing with other repetitive tasks that are not unique to your plugin. Just focus on writing your plugin logic.
Finding bugs in runtime using System.out.println() can be frustrating. Much better if those bugs popup early or even totally prevented.
With AncapFramework, heisenbugs will become early runtime error, and early runtime errors in much places will become type errors.
We have integration test framework, StatusAPI. It solves one of the most painful tasks in minecraft development — testing. Usually you are going to manually test what is working if you need integration with minecraft, but now this is no longer a case.
AncapFramework itself is heavily tested and its health status can be checked in Artifex implementation with /artifex status.
AncapFramework have LanguageAPI module aimed to help in server internationalization. Make your plugin a good choice for inclusive servers that want to allow every nation to play.
I believe that proper community orientation can not only make people happy, but also help development processes. Make PRs, make issues, make plugins on AncapFramework and show us problems with your own use-case! It is very appreciated!
Yeah no one uses ancap framework except me (maybe i will change it atsp) but community orientation is one of deeply contemplated ideas that solve a lot of problems by-design, also if I am the 100% of community and AF is me-oriented it is 100% community oriented :D
There are also discord server: https://discord.gg/jCcT9vdcpE
There is a wiki. Its horribly outdated and basically useless because of that though.