Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create, update and troubleshoot AllayMC plugins in Java or other JVM languages. Use when (1) creating a new AllayMC plugin. (2) migrating an existing plugin to AllayMC. (3) troubleshooting an AllayMC plugin.
.claude/skills/allaymc-allaymc-plugin-dev/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | -8% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 29% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 16% | 0% |
| case-04 | ✓→✗ | ▼ Worse | 72% | 0% |
| case-05 | ✓→✓ | = Same ✓ | -4% | 0% |
AllayMC is a third-party server software for Minecraft: Bedrock Edition written in Java. It provides a set of APIs for plugins to use. AllayMC is broadly divided into the following two modules:
Plugins in AllayMC are just like Bukkit plugins, they are loaded by the server when the server starts. Plugins are used to extend server functionality.
references/JavaPluginTemplate If the user haven't initialize the project.Before you begin, ask the user the following questions:
After the user answers the above questions, initialize the project metadata with the collected information. Before that, determine whether the user is using JavaPluginTemplate, which is implemented by determining whether the current project package name is org.allaymc.javaplugintemplate.
JavaPluginTemplate:org.allaymc.javaplugintemplate to the user provided group name.settings.gradle.kts to the user provided plugin name.build.gradle.kts, solve all the TODOs inside.JavaPluginTemplate:group, version (should start with 0.1.0), and description in build.gradle.kts.group in build.gradle.kts.build.gradle.kts.AllayGradle plugin, update the allay {} block in build.gradle.kts:api to the target Allay API version.plugin.entrance to the fully qualified main class (or short suffix as used in the template).authors and website.AllayGradle plugin, create plugin.json per the docs in references/Allay/docs/tutorials/create-your-first-plugin.md.org.allaymc.api.plugin.PluginonLoad which is called before world loading.onEnable which is called after world loading.onDisable which is called when the server is stopping.isReloadable and implement reload.Understand the user's needs and read the documentation and code marked in the reference map below as needed.
./gradlew runServer for local testing when the AllayGradle plugin is configured../gradlew shadowJar to build the shaded jar.references/Allay/docs/tutorials and references/Allay/docs/advanced.references/JavaPluginTemplatereferences/Allayreferences/Allay/api/src/main/java/org/allaymc/apireferences/Allay/server/src/main/java/org/allaymc/serverreferences/AllayGradlereferences/AllayGradle/README.md@Nullable/@NonNull. Unless a method's Javadoc explicitly states thata parameter or return value may be null, treat it as non-null.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→fail | 10,715 | 6,481 | -40% | 1 | 1 | 0% | 2,166 | 2,210 | +2% | 0 | 0 | — |
case-01 | fail→fail | 11,289 | 2,815 | -75% | 1 | 1 | 0% | 2,299 | 1,587 | -31% | 0 | 0 | — |
case-02 | fail→fail | 12,152 | 4,329 | -64% | 1 | 1 | 0% | 2,599 | 1,909 | -27% | 0 | 0 | — |
case-04 | pass→fail | 8,837 | 9,269 | +5% | 1 | 1 | 0% | 1,835 | 3,164 | +72% | 0 | 0 | — |
case-05 | pass→pass | 17,441 | 11,455 | -34% | 1 | 1 | 0% | 3,107 | 2,974 | -4% | 0 | 0 | — |
case-06 | pass→pass | 9,051 | 8,233 | -9% | 1 | 1 | 0% | 1,715 | 2,841 | +66% | 0 | 0 | — |
case-07 | pass→pass | 6,557 | 5,210 | -21% | 1 | 1 | 0% | 1,289 | 1,875 | +45% | 0 | 0 | — |
case-08 | fail→pass | 11,642 | 4,528 | -61% | 1 | 1 | 0% | 2,116 | 1,950 | -8% | 0 | 0 | — |
case-09 | pass→pass | 7,248 | 2,463 | -66% | 1 | 1 | 0% | 1,189 | 1,473 | +24% | 0 | 0 | — |
case-10 | pass→pass | 4,485 | 1,676 | -63% | 1 | 1 | 0% | 716 | 1,336 | +87% | 0 | 0 | — |
case-11 | fail→pass | 8,300 | 4,733 | -43% | 1 | 1 | 0% | 1,611 | 2,071 | +29% | 0 | 0 | — |
case-12 | pass→pass | 5,811 | 4,316 | -26% | 1 | 1 | 0% | 1,060 | 1,797 | +70% | 0 | 0 | — |
case-21 | pass→pass | 11,131 | 6,347 | -43% | 1 | 1 | 0% | 2,034 | 2,448 | +20% | 0 | 0 | — |
case-13 | fail→pass | 6,331 | 2,144 | -66% | 1 | 1 | 0% | 1,192 | 1,385 | +16% | 0 | 0 | — |
case-14 | pass→pass | 4,669 | 2,382 | -49% | 1 | 1 | 0% | 660 | 1,449 | +120% | 0 | 0 | — |
case-15 | pass→pass | 4,802 | 1,698 | -65% | 1 | 1 | 0% | 707 | 1,329 | +88% | 0 | 0 | — |
case-16 | pass→pass | 10,341 | 2,723 | -74% | 1 | 1 | 0% | 1,709 | 1,569 | -8% | 0 | 0 | — |
case-17 | pass→pass | 14,192 | 6,009 | -58% | 1 | 1 | 0% | 2,287 | 2,020 | -12% | 0 | 0 | — |
case-18 | pass→pass | 9,496 | 5,353 | -44% | 1 | 1 | 0% | 1,485 | 1,942 | +31% | 0 | 0 | — |
case-19 | pass→pass | 8,228 | 2,214 | -73% | 1 | 1 | 0% | 1,435 | 1,442 | +0% | 0 | 0 | — |
case-20 | pass→pass | 2,854 | 2,056 | -28% | 1 | 1 | 0% | 475 | 1,435 | +202% | 0 | 0 | — |
case-22 | pass→pass | 5,100 | 1,683 | -67% | 1 | 1 | 0% | 939 | 1,355 | +44% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +9 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.