NPCLib/README.md

122 lines
5.2 KiB
Markdown
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

![Banner](https://i.imgur.com/WL6QeUA.png)
NPCLib Basic non-player character library.<br>
[![Release](https://jitpack.io/v/JitseB/NPCLib.svg)](https://github.com/JitseB/NPCLib/releases)
[![Build Status](https://travis-ci.com/JitseB/NPCLib.svg?branch=master)](https://travis-ci.com/JitseB/NPCLib)
[![Versions](https://img.shields.io/badge/MC-1.8.8%20--%20latest-blue.svg)](https://github.com/JitseB/NPCLib/releases)
[![Resource](https://img.shields.io/badge/SpigotMC-Resource-orange.svg)](https://www.spigotmc.org/resources/npclib.55884/)
[![Discord](https://img.shields.io/badge/Support-Discord-blue.svg)](https://discord.gg/pvJGhEq)
=
`This project is starting 5 Oct. 2020 no longer actively maintained. I Thank you all for riding along!`
This is an API made specifically for spigot servers (Minecraft). Current supported versions: **1.8.8 - latest**. Lightweight replacement for Citizens. NPCLib only uses packets instead of registering the entity in the actual Minecraft server.
### Preview (click to play video)
[![YouTube Video](http://img.youtube.com/vi/LqwdqIxPIvE/0.jpg)](http://www.youtube.com/watch?v=LqwdqIxPIvE "NPCLib Basic non-player character library (Minecraft).")
## Donate
[![PayPal](https://cdn.rawgit.com/twolfson/paypal-github-button/1.0.0/dist/button.svg)](https://paypal.me/jitseboonstra)
Alternatively, you can help the project by starring the repository or telling others about NPCLib. :smile:
## Developers
### Usage
There are multiple ways you can make use of NPCLib.
1. The first option is to shade `npclib-plugin.jar` in to your plugin.
2. The second option is to put `npclib-plugin.jar` under your `plugins` folder. By doing this, you no longer need to shade the API JAR. Though, do not forget to add `NPCLib` as a dependency in your `plugin.yml`!
3. 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
```xml
<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:
```xml
<dependencies>
<dependency>
<groupId>net.jitse</groupId>
<artifactId>npclib-api</artifactId>
<version>2.11-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](https://maven.apache.org/plugins/maven-shade-plugin/) accordingly.
[Click here](https://github.com/JitseB/NPCLib/releases/latest) 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](https://github.com/MinecraftLibraries/NPCLib/issues/79) might occur.) You can do that as follow:
```xml
<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](https://github.com/JitseB/NPCLib/blob/master/DOCUMENTATION.md) 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
1. [Download](https://github.com/JitseB/NPCLib/archive/master.zip) or clone this repository.
2. 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](https://github.com/JitseB/NPCLib/blob/master/LICENSE.md).
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](https://github.com/JitseB/NPCLib/graphs/contributors) to NPCLib over the course of its development.
Please view other credits [here](https://github.com/JitseB/NPCLib/blob/master/CREDITS.md).
## Copyright
Copyright (c) Jitse Boonstra 2018 All rights reserved.