COWMODSКаталог модов

Necrify

Customizable plugin for velocity that allows the managment of various punishments

Автор: JvstvsHD5002обновлён 29 окт. 2026 г.
Управление

Описание

Necrify

Necrify is a punishment plugin designed for currently Velocity (and maybe Paper/BungeeCord in the future).

Table of contents

  1. Plugin installation
  2. Mutes (only affects Velocity)
  3. Duration
  4. Commands
  5. API

Plugin installation

Your server must be running on Java 25 or higher.

  1. Download the latest version of the plugin or download dev builds here (may be unstable or not working)
  2. Put the downloaded file into the plugins folder of your server.
  3. (Re-)Start the server.

Mutes

With the 1.19.1, Minecraft's chat system got changed (detailed explanation). Since then, it is no longer possible to block chat messages in the ChatEvent of Velocity due to the signed chat messages. This is why the chat listener does not block any messages anymore which means mutes are effectively useless. A solution to this problem is developing an extension plugin for the actual game servers where cancelling these messages is still possible. Downloads for this paper plugin are found in the releases and also as dev builds on Jenkins.
For further information about 1.19.1, please refer to the official release notes

Commands

All commands are registered with the prefix /necrify. Moreover, it is possible to register top-level commands too by setting allow-top-level-commands to true (which is per default)
legend:

  • <arg> means the argument is required
  • [arg] means the argument is optional
  • player as argument name means the a player name OR uuid is required
  • reason means a reason that supports MiniMessage
  • duration as argument name means a duration

Command overview

  • /ban <player> [reason] bans a player permanently for the given or the default reason
  • /mute <player> [reason] mutes a player permanently for the given or the default reason
  • /tempban [reason] bans a player for the given duration for the given or the default reason
  • /tempmute [reason] mutes a player for the given duration for the given or the default reason
  • /unban unbans the given player
  • /unmute unmutes the given player
  • /necrify user <player> <info|delete|whitelist> shows either information about a player's punishments and his whitelist status, deletes this user including all punishments or inverts his whitelist status (from whitelisted to blacklisted or vice versa)
  • /necrify punishment <punishment id> <cancel|change|info|remove> cancels/removes, changes or shows information about the given punishment(must be a uuid)

Duration

To be parsed by PunishmentDuration#parse(String), a string must follow this scheme:
[0-9][s, m, h, d]
s - second(s)
m - minute(s)
h - hour(s)
d - day(s)
These value can be composed, all of them can be omitted.
Example: 1d12h15m30s means a duration of 1 day, 12 hours, 15 minutes and 30 seconds.

Punishment API

Installation

Replace {version} with the current version, e.g. 1.2.3. The latest version can be found here. Note that you only want to use the string after necrify-{platform}- and without the version build number.

Gradle (kotlin)

repositories {
   mavenCentral()
}

depenencies {
   implementation("de.jvstvshd.necrify:necrify-api:{version}")
}

Gradle (groovy)

repositories {
    mavenCentral()
}

dependencies {
   implementation 'de.jvstvshd.necrify:necrify-api:{version}'
}

Maven


<dependencies>
   <dependency>
      <groupId>de.jvstvshd.necrify</groupId>
      <artifactId>necrify-api</artifactId>
      <version>{version}</version>
   </dependency>
</dependencies>

You can also depend on the plugin modules or common module. In order to do so, replace the artifactId with the desired module name. Note that code outside the API module is always subject to change and may not be stable. It is also not designed to allow access and modifications from outside the plugin itself and is often not documented.

Usage

Obtaining an instance of the api

If the plugin is used, you can obtain an instance of the api using the following snippet:

    try {
        Necrify api = (Necrify) server.getPluginManager().getPlugin("necrify").orElseThrow().getInstance().orElseThrow();
    } catch(NoSuchElementException e) {
        logger.error("Punishment API is not available");
    }

Punishing a player

All punishments are issued via the target user. For example, banning a player could be done this way:

    //Firstly, obtain the user instance
    NecrifyUser user = api.getUserManager().getUser(uuid).orElseThrow(() -> new NoSuchElementException("User not found"));
    MiniMessage miniMessage = MiniMessage.miniMessage();
    //temporary ban:
    Ban temporaryBan = user.ban(PunishmentDuration.parse(miniMessage.deserialize("<red>You broke the server's rules! Don't cheat!"), PunishmentDuration.parse("1d"))).join();//1d equals 1 day, the duration is relative to the current time until the punishment is imposed.
    //permanent ban:
    Ban permanentBan = user.banPermanent(miniMessage.deserialize("<red>You broke the server's rules again! You are not allowed to join someday again!")).join();
    //The ban instance you get via #join is the punishment that was issued. Note that using #join blocks the current 
    //Thread and since database operations take some time to complete, it is recommended to use #whenComplete or other.
    //You can now use this instance to change or cancel the punishment:
    temporaryBan.cancel().whenComplete((punishment, throwable) -> {
        if(throwable != null) {
            logger.error("An error occurred while cancelling the punishment", throwable);
            return;
        }
        logger.info("The punishment was successfully cancelled");
    });
    //#cancel should always return the same instance that you called the method on
    //Event tough a permanent ban was issued for an indefinite time, you can still change the duration and the reason:        
    permanentBan.change(PunishmentDuration.parse("300d"), miniMessage.deseriaize("<green>Okay, you may join again in 300 days!")).whenComplete((punishment, throwable) -> {
        if(throwable != null) {
            logger.error("An error occurred while changing the punishment", throwable);
            return;
        }
        logger.info("The punishment was successfully changed");
    });

Muting a player is similar, just replace 'ban' with 'mute'.
Kicking a player can be done by calling user.kick(Reason).join(); where it is safe to call #join since there is no database query done synchronously. This form of punishment cannot be changed nor cancelled as it only lasts a single moment.

Галерея

Banning a playerMinimessage completion for reasonsMessage after banning someonePunishment log

Последние версии

Все версии →
release

1.2.7

1.2.7
29 окт. 2026 г.4Minecraft: 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3velocity
Скачать
Что нового
Updates Velocity to 4.3.1 and Paper to 26.1.
release

1.2.7

1.2.7
29 окт. 2026 г.2Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3paper
Скачать
Что нового
Updates Velocity to 4.3.1 and Paper to 26.1.
release

1.2.6 - please download the file below the description

1.2.6
19 авг. 2026 г.108Minecraft: 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2velocity
Скачать
Что нового
# please download the file below the description ### Necrify 1.2.6 contains the following bug-fixes and QoL changes: - sometimes useres could not login despite being whitelisted ([73a8644](https://github.com/JvstvsHD/necrify/commit/73a8644b98d8506dd13e64b0bed1ce5a14582e90)) - added /necrifyhelp command listing all commands and their usage ingame - message containtg instruction on how to dis-/enable the whitelist is now coloured grey - removed prefix for "Click to copy" hover messages - the total duration of temporal punishments is now correctly shown after they have expired and when they are still cached from a time where it was still active Complete changelog can be found on GitHub: https://www.github.com/JvstvsHD/necrify/releases/tag/1.2.6
release

1.2.6

1.2.6
19 авг. 2026 г.25Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2paper
Скачать
Что нового
No changes for paper. Complete changelog can be found on GitHub: https://www.github.com/JvstvsHD/necrify/releases/tag/v1.2.6
beta

1.2.6-SNAPSHOT-176

1.2.6-SNAPSHOT-176
14 авг. 2026 г.12Minecraft: 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2velocity
Скачать
Что нового
[adc9592](https://github.com/JvstvsHD/necrify/commit/adc9592dd23c5766480a97567a1548580fb3f147): various QoL/fixes - implementing PunishmentDuration#initialDuration - added PunishmentDuration#expired - correctly show punishment duration after expiration when its still cached from before expiration - removed prefix for "Click to copy" hovers - coloured whitelist instructions grey - specify Java 25 requirement in README/docs - add dependsOn in necrify-velocity/build.gradle.kts
beta

1.2.6-SNAPSHOT-176

1.2.6-SNAPSHOT-176
14 авг. 2026 г.8Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2paper
Скачать
Что нового
[b46635f](https://github.com/JvstvsHD/necrify/commit/b46635f602b0bc6b933050bae47f8f347f0bfc01): Change velocity version to 4.0.0
beta

1.2.6-SNAPSHOT-172

1.2.6-SNAPSHOT-172
13 авг. 2026 г.6Minecraft: 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10velocity
Скачать
Что нового
[fdf4a1b](https://github.com/JvstvsHD/necrify/commit/fdf4a1b6af81d3556a74b698731f69a8108d2cc0): add missing JUnit dependency ---- This snapshot contains also all changes since (including) https://github.com/JvstvsHD/necrify/commit/e678bddf143b7ca3cb5508aa9586967bdb3ae7dd; mostly dependency updates and build files.
beta

1.2.6-SNAPSHOT-172

1.2.6-SNAPSHOT-172
13 авг. 2026 г.12Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10paper
Скачать
Что нового
[fdf4a1b](https://github.com/JvstvsHD/necrify/commit/fdf4a1b6af81d3556a74b698731f69a8108d2cc0): add missing JUnit dependency
beta

1.2.6-SNAPSHOT-171

1.2.6-SNAPSHOT-171
9 авг. 2026 г.11Minecraft: 1.8.9, 1.9, 1.9.1, 1.9.2, 1.9.3, 1.9.4, 1.10, 1.10.1, 1.10.2, 1.11, 1.11.1, 1.11.2, 1.12, 1.12.1, 1.12.2, 1.13, 1.13.1, 1.13.2, 1.14, 1.14.1, 1.14.2, 1.14.3, 1.14.4, 1.15, 1.15.1, 1.15.2, 1.16, 1.16.1, 1.16.2, 1.16.3, 1.16.4, 1.16.5, 1.17, 1.17.1, 1.18, 1.18.1, 1.18.2, 1.19, 1.19.1, 1.19.2, 1.19.3, 1.19.4, 1.20, 1.20.1, 1.20.2, 1.20.3, 1.20.4, 1.20.5, 1.20.6, 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10velocity
Скачать
Что нового
[73a8644](https://github.com/JvstvsHD/necrify/commit/73a8644b98d8506dd13e64b0bed1ce5a14582e90): fix bug: whitelisted users not getting allowed on the server Users created by NecrifyVelocityPlugin#createUser have not any data on them and thus lead to whitelist blocks when they get cached
beta

1.2.6-SNAPSHOT-171

1.2.6-SNAPSHOT-171
9 авг. 2026 г.7Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10paper
Скачать
Что нового
[73a8644](https://github.com/JvstvsHD/necrify/commit/73a8644b98d8506dd13e64b0bed1ce5a14582e90): fix bug: whitelisted users not getting allowed on the server Users created by NecrifyVelocityPlugin#createUser have not any data on them and thus lead to whitelist blocks when they get cached