GithubHelp home page GithubHelp logo

npclib's Introduction

Banner NPCLib – Basic non-player character library.
Release Build Status Versions Resource Discord

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

Donate

PayPal

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.

  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

<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.9.2-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

  1. Download 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. 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.

npclib's People

Contributors

a248 avatar coreyshupe avatar dependabot[bot] avatar frederikheinrich avatar kneesnap avatar mcmdev avatar mooselk avatar mrmicky-fr avatar realgatt avatar termxz avatar

Watchers

 avatar

npclib's Issues

bug with setPlayerLines with size != original

solved - i used on debug mode npclib-api-2.9-SNAPSHOT.jar
and the server live run on npclib-plugin-2.9-SNAPSHOT.jar
so using npclib-plugin-2.9-SNAPSHOT on debug mode and live server fixed the problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.