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;
}