
YardWatch
Активный0.0
Установок
Последнее обновление
Версии
YardWatch - Универсальный контроль защиты для серверов Minecraft
YardWatch представляет собой многофункциональный плагин для владельцев серверов, который реализует API для работы с популярными системами защиты. Если какой-либо из поддерживаемых плагинов уже имеет собственную реализацию YardWatchAPI, то данный плагин автоматически прекращает предоставление своей реализации, позволяя оригинальному плагину взять управление на себя.
Системные требования
- Java 17 или новее
- Minecraft версии 1.16 и выше
Поддерживаемые плагины защиты
Реализована интеграция со следующими популярными системами защиты:
- GriefPrevention (версия 16 и выше)
- WorldGuard (версия 7.0.0 и выше)
- LWCX
- FactionsUUID
- SuperiorSkyBlock
- Towny
- PlotSquared (версия 6.0.0 и выше)
Для разработчиков
YardWatchAPI предлагает единый интерфейс для работы с системами защиты на серверах Minecraft Bukkit, что позволяет выполнять запросы к различным плагинам защиты без необходимости импортировать десятки отдельных API и создавать уникальные реализации для каждого из них.
Установка зависимостей
Для использования API необходимо подключить зависимость, заменив "VERSION" на актуальную версию сборки. Если вы используете API только для запросов без реализации, установите scope как "provided".
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'
}
Пример использования
Проверка возможности разрушения блока
Пример кода для проверки разрешения игрока на разрушение блока:
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; // если любой плагин защиты запрещает разрушение блока, возвращаем false
}
// Если все плагины защиты разрешили разрушение блока, возвращаем true
return true;
}
Для разработчиков плагинов защиты
Добавление зависимости
Вы можете включить мягкую зависимость от YardWatch для реализации дополнительной интеграции.
depend:
- "YardWatch"
Реализация интерфейса
Создайте класс, реализующий интерфейс Protection:
public class YourPluginProtection implements Protection {}
Регистрация сервиса
@Override
public void onEnable() {
getServer().getServicesManager().register(
Protection.class,
new YourPluginProtection(),
this,
ServicePriority.Normal
);
}