mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-12 05:16:55 +00:00
Compare commits
6 Commits
api-changes
...
v1.10.1
| Author | SHA1 | Date | |
|---|---|---|---|
| 7f1da79444 | |||
| 244ceb4dcc | |||
| ac1cafe0d9 | |||
| b3ce1913fd | |||
| 9a707b34a3 | |||
| d52648b4ff |
@@ -6,7 +6,7 @@
|
||||
|
||||
<groupId>me.youhavetrouble</groupId>
|
||||
<artifactId>PreventStabby</artifactId>
|
||||
<version>1.8.1</version>
|
||||
<version>1.10.1</version>
|
||||
<packaging>jar</packaging>
|
||||
|
||||
<name>PreventStabby</name>
|
||||
|
||||
@@ -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<String> 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");
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
+10
-2
@@ -8,6 +8,7 @@ import org.bukkit.entity.Tameable;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityTargetEvent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@@ -17,7 +18,7 @@ public class PetTargettingPlayerListener implements Listener {
|
||||
* Stops pets with owners targetting players with pvp off
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPetTargetPlayer(org.bukkit.event.entity.EntityTargetEvent event) {
|
||||
public void onPetTargetPlayer(EntityTargetEvent event) {
|
||||
if (!(event.getEntity() instanceof Tameable)) return;
|
||||
Tameable entity = (Tameable) event.getEntity();
|
||||
if (!(entity.getOwner() instanceof Player)) return;
|
||||
@@ -26,8 +27,15 @@ public class PetTargettingPlayerListener implements Listener {
|
||||
UUID damager = entity.getOwner().getUniqueId();
|
||||
UUID victim = event.getTarget().getUniqueId();
|
||||
|
||||
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
||||
boolean tempting = event.getReason().equals(EntityTargetEvent.TargetReason.TEMPT);
|
||||
|
||||
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, !tempting, false)) {
|
||||
if (tempting) {
|
||||
event.setCancelled(true);
|
||||
return;
|
||||
}
|
||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||
}
|
||||
else
|
||||
event.setCancelled(true);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user