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,
Modrinth or SpigotMC
and place it in your plugins
directory. You do not have to install anything else and any recent
version will work with any recent Minecraft version, as long as you're running Java 17 or higher.
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 JDK 17
or newer, cloning this repository and running ./gradlew build
in the main directory.
If you know a language that isn't supported by this plugin (yet) or found some translation error we'd love if you could translate for us!
You can do so easily by going to gitlocalize or sending me the translations on Discord.
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:blockprot-spigot:0.4.11'
}
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.