DarkWaterAPI
A library for PaperMC 1.18 and above that aims to improve plugin code
Donations
A library for PaperMC 1.18 and above that aims to improve plugin code
If you want to support the project, then star this repository and tell your friends about DarkWaterAPI =3
Support
Join the Discord if you have any questions.
Features
- Simple and convenient plugin localization system
- Easily create interactive text in messages
- Improved command work
- Player stats tracking
- The 'isWalking(player)' and 'isJumping(player)' methods. Really useful stuff =)
- Easy management bukkit scheduler's
- Easily manage files and data in them
- Checking the config version
- Enabling, disabling and reloading plugins that use this library
- And much more
Download
The latest version can be downloaded on the releases page.
Installation
In order for DarkWaterAPI to work, it must be placed in the plugins folder.
Maven
Code (XML):
<repositories>
<repository>
<id>darkwaterapi </id>
<url>https://repo.kiinse.me/releases </url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>kiinse.plugins.darkwaterapi </groupId>
<artifactId>darkwater-core </artifactId>
<version>ENTER_VERSION_HERE </version>
<scope>provided </scope>
</dependency>
</dependencies>
Code (Groovy):
repositories {
maven {
url "https://repo.kiinse.me/releases"
}
}
dependencies {
compileOnly 'kiinse.plugins.darkwaterapi:darkwater-core:ENTER_VERSION_HERE'
}
Usage
For all examples and more detailed explanation check out the WIKI.
Since all examples are on WIKI, I will give a small example of working with messages here.
In the resources folder create a "messages" folder, where also create several localization files. For example en.json and ru.json. The result is the following structure:
Code (Text):
.
└── resources
└── messages
├── en.json
└── ru.json
└── resources
└── messages
├── en.json
└── ru.json
After running the plugin containing the main class, which was inherited from "DarkWaterJavaPlugin" - These files will appear in the plugin folder on the server.
Sending text from these files takes just two lines:
Code (Java):
public final class TestPlugin extends DarkWaterJavaPlugin { // Main class
@Override
public void onStart ( ) throws Exception {
// Code at startup
}
@Override
public void onStop ( ) throws Exception {
// Shutdown code
}
private void sendMessageToPlayer (Player player ) {
MessagesUtils messagesUtils = new DarkMessagesUtils ( this ) ;
messagesUtils. sendMessageWithPrefix (player, Message. MESSAGE_HELLO ) ; // We send to player the message "message_hello" from the json file.
// This text will correspond to the selected localization of the player.
}
}
File "en.json":
Code (json (Unknown Language)):
{
"prefix": "message prefix",
"message_hello": "Hello player!"
}
File "ru.json":
Code (json (Unknown Language)):
{
"prefix": "message prefix",
"message_hello": "Привет, игрок!"
}
Commands
All commands can be found here
Placeholders
All placeholders can be found here
Config
Spoiler: Default config
locale.default : en # The default language if the player's language is not available on the server, or it has not been defined
first.join.message : true # A message when the player enters, telling about the definition of the player's language and the possibility of changing this language.
actionbar.indicators : true # Indicators above the player's toolbar. This function is needed for some plugins that use DarkWaterAPI. Requires PlaceHolderAPI to work.
config.version : 3 # DO NOT TOUCH THIS PLEASE =)
debug : false # This line is not in the config by default, but you can enter it in the DarkWaterAPI config to display config logs in the server console.
Code (YAML):
locale.default : en # The default language if the player's language is not available on the server, or it has not been defined
first.join.message : true # A message when the player enters, telling about the definition of the player's language and the possibility of changing this language.
actionbar.indicators : true # Indicators above the player's toolbar. This function is needed for some plugins that use DarkWaterAPI. Requires PlaceHolderAPI to work.
config.version : 3 # DO NOT TOUCH THIS PLEASE =)
debug : false # This line is not in the config by default, but you can enter it in the DarkWaterAPI config to display config logs in the server console.
Quick facts
- Edition: Minecraft Java
- File type: .jar
- Minecraft versions listed: 1.18, 1.19
- How to install: Install the matching mod loader (Forge, Fabric or NeoForge) for your Minecraft version. → Download the .jar. → Put it in the .minecraft/mods folder and launch that loader profile.
- Where to get it: Opens on Spigot — not every file is mirrored on our own servers.
Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.
DarkWaterAPI is a free Minecraft Java mod. Compatible with Minecraft 1.18, 1.19. Downloaded 501 times (via Spigot). Download it and open it directly in the game.