6037711d30
Feature to add Per-Player Name Holograms to NPCs |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
api | ||
examples | ||
nms | ||
plugin | ||
.gitignore | ||
.travis.yml | ||
CREDITS.md | ||
DOCUMENTATION.md | ||
LICENSE.md | ||
README.md | ||
pom.xml | ||
release.properties |
README.md
NPCLib – Basic non-player character library.
This is an API made specifically for spigot servers (Minecraft). Current supported versions: 1.8 R2 - latest*. Lightweight replacement for Citizens. NPCLib only uses packets instead of registering the entity in the actual Minecraft server.
*You can find a version of NPCLib with basic support for 1.7.10 on the legacy branch. This branch is not actively maintained as the master branch. This version does not support multi-line text.
Preview (click to play video)
Donate
Alternatively, you can help the project by starring the repository or telling others about NPCLib. 😄
Developers
Usage
There are multiple ways you can make use of NPCLib.
- The first option is to shade
npclib-plugin.jar
in to your plugin. - The second option is to put
npclib-plugin.jar
under yourplugins
folder. By doing this, you no longer need to shade the API JAR. Though, do not forget to addNPCLib
as a dependency in yourplugin.yml
! - The third option (and the one I recommend most) is to shade the library using Maven. I recently added NPCLib to the OSSRH (OSS Repository Hosting) which allows you to easily import NPCLib into your project.
Maven repository
<repositories>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
</repositories>
Maven dependency
If you have NPCLib under your plugins
folder, you may use the following:
<dependencies>
<dependency>
<groupId>net.jitse</groupId>
<artifactId>npclib-api</artifactId>
<version>2.7-SNAPSHOT</version>
<scope>compile</scope>
</dependency>
</dependencies>
If you do not want to have NPCLib in your plugins
folder, you need to use the npclib-plugin
artifact and shade it accordingly.
Click here to view the latest release.
Repacking the library
To make sure the classes won't be twice at the same place. I recommend repacking the library into your package. (Otherwise issue #79 might occur.) You can do that as follow:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<!-- Do not include the <configuration>...</configuration> part if you are using Sponge! -->
<configuration>
<relocations>
<relocation>
<pattern>net.jitse.npclib</pattern>
<!-- Replace this with your package! -->
<shadedPattern>your.package</shadedPattern>
</relocation>
</relocations>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Tutorial
Click here for an elaborate explanation on how to use NPCLib in your next project.
Versioning
For NPCLib I use the follow versioning system:
- 1.x.x: Where the 1 indicates the major version of the library. When this number changes, it's highly likely there're big API changes.
- x.1.x: Where the 1 indicates the minor version of the library. When this number changes, a feature is added or a high priority bug is fixed.
- x.x.1: Where the 1 indicates another minor version of the library. When this number changes, a small bug has been fixed.
Building your own version
- Download or clone this repository.
- You can build the project using
mvn clean install
.
The API JAR will be under /api/target/
and the plugin JAR (which includes all necessary NMS code) will be under /plugins/target/
.
License
NPCLib is licensed under the MIT license. Developers are free to use NPCLib for both private and commercial use. However, it would still be nice to acknowledge me.
Acknowledgement
I thank all those who have contributed to NPCLib over the course of its development.
Please view other credits here.
Copyright
Copyright (c) Jitse Boonstra 2018 All rights reserved.