Releases: juliarn/npc-lib
First beta release of v3
NPC-Lib Version 3 Beta
The third version of the library was in development for quite some time now and has some exciting changes compared to v2:
- The whole implementation is platform independant with the current version supporting bukkit and minestom (more java platforms like sponge or bedrock like nukkit are planned).
- When devloping with the library there are no longer hard dependencies on external stuff (like ProtocolLib) which was a big problem in v2. This does not mean that the lib became less flexible, most of the stuff is still available.
Changes for developers
As the lib was completely rewritten and abstracted there is close to nothing that you can take over from v2. There are currently no examples available in the library source (they will get there asap) but you can take a look into an existing implementation in CloudNet for now. An example how to create a npc & pool for bukkit can be found here: NPC Pool creation, NPC creation, NPC Event subscriptions.
Some important stuff to know:
- The accessor how worlds are converted between the api and bukkit can either be based on the world name or the world key. By default the accessor will be choosen based on the server version (>= 1.16.5 -> key based, < 1.16.5 -> name based). If you want to change that behaviour use
NpcPlatformBuilder#worldAccessor
with eitherBukkitWorldAccessor.nameBasedAccessor()
orBukkitWorldAccessor.keyBasedAccessor()
. - Some useful methods to convert things between the platform and lib api are available in
<Platform-Name>PlatformUtil
(for exampleBukkitPlatformUtil
). - Using some implementation details to get access to a hidden thing is not supported anymore. If you need something and want support for it please report it to the issue tracker, so that we can discuss the problem.
Dependencies
At the moment the library is only available from jitpack. We will look into publising the library to a different repository like central soon, as there were some noteable problems with the jitpack recently.
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.
2.6-RELEASE
Changes:
- Different per-player packet content
- NPCs having the skins of the packet receiver
- 1.18 support
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.juliarn</groupId>
<artifactId>npc-lib</artifactId>
<version>2.6-RELEASE</version>
</dependency>
Gradle
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
compile group: 'com.github.juliarn', name: 'npc-lib', version: '2.6-RELEASE'
2.5-RELEASE
Changes:
- Cleanup code, add a lot of docs
- Add LabyMod modifier
- Add PlayerNPCHideEvent and PlayerNPCShowEvent
- Fix sneaking for 1.16 clients
- Attempt to fix NPC invisibility bug
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.juliarn</groupId>
<artifactId>npc-lib</artifactId>
<version>2.5-RELEASE</version>
</dependency>
Gradle
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
compile group: 'com.github.juliarn', name: 'npc-lib', version: '2.5-RELEASE'
2.4-RELEASE
Changes:
- Fix entity equipment packet for 1.16
- Fixes regarding NPCs in different worlds
- Method to exclude player from seeing the NPC
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.juliarn</groupId>
<artifactId>npc-lib</artifactId>
<version>2.4-RELEASE</version>
</dependency>
Gradle
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
compile group: 'com.github.juliarn', name: 'npc-lib', version: '2.4-RELEASE'
2.3-RELEASE
Changes:
- Remove ProfileBuilder
- Add possibility to configure npc ticks in tablist
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.juliarn</groupId>
<artifactId>npc-lib</artifactId>
<version>2.3-RELEASE</version>
</dependency>
Gradle
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
compile group: 'com.github.juliarn', name: 'npc-lib', version: '2.3-RELEASE'
2.2-RELEASE
Changes:
- Fix NPCs in different worlds than the player
- Improve profile fetching
- Add profiles to NPCBuilder
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.juliarn</groupId>
<artifactId>npc-lib</artifactId>
<version>2.2-RELEASE</version>
</dependency>
Gradle
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
compile group: 'com.github.juliarn', name: 'npc-lib', version: '2.2-RELEASE'
2.1-RELEASE
Changes:
- Fix profile fetching by UUID
- Clear NPC names in tablist
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.juliarn</groupId>
<artifactId>npc-lib</artifactId>
<version>2.1-RELEASE</version>
</dependency>
Gradle
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
compile group: 'com.github.juliarn', name: 'npc-lib', version: '2.1-RELEASE'
2.0-RELEASE
Changes:
- Add complete legacy support from 1.8-1.15
- Implement own GameProfile fetcher (big thanks to https://github.com/derklaro)
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.juliarn</groupId>
<artifactId>npc-lib</artifactId>
<version>2.0-RELEASE</version>
</dependency>
Gradle
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
compile group: 'com.github.juliarn', name: 'npc-lib', version: '2.0-RELEASE'
1.1-RELEASE
Changes:
- Performance improvements
- Replace action wrapper in PlayerNPCInteractEvent with ProtocolLib object
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.juliarn</groupId>
<artifactId>npc-lib</artifactId>
<version>1.1-RELEASE</version>
</dependency>
Gradle
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
compile group: 'com.github.juliarn', name: 'npc-lib', version: '1.1-RELEASE'
1.0-RELEASE
Changes:
- Change package names to new GitHub name
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.juliarn</groupId>
<artifactId>npc-lib</artifactId>
<version>1.0-RELEASE</version>
</dependency>
Gradle
maven {
name 'jitpack.io'
url 'https://jitpack.io'
}
compile group: 'com.github.juliarn', name: 'npc-lib', version: '1.0-RELEASE'