An open API service indexing awesome lists of open source software.

https://github.com/axelrindle/pocketknife

:recycle: Utilities and reusable components to simplify the process of creating a Bukkit/Spigot plugin.
https://github.com/axelrindle/pocketknife

api bukkit bukkit-plugin papermc reusable-components spigot spigot-plugin utils

Last synced: about 2 months ago
JSON representation

:recycle: Utilities and reusable components to simplify the process of creating a Bukkit/Spigot plugin.

Awesome Lists containing this project

README

          

![Logo](https://raw.githubusercontent.com/axelrindle/PocketKnife/master/logo.svg)

----



Test Status


Codacy Badge


Codacy Badge


JitPack Status


----

# PocketKnife

> :recycle: Utilities and reusable components to simplify the process of creating a Bukkit/Spigot plugin.

## Get Started

### Installation

If not already done, add the `JitPack` repository and the dependency:

#### Repository

```gradle
maven { url 'https://jitpack.io' }
```

#### Dependency

```gradle
implementation 'com.github.axelrindle:PocketKnife:LATEST_VERSION'
```

#### Package relocation

To avoid classpath conflicts with other plugins using the same dependencies, dependencies should be relocated to a unique package. More information [can be found here](https://imperceptiblethoughts.com/shadow/configuration/relocation/).

The following Gradle configuration relocates all dependencies using the `shadow` plugin, that will be included in the jar file, to a new location:

```groovy
plugins {
id 'com.github.johnrengelman.shadow' version '6.1.0'
}

shadowJar {
archiveClassifier.set('') // remove the 'all' suffix
}

import com.github.jengelman.gradle.plugins.shadow.tasks.ConfigureShadowRelocation
task relocateShadowJar(type: ConfigureShadowRelocation) {
target = tasks.shadowJar
prefix = "mypluginshadow" // Default value is "shadow"
}

tasks.shadowJar.dependsOn tasks.relocateShadowJar
```

Afterwards a jar file can be built by running the Gradle task `shadowJar`.

### Usage

Documentation is moving to [GitBook](https://axelrindle.gitbook.io/pocketknife/).

## Used by

- [Broadcaster](https://github.com/axelrindle/Broadcaster-Plugin)
- [SimpleCoins](https://github.com/axelrindle/SimpleCoins)

*Feel free to add your plugin here by sending a pull request.*

## License

[Apache-2.0](LICENSE)

### Copyright notices

- [pocket knife by teleymon from the Noun Project](https://thenounproject.com/icon/923802/)