Releases: juliarn/npc-lib
NPC-Lib Version 3 Beta 12
NPC-Lib Version 3 Beta 12
Changes and fixes in this release:
- Support 1.21.5 (on Spigot/Paper and Fabric)
- Fix exception in Spigot profiler resolver on 1.21.5
- Replace usage of ProtocolLib to send custom payload with bukkit api for easier cross-version compatibility
Dependency
The dependency is available in maven central: https://central.sonatype.com/search?q=io.github.juliarn
Please note: releases can take up to 20 minutes to be synced to maven central.
All modules:
Module artifact name | Module description |
---|---|
npc-lib-api | General NPC-Lib API without platform specific class usage. This module should be used when the underlying implementation does not matter. |
npc-lib-common | Abstract implementation of the api module. This module should be used when a new platform implementation is made. |
npc-lib-bukkit | Platform specific implementation for Bukkit. This module implements the complete API (and common) to support Bukkit (and forks). |
npc-lib-minestom | Platform specific implementation for Minestom. This module implements the complete API (and common) to support Minestom (and forks). |
npc-lib-fabric | Platform specific implementation for Fabric. This module implements the complete API (and common) to support Fabric and must be installed as a mod on the server. |
npc-lib-labymod | This module contains helper methods for accessing LabyMod NPC features (such as emotes and stickers). See the LabyMod documentation for more information. |
How to include a module
Maven:
<dependency>
<groupId>io.github.juliarn</groupId>
<artifactId><insert module name from list above></artifactId>
<version>3.0.0-beta12</version>
<scope>compile</scope>
</dependency>
Gradle:
implementation("io.github.juliarn", "<insert module name from list above>", "3.0.0-beta12")
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.
NPC-Lib Version 3 Beta 11
NPC-Lib Version 3 Beta 11
Changes and fixes in this release:
- Add support for fabric servers (latest version only, currently 1.21.4)
- Updated dependencies (packetevents for 1.21.4 support, minestom due to announced breaking api changes)
- Fix usage of world name based comparisons in minestom implementation (names in positions might be provided differently by the spawning plugin, comparisons were hardcoded to use the instance uuid)
- Fix minestom metadata conversion types
Dependency
The dependency is available in maven central: https://central.sonatype.com/search?q=io.github.juliarn
Please note: releases can take up to 20 minutes to be synced to maven central.
All modules:
Module artifact name | Module description |
---|---|
npc-lib-api | General NPC-Lib API without platform specific class usage. This module should be used when the underlying implementation does not matter. |
npc-lib-common | Abstract implementation of the api module. This module should be used when a new platform implementation is made. |
npc-lib-bukkit | Platform specific implementation for Bukkit. This module implements the complete API (and common) to support Bukkit (and forks). |
npc-lib-minestom | Platform specific implementation for Minestom. This module implements the complete API (and common) to support Minestom (and forks). |
npc-lib-fabric | Platform specific implementation for Fabric. This module implements the complete API (and common) to support Fabric and must be installed as a mod on the server. |
npc-lib-labymod | This module contains helper methods for accessing LabyMod NPC features (such as emotes and stickers). See the LabyMod documentation for more information. |
How to include a module
Maven:
<dependency>
<groupId>io.github.juliarn</groupId>
<artifactId><insert module name from list above></artifactId>
<version>3.0.0-beta11</version>
<scope>compile</scope>
</dependency>
Gradle:
implementation("io.github.juliarn", "<insert module name from list above>", "3.0.0-beta11")
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.
NPC-Lib Version 3 Beta 10
NPC-Lib Version 3 Beta 10
Changes and fixes in this release:
- Updated dependencies (especially packetevents for 1.21.3 support)
- Fix yaw being written as pitch (and vice versa) when spawning npc in 1.20.2+
Dependency
The dependency is available in maven central: https://central.sonatype.com/search?q=io.github.juliarn
Please note: releases can take up to 20 minutes to be synced to maven central.
All modules:
Module artifact name | Module description |
---|---|
npc-lib-api | General NPC-Lib API without platform specific class usage. This module should be used when the underlying implementation does not matter. |
npc-lib-common | Abstract implementation of the api module. This module should be used when a new platform implementation is made. |
npc-lib-bukkit | Platform specific implementation for Bukkit. This module implements the complete API (and common) to support Bukkit (and forks). |
npc-lib-minestom | Platform specific implementation for Minestom. This module implements the complete API (and common) to support Minestom (and forks). |
npc-lib-labymod | This module contains helper methods for accessing LabyMod NPC features (such as emotes and stickers). See the LabyMod documentation for more information. |
How to include a module
Maven:
<dependency>
<groupId>io.github.juliarn</groupId>
<artifactId><insert module name from list above></artifactId>
<version>3.0.0-beta10</version>
<scope>compile</scope>
</dependency>
Gradle:
implementation("io.github.juliarn", "<insert module name from list above>", "3.0.0-beta10")
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.
NPC-Lib Version 3 Beta 9
NPC-Lib Version 3 Beta 9
Changes and fixes in this release:
- Add a new method to NPC which allows for easier creation of a rotation packet
- Updated LabyMod extension to use the LabyMod Neo packet format
- Added a readme with examples for documentation purposes
Dependency
The dependency is available in maven central: https://central.sonatype.com/search?q=io.github.juliarn
Please note: releases can take up to 20 minutes to be synced to maven central.
All modules:
Module artifact name | Module description |
---|---|
npc-lib-api | General NPC-Lib API without platform specific class usage. This module should be used when the underlying implementation does not matter. |
npc-lib-common | Abstract implementation of the api module. This module should be used when a new platform implementation is made. |
npc-lib-bukkit | Platform specific implementation for Bukkit. This module implements the complete API (and common) to support Bukkit (and forks). |
npc-lib-minestom | Platform specific implementation for Minestom. This module implements the complete API (and common) to support Minestom (and forks). |
npc-lib-labymod | This module contains helper methods for accessing LabyMod NPC features (such as emotes and stickers). See the LabyMod documentation for more information. |
How to include a module
Maven:
<dependency>
<groupId>io.github.juliarn</groupId>
<artifactId><insert module name from list above></artifactId>
<version>3.0.0-beta9</version>
<scope>compile</scope>
</dependency>
Gradle:
implementation("io.github.juliarn", "<insert module name from list above>", "3.0.0-beta9")
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.
NPC-Lib Version 3 Beta 8
NPC-Lib Version 3 Beta 8
Changes and fixes in this release:
- Remove shading of all dependencies, see below for an example shading configuration
- Updated all dependencies
Shading
An example relocation configuration using gradle & the shadow plugin:
tasks.withType<ShadowJar> {
relocate("net.kyori", "<your-group>.relocate.net.kyori")
relocate("io.papermc.lib", "<your-group>.relocate.paperlib")
relocate("io.leangen.geantyref", "<your-group>.relocate.geantyref")
relocate("io.github.retrooper", "<your-group>.relocate.io.packetevents")
relocate("com.github.retrooper", "<your-group>.relocate.com.packetevents")
relocate("com.github.juliarn.npclib", "<your-group>.relocate.com.github.juliarn.npclib")
dependencies {
exclude("plugin.yml")
// excludes the META-INF directory, module infos & html files of all dependencies
// this includes for example maven lib files & multi-release module-json files
exclude("META-INF/**", "**/*.html", "module-info.*")
}
}
Dependency
The dependency is available in maven central: https://central.sonatype.com/search?q=io.github.juliarn
Please note: releases can take up to 20 minutes to be synced to maven central.
All modules:
Module artifact name | Module description |
---|---|
npc-lib-api | General NPC-Lib API without platform specific class usage. This module should be used when the underlying implementation does not matter. |
npc-lib-common | Abstract implementation of the api module. This module should be used when a new platform implementation is made. |
npc-lib-bukkit | Platform specific implementation for Bukkit. This module implements the complete API (and common) to support Bukkit (and forks). |
npc-lib-minestom | Platform specific implementation for Minestom. This module implements the complete API (and common) to support Minestom (and forks). |
npc-lib-labymod | This module contains helper methods for accessing LabyMod NPC features (such as emotes and stickers). See the LabyMod documentation for more information. |
How to include a module
Maven:
<dependency>
<groupId>io.github.juliarn</groupId>
<artifactId><insert module name from list above></artifactId>
<version>3.0.0-beta8</version>
<scope>compile</scope>
</dependency>
Gradle:
implementation("io.github.juliarn", "<insert module name from list above>", "3.0.0-beta8")
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.
NPC-Lib Version 3 Beta 7
NPC-Lib Version 3 Beta 7
Changes and fixes in this release:
- NPCs no longer track players if the PreShow event is cancelled (#119)
- NPCs no longer untrack players if the PreHide event is cancelled
- Add some missing EntityPoses for 1.20.4+
- Improve ProtocolLib DataWatcher resolving logic
- Add missing relocation of adventure (pulled by packetevents)
- Updated all dependencies
Dependency
The dependency is available in maven central: https://central.sonatype.com/search?q=io.github.juliarn
Please note: releases can take up to 20 minutes to be synced to maven central.
All modules:
Module artifact name | Module description |
---|---|
npc-lib-api | General NPC-Lib API without platform specific class usage. This module should be used when the underlying implementation does not matter. |
npc-lib-common | Abstract implementation of the api module. This module should be used when a new platform implementation is made. |
npc-lib-bukkit | Platform specific implementation for Bukkit. This module implements the complete API (and common) to support Bukkit (and forks). |
npc-lib-minestom | Platform specific implementation for Minestom. This module implements the complete API (and common) to support Minestom (and forks). |
npc-lib-labymod | This module contains helper methods for accessing LabyMod NPC features (such as emotes and stickers). See the LabyMod documentation for more information. |
How to include a module
Maven:
<dependency>
<groupId>io.github.juliarn</groupId>
<artifactId><insert module name from list above></artifactId>
<version>3.0.0-beta7</version>
<scope>compile</scope>
</dependency>
Gradle:
implementation("io.github.juliarn", "<insert module name from list above>", "3.0.0-beta7")
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.
NPC-Lib Version 3 Beta 6
NPC-Lib Version 3 Beta 6
Changes and fixes in this release:
- 1.20.2 is now fully supported (#115)
- The look direction of an npc is now properly synced when the player moves without rotating (#108)
- There is now a new flag for the action controller to automatically sync the looking direction of an npc on the first show to a player (#110)
- The previously used and deprecated event library has been removed and replaced with a custom one (#112)
- The Paper & Spigot profile resolver now properly catch cases where the name and/or uuid of a profile couldn't be resolved
- This lib is now published to maven central
Dependency
The dependency is available in maven central: https://central.sonatype.com/search?q=io.github.juliarn
Please note: releases can take up to 20 minutes to be synced to maven central.
All modules:
Module artifact name | Module description |
---|---|
npc-lib-api | General NPC-Lib API without platform specific class usage. This module should be used when the underlying implementation does not matter. |
npc-lib-common | Abstract implementation of the api module. This module should be used when a new platform implementation is made. |
npc-lib-bukkit | Platform specific implementation for Bukkit. This module implements the complete API (and common) to support Bukkit (and forks). |
npc-lib-minestom | Platform specific implementation for Minestom. This module implements the complete API (and common) to support Minestom (and forks). |
npc-lib-labymod | This module contains helper methods for accessing LabyMod NPC features (such as emotes and stickers). See the LabyMod documentation for more information. |
How to include a module
Maven:
<dependency>
<groupId>io.github.juliarn</groupId>
<artifactId><insert module name from list above></artifactId>
<version>3.0.0-beta6</version>
<scope>compile</scope>
</dependency>
Gradle:
implementation("io.github.juliarn", "<insert module name from list above>", "3.0.0-beta6")
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.
NPC-Lib Version 3 Beta 5
NPC-Lib Version 3 Beta 5
Changes and fixes in this release:
- The parameter order of
PlatformPacketAdapter#createEntityMetaPacket
got swapped. The meta factory is now the first parameter and the value is the second one. - Fixed an issue on legacy servers (prior to paper 1.12) that caused skins not to display because the profile signature was not loaded.
Dependency
The dependency can be loaded from 2 repositories: https://jitpack.io/
or https://repository.derklaro.dev/releases/
. The group id for the dependency is com.github.juliarn.NPC-Lib
.
All modules:
Module artifact name | Module description |
---|---|
npc-lib-api | General NPC-Lib API without platform specific class usage. This module should be used when the underlying implementation does not matter. |
npc-lib-common | Abstract implementation of the api module. This module should be used when a new platform implementation is made. |
npc-lib-bukkit | Platform specific implementation for Bukkit. This module implements the complete API (and common) to support Bukkit (and forks). |
npc-lib-minestom | Platform specific implementation for Minestom. This module implements the complete API (and common) to support Minestom (and forks). |
npc-lib-labymod | This module contains helper methods for accessing LabyMod NPC features (such as emotes and stickers). See the LabyMod documentation for more information. |
How to include a module
Maven:
<dependency>
<groupId>com.github.juliarn.NPC-Lib</groupId>
<artifactId><insert module name from list above></artifactId>
<version>3.0.0-beta5</version>
<scope>compile</scope>
</dependency>
Gradle:
implementation("com.github.juliarn.NPC-Lib", "<insert module name from list above>", "3.0.0-beta5")
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.
3.0.0-beta4
NPC-Lib Version 3 Beta 4
Changes and fixes in this release:
- The NPC class now has special methods to generate certain outgoing packets directly instead of taking the detour via the PlatformPacketAdapter:
playAnimation
andchangeMetadata
- The bundled PacketEvents version has been updated to support 1.19.4
- The library now fully supports Folia (when running on Folia, all tasks are scheduled fully asynchronously, they do not use a scheduler provided by Folia. This allows reuse of the new async scheduler implementation for new platforms or similar bukkit forks)
Dependency
The dependency can be loaded from 2 repositories: https://jitpack.io/
or https://repository.derklaro.dev/releases/
. The group id for the dependency is com.github.juliarn.NPC-Lib
.
All modules:
Module artifact name | Module description |
---|---|
npc-lib-api | General NPC-Lib API without platform specific class usage. This module should be used when the underlying implementation does not matter. |
npc-lib-common | Abstract implementation of the api module. This module should be used when a new platform implementation is made. |
npc-lib-bukkit | Platform specific implementation for Bukkit. This module implements the complete API (and common) to support Bukkit (and forks). |
npc-lib-minestom | Platform specific implementation for Minestom. This module implements the complete API (and common) to support Minestom (and forks). |
npc-lib-labymod | This module contains helper methods for accessing LabyMod NPC features (such as emotes and stickers). See the LabyMod documentation for more information. |
How to include a module
Maven:
<dependency>
<groupId>com.github.juliarn.NPC-Lib</groupId>
<artifactId><insert module name from list above></artifactId>
<version>3.0.0-beta4</version>
<scope>compile</scope>
</dependency>
Gradle:
implementation("com.github.juliarn.NPC-Lib", "<insert module name from list above>", "3.0.0-beta4")
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.
3.0.0-beta3
NPC-Lib Version 3 Beta 3
Changes and fixes in this release:
- Fatal exceptions (which indicate that the jvm cannot resume the execution of the program) are no longer silently ignored when caught inside an event listener
- Fix some smaller issues related to the PacketEvents adapter which was broken because of internal changes in PacketEvents
- The prefix
npc-lib-
is now prepended to all submodules - Use the newly added
getUUIDLists
method from ProtocolLib to access uuids lists when removing a spawned npc in 1.19.3
Bug reports & Feature requests
If you found an issue with v3 or want to request a new feature please do so on the issue tracker.