Использование API
Создаём папку libs в папке вашего проекта и перетаскиваем туда плагин.
Добавляем зависимость локально
// Maven
<dependency>
<artifactId>GreatCombat</artifactId>
<groupId>dev.enco</groupId>
<scope>system</scope>
<version>1.6</version>
<systemPath>${basedir}/libs/GreatCombat-1.6.jar</systemPath>
</dependency>
// Gradle
dependencies {
implementation files('libs/GreatCombat-1.6.jar')
}
Далее добавляем плагин в зависимости в plugin.yml
# Если хотим сделать зависимость обязательной.
depend:
- GreatCombat
# Если хотим сделать зависимость необязательной
softdepend:
- GreatCombat
Получаем экземпляр CombatManager
private CombatManager combatManager;
@Override
public void onEnable() {
if (getServer().getPluginManager().isPluginEnabled("GreatCombat")) {
combatManager = GreatCombat.getInstance().getCombatManager();
} else {
Logger.warn("GreatCombat отсутствует!");
}
}
public CombatManager getCombatManager() {
return combatManager;
}
Пример использования (Не имеет смысла, просто показаны возможные методы)
void someAction(SomeEvent event) {
Player player = event.getPlayer();
CombatManager cm = yourPlugin.getCombatManager();
UUID uuid = player.getUniqueId();
// Проверяем находится ли игрок в режиме боя
if (cm.isInCombat(uuid) {
// do something
}
User user = cm.getUser(uuid);
// Нужно проверять на null
if (user != null) {
// Обновляем таймер игрока
long now = System.currentTimeMillis();
user.refresh(now);
Player player2 = event.getPlayer2();
User user2 = cm.getUser(player2.getUniqueId());
if (user2 == null) return;
// Проверяем, сражаются ли уже игроки
if (!user.containsOpponent(user2)) {
user2.refresh(now);
// Останавливаем режим боя
cm.stopCombat(user);
} else {
// Начинаем режим боя, Cancellable может быть null
cm.startCombat(player, player2, null);
}
}
}
Пример 2: Создаём свой ServerManager
public class GreatEssentials implements ServerManager, Listener {
private GreatEssentialsAPI essentials;
@Override
public void setup() {
Logger.info("Подключаемся к GreatEssentials");
long start = System.currentTimeMillis();
try {
essentials = GreatEssentialsAPI.getInstance();
setupFlyDisabler();
setupFlyChecker();
setupGodDisabler();
setupGodChecker();
setupGamemodeChecker();
setupGamemodeDisabler();
setupVanishChecker();
setupVanishDisabler();
setupWalkspeedChecker();
setupWalkspeedDisabler();
Logger.info("GreatEssentials подключен за " + (System.currentTimeMillis() - start) + " ms.");
} catch (Exception e) {
Logger.error("Unable to load GreatEssentials " + e);
}
}
// Нужно инициализировать все
private PowerupDisabler flyDisabler;
private void setupFlyDisabler() {
this.flyDisabler = player -> {
// some disabler
};
}
@Override
public PowerupDisabler flyDisabler() {
return this.flyDisabler;
}
private PowerupChecker flyChecker;
private void setupFlyChecker() {
this.flyChecker = player -> {
// some checker
};
}
@Override
public PowerupChecker flyChecker() {
return this.flyChecker;
}
@EventHandler
public void listenTeleports(GreatEssentialsTeleportEvent e) {
if (!ConfigManager.isTeleportEnable()) {
// some teleport listener
}
}
}
void someVoid() {
ServerManager manager = new GreatEssentials();
manager.setup();
PowerupsManager.setServerManager(manager);
}
Нужно больше примеров, остались вопросы? Пишите в обсуждения ресурса.
Last updated