Помогите Чем отличаются команды /rg define и /rg claim

mitya12342

Активный участник
Пользователь
Баллы
61
Ник в Minecraft
mitya12342
Настраивал авто шахту по гайдам из интернета и у меня возник вопрос: В чем отличия rg define от rg claim (команды плагина WorldGuard)
 
Если грубо говоря:
define -- для админов (почти не содержит какие либо лимиты для привата)
claim -- для игроков (сдержит всякие лимиты)
 
Если грубо говоря:
define -- для админов (почти не содержит какие либо лимиты для привата)
claim -- для игроков (сдержит всякие лимиты)
А если не грубо говоря, а мягко?
 
Почитать вики или посмотреть исходный код.
Но смысл я и так правильно передал. Если не хотите чтобы игроки не создавали огромные регионы, то лучше не давать доступ к define.

Сравните исходный код обеих команд:

Код:
    @Command(aliases = {"claim"},
             usage = "<id> [<owner1> [<owner2> [<owners...>]]]",
             desc = "Claim a region",
             min = 1)
    public void claim(CommandContext args, CommandSender sender) throws CommandException {
        warnAboutSaveFailures(sender);

        Player player = plugin.checkPlayer(sender);
        LocalPlayer localPlayer = plugin.wrapPlayer(player);
        RegionPermissionModel permModel = getPermissionModel(sender);
       
        // Check permissions
        if (!permModel.mayClaim()) {
            throw new CommandPermissionsException();
        }

        String id = checkRegionId(args.getString(0), false);

        RegionManager manager = checkRegionManager(plugin, player.getWorld());

        checkRegionDoesNotExist(manager, id, false);
        ProtectedRegion region = checkRegionFromSelection(player, id);

        WorldConfiguration wcfg = plugin.getGlobalStateManager().get(player.getWorld());

        // Check whether the player has created too many regions
        if (!permModel.mayClaimRegionsUnbounded()) {
            int maxRegionCount = wcfg.getMaxRegionCount(player);
            if (maxRegionCount >= 0
                    && manager.getRegionCountOfPlayer(localPlayer) >= maxRegionCount) {
                throw new CommandException(
                        "У вас слишком много регионов, удалите один и пробуйте снова.");
            }
        }

        ProtectedRegion existing = manager.getRegion(id);

        // Check for an existing region
        if (existing != null) {
            if (!existing.getOwners().contains(localPlayer)) {
                throw new CommandException(
                        "This region already exists and you don't own it.");
            }
        }

        // We have to check whether this region violates the space of any other reion
        ApplicableRegionSet regions = manager.getApplicableRegions(region);

        // Check if this region overlaps any other region
        if (regions.size() > 0) {
            if (!regions.isOwnerOfAll(localPlayer)) {
                throw new CommandException("Этот регион пересекается с другим регионом.");
            }
        } else {
            if (wcfg.claimOnlyInsideExistingRegions) {
                throw new CommandException("You may only claim regions inside " +
                        "existing regions that you or your group own.");
            }
        }

        if (wcfg.maxClaimVolume >= Integer.MAX_VALUE) {
            throw new CommandException("The maximum claim volume get in the configuration is higher than is supported. " +
                    "Currently, it must be " + Integer.MAX_VALUE+ " or smaller. Please contact a server administrator.");
        }

        // Check claim volume
        if (!permModel.mayClaimRegionsUnbounded()) {
            if (region instanceof ProtectedPolygonalRegion) {
                throw new CommandException("Polygons are currently not supported for /rg claim.");
            }

            if (region.volume() > wcfg.maxClaimVolume) {
                player.sendMessage(ChatColor.RED + "Этот регион слишком большой.");
                player.sendMessage(ChatColor.RED +
                        "Макс. размер: " + wcfg.maxClaimVolume + ", ваш размер: " + region.volume());
                return;
            }
        }

        region.getOwners().addPlayer(player.getName());

        RegionAdder task = new RegionAdder(plugin, manager, region);
        ListenableFuture<?> future = plugin.getExecutorService().submit(task);

        AsyncCommandHelper.wrap(future, plugin, player)
                .formatUsing(id)
                .registerWithSupervisor("Claiming the region '%s'...")
                .sendMessageAfterDelay("(Please wait... claiming '%s'...)")
                .thenRespondWith(
                        "Новый регион создан под названием '%s'.",
                        "Не удалось создать регион под названием '%s'");
    }

Код:
    @Command(aliases = {"define", "def", "d", "create"},
             usage = "<id> [<owner1> [<owner2> [<owners...>]]]",
             flags = "ng",
             desc = "Defines a region",
             min = 1)
    public void define(CommandContext args, CommandSender sender) throws CommandException {
        warnAboutSaveFailures(sender);
        Player player = plugin.checkPlayer(sender);

        // Check permissions
        if (!getPermissionModel(sender).mayDefine()) {
            throw new CommandPermissionsException();
        }

        String id = checkRegionId(args.getString(0), false);

        RegionManager manager = checkRegionManager(plugin, player.getWorld());

        checkRegionDoesNotExist(manager, id, true);

        ProtectedRegion region;

        if (args.hasFlag('g')) {
            region = new GlobalProtectedRegion(id);
        } else {
            region = checkRegionFromSelection(player, id);
            warnAboutDimensions(player, region);
            informNewUser(player, manager, region);
        }

        RegionAdder task = new RegionAdder(plugin, manager, region);
        task.addOwnersFromCommand(args, 2);
        ListenableFuture<?> future = plugin.getExecutorService().submit(task);

        AsyncCommandHelper.wrap(future, plugin, player)
                .formatUsing(id)
                .registerWithSupervisor("Adding the region '%s'...")
                .sendMessageAfterDelay("(Please wait... adding '%s'...)")
                .thenRespondWith(
                        "A new region has been made named '%s'.",
                        "Failed to add the region '%s'");
    }
 
Настраивал авто шахту по гайдам из интернета и у меня возник вопрос: В чем отличия rg define от rg claim (команды плагина WorldGuard)
/rg claim - приват региона.
/rg define - приват региона на другом регионе. То-есть например pvp арена внутри спавна, спавн приватишь /rg claim а pvp через /rg define.
Удаче.)👍
 
Назад
Верх Низ