Вопрос Как создать плагин, в котором используется WorldGuard?

Версия Minecraft
1.20.X

3aBapka

Пользователь
Сообщения
1
Я написал плагин, который использует WorldGuard вот его код:
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;

import com.sk89q.worldguard.WorldGuard;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.protection.flags.StateFlag;
import com.sk89q.worldguard.protection.flags.registry.FlagRegistry;
import com.sk89q.worldguard.protection.managers.RegionManager;
import com.sk89q.worldguard.protection.regions.ProtectedCuboidRegion;
import com.sk89q.worldguard.protection.regions.ProtectedRegion;

public class DiamondPrivatePlugin extends JavaPlugin {
private static final StateFlag PRIVACY_FLAG = new StateFlag("diamond-private", true);

@Override
public void onEnable() {
// Получение экземпляра WorldGuardPlugin
WorldGuardPlugin worldGuardPlugin = (WorldGuardPlugin) getServer().getPluginManager().getPlugin("WorldGuard");
if (worldGuardPlugin != null) {
// Получение реестра флагов
FlagRegistry flagRegistry = worldGuardPlugin.getFlagRegistry();
// Регистрация флага Privacy
flagRegistry.register(PRIVACY_FLAG);
}
}

@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (!(sender instanceof Player))
return true;

Player player = (Player) sender;
if (args.length > 0 && args[0].equalsIgnoreCase("createprivate")) {
// Подсчет количества алмазных блоков
int diamondCount = 0;
for (int x = player.getLocation().getBlockX() - 10; x <= player.getLocation().getBlockX() + 10; x++) {
for (int y = player.getLocation().getBlockY() - 10; y <= player.getLocation().getBlockY() + 10; y++) {
for (int z = player.getLocation().getBlockZ() - 10; z <= player.getLocation().getBlockZ() + 10; z++) {
if (player.getWorld().getBlockAt(x, y, z).getType() == Material.DIAMOND_BLOCK) {
diamondCount++;
}
}
}
}

int totalCost = diamondCount;
if (player.getInventory().contains(Material.DIAMOND, totalCost)) {
// Удаление алмазов из инвентаря игрока
player.getInventory().removeItem(new ItemStack(Material.DIAMOND, totalCost));
createPrivateRegion(player);
} else {
player.sendMessage("броо, у тя алмазов не хватает");
}
return true;
}
return false;
}

private void createPrivateRegion(Player player) {
// Получение экземпляра WorldGuard
WorldGuard worldGuard = WorldGuard.getInstance();
// Получение менеджера регионов для текущего мира
RegionManager regionManager = worldGuard.getPlatform().getRegionContainer().get(player.getWorld());

// Создание приватной региона
ProtectedRegion region = new ProtectedCuboidRegion("private-region",
player.getLocation().clone().subtract(10, 10, 10).toVector(),
player.getLocation().clone().add(10, 10, 10).toVector());

// Установка флага Privacy на регион и добавление игрока как владельца
region.setFlag(PRIVACY_FLAG, StateFlag.State.DENY);
region.getOwners().addPlayer(player.getUniqueId());

// Добавление региона в менеджер регионов
regionManager.addRegion(region);

player.sendMessage("Ты крут, брооооооо, приват создан");
}
}


Я так и не смог найти гайд как импортировать WorldGuard, поэтому задаю вопрос здесь
 
Назад
Сверху Снизу