Skip to content

Releases: juliarn/npc-lib

First beta release of v3

19 Oct 18:36
1a55f43
Compare
Choose a tag to compare
Pre-release

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 either BukkitWorldAccessor.nameBasedAccessor() or BukkitWorldAccessor.keyBasedAccessor().
  • Some useful methods to convert things between the platform and lib api are available in <Platform-Name>PlatformUtil (for example BukkitPlatformUtil).
  • 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

21 Dec 20:44
c22a060
Compare
Choose a tag to compare

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

13 May 21:24
807230b
Compare
Choose a tag to compare

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

13 Oct 15:14
7e85223
Compare
Choose a tag to compare

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

07 May 15:15
20affd3
Compare
Choose a tag to compare

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

07 May 10:39
11d43b5
Compare
Choose a tag to compare

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

04 May 15:41
6579dc6
Compare
Choose a tag to compare

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

03 May 19:54
09a2bdf
Compare
Choose a tag to compare

Changes:

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

30 Apr 15:13
4d97d1c
Compare
Choose a tag to compare

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

19 Mar 22:11
9b90afd
Compare
Choose a tag to compare

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'