Скачать YardWatch — Minecraft Моды — MetaMods

YardWatch

Активный

Установок

0

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

1 год назад

Версии

1.16 — 1.21.4
Сервер
Игровые механики
Библиотеки
Утилиты

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&lt;/url&gt;
</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
    );
}
Участники проекта
YouHaveTrouble

YouHaveTrouble

Разработчик

Создан: 18 апр 2024

ID: 17019