Сборки серверов

СливПлатные

Новые сообщения

Сейчас онлайн

  • TheFriken
  • hywho
  • s1zet
  • Karan6778
  • mynnpng
  • Liltrigan
  • hatless
  • egorin
  • Clouse1
  • VOTERS
  • kirilltwice
  • artemnerodenko
  • kaksaakkasa
  • kneekick
  • hath19
  • Lazy_UT
  • KOTCAT122
  • sasasa
  • kolosiysss
  • SeaCore
  • sdfse3r2
  • chelikcs
  • comingflex
  • WoWKiller22
  • Blanche
  • Lonse123
  • NevileeV
  • fesfsef
  • kobats
  • akanage
  • arbuz.enjoyer
  • dahnk10
  • Yarik222
  • Light90
  • VALEIM_
  • shadowstich
  • oclipses
  • Dimas
  • Sashadragon
  • 121121312312313
  • vovant
  • TTtttt332
  • German_382
  • ReFaN4k

Помощь Есть ли плейсхолдер на флаги (вкл/выкл)

Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
Aezzakmi
Есть какое-то расширение для плагина WorldGuard или в самом WorldGuard который предоставляет плейсхолдер на показ статуса определённого флага в регионе, например %wg_<флаг>_<статус>% и допустим я вписал %wg_pvp_allow% в таком случае мне будет выдан ответ либо true либо false нужен примерно такой же плейсхолдер
 
Решение
Aezzakmi
Вопрос решён
Ответ: можно использовать плейсхолдеры "changeoutput"
%changeoutput_contains_input:{worldguard_region_flags}_matcher:pvp=DENY_ifmatch:true_else:false%
Этот плейсхолдер ищет в выводе плейсхолдера: %worldguard_region_flags% значение pvp=DENY
И выводит в зависимости есть он или нет
Если есть = true
Нет = false
GPT-4o
В самом WorldGuard нет встроенного плейсхолдера для отображения статуса флагов в формате, который вы описали. Однако вы можете использовать плагин PlaceholderAPI вместе с WorldGuard для создания пользовательских плейсхолдеров.

Вот пример того, как вы можете создать свой собственный плейсхолдер для отображения статуса флага:

1. Убедитесь, что у вас установлен плагин PlaceholderAPI.
2. Создайте новый плагин или используйте существующий, чтобы зарегистрировать свой плейсхолдер.

Пример кода для создания плейсхолдера:

Java:
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
import com.sk89q.worldguard.bukkit.WorldGuardPlugin;
import com.sk89q.worldguard.bukkit.util.RegionUtils;
import com.sk89q.worldguard.bukkit.util.FlagUtils;

public class MyPlaceholderExpansion extends PlaceholderExpansion {

    private final WorldGuardPlugin wgPlugin;

    public MyPlaceholderExpansion(JavaPlugin plugin, WorldGuardPlugin wgPlugin) {
        this.wgPlugin = wgPlugin;
    }

    @Override
    public String getIdentifier() {
        return "wg";
    }

    @Override
    public String getAuthor() {
        return "Ваше имя";
    }

    @Override
    public String getVersion() {
        return "1.0";
    }

    @Override
    public String onPlaceholderRequest(Player player, String identifier) {
        if (player == null) {
            return null;
        }

        if (identifier.startsWith("pvp_allow_")) {
            String regionName = identifier.split("_")[2];
            boolean pvpAllowed = FlagUtils.getFlagValue(wgPlugin.getGlobalRegionManager().get(player.getWorld()), "pvp", regionName);
            return pvpAllowed ? "true" : "false";
        }

        return null;
    }
}

После этого вы сможете использовать плейсхолдер в формате %wg_pvp_allow_<region_name>%, где <region_name> — это имя вашего региона.

Не забудьте зарегистрировать ваш плейсхолдер в методе onEnable вашего плагина.
 
Aezzakmi
Вопрос решён
Ответ: можно использовать плейсхолдеры "changeoutput"
%changeoutput_contains_input:{worldguard_region_flags}_matcher:pvp=DENY_ifmatch:true_else:false%
Этот плейсхолдер ищет в выводе плейсхолдера: %worldguard_region_flags% значение pvp=DENY
И выводит в зависимости есть он или нет
Если есть = true
Нет = false
 
Решение
Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
ВерхНиз