DarkWaterAPI icon

DarkWaterAPI -----

A library for SpigotMC 1.18 and above that aims to improve plugin code



DarkWaterAPI
A library for PaperMC 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.

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>
 
Gradle

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
 

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.
    }
}
 
Contents of message files:

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
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.
Resource Information
Author:
----------
Total Downloads: 460
First Release: Aug 3, 2022
Last Update: Oct 16, 2022
Category: ---------------
All-Time Rating:
0 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings