BlockProt is a lightweight Bukkit and Spigot plugin that gives players the ability to protect chests, furnaces and many more blocks. The plugin features a modern GUI approach instead of commands, so that any player can easily understand how to use all of its features.
To use this plugin, you can simply download it from CurseForge
or SpigotMC and place it in your plugins
directory.
You do not have to install anything else and any recent version will work with 1.14, 1.15, 1.16 and 1.17. It runs
on any Spigot and any fork thereof and does not run on CraftBukkit.
To get the latest updates the quickest, you can "watch" or "star" this repository or frequently check the Release tab. Alternatively, it is also possible to watch the resource on Spigot, which will also notify you as soon as new builds get released.
If you want to build the plugin from source yourself, you can simply do so by installing a JDK 8 or newer, cloning this
repository and running ./gradlew build
in the main directory.
If you find bugs or any issues related to this plugin, please report them over on the GitHub issue tracker. If you require more support or want to ask questions, please use the Discord server for chatting.
This plugin offers a basic API which other developers can use to add new features and provide support and compatibility with other plugins. BlockProt can be accessed via the jitpack.io repository.
Your build.gradle
file may look like this:
repositories {
maven 'https://jitpack.io'
}
dependencies {
// This version might be slightly outdated. See https://github.com/spnda/BlockProt/releases.
implementation 'com.github.spnda:BlockProt:0.4.7'
}
From here on, you're good to go. We provide an easy to use BlockProtAPI
class and other utility methods
to easily add new functionality, with low amount of boilerplate. In the following examples you can see how
to use that class.
// A BlockNBTHandler is a NBT Handler designed to lock blocks, add friends and edit other settings.
// This handler exists on a per-block basis.
BlockNBTHandler handler = BlockProtAPI.getInstance().getBlockHandler(block);
// The PlayerSettingsHandler is made to handle settings that are commonly accessible
// through the "/blockprot settings" command.
PlayerSettingsHandler playerHandler = BlockProtAPI.getInstance().getPlayerSettings(player);
We also offer a variety of events that you can listen to. For an up-to-date and more detailed list, see
here. You can
use these to block players from accessing some blocks based on custom conditions and much more. For even more
fine grain control over events, you can write a PluginIntegration
. A PluginIntegration
is designed to be
specific to a single other plugin and is only activated when the referenced plugin is actually loaded through
Bukkit. It also provides utilities to quickly load a single config file and register listeners. BlockProt
natively includes a plugin integration for Towny, which you can find
here.
You can freely use this as an example.
BlockProt is licensed under GPLv3 license, view LICENSE
to learn more.