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

Помогите WorldGuard. Получение списка участников рг

Тема в разделе "Разработка плагинов для новичков", создана пользователем Babar, 17 окт 2018.

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

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

    Баллы:
    66
    Имя в Minecraft:
    Babar
    Всем привет! Пытаюсь получить список участников в регионе, но выдается пустой список.
    Подскажите, что не так:
    Код:
    WorldGuardPlugin wg = (WorldGuardPlugin) Bukkit.getPluginManager().getPlugin("WorldGuard");
    for (World w : Bukkit.getWorlds())
    {
      RegionManager m = wg.getRegionManager(w);
      for (ProtectedRegion rg : m.getRegions().values())
      {
         DefaultDomain pOwner = rg.getOwners(); // Список заполнен
         DefaultDomain pMember = rg.getMembers(); // Список пустой
      }
    }
    В регионе точно есть участники. При этом список владельцев заполнен.
    Версия 1.7.10
     
  2. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Получение участников / владельцев написано правильно в коде. А как ты проверяешь на самом деле - неизвестно. Возможно не тот регион или что то другое.
     
  3. Автор темы
    Babar

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

    Баллы:
    66
    Имя в Minecraft:
    Babar
    Проверяю простым кодом:
    Код:
    // Так работает
    if (pOwner.getPlayers().size() > 0)
       for(String pName : pOwner.getPlayers())
    
    // Так не работает
    if (pMember.getPlayers().size() > 0)
       for(String pName : pMember.getPlayers())
    
    Я прогнал по всем регионам на сервере и везде pMember.getPlayers().size() вернула 0.
     
  4. Dymeth

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

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Похоже на баг. Нужно меньше динозаврить...
     
  5. Автор темы
    Babar

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

    Баллы:
    66
    Имя в Minecraft:
    Babar
    Да, все сходится к тому, что это косяк WG
     
  6. Exception_Prototype

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

    Баллы:
    96
    Все сходится к тому, что ты сидишь на старой версии WG.
     
  7. Автор темы
    Babar

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

    Баллы:
    66
    Имя в Minecraft:
    Babar
    Версия 6.1.1. Свежее для 1.7.10 не нашел
     
  8. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Обновись до 1.13.1 :)
     
  9. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Попробуй так:
    Код:
    for (UUID uuid : pMember.getUniqueIds()) {
        // ...
    }
    В PlayerDomain хранятся игроки в двух режимах - uuid и чисто ники. Обычно это можно отличить в /rg info, когда UUID будут показываться как кешированные никнеймы, а чисто ники будут показываться малыми буквами в формате name:<nick>. Такого формата можно добавлять через флаг -n <nick> в команде. Потому тебе стоит проверять оба варианта, и в главную очередь по UUID.
     
  10. Автор темы
    Babar

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

    Баллы:
    66
    Имя в Minecraft:
    Babar
    Спасибо! Так работает :)
    Код:
    for (UUID uuid : pMember.getUniqueIds())
       OfflinePlayer p = Bukkit.getOfflinePlayer(uuid);
     
  11. Автор темы
    Babar

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

    Баллы:
    66
    Имя в Minecraft:
    Babar
    С удовольствием, но на 1.12.2 я только Спанч нашел, для сервера моды+плагины, а там WG нету :)
     
  12. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Ну ясное дело тогда, модов еще нет вроде на 1.13.
    Но WG на губку есть, 7.0.0, здесь:
    http://maven.sk89q.com/repo/com/sk89q/worldguard/worldguard-sponge/7.0.0-SNAPSHOT/
     
  13. Автор темы
    Babar

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

    Баллы:
    66
    Имя в Minecraft:
    Babar
  14. alexandrage

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

    Баллы:
    173
    +1. Крутой развод)
     
  15. LuckyZeeRo

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

    Баллы:
    96
    Имя в Minecraft:
    i0xHeX
    Черт, сам не посмотрел на размер файлов, лол
     

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