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

Выдача прав при входе в регион WorldGuard

Тема в разделе "Запросы на разработку плагинов", создана пользователем _beat_, 4 авг 2016.

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

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

    Баллы:
    46
    Я тутачки, и опять с новой "идеей", или типа того.
    В общем я так понял в world guard нет флагов и прочей еруны, чтобы можно было поставить право, которое бы выдавалось при входе в регион, и забиралось при выходе.
    Наверное надо доп. плагин писать, да? Я кеп.
    Хотелось бы бесплатно. :3 Пажалуста (99
     
    Последнее редактирование: 4 авг 2016
  2. Хостинг MineCraft
    <
  3. Автор темы
    _beat_

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

    Баллы:
    46
  4. Mr_RoboMan

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

    Баллы:
    123
    Еще не освободился от проекта(
     
  5. _MediaNik_

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

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Сегодня не смогу, ибо целый день писал приватный плагин...
     
  6. Автор темы
    _beat_

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

    Баллы:
    46
    Занятые какие. Как-будто вы программисты. Пф. Ваще.
     
  7. _MediaNik_

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

    Баллы:
    46
    Skype:
    Medianik5
    Имя в Minecraft:
    _MediaNik_
    Завтра специально для тебя 50 строк кода для этого плагина напишу:lol:
     
  8. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    У тебя пекс или через vault сделать?[DOUBLEPOST=1470413234,1470411488][/DOUBLEPOST]https://www.dropbox.com/s/2w7mzm7e586950j/WorldGuardJoinPerm.jar?dl=0
    Исходник:
    Код:
    package ru.leymooo.online;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    
    import net.milkbowl.vault.permission.Permission;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Location;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
    import com.sk89q.worldguard.protection.managers.RegionManager;
    import com.sk89q.worldguard.protection.regions.ProtectedRegion;
    
    public class online extends JavaPlugin implements Runnable
    {
        FileConfiguration c;
        Permission perms = getServer().getServicesManager().getRegistration(Permission.class).getProvider();
        HashMap<String, String> reg = new HashMap<String, String> ();
        public void onEnable() {
            this.saveDefaultConfig();
            c = this.getConfig();
            for (String a : c.getConfigurationSection("regions").getKeys(false)) {
                String pex = c.getString("regions."+a+".perm");
                reg.put(a, pex);
            }
            Bukkit.getScheduler().runTaskTimerAsynchronously(this, this, 20, 20);
        }
        private List<String> getRegionName(Location l) {
            List<String> names = new ArrayList<String>();
            RegionManager manager = WorldGuardPlugin.inst().getRegionManager(l.getWorld());
            for (ProtectedRegion region : manager.getApplicableRegions(l)) {
                names.add(region.getId());
            }
            return names;
        }
        @Override
        public void run() {
            for (String a : reg.keySet()) {
                String pex = reg.get(a);
                for (Player p : Bukkit.getOnlinePlayers()) {
                    if (p.hasPermission(pex)) {
                        if (getRegionName(p.getLocation()).contains(a)) {
                            return;
                        } else {
                            perms.playerRemove(p, pex);
                        }
                    } else {
                        if (getRegionName(p.getLocation()).contains(a)) {
                            perms.playerAdd(p, pex);
                        }
                    }
                }
            }
        }
    }
    
    плагин не тестировал, но поидее должен робить.
     
  9. Автор темы
    _beat_

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

    Баллы:
    46
    Сэнкью, сейчас протестирую.
    И да, у меня и vault и пекс.[DOUBLEPOST=1470417136][/DOUBLEPOST]
    Что-то на 1.9.4 не работает. И вообще как он должен работать? xD
    Просто в pl не отображается.
     
  10. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Нет.
     
  11. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    перезалил, тестируй
     
  12. Автор темы
    _beat_

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

    Баллы:
    46
    )0)0[DOUBLEPOST=1470418362,1470417499][/DOUBLEPOST]
    Как пользоваться?
     
  13. slavik123123123

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

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    ну всмысле как? качаешь плагин, запускаешь, настраиваешь конфиг и перезапускаешь. изи вроде.
     
  14. Автор темы
    _beat_

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

    Баллы:
    46
    А, я думал какие-то команды есть.)))
     
  15. Dereku

    Dereku Старожил

    Баллы:
    173
    Skype:
    derek_unavailable
    Имя в Minecraft:
    _Dereku
    Губу то как распустил.
     
  16. Автор темы
    _beat_

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

    Баллы:
    46
    Ну конфигом даже удобнее.)))
     

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