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

СливПлатные

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

  • Magus333
  • Reb2y
  • stereo
  • crash253egf
  • sabson_559
  • oBanana
  • vitalikator1234
  • thang980
  • kerorozsl..
  • comingflex
  • Kai_Kaizer
  • Estor
  • Aleksei2012
  • clagsm
  • wuring
  • quad
  • mcyogurt
  • Dimatopre
  • Dye_ee

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

Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
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
 
Решение
Статус
Вы не можете ничего здесь написать, потому что тема была закрыта.
ВерхНиз