Хостинг серверов Minecraft playvds.com
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите WorldGuard - проверить является ли игрок владельцем региона.

Тема в разделе "Разработка плагинов для новичков", создана пользователем Troll_C, 15 май 2018 в 15:58.

  1. Автор темы
    Troll_C

    Troll_C Новичок

    Баллы:
    16
    Имя в Minecraft:
    Troll_C
    Здравствуйте, нужна помощь.

    Нужно проверить через код java является ли игрок владельцем региона. Скажите пожалуйста метод. Заранее спасибо.
     
  2. Mr Hosting
  3. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Код:
    protected static WorldGuardPlugin wg = (WorldGuardPlugin) Bukkit.getPluginManager().getPlugin("WorldGuard");
    Код:
        public static void test(Player player, World world) throws CommandException {
            RegionManager manager = checkRegionManager(wg, world);
            Map<String, ProtectedRegion> regions = manager.getRegions();
            for (String id : regions.keySet()) {
                ProtectedRegion region = regions.get(id);
                DefaultDomain owners = region.getOwners();
                System.out.println("uuid " + owners.contains(player.getUniqueId()));
                System.out.println("name " + owners.contains(player.getName()));
            }
        }
    Код:
        protected static RegionManager checkRegionManager(WorldGuardPlugin plugin, World world) throws CommandException {
            if (!plugin.getGlobalStateManager().get(world).useRegions) {
                throw new CommandException("Region support is disabled in the target world. "
                        + "It can be enabled per-world in WorldGuard's configuration files. "
                        + "However, you may need to restart your server afterwards.");
            }
    
            RegionManager manager = plugin.getRegionContainer().get(world);
            if (manager == null) {
                throw new CommandException("Region data failed to load for this world. "
                        + "Please ask a server administrator to read the logs to identify the reason.");
            }
            return manager;
        }
     
  4. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
  5. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Так же есть вайпер регионов через fawe.

    Код:
    package Example;
    
    import org.bukkit.Bukkit;
    
    import com.boydti.fawe.FaweAPI;
    import com.boydti.fawe.util.EditSessionBuilder;
    import com.sk89q.worldedit.BlockVector;
    import com.sk89q.worldedit.EditSession;
    import com.sk89q.worldedit.regions.CuboidRegion;
    import com.sk89q.worldedit.regions.Region;
    import com.sk89q.worldedit.world.World;
    import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
    import com.sk89q.worldguard.protection.managers.RegionManager;
    import com.sk89q.worldguard.protection.regions.ProtectedRegion;
    
    public class fawe {
        public static void regen(org.bukkit.World bworld, String id, boolean isRemove) {
            WorldGuardPlugin wg = WorldGuardPlugin.inst();
            RegionManager manager = wg.getRegionContainer().get(bworld);
            ProtectedRegion protectedregion = manager.getRegion(id);
            BlockVector min = protectedregion.getMinimumPoint();
            BlockVector max = protectedregion.getMaximumPoint();
            World world = FaweAPI.getWorld(bworld.getName());
            EditSession editSession = new EditSessionBuilder(world).fastmode(true).build();
            Region region = new CuboidRegion(world, min, max);
            editSession.regenerate(region);
            if (isRemove) {
                manager.removeRegion(id);
            }
            Bukkit.getLogger().info("Region " + id + " regenerated.");
        }
    }
     
  6. Автор темы
    Troll_C

    Troll_C Новичок

    Баллы:
    16
    Имя в Minecraft:
    Troll_C
    Спасибо, но пишет ошибку в Eclipse: Syntax error, insert ";" to complete LocalVariableDeclarationStatement
    Не знаю, как решить.
     
  7. Nikolai_Faint

    Nikolai_Faint Активный участник Пользователь

    Баллы:
    46
    Наверное добавить
    PHP:
    ;
    В строку где это необходимо.
    p.s Возможно даже где-то надо (Все делай на свой страх и риск ! Удалить этот символ может только бог).
    PHP:
    {
    или
    }
     
  8. iD3LSY

    iD3LSY Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    opy
    Давай, скинь код, помогу точку с запятой поставить..)
     
  9. tdk

    tdk Ньюби

    Баллы:
    1
    Имя в Minecraft:
    thedenchik
    =)
     

Поделиться этой страницей