High performance Spigot fork that aims to fix gameplay and mechanics inconsistencies
Go to file
Janet Blackquill 8b44e8adad Preliminary API for 'new' brains AI system for mobs
Would fix #10443 if done.

This is a rough proposal for abstracting over the brains AI system for mobs
for plugins to make use of, similar to the Goals API. I don't think it's feasible
to attempt to make the new AI conform to the old interfaces.

At the moment I understand the rough skeleton and arteries of the system, though I'm
still trying to piece together what does what in user-facing terms.
'get the mob to walk somewhere' has been unsuccessful so far.

As far as API stability concerns, as long as the exposed set of tasks isn't too 1:1 with what
Mojang has, then we should be fine (until the next Big Rewrite™️ whenever that is) considering
the general stability of the system across versions since its introductions.

There are still some unanswered questions in the API design:
- do events make sense to have here? I'd say no considering the amount of lambdas in the Minecraft implementation
  that make any real introspection API unfeasible.
- do we care to expose sensors/make them modifiable? It could probably be done in a followup PR to make custom
  tasks & sensors a thing, as I'm mostly concerned about exposing what exists in Vanilla at the moment.
- is the arrangement of the entrypoints to the new API sensical?

Test plugin is included in PR to ease testing of the new API until it's ready to ship.
2024-04-27 20:49:20 -04:00
.github [ci skip] Upstream dependencies in workflow scripts. (#10338) 2024-03-19 13:30:03 +00:00
Paper-MojangAPI Updated Upstream (Bukkit/CraftBukkit) (#10379) 2024-04-06 12:53:39 -07:00
build-data build: Update paperweight to 1.5.12 and Gradle Wrapper to 8.7 (#10361) 2024-03-29 10:43:36 -07:00
gradle/wrapper build: Update paperweight to 1.5.12 and Gradle Wrapper to 8.7 (#10361) 2024-03-29 10:43:36 -07:00
licenses [ci skip] add missing final newline (#8659) 2022-12-13 14:16:45 +01:00
paper-api-generator Preliminary API for 'new' brains AI system for mobs 2024-04-27 20:49:20 -04:00
patches Preliminary API for 'new' brains AI system for mobs 2024-04-27 20:49:20 -04:00
scripts Finish moving patches back and improving compilable state 2024-01-25 12:10:23 +01:00
test-plugin Preliminary API for 'new' brains AI system for mobs 2024-04-27 20:49:20 -04:00
work Updated Upstream (Bukkit/CraftBukkit) (#10379) 2024-04-06 12:53:39 -07:00
.editorconfig Code Generation for TypedKeys (#9233) 2023-11-22 20:56:28 -08:00
.gitattributes [ci skip] update editorconfig and gitattributes (#9608) 2023-08-22 12:16:03 +10:00
.gitignore Code Generation for TypedKeys (#9233) 2023-11-22 20:56:28 -08:00
.gitmodules Update adventure 2023-12-06 21:24:16 -07:00
CONTRIBUTING.md [ci skip] Update CONTRIBUTING.md (#10318) 2024-03-16 18:56:04 +01:00
LICENSE.md check if itemstack is stackable first (#10285) 2024-03-03 10:37:00 -08:00
README.md [ci skip] Remove IRC link from the README (#10194) 2024-01-27 13:11:43 +01:00
build.gradle.kts "Downgrade" Vineflower to 1.10.1 release (#10423) 2024-04-16 12:44:59 -07:00
gradle.properties 1.20.4 2023-12-07 13:27:28 -07:00
gradlew Update paperweight to 1.5.10 and Gradle to 8.4 (#9957) 2023-11-22 06:27:50 +01:00
gradlew.bat build: Update paperweight to 1.5.12 and Gradle Wrapper to 8.7 (#10361) 2024-03-29 10:43:36 -07:00
settings.gradle.kts build: Update paperweight to 1.5.12 and Gradle Wrapper to 8.7 (#10361) 2024-03-29 10:43:36 -07:00

README.md

Paper Paper Build Status Discord GitHub Sponsors Open Collective

The most widely used, high-performance Minecraft server that aims to fix gameplay and mechanics inconsistencies.

Support and Project Discussion:

How To (Server Admins)

Paperclip is a jar file that you can download and run just like a normal jar file.

Download Paper from our downloads page.

Run the Paperclip jar directly from your server. Just like old times

How To (Plugin Developers)

Repository (for paper-api)

Maven
<repository>
    <id>papermc</id>
    <url>https://repo.papermc.io/repository/maven-public/</url>
</repository>
<dependency>
    <groupId>io.papermc.paper</groupId>
    <artifactId>paper-api</artifactId>
    <version>1.20.4-R0.1-SNAPSHOT</version>
    <scope>provided</scope>
</dependency>
Gradle
repositories {
    maven {
        url = uri("https://repo.papermc.io/repository/maven-public/")
    }
}

dependencies {
    compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT")
}

java {
    toolchain.languageVersion.set(JavaLanguageVersion.of(17))
}

How To (Compiling Jar From Source)

To compile Paper, you need JDK 17 and an internet connection.

Clone this repo, run ./gradlew applyPatches, then ./gradlew createReobfBundlerJar from your terminal. You can find the compiled jar in the project root's build/libs directory.

To get a full list of tasks, run ./gradlew tasks.

How To (Pull Request)

See Contributing

Support Us

First of all, thank you for considering helping out, we really appreciate that!

PaperMC has various recurring expenses, mostly related to infrastructure. Paper uses Open Collective via the Open Source Collective fiscal host to manage expenses. Open Collective allows us to be extremely transparent, so you can always see how your donations are used. You can read more about financially supporting PaperMC on our website.

You can find our collective here, or you can donate via GitHub Sponsors here, which will also go towards the collective.

Special Thanks To:

YourKit-Logo

YourKit, makers of the outstanding java profiler, support open source projects of all kinds with their full featured Java and .NET application profilers. We thank them for granting Paper an OSS license so that we can make our software the best it can be.

JetBrains, creators of the IntelliJ IDEA, supports Paper with one of their Open Source Licenses. IntelliJ IDEA is the recommended IDE for working with Paper, and most of the Paper team uses it.

All our sponsors!
Sponsor Image