diff --git a/pom.xml b/pom.xml index 543472f..dc2efb6 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ me.youhavetrouble PreventStabby - 1.9.0 + 1.10.0 jar PreventStabby diff --git a/src/main/java/me/youhavetrouble/preventstabby/config/ConfigCache.java b/src/main/java/me/youhavetrouble/preventstabby/config/ConfigCache.java index 04b8fc4..ee335db 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/config/ConfigCache.java +++ b/src/main/java/me/youhavetrouble/preventstabby/config/ConfigCache.java @@ -21,7 +21,8 @@ public class ConfigCache { cannot_attack_pets_victim, cannot_attack_pets_attacker, no_permission, no_such_command, pvp_enabled_other, pvp_disabled_other, punish_for_combat_logout_message, entering_combat, leaving_combat, cant_do_that_during_combat, cannot_attack_mounts_attacker, cannot_attack_mounts_victim, force_pvp_on, - force_pvp_off, force_pvp_none, placeholder_combat_time, placeholder_not_in_combat, cannot_attack_pvp_force_off; + force_pvp_off, force_pvp_none, placeholder_combat_time, placeholder_not_in_combat, cannot_attack_pvp_force_off, + placeholder_pvp_forced_true, placeholder_pvp_forced_false, placeholder_pvp_forced_none; @Getter private final double lava_and_fire_stopper_radius; @Getter private final long cache_time, combat_time, login_protection_time, teleport_protection_time; @Getter private final Set combatBlockedCommands = new HashSet<>(); @@ -91,6 +92,9 @@ public class ConfigCache { addDefault("messages.force_pvp_none", "PvP state is not forced now"); addDefault("placeholder.placeholder_combat_time", "Combat time: %time%"); addDefault("placeholder.not_in_combat", "Not in combat"); + addDefault("placeholder.pvp_forced_true", "PvP is forced on"); + addDefault("placeholder.pvp_forced_false", "PvP is forced off"); + addDefault("placeholder.pvp_forced_none", "PvP is not forced"); } }; @@ -152,6 +156,10 @@ public class ConfigCache { this.placeholder_combat_time = config.getString("placeholder.placeholder_combat_time", "Combat time: %time%"); this.placeholder_not_in_combat = config.getString("placeholder.not_in_combat", "Not in combat"); + + this.placeholder_pvp_forced_true = config.getString("placeholder.pvp_forced_true", "PvP is forced on"); + this.placeholder_pvp_forced_false = config.getString("placeholder.pvp_forced_false", "PvP is forced off"); + this.placeholder_pvp_forced_none = config.getString("placeholder.pvp_forced_none", "PvP is not forced"); } diff --git a/src/main/java/me/youhavetrouble/preventstabby/hooks/PlacoholderApiHook.java b/src/main/java/me/youhavetrouble/preventstabby/hooks/PlacoholderApiHook.java index c11c4db..38b1f5d 100644 --- a/src/main/java/me/youhavetrouble/preventstabby/hooks/PlacoholderApiHook.java +++ b/src/main/java/me/youhavetrouble/preventstabby/hooks/PlacoholderApiHook.java @@ -3,6 +3,7 @@ package me.youhavetrouble.preventstabby.hooks; import me.clip.placeholderapi.expansion.PlaceholderExpansion; import me.youhavetrouble.preventstabby.PreventStabby; import me.youhavetrouble.preventstabby.util.PluginMessages; +import net.kyori.adventure.text.minimessage.MiniMessage; import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer; import org.bukkit.OfflinePlayer; import org.jetbrains.annotations.NotNull; @@ -46,6 +47,15 @@ public class PlacoholderApiHook extends PlaceholderExpansion { case "in_combat": if (!player.isOnline()) return String.valueOf(false); return String.valueOf(plugin.getPlayerManager().getPlayer(player.getUniqueId()).isInCombat()); + case "pvp_forced": + switch (PreventStabby.getPlugin().getPlayerManager().getForcedPvpState()) { + case NONE: + return legacyComponentSerializer.serialize(PluginMessages.parseMessage(plugin.getConfigCache().getPlaceholder_pvp_forced_none())); + case ENABLED: + return legacyComponentSerializer.serialize(PluginMessages.parseMessage(plugin.getConfigCache().getPlaceholder_pvp_forced_true())); + case DISABLED: + return legacyComponentSerializer.serialize(PluginMessages.parseMessage(plugin.getConfigCache().getPlaceholder_pvp_forced_false())); + } default: return null; }