Помогите WorldGuard регион

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

SecDet

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
d3ever
Можете подкинуть код, каким образом можно проверить стоит-ли игрок в каком-то регионе или нет.
 
PHP:
public class Main extends JavaPlugin
{
    static String notregion;
    static String region;

    public void onEnable()
    {
        saveDefaultConfig();
        notregion = getConfig().getString("notregion").replace('&', '§');
        region = getConfig().getString("region").replace('&', '§');

        Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(),
                20, 20);
    }
}

PHP:
public class Runnable implements java.lang.Runnable
{

    @Override
    public void run()
    {
        for(Player p : Bukkit.getOnlinePlayers())
            Utils.sendAction(p, Main.region.replace("{REGION}", Utils.getRegion(p.getLocation())));
          
  
  
    }     
        
}


PHP:
public class Utils
{

    public static String getRegion(Location l)
    {
        WorldGuardPlugin wgp = WorldGuardPlugin.inst();
        RegionManager regionManager = wgp.getRegionManager(l.getWorld());
        ApplicableRegionSet set = regionManager.getApplicableRegions(l);

        for (ProtectedRegion pr : set.getRegions())
            return pr.getId();

        return Main.notregion;
    }

    public static void sendAction(Player p, String msg)
    {
        PacketContainer chat = new PacketContainer(PacketType.Play.Server.CHAT);
        chat.getChatComponents().write(0,
                WrappedChatComponent.fromJson("{\"text\": \"" + msg + "\"}"));
        chat.getBytes().write(0, (byte) 2);
        try
        {
            ProtocolLibrary.getProtocolManager().sendServerPacket(p, chat);
        }
        catch (InvocationTargetException e)
        {
            throw new IllegalStateException("Unable to send packet " + chat, e);
        }
    }
}

PHP:
#formats
region: '&e[&a{REGION}&e]'
notregion: '&4World'

В качестве API нужно импортировать в Build Path плагины WorldGuard и WorldEdit
 
Последнее редактирование:
PHP:
public class Main extends JavaPlugin
{
    static String notregion;
    static String region;

    public void onEnable()
    {
        saveDefaultConfig();
        notregion = getConfig().getString("notregion").replace('&', '§');
        region = getConfig().getString("region").replace('&', '§');

        Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable(),
                20, 20);
    }
}

PHP:
public class Runnable implements java.lang.Runnable
{

    @Override
    public void run()
    {
        for(Player p : Bukkit.getOnlinePlayers())
            Utils.sendAction(p, Main.region.replace("{REGION}", Utils.getRegion(p.getLocation())));
         
 
 
    }    
       
}


PHP:
public class Utils
{

    public static String getRegion(Location l)
    {
        WorldGuardPlugin wgp = WorldGuardPlugin.inst();
        RegionManager regionManager = wgp.getRegionManager(l.getWorld());
        ApplicableRegionSet set = regionManager.getApplicableRegions(l);

        for (ProtectedRegion pr : set.getRegions())
            return pr.getId();

        return Main.notregion;
    }

    public static void sendAction(Player p, String msg)
    {
        PacketContainer chat = new PacketContainer(PacketType.Play.Server.CHAT);
        chat.getChatComponents().write(0,
                WrappedChatComponent.fromJson("{\"text\": \"" + msg + "\"}"));
        chat.getBytes().write(0, (byte) 2);
        try
        {
            ProtocolLibrary.getProtocolManager().sendServerPacket(p, chat);
        }
        catch (InvocationTargetException e)
        {
            throw new IllegalStateException("Unable to send packet " + chat, e);
        }
    }
}

PHP:
#formats
region: '&e[&a{REGION}&e]'
notregion: '&4World'

В качестве API нужно импортировать в Build Path плагины WorldGuard и WorldEdit

Извините, мне нужно чисто используя WorldGuard получать регион игрока.
 
Извините, мне нужно чисто используя WorldGuard получать регион игрока.
Прямого способа получить регион игроков не существует.Только через доп плагин! Это самый простой вариант. Пользуйся! Подано Все на блюдечке с г каёмочкой🙂
 
upload_2017-9-3_12-27-52-png.47909

добавь в Build Path плагины WorldGuard и WorldEdit и ещё на всякий Vault и Protocollib
Создай все 3 класса в проекте и не забудь config.yml создать! Главный класс у тебя будет Main! Укажи его в plugin.yml Сделай все импорты там где красным подчеркнуто! А самое главное не забудь добавить вBuild Path основное bukkit ядро или Spigot не знаю какое у тебя там используется!
 
Последнее редактирование:
Дело в том, что я всё добавляю и не первый раз пишу плагины.
 
Назад
Верх