mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-12 05:16:55 +00:00
massive changes
This commit is contained in:
@@ -4,14 +4,14 @@
|
|||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>eu.endermite</groupId>
|
<groupId>me.youhavetrouble</groupId>
|
||||||
<artifactId>TogglePvP</artifactId>
|
<artifactId>PreventStabby</artifactId>
|
||||||
<version>1.2</version>
|
<version>1.2</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>TogglePvP</name>
|
<name>PreventStabby</name>
|
||||||
|
|
||||||
<description>PvP toggle plugin</description>
|
<description>Stop people from getting stabbed!</description>
|
||||||
<properties>
|
<properties>
|
||||||
<java.version>1.8</java.version>
|
<java.version>1.8</java.version>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
|
|||||||
@@ -1,21 +1,21 @@
|
|||||||
<h2>TogglePvP ⚔</h2>
|
<h2>PreventStabby ⚔</h2>
|
||||||
|
|
||||||
Use Issues section to report bugs or submit suggestions.
|
Use Issues section to report bugs or submit suggestions.
|
||||||
|
|
||||||
<h3>Commands</h3>
|
<h3>Commands</h3>
|
||||||
Permission: <code>togglepvp.command</code> (given by default to everyone) :
|
Permission: <code>preventstabby.command</code> (given by default to everyone) :
|
||||||
<ul>
|
<ul>
|
||||||
<li>/pvp help- displays help message</li>
|
<li>/pvp help- displays help message</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
Permission: <code>togglepvp.command.toggle</code> (given by default to everyone) :
|
Permission: <code>preventstabby.command.toggle</code> (given by default to everyone) :
|
||||||
<ul>
|
<ul>
|
||||||
<li>/pvp toggle - toggles PvP</li>
|
<li>/pvp toggle - toggles PvP</li>
|
||||||
<li>/pvp on - enables PvP (aliases: enable)</li>
|
<li>/pvp on - enables PvP (aliases: enable)</li>
|
||||||
<li>/pvp off - disables PvP (aliases: disable)</li>
|
<li>/pvp off - disables PvP (aliases: disable)</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
Permission: <code>togglepvp.command.toggle.others</code> (given by default to ops) :
|
Permission: <code>preventstabby.command.toggle.others</code> (given by default to ops) :
|
||||||
<ul>
|
<ul>
|
||||||
<li>/pvp toggle [player] - toggles other player's PvP</li>
|
<li>/pvp toggle [player] - toggles other player's PvP</li>
|
||||||
<li>/pvp on [player] - enables other player's PvP (aliases: enable)</li>
|
<li>/pvp on [player] - enables other player's PvP (aliases: enable)</li>
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
package eu.endermite.togglepvp.commands;
|
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
|
||||||
|
|
||||||
public class ReloadCommand {
|
|
||||||
|
|
||||||
public static void reload(CommandSender sender) {
|
|
||||||
|
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
|
|
||||||
if (!sender.hasPermission("togglepvp.command.reload")) {
|
|
||||||
String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
|
|
||||||
sender.sendMessage(message);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
TogglePvp.getPlugin().reloadPluginConfig(sender);
|
|
||||||
});
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
-68
@@ -1,68 +0,0 @@
|
|||||||
package eu.endermite.togglepvp.listeners.player;
|
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
|
||||||
import org.bukkit.entity.Entity;
|
|
||||||
import org.bukkit.entity.LivingEntity;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
import org.bukkit.potion.PotionEffect;
|
|
||||||
import org.bukkit.potion.PotionEffectType;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
|
||||||
public class PlayerHitBySplashPotionListener implements Listener {
|
|
||||||
|
|
||||||
private final List<PotionEffectType> harmfulPotions = new ArrayList<>();
|
|
||||||
|
|
||||||
public PlayerHitBySplashPotionListener() {
|
|
||||||
harmfulPotions.add(PotionEffectType.BLINDNESS);
|
|
||||||
harmfulPotions.add(PotionEffectType.CONFUSION);
|
|
||||||
harmfulPotions.add(PotionEffectType.HARM);
|
|
||||||
harmfulPotions.add(PotionEffectType.HUNGER);
|
|
||||||
harmfulPotions.add(PotionEffectType.POISON);
|
|
||||||
harmfulPotions.add(PotionEffectType.SLOW_DIGGING);
|
|
||||||
harmfulPotions.add(PotionEffectType.WEAKNESS);
|
|
||||||
harmfulPotions.add(PotionEffectType.SLOW);
|
|
||||||
harmfulPotions.add(PotionEffectType.WITHER);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If thrown potion is applies negative effects and it's thrown by a player it will ahve no effect on player with pvp off
|
|
||||||
*/
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
|
||||||
public void onPlayerHitBySplashPotion(org.bukkit.event.entity.PotionSplashEvent event) {
|
|
||||||
|
|
||||||
if (!(event.getEntity().getShooter() instanceof Player))
|
|
||||||
return;
|
|
||||||
|
|
||||||
boolean harmful = false;
|
|
||||||
|
|
||||||
for (PotionEffect effect : event.getPotion().getEffects()) {
|
|
||||||
if (harmfulPotions.contains(effect.getType())) {
|
|
||||||
harmful = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!harmful)
|
|
||||||
return;
|
|
||||||
for (Entity entity : event.getAffectedEntities()) {
|
|
||||||
if (entity instanceof Player) {
|
|
||||||
UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
|
|
||||||
UUID victim = entity.getUniqueId();
|
|
||||||
if (damager == victim)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
|
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
|
||||||
} else {
|
|
||||||
event.setIntensity((LivingEntity) entity, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
package eu.endermite.togglepvp.listeners.player;
|
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
|
||||||
import eu.endermite.togglepvp.players.PlayerData;
|
|
||||||
import eu.endermite.togglepvp.players.SmartCache;
|
|
||||||
import eu.endermite.togglepvp.util.PluginMessages;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
|
||||||
public class PlayerJoinAndLeaveListener implements Listener {
|
|
||||||
/**
|
|
||||||
* This event is here to get players saved options on join
|
|
||||||
*/
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
|
||||||
public void onPlayerJoin(org.bukkit.event.player.PlayerJoinEvent event) {
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
UUID uuid = player.getUniqueId();
|
|
||||||
|
|
||||||
PlayerData playerData = TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
|
|
||||||
long time = Instant.now().getEpochSecond();
|
|
||||||
if (playerData == null) {
|
|
||||||
TogglePvp.getPlugin().getPlayerManager().addPlayer(uuid, new PlayerData(false));
|
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
|
|
||||||
PlayerData data = TogglePvp.getPlugin().getSqLite().getPlayerInfo(uuid);
|
|
||||||
TogglePvp.getPlugin().getPlayerManager().addPlayer(uuid, data);
|
|
||||||
data.setLoginTimestamp(time);
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
playerData.refreshCachetime();
|
|
||||||
playerData.setLoginTimestamp(time);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* This event is here to save player's data to database
|
|
||||||
* Also punishes players who log out during combat
|
|
||||||
*/
|
|
||||||
@EventHandler
|
|
||||||
public void onPlayerLeave(org.bukkit.event.player.PlayerQuitEvent event) {
|
|
||||||
Player player = event.getPlayer();
|
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> TogglePvp.getPlugin().getSqLite().updatePlayerInfo(player.getUniqueId(), TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId())));
|
|
||||||
|
|
||||||
if (!TogglePvp.getPlugin().getConfigCache().isPunish_for_combat_logout())
|
|
||||||
return;
|
|
||||||
|
|
||||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
|
||||||
PlayerData playerData = smartCache.getPlayerData(player.getUniqueId());
|
|
||||||
|
|
||||||
if (!playerData.isInCombat())
|
|
||||||
return;
|
|
||||||
|
|
||||||
player.setHealth(0);
|
|
||||||
if (TogglePvp.getPlugin().getConfigCache().isPunish_for_combat_logout_announce())
|
|
||||||
PluginMessages.broadcastMessage(player, TogglePvp.getPlugin().getConfigCache().getPunish_for_combat_logout_message());
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
package eu.endermite.togglepvp.listeners.toggles;
|
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
|
||||||
import eu.endermite.togglepvp.players.PlayerManager;
|
|
||||||
import eu.endermite.togglepvp.util.PluginMessages;
|
|
||||||
import org.bukkit.event.EventHandler;
|
|
||||||
import org.bukkit.event.EventPriority;
|
|
||||||
import org.bukkit.event.Listener;
|
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
|
||||||
public class CombatCommandListener implements Listener {
|
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
|
||||||
public void onPlayerCommandInCombat(org.bukkit.event.player.PlayerCommandPreprocessEvent event) {
|
|
||||||
|
|
||||||
if (!TogglePvp.getPlugin().getConfigCache().isBlock_commands_in_combat())
|
|
||||||
return;
|
|
||||||
|
|
||||||
PlayerManager playerManager = TogglePvp.getPlugin().getPlayerManager();
|
|
||||||
|
|
||||||
if (!playerManager.getPlayer(event.getPlayer().getUniqueId()).isInCombat())
|
|
||||||
return;
|
|
||||||
|
|
||||||
String command = event.getMessage().replaceFirst("/", "");
|
|
||||||
|
|
||||||
if (!TogglePvp.getPlugin().getConfigCache().getCombatBlockedCommands().contains(command))
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (event.getPlayer().hasPermission("toglepvp.combatcommandblock.bypass"))
|
|
||||||
return;
|
|
||||||
|
|
||||||
event.setCancelled(true);
|
|
||||||
PluginMessages.sendMessage(event.getPlayer(), TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat());
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
package eu.endermite.togglepvp.util;
|
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
|
||||||
import eu.endermite.togglepvp.api.event.PlayerEnterCombatEvent;
|
|
||||||
import org.bukkit.Bukkit;
|
|
||||||
import org.bukkit.entity.Player;
|
|
||||||
import java.time.Instant;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
public class CombatTimer {
|
|
||||||
|
|
||||||
public static void refreshPlayersCombatTime(UUID uuid) {
|
|
||||||
try {
|
|
||||||
long now = Instant.now().getEpochSecond();
|
|
||||||
long combattime = TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).getCombattime();
|
|
||||||
|
|
||||||
Player player = Bukkit.getPlayer(uuid);
|
|
||||||
PlayerEnterCombatEvent playerEnterCombatEvent = new PlayerEnterCombatEvent(player);
|
|
||||||
Bukkit.getScheduler().runTask(TogglePvp.getPlugin(), () -> {
|
|
||||||
Bukkit.getPluginManager().callEvent(playerEnterCombatEvent);
|
|
||||||
if (playerEnterCombatEvent.isCancelled())
|
|
||||||
return;
|
|
||||||
TogglePvp.getPlugin().getPlayerManager().refreshPlayersCombatTime(uuid);
|
|
||||||
|
|
||||||
if (combattime <= now) {
|
|
||||||
PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getEntering_combat());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
} catch (Exception ignored) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void refreshPlayersCombatTime(UUID attacker_uuid, UUID victim_uuid) {
|
|
||||||
refreshPlayersCombatTime(attacker_uuid);
|
|
||||||
refreshPlayersCombatTime(victim_uuid);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static boolean isInCombat(UUID uuid) {
|
|
||||||
try {
|
|
||||||
return TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid).getCombattime() >= Instant.now().getEpochSecond();
|
|
||||||
} catch (Exception e) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
+15
-13
@@ -1,12 +1,13 @@
|
|||||||
package eu.endermite.togglepvp;
|
package me.youhavetrouble.preventstabby;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.commands.MainCommand;
|
import me.youhavetrouble.preventstabby.commands.MainCommand;
|
||||||
import eu.endermite.togglepvp.config.ConfigCache;
|
import me.youhavetrouble.preventstabby.config.ConfigCache;
|
||||||
import eu.endermite.togglepvp.players.PlayerManager;
|
import me.youhavetrouble.preventstabby.players.PlayerManager;
|
||||||
import eu.endermite.togglepvp.players.SmartCache;
|
import me.youhavetrouble.preventstabby.players.SmartCache;
|
||||||
import eu.endermite.togglepvp.util.Listener;
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import eu.endermite.togglepvp.util.DatabaseSQLite;
|
import me.youhavetrouble.preventstabby.util.DatabaseSQLite;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
|
import me.youhavetrouble.preventstabby.util.Util;
|
||||||
import org.bstats.bukkit.Metrics;
|
import org.bstats.bukkit.Metrics;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.command.PluginCommand;
|
import org.bukkit.command.PluginCommand;
|
||||||
@@ -16,9 +17,9 @@ import java.io.File;
|
|||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
public final class TogglePvp extends JavaPlugin {
|
public final class PreventStabby extends JavaPlugin {
|
||||||
|
|
||||||
@Getter private static TogglePvp plugin;
|
@Getter private static PreventStabby plugin;
|
||||||
private ConfigCache configCache;
|
private ConfigCache configCache;
|
||||||
protected PlayerManager playerManager;
|
protected PlayerManager playerManager;
|
||||||
protected DatabaseSQLite sqLite;
|
protected DatabaseSQLite sqLite;
|
||||||
@@ -27,9 +28,10 @@ public final class TogglePvp extends JavaPlugin {
|
|||||||
@Override
|
@Override
|
||||||
public void onEnable() {
|
public void onEnable() {
|
||||||
plugin = this;
|
plugin = this;
|
||||||
|
Util.initData();
|
||||||
reloadPluginConfig();
|
reloadPluginConfig();
|
||||||
File dbFile = new File("plugins/TogglePvP");
|
File dbFile = new File("plugins/PreventStabby");
|
||||||
sqLite = new DatabaseSQLite("jdbc:sqlite:plugins/TogglePvP/TogglePvP.db", dbFile);
|
sqLite = new DatabaseSQLite("jdbc:sqlite:plugins/PreventStabby/TogglePvP.db", dbFile);
|
||||||
sqLite.createDatabaseFile();
|
sqLite.createDatabaseFile();
|
||||||
if (!sqLite.testConnection()) {
|
if (!sqLite.testConnection()) {
|
||||||
getLogger().severe("Error with accessing database. Check if server has write rights.");
|
getLogger().severe("Error with accessing database. Check if server has write rights.");
|
||||||
@@ -42,8 +44,8 @@ public final class TogglePvp extends JavaPlugin {
|
|||||||
smartCache.runSmartCache();
|
smartCache.runSmartCache();
|
||||||
|
|
||||||
// Register listeners
|
// Register listeners
|
||||||
Reflections reflections = new Reflections(new String[]{"eu.endermite.togglepvp"});
|
Reflections reflections = new Reflections(new String[]{"eu.endermite.preventstabby"});
|
||||||
Set<Class<?>> listenerClasses = reflections.getTypesAnnotatedWith(Listener.class);
|
Set<Class<?>> listenerClasses = reflections.getTypesAnnotatedWith(PreventStabbyListener.class);
|
||||||
listenerClasses.forEach((listener)-> {
|
listenerClasses.forEach((listener)-> {
|
||||||
try {
|
try {
|
||||||
getServer().getPluginManager().registerEvents((org.bukkit.event.Listener) listener.getConstructor().newInstance(), this);
|
getServer().getPluginManager().registerEvents((org.bukkit.event.Listener) listener.getConstructor().newInstance(), this);
|
||||||
+13
-13
@@ -1,7 +1,7 @@
|
|||||||
package eu.endermite.togglepvp.api;
|
package me.youhavetrouble.preventstabby.api;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@@ -13,7 +13,7 @@ public class TogglePvpAPI {
|
|||||||
* @param newState State to set
|
* @param newState State to set
|
||||||
*/
|
*/
|
||||||
public static void setPvpEnabled(Player player, boolean newState) {
|
public static void setPvpEnabled(Player player, boolean newState) {
|
||||||
TogglePvp.getPlugin().getSmartCache().setPlayerPvpState(player.getUniqueId(), newState);
|
PreventStabby.getPlugin().getSmartCache().setPlayerPvpState(player.getUniqueId(), newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -22,7 +22,7 @@ public class TogglePvpAPI {
|
|||||||
* @param newState State to set
|
* @param newState State to set
|
||||||
*/
|
*/
|
||||||
public static void setPvpEnabled(UUID uuid, boolean newState) {
|
public static void setPvpEnabled(UUID uuid, boolean newState) {
|
||||||
TogglePvp.getPlugin().getSmartCache().setPlayerPvpState(uuid, newState);
|
PreventStabby.getPlugin().getSmartCache().setPlayerPvpState(uuid, newState);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -31,7 +31,7 @@ public class TogglePvpAPI {
|
|||||||
* @return True if enabled, false if disabled
|
* @return True if enabled, false if disabled
|
||||||
*/
|
*/
|
||||||
public static boolean getPvpEnabled(UUID uuid) {
|
public static boolean getPvpEnabled(UUID uuid) {
|
||||||
return TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).isPvpEnabled();
|
return PreventStabby.getPlugin().getSmartCache().getPlayerData(uuid).isPvpEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -40,7 +40,7 @@ public class TogglePvpAPI {
|
|||||||
* @return True if enabled, false if disabled
|
* @return True if enabled, false if disabled
|
||||||
*/
|
*/
|
||||||
public static boolean getPvpEnabled(Player player) {
|
public static boolean getPvpEnabled(Player player) {
|
||||||
return TogglePvp.getPlugin().getSmartCache().getPlayerData(player.getUniqueId()).isPvpEnabled();
|
return PreventStabby.getPlugin().getSmartCache().getPlayerData(player.getUniqueId()).isPvpEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -51,7 +51,7 @@ public class TogglePvpAPI {
|
|||||||
* @return True if victim can be attacked by attacker, false if not
|
* @return True if victim can be attacked by attacker, false if not
|
||||||
*/
|
*/
|
||||||
public static boolean canDamage(UUID attackerUuid, UUID victimUuid, boolean sendDenyMessage) {
|
public static boolean canDamage(UUID attackerUuid, UUID victimUuid, boolean sendDenyMessage) {
|
||||||
return TogglePvp.getPlugin().getPlayerManager().canDamage(attackerUuid, victimUuid, sendDenyMessage);
|
return PreventStabby.getPlugin().getPlayerManager().canDamage(attackerUuid, victimUuid, sendDenyMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -62,7 +62,7 @@ public class TogglePvpAPI {
|
|||||||
* @return True if victim can be attacked by attacker, false if not
|
* @return True if victim can be attacked by attacker, false if not
|
||||||
*/
|
*/
|
||||||
public static boolean canDamage(Player attacker, Player victim, boolean sendDenyMessage) {
|
public static boolean canDamage(Player attacker, Player victim, boolean sendDenyMessage) {
|
||||||
return TogglePvp.getPlugin().getPlayerManager().canDamage(attacker.getUniqueId(), victim.getUniqueId(), sendDenyMessage);
|
return PreventStabby.getPlugin().getPlayerManager().canDamage(attacker.getUniqueId(), victim.getUniqueId(), sendDenyMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -71,7 +71,7 @@ public class TogglePvpAPI {
|
|||||||
* @return True if player has login protection, false if not
|
* @return True if player has login protection, false if not
|
||||||
*/
|
*/
|
||||||
public static boolean hasLoginProtection(UUID uuid) {
|
public static boolean hasLoginProtection(UUID uuid) {
|
||||||
return TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(uuid);
|
return PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -80,7 +80,7 @@ public class TogglePvpAPI {
|
|||||||
* @return True if player has teleport protection, false if not
|
* @return True if player has teleport protection, false if not
|
||||||
*/
|
*/
|
||||||
public static boolean hasTeleportProtection(Player player) {
|
public static boolean hasTeleportProtection(Player player) {
|
||||||
return TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(player.getUniqueId());
|
return PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -89,7 +89,7 @@ public class TogglePvpAPI {
|
|||||||
* @return True if player has teleport protection, false if not
|
* @return True if player has teleport protection, false if not
|
||||||
*/
|
*/
|
||||||
public static boolean hasTeleportProtection(UUID uuid) {
|
public static boolean hasTeleportProtection(UUID uuid) {
|
||||||
return TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(uuid);
|
return PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(uuid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -98,7 +98,7 @@ public class TogglePvpAPI {
|
|||||||
* @return True if player has login protection, false if not
|
* @return True if player has login protection, false if not
|
||||||
*/
|
*/
|
||||||
public static boolean hasLoginProtection(Player player) {
|
public static boolean hasLoginProtection(Player player) {
|
||||||
return TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(player.getUniqueId());
|
return PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
+4
-4
@@ -1,7 +1,7 @@
|
|||||||
package eu.endermite.togglepvp.api.event;
|
package me.youhavetrouble.preventstabby.api.event;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.players.PlayerData;
|
import me.youhavetrouble.preventstabby.players.PlayerData;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
@@ -27,7 +27,7 @@ public class PlayerEnterCombatEvent extends Event implements Cancellable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public PlayerData getPlayerData() {
|
public PlayerData getPlayerData() {
|
||||||
return TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
|
return PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
+4
-4
@@ -1,7 +1,7 @@
|
|||||||
package eu.endermite.togglepvp.api.event;
|
package me.youhavetrouble.preventstabby.api.event;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.players.PlayerData;
|
import me.youhavetrouble.preventstabby.players.PlayerData;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.Cancellable;
|
import org.bukkit.event.Cancellable;
|
||||||
import org.bukkit.event.Event;
|
import org.bukkit.event.Event;
|
||||||
@@ -27,7 +27,7 @@ public class PlayerLeaveCombatEvent extends Event implements Cancellable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public PlayerData getPlayerData() {
|
public PlayerData getPlayerData() {
|
||||||
return TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
|
return PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.api.event;
|
||||||
|
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.Event;
|
||||||
|
import org.bukkit.event.HandlerList;
|
||||||
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* NOT IMPLEMENTED YET
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public class PlayerTogglePvpEvent extends Event {
|
||||||
|
|
||||||
|
private static final HandlerList HANDLERS = new HandlerList();
|
||||||
|
private final Player player;
|
||||||
|
private boolean newState, sendMessage;
|
||||||
|
|
||||||
|
public PlayerTogglePvpEvent(Player player, boolean newState, boolean sendMessage) {
|
||||||
|
this.player = player;
|
||||||
|
this.newState = newState;
|
||||||
|
this.sendMessage = sendMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Player getPlayer() {
|
||||||
|
return player;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean newState() {
|
||||||
|
return newState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNewState(boolean newState) {
|
||||||
|
this.newState = newState;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSendMessage() {
|
||||||
|
return sendMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setSendMessage(boolean sendMessage) {
|
||||||
|
this.sendMessage = sendMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
@Override
|
||||||
|
public HandlerList getHandlers() {
|
||||||
|
return HANDLERS;
|
||||||
|
}
|
||||||
|
}
|
||||||
+5
-5
@@ -1,7 +1,7 @@
|
|||||||
package eu.endermite.togglepvp.commands;
|
package me.youhavetrouble.preventstabby.commands;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.PluginMessages;
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@@ -10,13 +10,13 @@ import java.util.List;
|
|||||||
public class HelpCommand {
|
public class HelpCommand {
|
||||||
|
|
||||||
public static void help(CommandSender sender, String[] args) {
|
public static void help(CommandSender sender, String[] args) {
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
|
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||||
|
|
||||||
List<String> helpPage = new ArrayList<>();
|
List<String> helpPage = new ArrayList<>();
|
||||||
|
|
||||||
helpPage.add(PluginMessages.parseMessage("&b&m &bTogglePvP Help&b&m "));
|
helpPage.add(PluginMessages.parseMessage("&b&m &bTogglePvP Help&b&m "));
|
||||||
helpPage.add(PluginMessages.parseMessage("&9/pvp &b&lhelp &f- shows this message"));
|
helpPage.add(PluginMessages.parseMessage("&9/pvp &b&lhelp &f- shows this message"));
|
||||||
if (sender.hasPermission("togglepvp.command.toggle")) {
|
if (sender.hasPermission("preventstabby.command.toggle")) {
|
||||||
helpPage.add(PluginMessages.parseMessage("&9/pvp &b&l[on/off] &f- enables or disables PvP"));
|
helpPage.add(PluginMessages.parseMessage("&9/pvp &b&l[on/off] &f- enables or disables PvP"));
|
||||||
helpPage.add(PluginMessages.parseMessage("&9/pvp &b<oggle &f- toggles PvP status"));
|
helpPage.add(PluginMessages.parseMessage("&9/pvp &b<oggle &f- toggles PvP status"));
|
||||||
}
|
}
|
||||||
+14
-14
@@ -1,7 +1,7 @@
|
|||||||
package eu.endermite.togglepvp.commands;
|
package me.youhavetrouble.preventstabby.commands;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.PluginMessages;
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.command.Command;
|
import org.bukkit.command.Command;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -17,18 +17,18 @@ public class MainCommand implements TabExecutor {
|
|||||||
private final HashMap<String, String> subCommands = new HashMap<>();
|
private final HashMap<String, String> subCommands = new HashMap<>();
|
||||||
|
|
||||||
public MainCommand() {
|
public MainCommand() {
|
||||||
subCommands.put("help", "togglepvp.command");
|
subCommands.put("help", "preventstabby.command");
|
||||||
subCommands.put("toggle", "togglepvp.command.toggle");
|
subCommands.put("toggle", "preventstabby.command.toggle");
|
||||||
subCommands.put("on", "togglepvp.command.toggle");
|
subCommands.put("on", "preventstabby.command.toggle");
|
||||||
subCommands.put("enable", "togglepvp.command.toggle");
|
subCommands.put("enable", "preventstabby.command.toggle");
|
||||||
subCommands.put("off", "togglepvp.command.toggle");
|
subCommands.put("off", "preventstabby.command.toggle");
|
||||||
subCommands.put("disable", "togglepvp.command.toggle");
|
subCommands.put("disable", "preventstabby.command.toggle");
|
||||||
subCommands.put("reload", "togglepvp.command.reload");
|
subCommands.put("reload", "preventstabby.command.reload");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
public boolean onCommand(CommandSender sender, Command command, String label, String[] args) {
|
||||||
if (sender.hasPermission("togglepvp.command")) {
|
if (sender.hasPermission("preventstabby.command")) {
|
||||||
if (args.length >= 1) {
|
if (args.length >= 1) {
|
||||||
switch (args[0].toLowerCase()) {
|
switch (args[0].toLowerCase()) {
|
||||||
case "help":
|
case "help":
|
||||||
@@ -49,14 +49,14 @@ public class MainCommand implements TabExecutor {
|
|||||||
ReloadCommand.reload(sender);
|
ReloadCommand.reload(sender);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getNo_such_command()));
|
sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getNo_such_command()));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
HelpCommand.help(sender, args);
|
HelpCommand.help(sender, args);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getNo_permission()));
|
sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getNo_permission()));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@@ -71,7 +71,7 @@ public class MainCommand implements TabExecutor {
|
|||||||
commands.add(entry.getKey());
|
commands.add(entry.getKey());
|
||||||
}
|
}
|
||||||
return commands;
|
return commands;
|
||||||
} else if (args.length == 2 && sender.hasPermission("togglepvp.command.toggle")) {
|
} else if (args.length == 2 && sender.hasPermission("preventstabby.command.toggle")) {
|
||||||
switch (args[0].toLowerCase()) {
|
switch (args[0].toLowerCase()) {
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
+40
-40
@@ -1,8 +1,8 @@
|
|||||||
package eu.endermite.togglepvp.commands;
|
package me.youhavetrouble.preventstabby.commands;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
import eu.endermite.togglepvp.util.PluginMessages;
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
@@ -12,10 +12,10 @@ public class PvpToggleCommand {
|
|||||||
|
|
||||||
public static void toggle(CommandSender sender, String[] args) {
|
public static void toggle(CommandSender sender, String[] args) {
|
||||||
|
|
||||||
Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
|
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||||
|
|
||||||
if (!sender.hasPermission("togglepvp.command.toggle")) {
|
if (!sender.hasPermission("preventstabby.command.toggle")) {
|
||||||
String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
|
String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||||
sender.sendMessage(message);
|
sender.sendMessage(message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -25,25 +25,25 @@ public class PvpToggleCommand {
|
|||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
|
|
||||||
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
||||||
sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean currentState = TogglePvp.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
|
boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
|
||||||
|
|
||||||
String message = "";
|
String message = "";
|
||||||
if (currentState) {
|
if (currentState) {
|
||||||
message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_enabled());
|
message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
||||||
} else {
|
} else {
|
||||||
message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_disabled());
|
message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
||||||
}
|
}
|
||||||
player.sendMessage(message);
|
player.sendMessage(message);
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("Try /pvp toggle <player>");
|
sender.sendMessage("Try /pvp toggle <player>");
|
||||||
}
|
}
|
||||||
} else if (args.length == 2) {
|
} else if (args.length == 2) {
|
||||||
if (!sender.hasPermission("togglepvp.command.toggle.others")) {
|
if (!sender.hasPermission("preventstabby.command.toggle.others")) {
|
||||||
String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
|
String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||||
sender.sendMessage(message);
|
sender.sendMessage(message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -51,18 +51,18 @@ public class PvpToggleCommand {
|
|||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
||||||
sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Player player = Bukkit.getPlayer(args[1]);
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
boolean currentState = TogglePvp.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
|
boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
|
||||||
String message;
|
String message;
|
||||||
if (currentState) {
|
if (currentState) {
|
||||||
message = TogglePvp.getPlugin().getConfigCache().getPvp_enabled_other();
|
message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
|
||||||
} else {
|
} else {
|
||||||
message = TogglePvp.getPlugin().getConfigCache().getPvp_disabled_other();
|
message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other();
|
||||||
}
|
}
|
||||||
sender.sendMessage(PluginMessages.parsePlayerName(player, message));
|
sender.sendMessage(PluginMessages.parsePlayerName(player, message));
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ public class PvpToggleCommand {
|
|||||||
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
|
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (sender.hasPermission("togglepvp.command.toggle.others")) {
|
if (sender.hasPermission("preventstabby.command.toggle.others")) {
|
||||||
sender.sendMessage("Try /pvp toggle <player>");
|
sender.sendMessage("Try /pvp toggle <player>");
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("Try /pvp toggle");
|
sender.sendMessage("Try /pvp toggle");
|
||||||
@@ -80,8 +80,8 @@ public class PvpToggleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void enable(CommandSender sender, String[] args) {
|
public static void enable(CommandSender sender, String[] args) {
|
||||||
if (!sender.hasPermission("togglepvp.command.toggle")) {
|
if (!sender.hasPermission("preventstabby.command.toggle")) {
|
||||||
String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
|
String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||||
sender.sendMessage(message);
|
sender.sendMessage(message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -89,38 +89,38 @@ public class PvpToggleCommand {
|
|||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
||||||
sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
||||||
String message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_enabled());
|
String message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
|
||||||
player.sendMessage(message);
|
player.sendMessage(message);
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("Try /pvp enable <player>");
|
sender.sendMessage("Try /pvp enable <player>");
|
||||||
}
|
}
|
||||||
} else if (args.length == 2) {
|
} else if (args.length == 2) {
|
||||||
if (!sender.hasPermission("togglepvp.command.toggle.others")) {
|
if (!sender.hasPermission("preventstabby.command.toggle.others")) {
|
||||||
String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
|
String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||||
sender.sendMessage(message);
|
sender.sendMessage(message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
||||||
sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Player player = Bukkit.getPlayer(args[1]);
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
String message = TogglePvp.getPlugin().getConfigCache().getPvp_enabled_other();
|
String message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
|
||||||
sender.sendMessage(PluginMessages.parsePlayerName(player, message));
|
sender.sendMessage(PluginMessages.parsePlayerName(player, message));
|
||||||
TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
|
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (sender.hasPermission("togglepvp.command.toggle.others")) {
|
if (sender.hasPermission("preventstabby.command.toggle.others")) {
|
||||||
sender.sendMessage("Try /pvp enable <player>");
|
sender.sendMessage("Try /pvp enable <player>");
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("Try /pvp enable");
|
sender.sendMessage("Try /pvp enable");
|
||||||
@@ -129,8 +129,8 @@ public class PvpToggleCommand {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void disable(CommandSender sender, String[] args) {
|
public static void disable(CommandSender sender, String[] args) {
|
||||||
if (!sender.hasPermission("togglepvp.command.toggle")) {
|
if (!sender.hasPermission("preventstabby.command.toggle")) {
|
||||||
String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
|
String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||||
sender.sendMessage(message);
|
sender.sendMessage(message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -138,38 +138,38 @@ public class PvpToggleCommand {
|
|||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
||||||
sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false);
|
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false);
|
||||||
String message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_disabled());
|
String message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
|
||||||
player.sendMessage(message);
|
player.sendMessage(message);
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("Try /pvp disable <player>");
|
sender.sendMessage("Try /pvp disable <player>");
|
||||||
}
|
}
|
||||||
} else if (args.length == 2) {
|
} else if (args.length == 2) {
|
||||||
if (!sender.hasPermission("togglepvp.command.toggle.others")) {
|
if (!sender.hasPermission("preventstabby.command.toggle.others")) {
|
||||||
String message = TogglePvp.getPlugin().getConfigCache().getNo_permission();
|
String message = PreventStabby.getPlugin().getConfigCache().getNo_permission();
|
||||||
sender.sendMessage(message);
|
sender.sendMessage(message);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (sender instanceof Player) {
|
if (sender instanceof Player) {
|
||||||
Player player = (Player) sender;
|
Player player = (Player) sender;
|
||||||
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
if (CombatTimer.isInCombat(player.getUniqueId())) {
|
||||||
sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat()));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
Player player = Bukkit.getPlayer(args[1]);
|
Player player = Bukkit.getPlayer(args[1]);
|
||||||
String message = TogglePvp.getPlugin().getConfigCache().getPvp_disabled_other();
|
String message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other();
|
||||||
sender.sendMessage(PluginMessages.parsePlayerName(player, message));
|
sender.sendMessage(PluginMessages.parsePlayerName(player, message));
|
||||||
TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
|
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (sender.hasPermission("togglepvp.command.toggle.others")) {
|
if (sender.hasPermission("preventstabby.command.toggle.others")) {
|
||||||
sender.sendMessage("Try /pvp disable <player>");
|
sender.sendMessage("Try /pvp disable <player>");
|
||||||
} else {
|
} else {
|
||||||
sender.sendMessage("Try /pvp disable");
|
sender.sendMessage("Try /pvp disable");
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.commands;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
|
import org.bukkit.command.CommandSender;
|
||||||
|
|
||||||
|
public class ReloadCommand {
|
||||||
|
|
||||||
|
public static void reload(CommandSender sender) {
|
||||||
|
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||||
|
if (!sender.hasPermission("preventstabby.command.reload")) {
|
||||||
|
String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||||
|
sender.sendMessage(message);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
PreventStabby.getPlugin().reloadPluginConfig(sender);
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+8
-4
@@ -1,6 +1,6 @@
|
|||||||
package eu.endermite.togglepvp.config;
|
package me.youhavetrouble.preventstabby.config;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import io.github.thatsmusic99.configurationmaster.CMFile;
|
import io.github.thatsmusic99.configurationmaster.CMFile;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.bukkit.configuration.file.FileConfiguration;
|
import org.bukkit.configuration.file.FileConfiguration;
|
||||||
@@ -12,7 +12,7 @@ import java.util.Set;
|
|||||||
|
|
||||||
public class ConfigCache {
|
public class ConfigCache {
|
||||||
|
|
||||||
private final TogglePvp plugin = TogglePvp.getPlugin();
|
private final PreventStabby plugin = PreventStabby.getPlugin();
|
||||||
|
|
||||||
@Getter private final boolean pvp_enabled_by_default, lava_and_fire_stopper_enabled, channeling_enchant_disabled,
|
@Getter private final boolean pvp_enabled_by_default, lava_and_fire_stopper_enabled, channeling_enchant_disabled,
|
||||||
punish_for_combat_logout, punish_for_combat_logout_announce, only_owner_can_interact_with_pet,
|
punish_for_combat_logout, punish_for_combat_logout_announce, only_owner_can_interact_with_pet,
|
||||||
@@ -20,7 +20,7 @@ public class ConfigCache {
|
|||||||
@Getter private final String pvp_enabled, pvp_disabled, cannot_attack_victim, cannot_attack_attacker,
|
@Getter private final String pvp_enabled, pvp_disabled, cannot_attack_victim, cannot_attack_attacker,
|
||||||
cannot_attack_pets_victim, cannot_attack_pets_attacker, no_permission, no_such_command, pvp_enabled_other,
|
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,
|
pvp_disabled_other, punish_for_combat_logout_message, entering_combat, leaving_combat,
|
||||||
cant_do_that_during_combat;
|
cant_do_that_during_combat, cannot_attack_mounts_attacker, cannot_attack_mounts_victim;
|
||||||
@Getter private final double lava_and_fire_stopper_radius;
|
@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 long cache_time, combat_time, login_protection_time, teleport_protection_time;
|
||||||
@Getter private final Set<String> combatBlockedCommands = new HashSet<>();
|
@Getter private final Set<String> combatBlockedCommands = new HashSet<>();
|
||||||
@@ -73,6 +73,8 @@ public class ConfigCache {
|
|||||||
addDefault("messages.cannot_attack_attacker", "&cYou can't attack players while you have PvP turned off!");
|
addDefault("messages.cannot_attack_attacker", "&cYou can't attack players while you have PvP turned off!");
|
||||||
addDefault("messages.cannot_attack_pets_victim", "&cYou can't attack pets of players that have PvP turned off");
|
addDefault("messages.cannot_attack_pets_victim", "&cYou can't attack pets of players that have PvP turned off");
|
||||||
addDefault("messages.cannot_attack_pets_attacker", "&cYou can't attack pets while you have PvP turned off");
|
addDefault("messages.cannot_attack_pets_attacker", "&cYou can't attack pets while you have PvP turned off");
|
||||||
|
addDefault("messages.cannot_attack_mounts_victim", "&cYou can't attack mounts of players that have PvP turned off");
|
||||||
|
addDefault("messages.cannot_attack_mounts_attacker", "&cYou can't attack mounts while you have PvP turned off");
|
||||||
addDefault("messages.no_permission", "&cYou don't have permission to use that.");
|
addDefault("messages.no_permission", "&cYou don't have permission to use that.");
|
||||||
addDefault("messages.no_such_command", "&cNo such command.");
|
addDefault("messages.no_such_command", "&cNo such command.");
|
||||||
addDefault("messages.pvp_enabled_others", "&cYou've enabled %player%'s PvP.");
|
addDefault("messages.pvp_enabled_others", "&cYou've enabled %player%'s PvP.");
|
||||||
@@ -124,6 +126,8 @@ public class ConfigCache {
|
|||||||
this.cannot_attack_attacker = config.getString("messages.cannot_attack_attacker", "&cYou can't attack players while you have PvP turned off!");
|
this.cannot_attack_attacker = config.getString("messages.cannot_attack_attacker", "&cYou can't attack players while you have PvP turned off!");
|
||||||
this.cannot_attack_pets_victim = config.getString("messages.cannot_attack_pets_victim", "&cYou can't attack pets while you have PvP turned off");
|
this.cannot_attack_pets_victim = config.getString("messages.cannot_attack_pets_victim", "&cYou can't attack pets while you have PvP turned off");
|
||||||
this.cannot_attack_pets_attacker = config.getString("messages.cannot_attack_pets_attacker", "&cYou can't attack pets of players that have PvP turned off");
|
this.cannot_attack_pets_attacker = config.getString("messages.cannot_attack_pets_attacker", "&cYou can't attack pets of players that have PvP turned off");
|
||||||
|
this.cannot_attack_mounts_victim = config.getString("messages.cannot_attack_mounts_victim", "&cYou can't attack mounts of players that have PvP turned off");
|
||||||
|
this.cannot_attack_mounts_attacker = config.getString("messages.cannot_attack_mounts_attacker", "&cYou can't attack mounts while you have PvP turned off");
|
||||||
this.no_permission = config.getString("messages.no_permission", "&cYou don't have permission to use that.");
|
this.no_permission = config.getString("messages.no_permission", "&cYou don't have permission to use that.");
|
||||||
this.no_such_command = config.getString("messages.no_such_command", "&cNo such command.");
|
this.no_such_command = config.getString("messages.no_such_command", "&cNo such command.");
|
||||||
this.pvp_enabled_other = config.getString("messages.pvp_enabled_others", "&cYou've enabled %player%'s PvP.");
|
this.pvp_enabled_other = config.getString("messages.pvp_enabled_others", "&cYou've enabled %player%'s PvP.");
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.util.Util;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@PreventStabbyListener
|
||||||
|
public class MountHitByExplosionListener implements Listener {
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
public void onPlayerAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
|
if (!(event.getDamager() instanceof Player) || event.getEntity().getPassengers().isEmpty()) return;
|
||||||
|
if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) return;
|
||||||
|
UUID damager = event.getDamager().getUniqueId();
|
||||||
|
Entity mount = event.getEntity();
|
||||||
|
if (Util.processMountAttack(damager, mount))
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.util.Util;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Firework;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@PreventStabbyListener
|
||||||
|
public class MountHitByFireworkListener implements Listener {
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
public void onPlayerAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
|
if (!(event.getDamager() instanceof Firework) || event.getEntity().getPassengers().isEmpty()) return;
|
||||||
|
if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) return;
|
||||||
|
Firework firework = (Firework) event.getDamager();
|
||||||
|
if (!(firework.getShooter() instanceof Player)) return;
|
||||||
|
UUID damager = ((Player) firework.getShooter()).getUniqueId();
|
||||||
|
Entity mount = event.getEntity();
|
||||||
|
if (Util.processMountAttack(damager, mount))
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+40
@@ -0,0 +1,40 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import me.youhavetrouble.preventstabby.util.Util;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@PreventStabbyListener
|
||||||
|
public class MountHitBySplashPotionListener implements Listener {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If thrown potion applies negative effects and it's thrown by a player
|
||||||
|
* it will have no effect on a pet of a player with pvp off
|
||||||
|
*/
|
||||||
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
public void onMountHitBySplashPotion(org.bukkit.event.entity.PotionSplashEvent event) {
|
||||||
|
if (!(event.getEntity().getShooter() instanceof Player)) return;
|
||||||
|
boolean harmful = false;
|
||||||
|
for (PotionEffect effect : event.getPotion().getEffects()) {
|
||||||
|
if (Util.isPotionEffectHarmful(effect.getType())) {
|
||||||
|
harmful = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!harmful) return;
|
||||||
|
UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
|
||||||
|
for (LivingEntity entity : event.getAffectedEntities()) {
|
||||||
|
if (entity.getPassengers().isEmpty()) continue;
|
||||||
|
if (Util.processMountAttack(damager, entity))
|
||||||
|
event.setIntensity(entity, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.util.Util;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@PreventStabbyListener
|
||||||
|
public class PlayerAttackMountListener implements Listener {
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
public void onPlayerAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
|
if (!(event.getDamager() instanceof Player) || event.getEntity().getPassengers().isEmpty()) return;
|
||||||
|
Entity entity = event.getEntity();
|
||||||
|
UUID damager = event.getDamager().getUniqueId();
|
||||||
|
if (Util.processMountAttack(damager, entity))
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+28
@@ -0,0 +1,28 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.util.Util;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.entity.Projectile;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@PreventStabbyListener
|
||||||
|
public class PlayerHitMountWithProjectileListener implements Listener {
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
public void onPlayerAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
|
if (!(event.getDamager() instanceof Player) || event.getEntity().getPassengers().isEmpty()) return;
|
||||||
|
Projectile projectile = (Projectile) event.getDamager();
|
||||||
|
if (!(projectile.getShooter() instanceof Player)) return;
|
||||||
|
Entity entity = event.getEntity();
|
||||||
|
UUID damager = event.getDamager().getUniqueId();
|
||||||
|
if (Util.processMountAttack(damager, entity))
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+10
-14
@@ -1,7 +1,8 @@
|
|||||||
package eu.endermite.togglepvp.listeners.pets;
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
@@ -9,7 +10,7 @@ import org.bukkit.event.Listener;
|
|||||||
import org.bukkit.event.entity.EntityDamageEvent;
|
import org.bukkit.event.entity.EntityDamageEvent;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PetHitByExplosionListener implements Listener {
|
public class PetHitByExplosionListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -17,24 +18,19 @@ public class PetHitByExplosionListener implements Listener {
|
|||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPetHitByExplosion(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
public void onPetHitByExplosion(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
if (!(event.getEntity() instanceof Tameable))
|
if (!(event.getEntity() instanceof Tameable)) return;
|
||||||
return;
|
if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) return;
|
||||||
|
|
||||||
if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION))
|
|
||||||
return;
|
|
||||||
|
|
||||||
Tameable tameable = (Tameable) event.getEntity();
|
Tameable tameable = (Tameable) event.getEntity();
|
||||||
if (tameable.getOwner() == null)
|
if (tameable.getOwner() == null) return;
|
||||||
return;
|
|
||||||
|
|
||||||
UUID victim = tameable.getOwner().getUniqueId();
|
UUID victim = tameable.getOwner().getUniqueId();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
UUID damager = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString());
|
UUID damager = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString());
|
||||||
if (victim == damager)
|
if (victim.equals(damager))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+9
-11
@@ -1,7 +1,8 @@
|
|||||||
package eu.endermite.togglepvp.listeners.pets;
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Firework;
|
import org.bukkit.entity.Firework;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
@@ -10,24 +11,21 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PetHitByFireworkListener implements Listener {
|
public class PetHitByFireworkListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPetFireworkDamage(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
public void onPetFireworkDamage(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
if (event.getDamager() instanceof Firework && event.getEntity() instanceof Tameable) {
|
if (event.getDamager() instanceof Firework && event.getEntity() instanceof Tameable) {
|
||||||
Tameable tameable = (Tameable) event.getEntity();
|
Tameable tameable = (Tameable) event.getEntity();
|
||||||
if (tameable.getOwner() == null)
|
if (tameable.getOwner() == null) return;
|
||||||
return;
|
|
||||||
Firework firework = (Firework) event.getDamager();
|
Firework firework = (Firework) event.getDamager();
|
||||||
if (!(firework.getShooter() instanceof Player))
|
if (!(firework.getShooter() instanceof Player)) return;
|
||||||
return;
|
|
||||||
UUID damager = ((Player) firework.getShooter()).getUniqueId();
|
UUID damager = ((Player) firework.getShooter()).getUniqueId();
|
||||||
UUID victim = tameable.getOwner().getUniqueId();
|
UUID victim = tameable.getOwner().getUniqueId();
|
||||||
if (victim == damager)
|
if (victim.equals(damager)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+14
-27
@@ -1,7 +1,9 @@
|
|||||||
package eu.endermite.togglepvp.listeners.pets;
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import me.youhavetrouble.preventstabby.util.Util;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
@@ -12,7 +14,7 @@ import org.bukkit.potion.PotionEffect;
|
|||||||
import org.bukkit.potion.PotionEffectType;
|
import org.bukkit.potion.PotionEffectType;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PetHitBySplashPotionListener implements Listener {
|
public class PetHitBySplashPotionListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -22,40 +24,25 @@ public class PetHitBySplashPotionListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPetHitBySplashPotion(org.bukkit.event.entity.PotionSplashEvent event) {
|
public void onPetHitBySplashPotion(org.bukkit.event.entity.PotionSplashEvent event) {
|
||||||
|
|
||||||
if (!(event.getEntity().getShooter() instanceof Player))
|
if (!(event.getEntity().getShooter() instanceof Player)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
boolean harmful = false;
|
boolean harmful = false;
|
||||||
|
|
||||||
for (PotionEffect effect : event.getPotion().getEffects()) {
|
for (PotionEffect effect : event.getPotion().getEffects()) {
|
||||||
if (effect.getType().equals(PotionEffectType.BLINDNESS) ||
|
if (Util.isPotionEffectHarmful(effect.getType())) {
|
||||||
effect.getType().equals(PotionEffectType.CONFUSION) ||
|
|
||||||
effect.getType().equals(PotionEffectType.HARM) ||
|
|
||||||
effect.getType().equals(PotionEffectType.HUNGER) ||
|
|
||||||
effect.getType().equals(PotionEffectType.POISON) ||
|
|
||||||
effect.getType().equals(PotionEffectType.SLOW_DIGGING) ||
|
|
||||||
effect.getType().equals(PotionEffectType.WEAKNESS) ||
|
|
||||||
effect.getType().equals(PotionEffectType.SLOW) ||
|
|
||||||
effect.getType().equals(PotionEffectType.WITHER)) {
|
|
||||||
harmful = true;
|
harmful = true;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!harmful)
|
if (!harmful) return;
|
||||||
return;
|
UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
|
||||||
for (Entity entity : event.getAffectedEntities()) {
|
for (Entity entity : event.getAffectedEntities()) {
|
||||||
if (entity instanceof Tameable) {
|
if (entity instanceof Tameable) {
|
||||||
UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
|
|
||||||
Tameable tameable = (Tameable) entity;
|
Tameable tameable = (Tameable) entity;
|
||||||
|
if (tameable.getOwner() == null) continue;
|
||||||
if (tameable.getOwner() == null)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
UUID victim = tameable.getOwner().getUniqueId();
|
UUID victim = tameable.getOwner().getUniqueId();
|
||||||
|
if (victim == damager) return;
|
||||||
|
|
||||||
if (victim == damager)
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
||||||
return;
|
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+8
-9
@@ -1,29 +1,28 @@
|
|||||||
package eu.endermite.togglepvp.listeners.pets;
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PetLeashListener implements Listener {
|
public class PetLeashListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPetLeash(org.bukkit.event.entity.PlayerLeashEntityEvent event) {
|
public void onPetLeash(org.bukkit.event.entity.PlayerLeashEntityEvent event) {
|
||||||
if (event.getEntity() instanceof Tameable) {
|
if (event.getEntity() instanceof Tameable) {
|
||||||
Tameable tameable = (Tameable) event.getEntity();
|
Tameable tameable = (Tameable) event.getEntity();
|
||||||
if (tameable.getOwner() == null)
|
if (tameable.getOwner() == null) return;
|
||||||
return;
|
|
||||||
|
|
||||||
UUID damager = event.getPlayer().getUniqueId();
|
UUID damager = event.getPlayer().getUniqueId();
|
||||||
UUID victim = tameable.getOwner().getUniqueId();
|
UUID victim = tameable.getOwner().getUniqueId();
|
||||||
if (victim == damager)
|
if (victim == damager) return;
|
||||||
return;
|
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.players.SmartCache;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import me.youhavetrouble.preventstabby.util.Util;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Tameable;
|
||||||
|
import org.bukkit.entity.Wolf;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
@PreventStabbyListener
|
||||||
|
public class PetTargettingMountListener implements Listener {
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
public void onWolfAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
|
if (!(event.getDamager() instanceof Tameable) || event.getEntity().getPassengers().isEmpty()) return;
|
||||||
|
Tameable damager = (Tameable) event.getDamager();
|
||||||
|
Entity victim = event.getEntity();
|
||||||
|
if (damager.getOwner() == null) return;
|
||||||
|
|
||||||
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
|
boolean damagerPvpEnabled = smartCache.getPlayerData(damager.getOwner().getUniqueId()).isPvpEnabled();
|
||||||
|
boolean victimPvpEnabled = !Util.processMountAttack(damager.getOwner().getUniqueId(), victim);
|
||||||
|
|
||||||
|
if (!victimPvpEnabled || !damagerPvpEnabled) {
|
||||||
|
if (damager instanceof Wolf) {
|
||||||
|
Wolf wolf = (Wolf) damager;
|
||||||
|
wolf.setAngry(false);
|
||||||
|
}
|
||||||
|
event.setCancelled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+7
-7
@@ -1,14 +1,15 @@
|
|||||||
package eu.endermite.togglepvp.listeners.pets;
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.players.SmartCache;
|
import me.youhavetrouble.preventstabby.players.SmartCache;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
import org.bukkit.entity.Wolf;
|
import org.bukkit.entity.Wolf;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PetTargettingPetListener implements Listener {
|
public class PetTargettingPetListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
@@ -16,10 +17,9 @@ public class PetTargettingPetListener implements Listener {
|
|||||||
if (event.getDamager() instanceof Tameable && event.getEntity() instanceof Tameable) {
|
if (event.getDamager() instanceof Tameable && event.getEntity() instanceof Tameable) {
|
||||||
Tameable damager = (Tameable) event.getDamager();
|
Tameable damager = (Tameable) event.getDamager();
|
||||||
Tameable victim = (Tameable) event.getEntity();
|
Tameable victim = (Tameable) event.getEntity();
|
||||||
if (damager.getOwner() == null || victim.getOwner() == null)
|
if (damager.getOwner() == null || victim.getOwner() == null) return;
|
||||||
return;
|
|
||||||
|
|
||||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
boolean damagerPvpEnabled = smartCache.getPlayerData(damager.getOwner().getUniqueId()).isPvpEnabled();
|
boolean damagerPvpEnabled = smartCache.getPlayerData(damager.getOwner().getUniqueId()).isPvpEnabled();
|
||||||
boolean victimPvpEnabled = smartCache.getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled();
|
boolean victimPvpEnabled = smartCache.getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled();
|
||||||
|
|
||||||
+8
-10
@@ -1,7 +1,8 @@
|
|||||||
package eu.endermite.togglepvp.listeners.pets;
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -10,25 +11,22 @@ import org.bukkit.event.Listener;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PetTargettingPlayerListener implements Listener {
|
public class PetTargettingPlayerListener implements Listener {
|
||||||
/**
|
/**
|
||||||
* Stops pets with owners targetting players with pvp off
|
* Stops pets with owners targetting players with pvp off
|
||||||
*/
|
*/
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPetTargetPlayer(org.bukkit.event.entity.EntityTargetEvent event) {
|
public void onPetTargetPlayer(org.bukkit.event.entity.EntityTargetEvent event) {
|
||||||
if (!(event.getEntity() instanceof Tameable))
|
if (!(event.getEntity() instanceof Tameable)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
Tameable entity = (Tameable) event.getEntity();
|
Tameable entity = (Tameable) event.getEntity();
|
||||||
if (entity.getOwner() == null)
|
if (entity.getOwner() == null) return;
|
||||||
return;
|
|
||||||
|
|
||||||
if (event.getTarget() instanceof Player) {
|
if (event.getTarget() instanceof Player) {
|
||||||
UUID damager = entity.getOwner().getUniqueId();
|
UUID damager = entity.getOwner().getUniqueId();
|
||||||
UUID victim = event.getTarget().getUniqueId();
|
UUID victim = event.getTarget().getUniqueId();
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+13
-14
@@ -1,10 +1,11 @@
|
|||||||
package eu.endermite.togglepvp.listeners.pets;
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.config.ConfigCache;
|
import me.youhavetrouble.preventstabby.config.ConfigCache;
|
||||||
import eu.endermite.togglepvp.players.SmartCache;
|
import me.youhavetrouble.preventstabby.players.SmartCache;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
import eu.endermite.togglepvp.util.PluginMessages;
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -13,26 +14,24 @@ import org.bukkit.event.Listener;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerAttackPetListener implements Listener {
|
public class PlayerAttackPetListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPlayerAttackPet(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
public void onPlayerAttackPet(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
|
|
||||||
if (event.getDamager() instanceof Player && event.getEntity() instanceof Tameable) {
|
if (event.getDamager() instanceof Player && event.getEntity() instanceof Tameable) {
|
||||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
Tameable tameable = (Tameable) event.getEntity();
|
Tameable tameable = (Tameable) event.getEntity();
|
||||||
if (tameable.getOwner() == null)
|
if (tameable.getOwner() == null) return;
|
||||||
return;
|
|
||||||
|
|
||||||
UUID damager = event.getDamager().getUniqueId();
|
UUID damager = event.getDamager().getUniqueId();
|
||||||
UUID victim = tameable.getOwner().getUniqueId();
|
UUID victim = tameable.getOwner().getUniqueId();
|
||||||
|
|
||||||
if (damager == victim)
|
if (damager.equals(victim)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
ConfigCache config = TogglePvp.getPlugin().getConfigCache();
|
ConfigCache config = PreventStabby.getPlugin().getConfigCache();
|
||||||
boolean damagerPvpState = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager);
|
boolean damagerPvpState = PreventStabby.getPlugin().getPlayerManager().getPlayerPvPState(damager);
|
||||||
if (!damagerPvpState) {
|
if (!damagerPvpState) {
|
||||||
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
|
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+14
-18
@@ -1,10 +1,11 @@
|
|||||||
package eu.endermite.togglepvp.listeners.pets;
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.config.ConfigCache;
|
import me.youhavetrouble.preventstabby.config.ConfigCache;
|
||||||
import eu.endermite.togglepvp.players.SmartCache;
|
import me.youhavetrouble.preventstabby.players.SmartCache;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
import eu.endermite.togglepvp.util.PluginMessages;
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Projectile;
|
import org.bukkit.entity.Projectile;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
@@ -14,8 +15,8 @@ import org.bukkit.event.Listener;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerHitPetWithProjectile implements Listener {
|
public class PlayerHitPetWithProjectileListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cancels damage done by projectiles to pets of players with pvp off
|
* Cancels damage done by projectiles to pets of players with pvp off
|
||||||
@@ -24,22 +25,17 @@ public class PlayerHitPetWithProjectile implements Listener {
|
|||||||
public void onPlayerHitPetWithProjectile(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
public void onPlayerHitPetWithProjectile(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
if (event.getEntity() instanceof Tameable && event.getDamager() instanceof Projectile) {
|
if (event.getEntity() instanceof Tameable && event.getDamager() instanceof Projectile) {
|
||||||
Projectile projectile = (Projectile) event.getDamager();
|
Projectile projectile = (Projectile) event.getDamager();
|
||||||
if (!(projectile.getShooter() instanceof Player))
|
if (!(projectile.getShooter() instanceof Player)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
Tameable tameable = (Tameable) event.getEntity();
|
Tameable tameable = (Tameable) event.getEntity();
|
||||||
|
if (tameable.getOwner() == null) return;
|
||||||
if (tameable.getOwner() == null)
|
|
||||||
return;
|
|
||||||
|
|
||||||
UUID damager = ((Player) projectile.getShooter()).getUniqueId();
|
UUID damager = ((Player) projectile.getShooter()).getUniqueId();
|
||||||
UUID victim = tameable.getOwner().getUniqueId();
|
UUID victim = tameable.getOwner().getUniqueId();
|
||||||
|
|
||||||
if (damager == victim)
|
if (damager.equals(victim)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
ConfigCache config = TogglePvp.getPlugin().getConfigCache();
|
ConfigCache config = PreventStabby.getPlugin().getConfigCache();
|
||||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
|
|
||||||
if (!smartCache.getPlayerData(damager).isPvpEnabled()) {
|
if (!smartCache.getPlayerData(damager).isPvpEnabled()) {
|
||||||
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
|
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
|
||||||
+8
-13
@@ -1,29 +1,24 @@
|
|||||||
package eu.endermite.togglepvp.listeners.pets;
|
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerInteractWithPetListener implements Listener {
|
public class PlayerInteractWithPetListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPlayerInteractWithPet(org.bukkit.event.player.PlayerInteractEntityEvent event) {
|
public void onPlayerInteractWithPet(org.bukkit.event.player.PlayerInteractEntityEvent event) {
|
||||||
|
|
||||||
if (!TogglePvp.getPlugin().getConfigCache().isOnly_owner_can_interact_with_pet())
|
if (!PreventStabby.getPlugin().getConfigCache().isOnly_owner_can_interact_with_pet()) return;
|
||||||
return;
|
if (!(event.getRightClicked() instanceof Tameable)) return;
|
||||||
|
|
||||||
if (!(event.getRightClicked() instanceof Tameable))
|
|
||||||
return;
|
|
||||||
|
|
||||||
Tameable tameable = (Tameable) event.getRightClicked();
|
Tameable tameable = (Tameable) event.getRightClicked();
|
||||||
if (tameable.getOwner() == null)
|
if (tameable.getOwner() == null) return;
|
||||||
return;
|
if (tameable.getOwner().getUniqueId().equals(event.getPlayer().getUniqueId())) return;
|
||||||
|
|
||||||
if (tameable.getOwner().getUniqueId().equals(event.getPlayer().getUniqueId()))
|
|
||||||
return;
|
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
|
|
||||||
+8
-9
@@ -1,8 +1,9 @@
|
|||||||
package eu.endermite.togglepvp.listeners.player;
|
package me.youhavetrouble.preventstabby.listeners.player;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.players.PlayerManager;
|
import me.youhavetrouble.preventstabby.players.PlayerManager;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
import org.bukkit.entity.Wolf;
|
import org.bukkit.entity.Wolf;
|
||||||
@@ -11,7 +12,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PetAttackPlayerListener implements Listener {
|
public class PetAttackPlayerListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -21,16 +22,14 @@ public class PetAttackPlayerListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPetAttack(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
public void onPetAttack(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
|
|
||||||
if (!(event.getDamager() instanceof Tameable))
|
if (!(event.getDamager() instanceof Tameable)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
Tameable entity = (Tameable) event.getDamager();
|
Tameable entity = (Tameable) event.getDamager();
|
||||||
if (entity.getOwner() != null && event.getEntity() instanceof Player) {
|
if (entity.getOwner() != null && event.getEntity() instanceof Player) {
|
||||||
|
|
||||||
UUID victim = event.getEntity().getUniqueId();
|
UUID victim = event.getEntity().getUniqueId();
|
||||||
UUID damager = entity.getOwner().getUniqueId();
|
UUID damager = entity.getOwner().getUniqueId();
|
||||||
|
PlayerManager playerManager = PreventStabby.getPlugin().getPlayerManager();
|
||||||
PlayerManager playerManager = TogglePvp.getPlugin().getPlayerManager();
|
|
||||||
|
|
||||||
if (!playerManager.canDamage(damager, victim, false)) {
|
if (!playerManager.canDamage(damager, victim, false)) {
|
||||||
if (entity instanceof Wolf) {
|
if (entity instanceof Wolf) {
|
||||||
+6
-5
@@ -1,7 +1,8 @@
|
|||||||
package eu.endermite.togglepvp.listeners.player;
|
package me.youhavetrouble.preventstabby.listeners.player;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -9,7 +10,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerAttackListener implements Listener {
|
public class PlayerAttackListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -24,7 +25,7 @@ public class PlayerAttackListener implements Listener {
|
|||||||
UUID damager = damagerEntity.getUniqueId();
|
UUID damager = damagerEntity.getUniqueId();
|
||||||
UUID victim = victimEntity.getUniqueId();
|
UUID victim = victimEntity.getUniqueId();
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+7
-7
@@ -1,24 +1,24 @@
|
|||||||
package eu.endermite.togglepvp.listeners.player;
|
package me.youhavetrouble.preventstabby.listeners.player;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.players.PlayerData;
|
import me.youhavetrouble.preventstabby.players.PlayerData;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerDeathListener implements Listener {
|
public class PlayerDeathListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
public void onPlayerDeath(org.bukkit.event.entity.EntityDeathEvent event) {
|
public void onPlayerDeath(org.bukkit.event.entity.EntityDeathEvent event) {
|
||||||
|
|
||||||
if (!(event.getEntity() instanceof Player))
|
if (!(event.getEntity() instanceof Player)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
Player player = (Player) event.getEntity();
|
Player player = (Player) event.getEntity();
|
||||||
|
|
||||||
PlayerData playerData = TogglePvp.getPlugin().getSmartCache().getPlayerData(player.getUniqueId());
|
PlayerData playerData = PreventStabby.getPlugin().getSmartCache().getPlayerData(player.getUniqueId());
|
||||||
playerData.setCombattime(0);
|
playerData.setCombattime(0);
|
||||||
playerData.setLastCombatCheck(false);
|
playerData.setLastCombatCheck(false);
|
||||||
playerData.setInCombat(false);
|
playerData.setInCombat(false);
|
||||||
+15
-16
@@ -1,7 +1,8 @@
|
|||||||
package eu.endermite.togglepvp.listeners.player;
|
package me.youhavetrouble.preventstabby.listeners.player;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.EnderCrystal;
|
import org.bukkit.entity.EnderCrystal;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Projectile;
|
import org.bukkit.entity.Projectile;
|
||||||
@@ -15,7 +16,7 @@ import org.bukkit.event.entity.EntityDamageEvent;
|
|||||||
import org.bukkit.metadata.FixedMetadataValue;
|
import org.bukkit.metadata.FixedMetadataValue;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerHitByExplosionListener implements Listener {
|
public class PlayerHitByExplosionListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -24,16 +25,14 @@ public class PlayerHitByExplosionListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPlayerHitByExplosion(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
public void onPlayerHitByExplosion(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||||
if (event.getEntity() instanceof Player) {
|
if (event.getEntity() instanceof Player) {
|
||||||
if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) {
|
if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
UUID victim = event.getEntity().getUniqueId();
|
UUID victim = event.getEntity().getUniqueId();
|
||||||
try {
|
try {
|
||||||
UUID damager = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString());
|
UUID damager = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString());
|
||||||
if (victim.equals(damager))
|
if (victim.equals(damager)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@@ -51,12 +50,12 @@ public class PlayerHitByExplosionListener implements Listener {
|
|||||||
if (event.getEntity() instanceof EnderCrystal) {
|
if (event.getEntity() instanceof EnderCrystal) {
|
||||||
EnderCrystal enderCrystal = (EnderCrystal) event.getEntity();
|
EnderCrystal enderCrystal = (EnderCrystal) event.getEntity();
|
||||||
if (event.getDamager() instanceof Player) {
|
if (event.getDamager() instanceof Player) {
|
||||||
enderCrystal.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), event.getDamager().getUniqueId().toString()));
|
enderCrystal.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(PreventStabby.getPlugin(), event.getDamager().getUniqueId().toString()));
|
||||||
} else if (event.getDamager() instanceof Projectile) {
|
} else if (event.getDamager() instanceof Projectile) {
|
||||||
Projectile projectile = (Projectile) event.getDamager();
|
Projectile projectile = (Projectile) event.getDamager();
|
||||||
if (projectile.getShooter() instanceof Player) {
|
if (projectile.getShooter() instanceof Player) {
|
||||||
Player damager = (Player) projectile.getShooter();
|
Player damager = (Player) projectile.getShooter();
|
||||||
enderCrystal.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), damager.getUniqueId().toString()));
|
enderCrystal.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(PreventStabby.getPlugin(), damager.getUniqueId().toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -71,12 +70,12 @@ public class PlayerHitByExplosionListener implements Listener {
|
|||||||
TNTPrimed tntPrimed = (TNTPrimed) event.getEntity();
|
TNTPrimed tntPrimed = (TNTPrimed) event.getEntity();
|
||||||
if (tntPrimed.getSource() instanceof Player) {
|
if (tntPrimed.getSource() instanceof Player) {
|
||||||
Player damager = (Player) tntPrimed.getSource();
|
Player damager = (Player) tntPrimed.getSource();
|
||||||
tntPrimed.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), damager.getUniqueId().toString()));
|
tntPrimed.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(PreventStabby.getPlugin(), damager.getUniqueId().toString()));
|
||||||
} else if (tntPrimed.getSource() instanceof TNTPrimed) {
|
} else if (tntPrimed.getSource() instanceof TNTPrimed) {
|
||||||
try {
|
try {
|
||||||
TNTPrimed sourceTnt = (TNTPrimed) tntPrimed.getSource();
|
TNTPrimed sourceTnt = (TNTPrimed) tntPrimed.getSource();
|
||||||
String damagerUuid = sourceTnt.getMetadata("PLAYEREXPLODED").get(0).asString();
|
String damagerUuid = sourceTnt.getMetadata("PLAYEREXPLODED").get(0).asString();
|
||||||
tntPrimed.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), damagerUuid));
|
tntPrimed.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(PreventStabby.getPlugin(), damagerUuid));
|
||||||
} catch (NullPointerException ignored) {
|
} catch (NullPointerException ignored) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -91,7 +90,7 @@ public class PlayerHitByExplosionListener implements Listener {
|
|||||||
public void onPlayerPlacedTntMinecart(org.bukkit.event.entity.EntityPlaceEvent event) {
|
public void onPlayerPlacedTntMinecart(org.bukkit.event.entity.EntityPlaceEvent event) {
|
||||||
if (event.getEntityType().equals(EntityType.MINECART_TNT)) {
|
if (event.getEntityType().equals(EntityType.MINECART_TNT)) {
|
||||||
if (event.getPlayer() != null) {
|
if (event.getPlayer() != null) {
|
||||||
event.getEntity().setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), event.getPlayer().getUniqueId().toString()));
|
event.getEntity().setMetadata("PLAYEREXPLODED", new FixedMetadataValue(PreventStabby.getPlugin(), event.getPlayer().getUniqueId().toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -103,7 +102,7 @@ public class PlayerHitByExplosionListener implements Listener {
|
|||||||
public void onPlayerNudgedTntMinecart(org.bukkit.event.vehicle.VehicleEntityCollisionEvent event) {
|
public void onPlayerNudgedTntMinecart(org.bukkit.event.vehicle.VehicleEntityCollisionEvent event) {
|
||||||
if (event.getVehicle() instanceof ExplosiveMinecart && event.getEntity() instanceof Player) {
|
if (event.getVehicle() instanceof ExplosiveMinecart && event.getEntity() instanceof Player) {
|
||||||
Player damager = (Player) event.getEntity();
|
Player damager = (Player) event.getEntity();
|
||||||
event.getVehicle().setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), damager.getUniqueId().toString()));
|
event.getVehicle().setMetadata("PLAYEREXPLODED", new FixedMetadataValue(PreventStabby.getPlugin(), damager.getUniqueId().toString()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
+7
-8
@@ -1,7 +1,8 @@
|
|||||||
package eu.endermite.togglepvp.listeners.player;
|
package me.youhavetrouble.preventstabby.listeners.player;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Firework;
|
import org.bukkit.entity.Firework;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -9,7 +10,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerHitByFireworkListener implements Listener {
|
public class PlayerHitByFireworkListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
@@ -19,11 +20,9 @@ public class PlayerHitByFireworkListener implements Listener {
|
|||||||
Firework firework = (Firework) event.getDamager();
|
Firework firework = (Firework) event.getDamager();
|
||||||
if (firework.getShooter() instanceof Player) {
|
if (firework.getShooter() instanceof Player) {
|
||||||
UUID damager = ((Player) firework.getShooter()).getUniqueId();
|
UUID damager = ((Player) firework.getShooter()).getUniqueId();
|
||||||
if (damager == victim) {
|
if (damager == victim) return;
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+12
-13
@@ -1,14 +1,15 @@
|
|||||||
package eu.endermite.togglepvp.listeners.player;
|
package me.youhavetrouble.preventstabby.listeners.player;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.*;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerHitByProjectileListener implements Listener {
|
public class PlayerHitByProjectileListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -23,8 +24,8 @@ public class PlayerHitByProjectileListener implements Listener {
|
|||||||
UUID damager = ((Player) projectile.getShooter()).getUniqueId();
|
UUID damager = ((Player) projectile.getShooter()).getUniqueId();
|
||||||
UUID victim = event.getEntity().getUniqueId();
|
UUID victim = event.getEntity().getUniqueId();
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getConfigCache().isSnowballs_knockback() && event.getDamager() instanceof Snowball) {
|
if (PreventStabby.getPlugin().getConfigCache().isSnowballs_knockback() && event.getDamager() instanceof Snowball) {
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
|
||||||
((Player) event.getEntity()).damage(0.01, (Entity) projectile.getShooter());
|
((Player) event.getEntity()).damage(0.01, (Entity) projectile.getShooter());
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
} else {
|
} else {
|
||||||
@@ -32,8 +33,8 @@ public class PlayerHitByProjectileListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (TogglePvp.getPlugin().getConfigCache().isEgg_knockback() && event.getDamager() instanceof Egg) {
|
} else if (PreventStabby.getPlugin().getConfigCache().isEgg_knockback() && event.getDamager() instanceof Egg) {
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
|
||||||
((Player) event.getEntity()).damage(0.01, (Entity) projectile.getShooter());
|
((Player) event.getEntity()).damage(0.01, (Entity) projectile.getShooter());
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
} else {
|
} else {
|
||||||
@@ -43,13 +44,11 @@ public class PlayerHitByProjectileListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Ender pearls and other self-damage
|
// Ender pearls and other self-damage
|
||||||
if (damager == victim)
|
if (damager.equals(victim)) return;
|
||||||
return;
|
|
||||||
|
|
||||||
if (event.getDamage() == 0)
|
if (event.getDamage() == 0) return;
|
||||||
return;
|
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+48
@@ -0,0 +1,48 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.listeners.player;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import me.youhavetrouble.preventstabby.util.Util;
|
||||||
|
import org.bukkit.entity.LivingEntity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
import org.bukkit.potion.PotionEffect;
|
||||||
|
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@PreventStabbyListener
|
||||||
|
public class PlayerHitBySplashPotionListener implements Listener {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If thrown potion is applies negative effects and it's thrown by a player it will have no effect on player with pvp off
|
||||||
|
*/
|
||||||
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
public void onPlayerHitBySplashPotion(org.bukkit.event.entity.PotionSplashEvent event) {
|
||||||
|
|
||||||
|
if (!(event.getEntity().getShooter() instanceof Player)) return;
|
||||||
|
boolean harmful = false;
|
||||||
|
|
||||||
|
for (PotionEffect effect : event.getPotion().getEffects()) {
|
||||||
|
if (Util.isPotionEffectHarmful(effect.getType())) {
|
||||||
|
harmful = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!harmful) return;
|
||||||
|
UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
|
||||||
|
for (LivingEntity entity : event.getAffectedEntities()) {
|
||||||
|
if (!(entity instanceof Player)) continue;
|
||||||
|
UUID victim = entity.getUniqueId();
|
||||||
|
if (damager == victim) continue;
|
||||||
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
|
||||||
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
|
} else {
|
||||||
|
event.setIntensity(entity, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+63
@@ -0,0 +1,63 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.listeners.player;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.players.PlayerData;
|
||||||
|
import me.youhavetrouble.preventstabby.players.SmartCache;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@PreventStabbyListener
|
||||||
|
public class PlayerJoinAndLeaveListener implements Listener {
|
||||||
|
/**
|
||||||
|
* This event is here to get players saved options on join
|
||||||
|
*/
|
||||||
|
@EventHandler(ignoreCancelled = true)
|
||||||
|
public void onPlayerJoin(org.bukkit.event.player.PlayerJoinEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
UUID uuid = player.getUniqueId();
|
||||||
|
|
||||||
|
PlayerData playerData = PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
|
||||||
|
long time = Instant.now().getEpochSecond();
|
||||||
|
if (playerData == null) {
|
||||||
|
PreventStabby.getPlugin().getPlayerManager().addPlayer(uuid, new PlayerData(false));
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||||
|
PlayerData data = PreventStabby.getPlugin().getSqLite().getPlayerInfo(uuid);
|
||||||
|
PreventStabby.getPlugin().getPlayerManager().addPlayer(uuid, data);
|
||||||
|
data.setLoginTimestamp(time);
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
playerData.refreshCachetime();
|
||||||
|
playerData.setLoginTimestamp(time);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This event is here to save player's data to database
|
||||||
|
* Also punishes players who log out during combat
|
||||||
|
*/
|
||||||
|
@EventHandler
|
||||||
|
public void onPlayerLeave(org.bukkit.event.player.PlayerQuitEvent event) {
|
||||||
|
Player player = event.getPlayer();
|
||||||
|
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> PreventStabby.getPlugin().getSqLite().updatePlayerInfo(player.getUniqueId(), PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId())));
|
||||||
|
|
||||||
|
if (!PreventStabby.getPlugin().getConfigCache().isPunish_for_combat_logout()) return;
|
||||||
|
|
||||||
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
|
PlayerData playerData = smartCache.getPlayerData(player.getUniqueId());
|
||||||
|
|
||||||
|
if (!playerData.isInCombat()) return;
|
||||||
|
|
||||||
|
player.setHealth(0);
|
||||||
|
if (PreventStabby.getPlugin().getConfigCache().isPunish_for_combat_logout_announce())
|
||||||
|
PluginMessages.broadcastMessage(player, PreventStabby.getPlugin().getConfigCache().getPunish_for_combat_logout_message());
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
-6
@@ -1,21 +1,22 @@
|
|||||||
package eu.endermite.togglepvp.listeners.player;
|
package me.youhavetrouble.preventstabby.listeners.player;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.players.PlayerData;
|
import me.youhavetrouble.preventstabby.players.PlayerData;
|
||||||
import eu.endermite.togglepvp.players.SmartCache;
|
import me.youhavetrouble.preventstabby.players.SmartCache;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerTeleportListener implements Listener {
|
public class PlayerTeleportListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
|
||||||
public void onPlayerTeleport(org.bukkit.event.player.PlayerTeleportEvent event) {
|
public void onPlayerTeleport(org.bukkit.event.player.PlayerTeleportEvent event) {
|
||||||
Player player = event.getPlayer();
|
Player player = event.getPlayer();
|
||||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
PlayerData playerData = smartCache.getPlayerData(player.getUniqueId());
|
PlayerData playerData = smartCache.getPlayerData(player.getUniqueId());
|
||||||
playerData.setTeleportTimestamp(Instant.now().getEpochSecond());
|
playerData.setTeleportTimestamp(Instant.now().getEpochSecond());
|
||||||
}
|
}
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.listeners.toggles;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.players.PlayerManager;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
|
import org.bukkit.event.EventHandler;
|
||||||
|
import org.bukkit.event.EventPriority;
|
||||||
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
|
@PreventStabbyListener
|
||||||
|
public class CombatCommandListener implements Listener {
|
||||||
|
|
||||||
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
|
public void onPlayerCommandInCombat(org.bukkit.event.player.PlayerCommandPreprocessEvent event) {
|
||||||
|
|
||||||
|
if (!PreventStabby.getPlugin().getConfigCache().isBlock_commands_in_combat())
|
||||||
|
return;
|
||||||
|
|
||||||
|
PlayerManager playerManager = PreventStabby.getPlugin().getPlayerManager();
|
||||||
|
|
||||||
|
if (!playerManager.getPlayer(event.getPlayer().getUniqueId()).isInCombat())
|
||||||
|
return;
|
||||||
|
|
||||||
|
String command = event.getMessage().replaceFirst("/", "");
|
||||||
|
|
||||||
|
if (!PreventStabby.getPlugin().getConfigCache().getCombatBlockedCommands().contains(command))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (event.getPlayer().hasPermission("toglepvp.combatcommandblock.bypass"))
|
||||||
|
return;
|
||||||
|
|
||||||
|
event.setCancelled(true);
|
||||||
|
PluginMessages.sendMessage(event.getPlayer(), PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+9
-8
@@ -1,22 +1,23 @@
|
|||||||
package eu.endermite.togglepvp.listeners.toggles;
|
package me.youhavetrouble.preventstabby.listeners.toggles;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.players.PlayerManager;
|
import me.youhavetrouble.preventstabby.players.PlayerManager;
|
||||||
import eu.endermite.togglepvp.util.PluginMessages;
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlayerTeleportInCombatListener implements Listener {
|
public class PlayerTeleportInCombatListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPlayerTeleportInCombat(org.bukkit.event.player.PlayerTeleportEvent event) {
|
public void onPlayerTeleportInCombat(org.bukkit.event.player.PlayerTeleportEvent event) {
|
||||||
|
|
||||||
if (!TogglePvp.getPlugin().getConfigCache().isBlock_teleports_in_combat())
|
if (!PreventStabby.getPlugin().getConfigCache().isBlock_teleports_in_combat())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
PlayerManager playerManager = TogglePvp.getPlugin().getPlayerManager();
|
PlayerManager playerManager = PreventStabby.getPlugin().getPlayerManager();
|
||||||
|
|
||||||
if (!playerManager.getPlayer(event.getPlayer().getUniqueId()).isInCombat())
|
if (!playerManager.getPlayer(event.getPlayer().getUniqueId()).isInCombat())
|
||||||
return;
|
return;
|
||||||
@@ -25,7 +26,7 @@ public class PlayerTeleportInCombatListener implements Listener {
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
PluginMessages.sendMessage(event.getPlayer(), TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat());
|
PluginMessages.sendMessage(event.getPlayer(), PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
+7
-6
@@ -1,8 +1,9 @@
|
|||||||
package eu.endermite.togglepvp.listeners.unspecific;
|
package me.youhavetrouble.preventstabby.listeners.unspecific;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.players.PlayerManager;
|
import me.youhavetrouble.preventstabby.players.PlayerManager;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.LivingEntity;
|
import org.bukkit.entity.LivingEntity;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
@@ -13,7 +14,7 @@ import org.bukkit.potion.PotionEffectType;
|
|||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class AreaEffectCloudApplyListener implements Listener {
|
public class AreaEffectCloudApplyListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(ignoreCancelled = true)
|
@EventHandler(ignoreCancelled = true)
|
||||||
@@ -35,7 +36,7 @@ public class AreaEffectCloudApplyListener implements Listener {
|
|||||||
potionEffectType.equals(PotionEffectType.SLOW) ||
|
potionEffectType.equals(PotionEffectType.SLOW) ||
|
||||||
potionEffectType.equals(PotionEffectType.WITHER)) {
|
potionEffectType.equals(PotionEffectType.WITHER)) {
|
||||||
|
|
||||||
PlayerManager playerManager = TogglePvp.getPlugin().getPlayerManager();
|
PlayerManager playerManager = PreventStabby.getPlugin().getPlayerManager();
|
||||||
|
|
||||||
Iterator<LivingEntity> it = event.getAffectedEntities().iterator();
|
Iterator<LivingEntity> it = event.getAffectedEntities().iterator();
|
||||||
UUID damager = ((Player) event.getEntity().getSource()).getUniqueId();
|
UUID damager = ((Player) event.getEntity().getSource()).getUniqueId();
|
||||||
+9
-8
@@ -1,6 +1,7 @@
|
|||||||
package eu.endermite.togglepvp.listeners.unspecific;
|
package me.youhavetrouble.preventstabby.listeners.unspecific;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.LightningStrike;
|
import org.bukkit.entity.LightningStrike;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
@@ -15,7 +16,7 @@ import java.util.UUID;
|
|||||||
* Listen for lightning strikes and tag the trident spawned ones.
|
* Listen for lightning strikes and tag the trident spawned ones.
|
||||||
* Idea from aasmus' PvPToggle plugin
|
* Idea from aasmus' PvPToggle plugin
|
||||||
*/
|
*/
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class EntityHitByLightningListener implements Listener {
|
public class EntityHitByLightningListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -27,17 +28,17 @@ public class EntityHitByLightningListener implements Listener {
|
|||||||
if (event.getEntity() instanceof Player) {
|
if (event.getEntity() instanceof Player) {
|
||||||
UUID victim = event.getEntity().getUniqueId();
|
UUID victim = event.getEntity().getUniqueId();
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(victim)) {
|
if (PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(victim)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TogglePvp.getPlugin().getSmartCache().getPlayerData(victim).isPvpEnabled()) {
|
if (!PreventStabby.getPlugin().getSmartCache().getPlayerData(victim).isPvpEnabled()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
} else if (event.getEntity() instanceof Tameable) {
|
} else if (event.getEntity() instanceof Tameable) {
|
||||||
Tameable victim = (Tameable) event.getEntity();
|
Tameable victim = (Tameable) event.getEntity();
|
||||||
if (victim.getOwner() != null && !TogglePvp.getPlugin().getSmartCache().getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled()) {
|
if (victim.getOwner() != null && !PreventStabby.getPlugin().getSmartCache().getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -50,11 +51,11 @@ public class EntityHitByLightningListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onLightningStrike(LightningStrikeEvent event){
|
public void onLightningStrike(LightningStrikeEvent event){
|
||||||
if(event.getCause() == LightningStrikeEvent.Cause.TRIDENT){
|
if(event.getCause() == LightningStrikeEvent.Cause.TRIDENT){
|
||||||
if (TogglePvp.getPlugin().getConfigCache().isChanneling_enchant_disabled()) {
|
if (PreventStabby.getPlugin().getConfigCache().isChanneling_enchant_disabled()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
event.getLightning().setMetadata("TRIDENT", new FixedMetadataValue(TogglePvp.getPlugin(), event.getLightning().getLocation()));
|
event.getLightning().setMetadata("TRIDENT", new FixedMetadataValue(PreventStabby.getPlugin(), event.getLightning().getLocation()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+7
-6
@@ -1,7 +1,8 @@
|
|||||||
package eu.endermite.togglepvp.listeners.unspecific;
|
package me.youhavetrouble.preventstabby.listeners.unspecific;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.entity.Tameable;
|
import org.bukkit.entity.Tameable;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
@@ -9,7 +10,7 @@ import org.bukkit.event.EventPriority;
|
|||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class FishingListener implements Listener {
|
public class FishingListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -23,7 +24,7 @@ public class FishingListener implements Listener {
|
|||||||
if (damager == victim)
|
if (damager == victim)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@@ -38,7 +39,7 @@ public class FishingListener implements Listener {
|
|||||||
if (damager == victim)
|
if (damager == victim)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+15
-14
@@ -1,9 +1,10 @@
|
|||||||
package eu.endermite.togglepvp.listeners.unspecific;
|
package me.youhavetrouble.preventstabby.listeners.unspecific;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.config.ConfigCache;
|
import me.youhavetrouble.preventstabby.config.ConfigCache;
|
||||||
import eu.endermite.togglepvp.util.BoundingBoxUtil;
|
import me.youhavetrouble.preventstabby.util.BoundingBoxUtil;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
@@ -17,7 +18,7 @@ import org.bukkit.util.BoundingBox;
|
|||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class LavaDumpAndIgniteListener implements Listener {
|
public class LavaDumpAndIgniteListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -26,7 +27,7 @@ public class LavaDumpAndIgniteListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onLavaDump(org.bukkit.event.player.PlayerBucketEmptyEvent event) {
|
public void onLavaDump(org.bukkit.event.player.PlayerBucketEmptyEvent event) {
|
||||||
|
|
||||||
ConfigCache config = TogglePvp.getPlugin().getConfigCache();
|
ConfigCache config = PreventStabby.getPlugin().getConfigCache();
|
||||||
|
|
||||||
if (!config.isLava_and_fire_stopper_enabled())
|
if (!config.isLava_and_fire_stopper_enabled())
|
||||||
return;
|
return;
|
||||||
@@ -41,12 +42,12 @@ public class LavaDumpAndIgniteListener implements Listener {
|
|||||||
if (entity instanceof Player) {
|
if (entity instanceof Player) {
|
||||||
UUID victim = entity.getUniqueId();
|
UUID victim = entity.getUniqueId();
|
||||||
if (victim != damager) {
|
if (victim != damager) {
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(victim, damager)) {
|
if (PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(victim, damager)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@@ -59,12 +60,12 @@ public class LavaDumpAndIgniteListener implements Listener {
|
|||||||
}
|
}
|
||||||
|
|
||||||
UUID victim = tameable.getOwner().getUniqueId();
|
UUID victim = tameable.getOwner().getUniqueId();
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(victim, damager)) {
|
if (PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(victim, damager)) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@@ -80,7 +81,7 @@ public class LavaDumpAndIgniteListener implements Listener {
|
|||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onIgnite(org.bukkit.event.block.BlockIgniteEvent event) {
|
public void onIgnite(org.bukkit.event.block.BlockIgniteEvent event) {
|
||||||
|
|
||||||
ConfigCache config = TogglePvp.getPlugin().getConfigCache();
|
ConfigCache config = PreventStabby.getPlugin().getConfigCache();
|
||||||
|
|
||||||
if (!config.isLava_and_fire_stopper_enabled())
|
if (!config.isLava_and_fire_stopper_enabled())
|
||||||
return;
|
return;
|
||||||
@@ -98,7 +99,7 @@ public class LavaDumpAndIgniteListener implements Listener {
|
|||||||
if (victim == damager)
|
if (victim == damager)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@@ -113,7 +114,7 @@ public class LavaDumpAndIgniteListener implements Listener {
|
|||||||
if (victim == damager)
|
if (victim == damager)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+7
-6
@@ -1,12 +1,13 @@
|
|||||||
package eu.endermite.togglepvp.listeners.unspecific;
|
package me.youhavetrouble.preventstabby.listeners.unspecific;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.entity.*;
|
import org.bukkit.entity.*;
|
||||||
import org.bukkit.event.EventHandler;
|
import org.bukkit.event.EventHandler;
|
||||||
import org.bukkit.event.EventPriority;
|
import org.bukkit.event.EventPriority;
|
||||||
import org.bukkit.event.Listener;
|
import org.bukkit.event.Listener;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class LightningBlockIgniteListener implements Listener {
|
public class LightningBlockIgniteListener implements Listener {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -22,12 +23,12 @@ public class LightningBlockIgniteListener implements Listener {
|
|||||||
if (entity instanceof Player) {
|
if (entity instanceof Player) {
|
||||||
Player victim = (Player) entity;
|
Player victim = (Player) entity;
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(victim.getUniqueId())) {
|
if (PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(victim.getUniqueId())) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!TogglePvp.getPlugin().getSmartCache().getPlayerData(victim.getUniqueId()).isPvpEnabled()) {
|
if (!PreventStabby.getPlugin().getSmartCache().getPlayerData(victim.getUniqueId()).isPvpEnabled()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -36,7 +37,7 @@ public class LightningBlockIgniteListener implements Listener {
|
|||||||
if (victim.getOwner() == null) {
|
if (victim.getOwner() == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!TogglePvp.getPlugin().getSmartCache().getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled()) {
|
if (!PreventStabby.getPlugin().getSmartCache().getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled()) {
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
+10
-9
@@ -1,9 +1,10 @@
|
|||||||
package eu.endermite.togglepvp.listeners.unspecific;
|
package me.youhavetrouble.preventstabby.listeners.unspecific;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.config.ConfigCache;
|
import me.youhavetrouble.preventstabby.config.ConfigCache;
|
||||||
import eu.endermite.togglepvp.util.BoundingBoxUtil;
|
import me.youhavetrouble.preventstabby.util.BoundingBoxUtil;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
|
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.Material;
|
import org.bukkit.Material;
|
||||||
import org.bukkit.entity.Entity;
|
import org.bukkit.entity.Entity;
|
||||||
@@ -16,13 +17,13 @@ import org.bukkit.util.BoundingBox;
|
|||||||
|
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
@eu.endermite.togglepvp.util.Listener
|
@PreventStabbyListener
|
||||||
public class PlaceWitherRoseListener implements Listener {
|
public class PlaceWitherRoseListener implements Listener {
|
||||||
|
|
||||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||||
public void onPlayerWitherRosePlace(org.bukkit.event.block.BlockPlaceEvent event) {
|
public void onPlayerWitherRosePlace(org.bukkit.event.block.BlockPlaceEvent event) {
|
||||||
|
|
||||||
ConfigCache config = TogglePvp.getPlugin().getConfigCache();
|
ConfigCache config = PreventStabby.getPlugin().getConfigCache();
|
||||||
|
|
||||||
if (!config.isLava_and_fire_stopper_enabled())
|
if (!config.isLava_and_fire_stopper_enabled())
|
||||||
return;
|
return;
|
||||||
@@ -38,7 +39,7 @@ public class PlaceWitherRoseListener implements Listener {
|
|||||||
if (victim == damager)
|
if (victim == damager)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
@@ -52,7 +53,7 @@ public class PlaceWitherRoseListener implements Listener {
|
|||||||
if (victim == damager)
|
if (victim == damager)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
|
||||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||||
else
|
else
|
||||||
event.setCancelled(true);
|
event.setCancelled(true);
|
||||||
+12
-6
@@ -1,11 +1,13 @@
|
|||||||
package eu.endermite.togglepvp.players;
|
package me.youhavetrouble.preventstabby.players;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
public class PlayerData {
|
public class PlayerData {
|
||||||
|
|
||||||
|
private UUID playerUuid;
|
||||||
private long cachetime, combattime, loginTimestamp, teleportTimestamp;
|
private long cachetime, combattime, loginTimestamp, teleportTimestamp;
|
||||||
private boolean pvpEnabled, lastCombatCheck, inCombat;
|
private boolean pvpEnabled, lastCombatCheck, inCombat;
|
||||||
|
|
||||||
@@ -18,6 +20,10 @@ public class PlayerData {
|
|||||||
refreshCachetime();
|
refreshCachetime();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UUID getPlayerUuid() {
|
||||||
|
return playerUuid;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isPvpEnabled() {
|
public boolean isPvpEnabled() {
|
||||||
return pvpEnabled;
|
return pvpEnabled;
|
||||||
}
|
}
|
||||||
@@ -31,7 +37,7 @@ public class PlayerData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void refreshCachetime() {
|
public void refreshCachetime() {
|
||||||
this.cachetime = Instant.now().getEpochSecond()+ TogglePvp.getPlugin().getConfigCache().getCache_time();
|
this.cachetime = Instant.now().getEpochSecond()+ PreventStabby.getPlugin().getConfigCache().getCache_time();
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getCombattime() {
|
public long getCombattime() {
|
||||||
@@ -43,7 +49,7 @@ public class PlayerData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void refreshCombatTime() {
|
public void refreshCombatTime() {
|
||||||
this.combattime = Instant.now().getEpochSecond()+ TogglePvp.getPlugin().getConfigCache().getCombat_time();
|
this.combattime = Instant.now().getEpochSecond()+ PreventStabby.getPlugin().getConfigCache().getCombat_time();
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getLastCombatCheck() {
|
public boolean getLastCombatCheck() {
|
||||||
@@ -55,7 +61,7 @@ public class PlayerData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setLoginTimestamp(long loginTimestamp) {
|
public void setLoginTimestamp(long loginTimestamp) {
|
||||||
this.loginTimestamp = loginTimestamp + TogglePvp.getPlugin().getConfigCache().getLogin_protection_time()-1;
|
this.loginTimestamp = loginTimestamp + PreventStabby.getPlugin().getConfigCache().getLogin_protection_time()-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getLoginTimestamp() {
|
public long getLoginTimestamp() {
|
||||||
@@ -63,7 +69,7 @@ public class PlayerData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void setTeleportTimestamp(long teleportTimestamp) {
|
public void setTeleportTimestamp(long teleportTimestamp) {
|
||||||
this.teleportTimestamp = teleportTimestamp + TogglePvp.getPlugin().getConfigCache().getTeleport_protection_time()-1;
|
this.teleportTimestamp = teleportTimestamp + PreventStabby.getPlugin().getConfigCache().getTeleport_protection_time()-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getTeleportTimestamp() {
|
public long getTeleportTimestamp() {
|
||||||
+26
-19
@@ -1,10 +1,10 @@
|
|||||||
package eu.endermite.togglepvp.players;
|
package me.youhavetrouble.preventstabby.players;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.api.event.PlayerLeaveCombatEvent;
|
import me.youhavetrouble.preventstabby.api.event.PlayerLeaveCombatEvent;
|
||||||
import eu.endermite.togglepvp.config.ConfigCache;
|
import me.youhavetrouble.preventstabby.config.ConfigCache;
|
||||||
import eu.endermite.togglepvp.util.CombatTimer;
|
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||||
import eu.endermite.togglepvp.util.PluginMessages;
|
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@@ -12,6 +12,7 @@ import org.bukkit.scheduler.BukkitTask;
|
|||||||
|
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
|
|
||||||
public class PlayerManager {
|
public class PlayerManager {
|
||||||
@@ -23,18 +24,22 @@ public class PlayerManager {
|
|||||||
|
|
||||||
public PlayerManager() {
|
public PlayerManager() {
|
||||||
for (Player p : Bukkit.getOnlinePlayers()) {
|
for (Player p : Bukkit.getOnlinePlayers()) {
|
||||||
PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(p.getUniqueId());
|
PlayerData playerData = PreventStabby.getPlugin().getSqLite().getPlayerInfo(p.getUniqueId());
|
||||||
playerList.put(p.getUniqueId(), playerData);
|
playerList.put(p.getUniqueId(), playerData);
|
||||||
}
|
}
|
||||||
|
|
||||||
combatTrackerTask = Bukkit.getScheduler().runTaskTimerAsynchronously(TogglePvp.getPlugin(), () -> playerList.forEach(((uuid, playerData) -> {
|
combatTrackerTask = Bukkit.getScheduler().runTaskTimerAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||||
|
Iterator<PlayerData> iterator = playerList.values().iterator();
|
||||||
|
while (iterator.hasNext()) {
|
||||||
|
PlayerData playerData = iterator.next();
|
||||||
|
UUID uuid = playerData.getPlayerUuid();
|
||||||
if (!CombatTimer.isInCombat(uuid)) {
|
if (!CombatTimer.isInCombat(uuid)) {
|
||||||
if (playerData.getLastCombatCheck()) {
|
if (playerData.getLastCombatCheck()) {
|
||||||
Player player = Bukkit.getPlayer(uuid);
|
Player player = Bukkit.getPlayer(uuid);
|
||||||
if (player == null)
|
if (player == null)
|
||||||
return;
|
return;
|
||||||
PlayerLeaveCombatEvent playerLeaveCombatEvent = new PlayerLeaveCombatEvent(player);
|
PlayerLeaveCombatEvent playerLeaveCombatEvent = new PlayerLeaveCombatEvent(player);
|
||||||
Bukkit.getScheduler().runTask(TogglePvp.getPlugin(), () -> {
|
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||||
Bukkit.getPluginManager().callEvent(playerLeaveCombatEvent);
|
Bukkit.getPluginManager().callEvent(playerLeaveCombatEvent);
|
||||||
if (playerLeaveCombatEvent.isCancelled()) {
|
if (playerLeaveCombatEvent.isCancelled()) {
|
||||||
playerData.refreshCombatTime();
|
playerData.refreshCombatTime();
|
||||||
@@ -42,13 +47,15 @@ public class PlayerManager {
|
|||||||
}
|
}
|
||||||
playerData.setLastCombatCheck(false);
|
playerData.setLastCombatCheck(false);
|
||||||
playerData.setInCombat(false);
|
playerData.setInCombat(false);
|
||||||
PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getLeaving_combat());
|
PluginMessages.sendActionBar(uuid, PreventStabby.getPlugin().getConfigCache().getLeaving_combat());
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
playerData.setLastCombatCheck(true);
|
playerData.setLastCombatCheck(true);
|
||||||
}
|
}
|
||||||
})), 20, 20);
|
}
|
||||||
|
}, 20, 20);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -80,15 +87,15 @@ public class PlayerManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean getPlayerPvPState(UUID uuid) {
|
public boolean getPlayerPvPState(UUID uuid) {
|
||||||
return TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).isPvpEnabled();
|
return PreventStabby.getPlugin().getSmartCache().getPlayerData(uuid).isPvpEnabled();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPlayerPvpState(UUID uuid, boolean state) {
|
public void setPlayerPvpState(UUID uuid, boolean state) {
|
||||||
TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).setPvpEnabled(state);
|
PreventStabby.getPlugin().getSmartCache().getPlayerData(uuid).setPvpEnabled(state);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean togglePlayerPvpState(UUID uuid) {
|
public boolean togglePlayerPvpState(UUID uuid) {
|
||||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
if (smartCache.getPlayerData(uuid).isPvpEnabled()) {
|
if (smartCache.getPlayerData(uuid).isPvpEnabled()) {
|
||||||
smartCache.getPlayerData(uuid).setPvpEnabled(false);
|
smartCache.getPlayerData(uuid).setPvpEnabled(false);
|
||||||
return false;
|
return false;
|
||||||
@@ -113,18 +120,18 @@ public class PlayerManager {
|
|||||||
if (checkVictimSpawnProtection && hasTeleportProtection(victim))
|
if (checkVictimSpawnProtection && hasTeleportProtection(victim))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
|
|
||||||
if (!smartCache.getPlayerData(attacker).isPvpEnabled()) {
|
if (!smartCache.getPlayerData(attacker).isPvpEnabled()) {
|
||||||
if (sendDenyMessage) {
|
if (sendDenyMessage) {
|
||||||
ConfigCache config = TogglePvp.getPlugin().getConfigCache();
|
ConfigCache config = PreventStabby.getPlugin().getConfigCache();
|
||||||
PluginMessages.sendActionBar(attacker, config.getCannot_attack_attacker());
|
PluginMessages.sendActionBar(attacker, config.getCannot_attack_attacker());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (!smartCache.getPlayerData(victim).isPvpEnabled()) {
|
if (!smartCache.getPlayerData(victim).isPvpEnabled()) {
|
||||||
if (sendDenyMessage) {
|
if (sendDenyMessage) {
|
||||||
ConfigCache config = TogglePvp.getPlugin().getConfigCache();
|
ConfigCache config = PreventStabby.getPlugin().getConfigCache();
|
||||||
PluginMessages.sendActionBar(attacker, config.getCannot_attack_victim());
|
PluginMessages.sendActionBar(attacker, config.getCannot_attack_victim());
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
@@ -137,7 +144,7 @@ public class PlayerManager {
|
|||||||
* @return true if any of the provided UUIDs has spawn protection
|
* @return true if any of the provided UUIDs has spawn protection
|
||||||
*/
|
*/
|
||||||
public boolean hasLoginProtection(UUID... uuid) {
|
public boolean hasLoginProtection(UUID... uuid) {
|
||||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
for (UUID checkedUuid : uuid) {
|
for (UUID checkedUuid : uuid) {
|
||||||
if (Instant.now().getEpochSecond() < smartCache.getPlayerData(checkedUuid).getLoginTimestamp())
|
if (Instant.now().getEpochSecond() < smartCache.getPlayerData(checkedUuid).getLoginTimestamp())
|
||||||
return true;
|
return true;
|
||||||
@@ -146,7 +153,7 @@ public class PlayerManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasTeleportProtection(UUID uuid) {
|
public boolean hasTeleportProtection(UUID uuid) {
|
||||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||||
return Instant.now().getEpochSecond() < smartCache.getPlayerData(uuid).getTeleportTimestamp();
|
return Instant.now().getEpochSecond() < smartCache.getPlayerData(uuid).getTeleportTimestamp();
|
||||||
}
|
}
|
||||||
|
|
||||||
+13
-13
@@ -1,6 +1,6 @@
|
|||||||
package eu.endermite.togglepvp.players;
|
package me.youhavetrouble.preventstabby.players;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import java.time.Instant;
|
import java.time.Instant;
|
||||||
@@ -10,20 +10,20 @@ import java.util.UUID;
|
|||||||
public class SmartCache {
|
public class SmartCache {
|
||||||
|
|
||||||
public void runSmartCache() {
|
public void runSmartCache() {
|
||||||
Bukkit.getScheduler().runTaskTimerAsynchronously(TogglePvp.getPlugin(), () -> {
|
Bukkit.getScheduler().runTaskTimerAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||||
// Refresh cache timer if player is online
|
// Refresh cache timer if player is online
|
||||||
for (Map.Entry<UUID, PlayerData> e : TogglePvp.getPlugin().getPlayerManager().getPlayerList().entrySet()) {
|
for (Map.Entry<UUID, PlayerData> e : PreventStabby.getPlugin().getPlayerManager().getPlayerList().entrySet()) {
|
||||||
try {
|
try {
|
||||||
Player player = Bukkit.getPlayer(e.getKey());
|
Player player = Bukkit.getPlayer(e.getKey());
|
||||||
if (player != null && player.isOnline()) {
|
if (player != null && player.isOnline()) {
|
||||||
TogglePvp.getPlugin().getPlayerManager().refreshPlayersCacheTime(e.getKey());
|
PreventStabby.getPlugin().getPlayerManager().refreshPlayersCacheTime(e.getKey());
|
||||||
}
|
}
|
||||||
} catch (NullPointerException ignored) {}
|
} catch (NullPointerException ignored) {}
|
||||||
}
|
}
|
||||||
// Check for entries that should be invalidated
|
// Check for entries that should be invalidated
|
||||||
try {
|
try {
|
||||||
long now = Instant.now().getEpochSecond();
|
long now = Instant.now().getEpochSecond();
|
||||||
TogglePvp.getPlugin().getPlayerManager().getPlayerList().entrySet()
|
PreventStabby.getPlugin().getPlayerManager().getPlayerList().entrySet()
|
||||||
.removeIf(cacheEntry -> cacheEntry.getValue().getCachetime() < now);
|
.removeIf(cacheEntry -> cacheEntry.getValue().getCachetime() < now);
|
||||||
} catch (Exception ignored) {}
|
} catch (Exception ignored) {}
|
||||||
}, 100, 100);
|
}, 100, 100);
|
||||||
@@ -32,13 +32,13 @@ public class SmartCache {
|
|||||||
public PlayerData getPlayerData(UUID uuid) {
|
public PlayerData getPlayerData(UUID uuid) {
|
||||||
// Try to get data from cache and refresh it
|
// Try to get data from cache and refresh it
|
||||||
try {
|
try {
|
||||||
TogglePvp.getPlugin().getPlayerManager().refreshPlayersCacheTime(uuid);
|
PreventStabby.getPlugin().getPlayerManager().refreshPlayersCacheTime(uuid);
|
||||||
return TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid);
|
return PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid);
|
||||||
} catch (NullPointerException e) {
|
} catch (NullPointerException e) {
|
||||||
// If player data is not in cache get it from database and put into cache
|
// If player data is not in cache get it from database and put into cache
|
||||||
try {
|
try {
|
||||||
PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(uuid);
|
PlayerData playerData = PreventStabby.getPlugin().getSqLite().getPlayerInfo(uuid);
|
||||||
TogglePvp.getPlugin().getPlayerManager().addPlayer(uuid, playerData);
|
PreventStabby.getPlugin().getPlayerManager().addPlayer(uuid, playerData);
|
||||||
return playerData;
|
return playerData;
|
||||||
} catch (NullPointerException ex) {
|
} catch (NullPointerException ex) {
|
||||||
// Return false if database call fails
|
// Return false if database call fails
|
||||||
@@ -49,11 +49,11 @@ public class SmartCache {
|
|||||||
|
|
||||||
public void setPlayerPvpState(UUID uuid, boolean state) {
|
public void setPlayerPvpState(UUID uuid, boolean state) {
|
||||||
// If player is in cache update that
|
// If player is in cache update that
|
||||||
if (TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid) != null) {
|
if (PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid) != null) {
|
||||||
TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid).setPvpEnabled(state);
|
PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid).setPvpEnabled(state);
|
||||||
}
|
}
|
||||||
// Update the database aswell
|
// Update the database aswell
|
||||||
TogglePvp.getPlugin().getSqLite().updatePlayerInfo(uuid, new PlayerData(state));
|
PreventStabby.getPlugin().getSqLite().updatePlayerInfo(uuid, new PlayerData(state));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
package eu.endermite.togglepvp.util;
|
package me.youhavetrouble.preventstabby.util;
|
||||||
|
|
||||||
import org.bukkit.Location;
|
import org.bukkit.Location;
|
||||||
import org.bukkit.util.BoundingBox;
|
import org.bukkit.util.BoundingBox;
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.util;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.api.event.PlayerEnterCombatEvent;
|
||||||
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class CombatTimer {
|
||||||
|
|
||||||
|
public static void refreshPlayersCombatTime(UUID uuid) {
|
||||||
|
try {
|
||||||
|
long now = Instant.now().getEpochSecond();
|
||||||
|
long combattime = PreventStabby.getPlugin().getSmartCache().getPlayerData(uuid).getCombattime();
|
||||||
|
|
||||||
|
Player player = Bukkit.getPlayer(uuid);
|
||||||
|
if (player == null || !player.isOnline()) return;
|
||||||
|
PlayerEnterCombatEvent playerEnterCombatEvent = new PlayerEnterCombatEvent(player);
|
||||||
|
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||||
|
Bukkit.getPluginManager().callEvent(playerEnterCombatEvent);
|
||||||
|
if (playerEnterCombatEvent.isCancelled()) return;
|
||||||
|
PreventStabby.getPlugin().getPlayerManager().refreshPlayersCombatTime(uuid);
|
||||||
|
|
||||||
|
if (combattime <= now) {
|
||||||
|
PluginMessages.sendActionBar(uuid, PreventStabby.getPlugin().getConfigCache().getEntering_combat());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (Exception ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void refreshPlayersCombatTime(UUID... uuid) {
|
||||||
|
for (UUID id : uuid) {
|
||||||
|
refreshPlayersCombatTime(id);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isInCombat(UUID uuid) {
|
||||||
|
try {
|
||||||
|
return PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid).getCombattime() >= Instant.now().getEpochSecond();
|
||||||
|
} catch (Exception e) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+5
-6
@@ -1,7 +1,7 @@
|
|||||||
package eu.endermite.togglepvp.util;
|
package me.youhavetrouble.preventstabby.util;
|
||||||
|
|
||||||
import eu.endermite.togglepvp.TogglePvp;
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
import eu.endermite.togglepvp.players.PlayerData;
|
import me.youhavetrouble.preventstabby.players.PlayerData;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.sql.*;
|
import java.sql.*;
|
||||||
@@ -52,12 +52,11 @@ public class DatabaseSQLite {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public PlayerData getPlayerInfo(UUID uuid) {
|
public PlayerData getPlayerInfo(UUID uuid) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Connection conn = DriverManager.getConnection(url);
|
Connection conn = DriverManager.getConnection(url);
|
||||||
Statement insertnewuser = conn.createStatement();
|
Statement insertnewuser = conn.createStatement();
|
||||||
try {
|
try {
|
||||||
String newuserdata = "INSERT OR IGNORE INTO `players` (player_uuid, pvpenabled) VALUES ('" + uuid.toString() + "', " + TogglePvp.getPlugin().getConfigCache().isPvp_enabled_by_default() + ")";
|
String newuserdata = "INSERT OR IGNORE INTO `players` (player_uuid, pvpenabled) VALUES ('" + uuid.toString() + "', " + PreventStabby.getPlugin().getConfigCache().isPvp_enabled_by_default() + ")";
|
||||||
insertnewuser.execute(newuserdata);
|
insertnewuser.execute(newuserdata);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
if (e.getErrorCode() != 19) {
|
if (e.getErrorCode() != 19) {
|
||||||
@@ -85,7 +84,7 @@ public class DatabaseSQLite {
|
|||||||
String newuserdata = "UPDATE `players` SET pvpenabled = "+data.isPvpEnabled()+" WHERE `player_uuid` = '"+uuid.toString()+"';";
|
String newuserdata = "UPDATE `players` SET pvpenabled = "+data.isPvpEnabled()+" WHERE `player_uuid` = '"+uuid.toString()+"';";
|
||||||
insertnewuser.execute(newuserdata);
|
insertnewuser.execute(newuserdata);
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
TogglePvp.getPlugin().getLogger().severe("Error while saving player data!");
|
PreventStabby.getPlugin().getLogger().severe("Error while saving player data!");
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
} catch (SQLException throwables) {
|
} catch (SQLException throwables) {
|
||||||
+2
-1
@@ -1,4 +1,4 @@
|
|||||||
package eu.endermite.togglepvp.util;
|
package me.youhavetrouble.preventstabby.util;
|
||||||
|
|
||||||
import net.md_5.bungee.api.ChatMessageType;
|
import net.md_5.bungee.api.ChatMessageType;
|
||||||
import net.md_5.bungee.api.chat.BaseComponent;
|
import net.md_5.bungee.api.chat.BaseComponent;
|
||||||
@@ -23,6 +23,7 @@ public class PluginMessages {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void sendActionBar(Player player, String message) {
|
public static void sendActionBar(Player player, String message) {
|
||||||
|
// TODO use adventure
|
||||||
BaseComponent[] component = TextComponent.fromLegacyText(parseMessage(message));
|
BaseComponent[] component = TextComponent.fromLegacyText(parseMessage(message));
|
||||||
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, component);
|
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, component);
|
||||||
}
|
}
|
||||||
+2
-2
@@ -1,4 +1,4 @@
|
|||||||
package eu.endermite.togglepvp.util;
|
package me.youhavetrouble.preventstabby.util;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@@ -8,4 +8,4 @@ import java.lang.annotation.Target;
|
|||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
@Target({ElementType.TYPE})
|
@Target({ElementType.TYPE})
|
||||||
|
|
||||||
public @interface Listener {}
|
public @interface PreventStabbyListener {}
|
||||||
@@ -0,0 +1,69 @@
|
|||||||
|
package me.youhavetrouble.preventstabby.util;
|
||||||
|
|
||||||
|
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||||
|
import me.youhavetrouble.preventstabby.config.ConfigCache;
|
||||||
|
import org.bukkit.entity.Entity;
|
||||||
|
import org.bukkit.entity.Player;
|
||||||
|
import org.bukkit.potion.PotionEffectType;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
public class Util {
|
||||||
|
|
||||||
|
private static final HashSet<PotionEffectType> harmfulPotions = new HashSet<>();
|
||||||
|
|
||||||
|
public static void initData() {
|
||||||
|
harmfulPotions.add(PotionEffectType.BLINDNESS);
|
||||||
|
harmfulPotions.add(PotionEffectType.CONFUSION);
|
||||||
|
harmfulPotions.add(PotionEffectType.HARM);
|
||||||
|
harmfulPotions.add(PotionEffectType.HUNGER);
|
||||||
|
harmfulPotions.add(PotionEffectType.POISON);
|
||||||
|
harmfulPotions.add(PotionEffectType.SLOW_DIGGING);
|
||||||
|
harmfulPotions.add(PotionEffectType.WEAKNESS);
|
||||||
|
harmfulPotions.add(PotionEffectType.SLOW);
|
||||||
|
harmfulPotions.add(PotionEffectType.WITHER);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param attacker Player attacking the mount
|
||||||
|
* @param mount Entity being ridden
|
||||||
|
* @return true if event should be cancelled
|
||||||
|
*/
|
||||||
|
public static boolean processMountAttack(UUID attacker, Entity mount) {
|
||||||
|
|
||||||
|
// Don't cancel attacks on players that have passengers
|
||||||
|
if (mount instanceof Player) return false;
|
||||||
|
|
||||||
|
ConfigCache config = PreventStabby.getPlugin().getConfigCache();
|
||||||
|
|
||||||
|
if (!PreventStabby.getPlugin().getPlayerManager().getPlayerPvPState(attacker)) {
|
||||||
|
PluginMessages.sendActionBar(attacker, config.getCannot_attack_mounts_attacker());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
Set<UUID> playerPassengersWithPvpEnabled = new HashSet<>();
|
||||||
|
|
||||||
|
for (Entity passenger : mount.getPassengers()) {
|
||||||
|
if (!(passenger instanceof Player)) continue;
|
||||||
|
Player player = (Player) passenger;
|
||||||
|
if (PreventStabby.getPlugin().getPlayerManager().getPlayerPvPState(player.getUniqueId()))
|
||||||
|
playerPassengersWithPvpEnabled.add(player.getUniqueId());
|
||||||
|
}
|
||||||
|
|
||||||
|
if (playerPassengersWithPvpEnabled.isEmpty()) {
|
||||||
|
PluginMessages.sendActionBar(attacker, config.getCannot_attack_mounts_victim());
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
playerPassengersWithPvpEnabled.forEach(CombatTimer::refreshPlayersCombatTime);
|
||||||
|
CombatTimer.refreshPlayersCombatTime(attacker);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isPotionEffectHarmful(PotionEffectType effect) {
|
||||||
|
return harmfulPotions.contains(effect);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,12 +1,13 @@
|
|||||||
name: TogglePvP
|
name: TogglePvP
|
||||||
version: ${project.version}
|
version: ${project.version}
|
||||||
main: eu.endermite.togglepvp.TogglePvp
|
main: eu.endermite.togglepvp.PreventStabby
|
||||||
authors: [YouHaveTrouble]
|
authors: [YouHaveTrouble]
|
||||||
api-version: 1.13
|
api-version: 1.13
|
||||||
description: PvP toggle plugin
|
description: Stop people from getting stabbed!
|
||||||
commands:
|
commands:
|
||||||
pvp:
|
preventstabby:
|
||||||
usage: /pvp [args]
|
aliases:
|
||||||
|
- pvp
|
||||||
permissions:
|
permissions:
|
||||||
toglepvp.combatcommandblock.bypass:
|
toglepvp.combatcommandblock.bypass:
|
||||||
default: op
|
default: op
|
||||||
|
|||||||
Reference in New Issue
Block a user