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

  • Автор темы Автор темы _beat_
  • Дата начала Дата начала

_beat_

Активный участник
Пользователь
Баллы
46
Я тутачки, и опять с новой "идеей", или типа того.
В общем я так понял в world guard нет флагов и прочей еруны, чтобы можно было поставить право, которое бы выдавалось при входе в регион, и забиралось при выходе.
Наверное надо доп. плагин писать, да? Я кеп.
Хотелось бы бесплатно. :3 Пажалуста (99
 
Последнее редактирование:
Сегодня не смогу, ибо целый день писал приватный плагин...
 
В общем я так понял в world guard нет флагов и прочей еруны, чтобы можно было поставить право, которое бы выдавалось при входе в регион, и забиралось при выходе.
У тебя пекс или через vault сделать?
https://www.dropbox.com/s/2w7mzm7e586950j/WorldGuardJoinPerm.jar?dl=0
Исходник:
Java:
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);
                    }
                }
            }
        }
    }
}

плагин не тестировал, но поидее должен робить.
 
У тебя пекс или через vault сделать?
https://www.dropbox.com/s/2w7mzm7e586950j/WorldGuardJoinPerm.jar?dl=0
Исходник:
Java:
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);
                    }
                }
            }
        }
    }
}

плагин не тестировал, но поидее должен робить.
Сэнкью, сейчас протестирую.
И да, у меня и vault и пекс.
плагин не тестировал, но поидее должен робить.
Что-то на 1.9.4 не работает. И вообще как он должен работать? xD
Просто в pl не отображается.
 
)0)0
У тебя пекс или через vault сделать?
https://www.dropbox.com/s/2w7mzm7e586950j/WorldGuardJoinPerm.jar?dl=0
Исходник:
Java:
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);
                    }
                }
            }
        }
    }
}

плагин не тестировал, но поидее должен робить.
Как пользоваться?
 
Назад
Верх