- Download Link
- https://github.com/kiinse/DarkWaterAPI/releases
- Source Code
- https://github.com/kiinse/DarkWaterAPI
- Documentation
- https://github.com/kiinse/DarkWaterAPI/wiki
- Support
- https://discord.gg/ec7y5NY82b
- Minecraft Versions
- 1.18, 1.19
- Compatible Java Versions
- 17

DarkWaterAPI
A library for SpigotMC 1.18 and above that aims to improve plugin code
Donations
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.
Maven
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>
Gradle
Code:
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, we create a "messages" folder, where we also create several localization files. For example en.json and ru.json. We get the following structure:
Code:
.
└── 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:
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.
}
}
Contents of message files:
File "en.json":
JSON:
{
"prefix": "message prefix",
"message_hello": "Hello player!"
}
File "ru.json":
JSON:
{
"prefix": "message prefix",
"message_hello": "Привет, игрок!"
}
Commands
Command | Permission | Description |
/locale change | locale.change | Opens a GUI to change the selected language |
/locale help | locale.help | Help command |
/locale set [locale] | locale.change | Setting the language without opening the GUI |
/locale list | locale.list | List of languages available for selection |
/locale get [player] | locale.get | View player's language |
/darkwater reload [plugin] | darkwater.reload | Reloading a plugin using DarkWaterAPI |
/darkwater disable [plugin] | darkwater.disable | Disabling a plugin using DarkWaterAPI |
/darkwater enable [plugin] | darkwater.enable | Enabling a plugin using DarkWaterAPI |
/statistic | darkwater.statistic | View statistics on the number of killed mobs. |
Placeholders
Placeholder | Description | |
%statistic_PUT-HERE-MOB% (Example: %statistic_CREEPER%) | Display the number of killed mob | |
%locale_player% |
| |
%locale_list% | Displaying a list of languages available for selection |
Config
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.
Last edited: