YardWatch
1.4.1Plugin and API allowing developers to hook into multiple protection plugins without needing to depend on them
- Tested MC versions
- 1.16, 1.17, 1.18, 1.19, 1.20, 1.21, 26.1, 26.2, 26.3
YardWatch (for server owners)
Implementation of YardWatchAPI for common protection plugins. If any of supported plugins implements the API itself, then this plugin will stop providing its implementation to allow the
plugin to take over.
If you're a developer looking for information how to implement YardWatchAPI in your plugin, see
YardWatchAPI
Requirements
- Java 17
- Minecraft 1.16+
Implementations for:
- GriefPrevention (v16+)
- WorldGuard (7.0.0+)
- LWCX
- FactionsUUID
- SuperiorSkyBlock
- Towny
- PlotSquared (6.0.0+)
Plugin you're using is not implementing YardWatchAPI?
Contact the plugin developer and send them here!
You can also request a temporary implementation within this plugin here.
YardWatchAPI (for developers)
API to unify protection plugins for minecraft bukkit servers to allow easy protection queries without having to import
10 different plugin apis with separate implementations.
If you're looking for a plugin implementing YardWatchAPI for common protection plugins, see YardWatch plugin.
Usage
Import the api using dependency manager
In any case of usage you will need to import the API. Replace VERSION with current version tag. You should also adjust your <scope> to provided if you're not implementing the api and just querying it.
Maven
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
<dependency>
<groupId>com.github.YouHaveTrouble</groupId>
<artifactId>YardWatchAPI</artifactId>
<version>VERSION</version>
<scope>compile</scope>
</dependency>
Gradle
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
dependencies {
compileOnly 'com.github.YouHaveTrouble:YardWatchAPI:VERSION'
}
For plugins wanting to see if something is protected
Check if player can break a block
Example handling of block breaking check. There's no need to depend on any plugins for this.
public boolean canBreakBlock(Player player, Block block) {
ServicesManager servicesManager = getServer().getServicesManager();
Collection<RegisteredServiceProvider<Protection>> protections = servicesManager.getRegistrations(Protection.class);
for (RegisteredServiceProvider<Protection> protection : protections) {
if (protection.getProvider().canBreakBlock(player, block.getState(true))) continue;
return false; // if any protection plugin disallowed breaking the block, return false
}
// If all protection plugins allowed breaking the block, return true
return true;
}
For protection plugins
Depend on YardWatch plugin
You can optionally softdepend and check if YardWatch is present to add an optional integration.
depend:
- "YardWatch"
Implement Protection interface
Implement all the methods required by the interface
public class YourPluginProtection implements Protection {}
Register your implementation as a service
@Override
public void onEnable() {
getServer().getServicesManager().register(
Protection.class,
new YourPluginProtection(),
this,
ServicePriority.Normal
);
}
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
WorldEdit
A Minecraft Map Editor... that runs in-game! With selections, schematics, copy and paste, brushes, and scripting. Use it in creative, or use it temporarily in survival.
11.6MSueta