diff --git a/pom.xml b/pom.xml
index 20698a4..25439b1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,14 +4,14 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- eu.endermite
- TogglePvP
+ me.youhavetrouble
+ PreventStabby
1.2
jar
- TogglePvP
+ PreventStabby
- PvP toggle plugin
+ Stop people from getting stabbed!
1.8
UTF-8
diff --git a/readme.md b/readme.md
index a7ba21e..f50d6e6 100644
--- a/readme.md
+++ b/readme.md
@@ -1,21 +1,21 @@
-TogglePvP ⚔
+PreventStabby ⚔
Use Issues section to report bugs or submit suggestions.
Commands
-Permission: togglepvp.command (given by default to everyone) :
+Permission: preventstabby.command (given by default to everyone) :
- /pvp help- displays help message
-Permission: togglepvp.command.toggle (given by default to everyone) :
+Permission: preventstabby.command.toggle (given by default to everyone) :
- /pvp toggle - toggles PvP
- /pvp on - enables PvP (aliases: enable)
- /pvp off - disables PvP (aliases: disable)
-Permission: togglepvp.command.toggle.others (given by default to ops) :
+Permission: preventstabby.command.toggle.others (given by default to ops) :
- /pvp toggle [player] - toggles other player's PvP
- /pvp on [player] - enables other player's PvP (aliases: enable)
diff --git a/src/main/java/eu/endermite/togglepvp/commands/ReloadCommand.java b/src/main/java/eu/endermite/togglepvp/commands/ReloadCommand.java
deleted file mode 100644
index 88ada13..0000000
--- a/src/main/java/eu/endermite/togglepvp/commands/ReloadCommand.java
+++ /dev/null
@@ -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);
- });
-
- }
-
-}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitBySplashPotionListener.java b/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitBySplashPotionListener.java
deleted file mode 100644
index 9aef68d..0000000
--- a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitBySplashPotionListener.java
+++ /dev/null
@@ -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 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);
- }
- }
- }
- }
-}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerJoinAndLeaveListener.java b/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerJoinAndLeaveListener.java
deleted file mode 100644
index b0b8a47..0000000
--- a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerJoinAndLeaveListener.java
+++ /dev/null
@@ -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());
-
-
- }
-}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/toggles/CombatCommandListener.java b/src/main/java/eu/endermite/togglepvp/listeners/toggles/CombatCommandListener.java
deleted file mode 100644
index c8c01dd..0000000
--- a/src/main/java/eu/endermite/togglepvp/listeners/toggles/CombatCommandListener.java
+++ /dev/null
@@ -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());
-
- }
-
-}
diff --git a/src/main/java/eu/endermite/togglepvp/util/CombatTimer.java b/src/main/java/eu/endermite/togglepvp/util/CombatTimer.java
deleted file mode 100644
index e114840..0000000
--- a/src/main/java/eu/endermite/togglepvp/util/CombatTimer.java
+++ /dev/null
@@ -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;
- }
- }
-
-}
diff --git a/src/main/java/eu/endermite/togglepvp/TogglePvp.java b/src/main/java/me/youhavetrouble/preventstabby/PreventStabby.java
similarity index 78%
rename from src/main/java/eu/endermite/togglepvp/TogglePvp.java
rename to src/main/java/me/youhavetrouble/preventstabby/PreventStabby.java
index f80f78d..9af9646 100644
--- a/src/main/java/eu/endermite/togglepvp/TogglePvp.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/PreventStabby.java
@@ -1,12 +1,13 @@
-package eu.endermite.togglepvp;
+package me.youhavetrouble.preventstabby;
-import eu.endermite.togglepvp.commands.MainCommand;
-import eu.endermite.togglepvp.config.ConfigCache;
-import eu.endermite.togglepvp.players.PlayerManager;
-import eu.endermite.togglepvp.players.SmartCache;
-import eu.endermite.togglepvp.util.Listener;
-import eu.endermite.togglepvp.util.DatabaseSQLite;
+import me.youhavetrouble.preventstabby.commands.MainCommand;
+import me.youhavetrouble.preventstabby.config.ConfigCache;
+import me.youhavetrouble.preventstabby.players.PlayerManager;
+import me.youhavetrouble.preventstabby.players.SmartCache;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
+import me.youhavetrouble.preventstabby.util.DatabaseSQLite;
import lombok.Getter;
+import me.youhavetrouble.preventstabby.util.Util;
import org.bstats.bukkit.Metrics;
import org.bukkit.command.CommandSender;
import org.bukkit.command.PluginCommand;
@@ -16,9 +17,9 @@ import java.io.File;
import java.lang.reflect.InvocationTargetException;
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;
protected PlayerManager playerManager;
protected DatabaseSQLite sqLite;
@@ -27,9 +28,10 @@ public final class TogglePvp extends JavaPlugin {
@Override
public void onEnable() {
plugin = this;
+ Util.initData();
reloadPluginConfig();
- File dbFile = new File("plugins/TogglePvP");
- sqLite = new DatabaseSQLite("jdbc:sqlite:plugins/TogglePvP/TogglePvP.db", dbFile);
+ File dbFile = new File("plugins/PreventStabby");
+ sqLite = new DatabaseSQLite("jdbc:sqlite:plugins/PreventStabby/TogglePvP.db", dbFile);
sqLite.createDatabaseFile();
if (!sqLite.testConnection()) {
getLogger().severe("Error with accessing database. Check if server has write rights.");
@@ -42,8 +44,8 @@ public final class TogglePvp extends JavaPlugin {
smartCache.runSmartCache();
// Register listeners
- Reflections reflections = new Reflections(new String[]{"eu.endermite.togglepvp"});
- Set> listenerClasses = reflections.getTypesAnnotatedWith(Listener.class);
+ Reflections reflections = new Reflections(new String[]{"eu.endermite.preventstabby"});
+ Set> listenerClasses = reflections.getTypesAnnotatedWith(PreventStabbyListener.class);
listenerClasses.forEach((listener)-> {
try {
getServer().getPluginManager().registerEvents((org.bukkit.event.Listener) listener.getConstructor().newInstance(), this);
diff --git a/src/main/java/eu/endermite/togglepvp/api/TogglePvpAPI.java b/src/main/java/me/youhavetrouble/preventstabby/api/TogglePvpAPI.java
similarity index 75%
rename from src/main/java/eu/endermite/togglepvp/api/TogglePvpAPI.java
rename to src/main/java/me/youhavetrouble/preventstabby/api/TogglePvpAPI.java
index 02433ef..2d53cad 100644
--- a/src/main/java/eu/endermite/togglepvp/api/TogglePvpAPI.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/api/TogglePvpAPI.java
@@ -1,7 +1,7 @@
-package eu.endermite.togglepvp.api;
+package me.youhavetrouble.preventstabby.api;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
import org.bukkit.entity.Player;
import java.util.UUID;
@@ -13,7 +13,7 @@ public class TogglePvpAPI {
* @param newState State to set
*/
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
*/
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
*/
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
*/
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
*/
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
*/
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
*/
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
*/
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
*/
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
*/
public static boolean hasLoginProtection(Player player) {
- return TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(player.getUniqueId());
+ return PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(player.getUniqueId());
}
/**
diff --git a/src/main/java/eu/endermite/togglepvp/api/event/PlayerEnterCombatEvent.java b/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerEnterCombatEvent.java
similarity index 78%
rename from src/main/java/eu/endermite/togglepvp/api/event/PlayerEnterCombatEvent.java
rename to src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerEnterCombatEvent.java
index 56b48c4..ee9e93a 100644
--- a/src/main/java/eu/endermite/togglepvp/api/event/PlayerEnterCombatEvent.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerEnterCombatEvent.java
@@ -1,7 +1,7 @@
-package eu.endermite.togglepvp.api.event;
+package me.youhavetrouble.preventstabby.api.event;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.players.PlayerData;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.players.PlayerData;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
@@ -27,7 +27,7 @@ public class PlayerEnterCombatEvent extends Event implements Cancellable {
}
public PlayerData getPlayerData() {
- return TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
+ return PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
}
@Override
diff --git a/src/main/java/eu/endermite/togglepvp/api/event/PlayerLeaveCombatEvent.java b/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerLeaveCombatEvent.java
similarity index 79%
rename from src/main/java/eu/endermite/togglepvp/api/event/PlayerLeaveCombatEvent.java
rename to src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerLeaveCombatEvent.java
index 070e506..b6e3398 100644
--- a/src/main/java/eu/endermite/togglepvp/api/event/PlayerLeaveCombatEvent.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerLeaveCombatEvent.java
@@ -1,7 +1,7 @@
-package eu.endermite.togglepvp.api.event;
+package me.youhavetrouble.preventstabby.api.event;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.players.PlayerData;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.players.PlayerData;
import org.bukkit.entity.Player;
import org.bukkit.event.Cancellable;
import org.bukkit.event.Event;
@@ -27,7 +27,7 @@ public class PlayerLeaveCombatEvent extends Event implements Cancellable {
}
public PlayerData getPlayerData() {
- return TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
+ return PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
}
@Override
diff --git a/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerTogglePvpEvent.java b/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerTogglePvpEvent.java
new file mode 100644
index 0000000..1da34ae
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/api/event/PlayerTogglePvpEvent.java
@@ -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;
+ }
+}
diff --git a/src/main/java/eu/endermite/togglepvp/commands/HelpCommand.java b/src/main/java/me/youhavetrouble/preventstabby/commands/HelpCommand.java
similarity index 72%
rename from src/main/java/eu/endermite/togglepvp/commands/HelpCommand.java
rename to src/main/java/me/youhavetrouble/preventstabby/commands/HelpCommand.java
index 5fead30..bd9af07 100644
--- a/src/main/java/eu/endermite/togglepvp/commands/HelpCommand.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/commands/HelpCommand.java
@@ -1,7 +1,7 @@
-package eu.endermite.togglepvp.commands;
+package me.youhavetrouble.preventstabby.commands;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.PluginMessages;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.PluginMessages;
import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender;
import java.util.ArrayList;
@@ -10,13 +10,13 @@ import java.util.List;
public class HelpCommand {
public static void help(CommandSender sender, String[] args) {
- Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
+ Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
List helpPage = new ArrayList<>();
helpPage.add(PluginMessages.parseMessage("&b&m &bTogglePvP Help&b&m "));
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<oggle &f- toggles PvP status"));
}
diff --git a/src/main/java/eu/endermite/togglepvp/commands/MainCommand.java b/src/main/java/me/youhavetrouble/preventstabby/commands/MainCommand.java
similarity index 73%
rename from src/main/java/eu/endermite/togglepvp/commands/MainCommand.java
rename to src/main/java/me/youhavetrouble/preventstabby/commands/MainCommand.java
index cca2e77..862e317 100644
--- a/src/main/java/eu/endermite/togglepvp/commands/MainCommand.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/commands/MainCommand.java
@@ -1,7 +1,7 @@
-package eu.endermite.togglepvp.commands;
+package me.youhavetrouble.preventstabby.commands;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.PluginMessages;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.PluginMessages;
import org.bukkit.Bukkit;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
@@ -17,18 +17,18 @@ public class MainCommand implements TabExecutor {
private final HashMap subCommands = new HashMap<>();
public MainCommand() {
- subCommands.put("help", "togglepvp.command");
- subCommands.put("toggle", "togglepvp.command.toggle");
- subCommands.put("on", "togglepvp.command.toggle");
- subCommands.put("enable", "togglepvp.command.toggle");
- subCommands.put("off", "togglepvp.command.toggle");
- subCommands.put("disable", "togglepvp.command.toggle");
- subCommands.put("reload", "togglepvp.command.reload");
+ subCommands.put("help", "preventstabby.command");
+ subCommands.put("toggle", "preventstabby.command.toggle");
+ subCommands.put("on", "preventstabby.command.toggle");
+ subCommands.put("enable", "preventstabby.command.toggle");
+ subCommands.put("off", "preventstabby.command.toggle");
+ subCommands.put("disable", "preventstabby.command.toggle");
+ subCommands.put("reload", "preventstabby.command.reload");
}
@Override
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) {
switch (args[0].toLowerCase()) {
case "help":
@@ -49,14 +49,14 @@ public class MainCommand implements TabExecutor {
ReloadCommand.reload(sender);
break;
default:
- sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getNo_such_command()));
+ sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getNo_such_command()));
break;
}
} else {
HelpCommand.help(sender, args);
}
} else {
- sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getNo_permission()));
+ sender.sendMessage(PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getNo_permission()));
}
return true;
}
@@ -71,7 +71,7 @@ public class MainCommand implements TabExecutor {
commands.add(entry.getKey());
}
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()) {
default:
break;
diff --git a/src/main/java/eu/endermite/togglepvp/commands/PvpToggleCommand.java b/src/main/java/me/youhavetrouble/preventstabby/commands/PvpToggleCommand.java
similarity index 61%
rename from src/main/java/eu/endermite/togglepvp/commands/PvpToggleCommand.java
rename to src/main/java/me/youhavetrouble/preventstabby/commands/PvpToggleCommand.java
index c2c714d..864e90f 100644
--- a/src/main/java/eu/endermite/togglepvp/commands/PvpToggleCommand.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/commands/PvpToggleCommand.java
@@ -1,8 +1,8 @@
-package eu.endermite.togglepvp.commands;
+package me.youhavetrouble.preventstabby.commands;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
-import eu.endermite.togglepvp.util.PluginMessages;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PluginMessages;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
@@ -12,10 +12,10 @@ public class PvpToggleCommand {
public static void toggle(CommandSender sender, String[] args) {
- Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
+ Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
- if (!sender.hasPermission("togglepvp.command.toggle")) {
- String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
+ if (!sender.hasPermission("preventstabby.command.toggle")) {
+ String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
sender.sendMessage(message);
return;
}
@@ -25,25 +25,25 @@ public class PvpToggleCommand {
Player player = (Player) sender;
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;
}
- boolean currentState = TogglePvp.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
+ boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
String message = "";
if (currentState) {
- message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_enabled());
+ message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
} else {
- message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_disabled());
+ message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
}
player.sendMessage(message);
} else {
sender.sendMessage("Try /pvp toggle ");
}
} else if (args.length == 2) {
- if (!sender.hasPermission("togglepvp.command.toggle.others")) {
- String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
+ if (!sender.hasPermission("preventstabby.command.toggle.others")) {
+ String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
sender.sendMessage(message);
return;
}
@@ -51,18 +51,18 @@ public class PvpToggleCommand {
if (sender instanceof Player) {
Player player = (Player) sender;
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;
}
}
try {
Player player = Bukkit.getPlayer(args[1]);
- boolean currentState = TogglePvp.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
+ boolean currentState = PreventStabby.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
String message;
if (currentState) {
- message = TogglePvp.getPlugin().getConfigCache().getPvp_enabled_other();
+ message = PreventStabby.getPlugin().getConfigCache().getPvp_enabled_other();
} else {
- message = TogglePvp.getPlugin().getConfigCache().getPvp_disabled_other();
+ message = PreventStabby.getPlugin().getConfigCache().getPvp_disabled_other();
}
sender.sendMessage(PluginMessages.parsePlayerName(player, message));
@@ -70,7 +70,7 @@ public class PvpToggleCommand {
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
}
} else {
- if (sender.hasPermission("togglepvp.command.toggle.others")) {
+ if (sender.hasPermission("preventstabby.command.toggle.others")) {
sender.sendMessage("Try /pvp toggle ");
} else {
sender.sendMessage("Try /pvp toggle");
@@ -80,8 +80,8 @@ public class PvpToggleCommand {
}
public static void enable(CommandSender sender, String[] args) {
- if (!sender.hasPermission("togglepvp.command.toggle")) {
- String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
+ if (!sender.hasPermission("preventstabby.command.toggle")) {
+ String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
sender.sendMessage(message);
return;
}
@@ -89,38 +89,38 @@ public class PvpToggleCommand {
if (sender instanceof Player) {
Player player = (Player) sender;
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;
}
- TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
- String message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_enabled());
+ PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
+ String message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_enabled());
player.sendMessage(message);
} else {
sender.sendMessage("Try /pvp enable ");
}
} else if (args.length == 2) {
- if (!sender.hasPermission("togglepvp.command.toggle.others")) {
- String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
+ if (!sender.hasPermission("preventstabby.command.toggle.others")) {
+ String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
sender.sendMessage(message);
return;
}
if (sender instanceof Player) {
Player player = (Player) sender;
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;
}
}
try {
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));
- TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
+ PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
} catch (NullPointerException e) {
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
}
} else {
- if (sender.hasPermission("togglepvp.command.toggle.others")) {
+ if (sender.hasPermission("preventstabby.command.toggle.others")) {
sender.sendMessage("Try /pvp enable ");
} else {
sender.sendMessage("Try /pvp enable");
@@ -129,8 +129,8 @@ public class PvpToggleCommand {
}
public static void disable(CommandSender sender, String[] args) {
- if (!sender.hasPermission("togglepvp.command.toggle")) {
- String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
+ if (!sender.hasPermission("preventstabby.command.toggle")) {
+ String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
sender.sendMessage(message);
return;
}
@@ -138,38 +138,38 @@ public class PvpToggleCommand {
if (sender instanceof Player) {
Player player = (Player) sender;
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;
}
- TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false);
- String message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_disabled());
+ PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false);
+ String message = PluginMessages.parseMessage(PreventStabby.getPlugin().getConfigCache().getPvp_disabled());
player.sendMessage(message);
} else {
sender.sendMessage("Try /pvp disable ");
}
} else if (args.length == 2) {
- if (!sender.hasPermission("togglepvp.command.toggle.others")) {
- String message = TogglePvp.getPlugin().getConfigCache().getNo_permission();
+ if (!sender.hasPermission("preventstabby.command.toggle.others")) {
+ String message = PreventStabby.getPlugin().getConfigCache().getNo_permission();
sender.sendMessage(message);
return;
}
if (sender instanceof Player) {
Player player = (Player) sender;
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;
}
}
try {
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));
- TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
+ PreventStabby.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
} catch (NullPointerException e) {
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
}
} else {
- if (sender.hasPermission("togglepvp.command.toggle.others")) {
+ if (sender.hasPermission("preventstabby.command.toggle.others")) {
sender.sendMessage("Try /pvp disable ");
} else {
sender.sendMessage("Try /pvp disable");
diff --git a/src/main/java/me/youhavetrouble/preventstabby/commands/ReloadCommand.java b/src/main/java/me/youhavetrouble/preventstabby/commands/ReloadCommand.java
new file mode 100644
index 0000000..aebe782
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/commands/ReloadCommand.java
@@ -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);
+ });
+
+ }
+
+}
diff --git a/src/main/java/eu/endermite/togglepvp/config/ConfigCache.java b/src/main/java/me/youhavetrouble/preventstabby/config/ConfigCache.java
similarity index 91%
rename from src/main/java/eu/endermite/togglepvp/config/ConfigCache.java
rename to src/main/java/me/youhavetrouble/preventstabby/config/ConfigCache.java
index 992f2e5..7ad5788 100644
--- a/src/main/java/eu/endermite/togglepvp/config/ConfigCache.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/config/ConfigCache.java
@@ -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 lombok.Getter;
import org.bukkit.configuration.file.FileConfiguration;
@@ -12,7 +12,7 @@ import java.util.Set;
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,
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,
cannot_attack_pets_victim, cannot_attack_pets_attacker, no_permission, no_such_command, pvp_enabled_other,
pvp_disabled_other, punish_for_combat_logout_message, entering_combat, leaving_combat,
- cant_do_that_during_combat;
+ 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 long cache_time, combat_time, login_protection_time, teleport_protection_time;
@Getter private final Set 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_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_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_such_command", "&cNo such command.");
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_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_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_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.");
diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/MountHitByExplosionListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/MountHitByExplosionListener.java
new file mode 100644
index 0000000..2ab0935
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/MountHitByExplosionListener.java
@@ -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);
+ }
+
+}
diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/MountHitByFireworkListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/MountHitByFireworkListener.java
new file mode 100644
index 0000000..13889fe
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/MountHitByFireworkListener.java
@@ -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);
+ }
+
+}
diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/MountHitBySplashPotionListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/MountHitBySplashPotionListener.java
new file mode 100644
index 0000000..2366938
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/MountHitBySplashPotionListener.java
@@ -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);
+ }
+ }
+
+}
diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/PlayerAttackMountListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/PlayerAttackMountListener.java
new file mode 100644
index 0000000..b944e1d
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/PlayerAttackMountListener.java
@@ -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);
+ }
+
+}
diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/PlayerHitMountWithProjectileListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/PlayerHitMountWithProjectileListener.java
new file mode 100644
index 0000000..12e5e02
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/mount/PlayerHitMountWithProjectileListener.java
@@ -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);
+ }
+
+}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetHitByExplosionListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetHitByExplosionListener.java
similarity index 67%
rename from src/main/java/eu/endermite/togglepvp/listeners/pets/PetHitByExplosionListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetHitByExplosionListener.java
index 36dae13..470538f 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetHitByExplosionListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetHitByExplosionListener.java
@@ -1,7 +1,8 @@
-package eu.endermite.togglepvp.listeners.pets;
+package me.youhavetrouble.preventstabby.listeners.pets;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Tameable;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
@@ -9,7 +10,7 @@ import org.bukkit.event.Listener;
import org.bukkit.event.entity.EntityDamageEvent;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PetHitByExplosionListener implements Listener {
/**
@@ -17,24 +18,19 @@ public class PetHitByExplosionListener implements Listener {
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPetHitByExplosion(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
- if (!(event.getEntity() instanceof Tameable))
- return;
-
- if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION))
- return;
-
+ if (!(event.getEntity() instanceof Tameable)) return;
+ if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) return;
Tameable tameable = (Tameable) event.getEntity();
- if (tameable.getOwner() == null)
- return;
+ if (tameable.getOwner() == null) return;
UUID victim = tameable.getOwner().getUniqueId();
try {
UUID damager = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString());
- if (victim == damager)
+ if (victim.equals(damager))
return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetHitByFireworkListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetHitByFireworkListener.java
similarity index 64%
rename from src/main/java/eu/endermite/togglepvp/listeners/pets/PetHitByFireworkListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetHitByFireworkListener.java
index 7e0912f..5be2b9a 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetHitByFireworkListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetHitByFireworkListener.java
@@ -1,7 +1,8 @@
-package eu.endermite.togglepvp.listeners.pets;
+package me.youhavetrouble.preventstabby.listeners.pets;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Firework;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
@@ -10,24 +11,21 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PetHitByFireworkListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPetFireworkDamage(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
if (event.getDamager() instanceof Firework && event.getEntity() instanceof Tameable) {
Tameable tameable = (Tameable) event.getEntity();
- if (tameable.getOwner() == null)
- return;
+ if (tameable.getOwner() == null) return;
Firework firework = (Firework) event.getDamager();
- if (!(firework.getShooter() instanceof Player))
- return;
+ if (!(firework.getShooter() instanceof Player)) return;
UUID damager = ((Player) firework.getShooter()).getUniqueId();
UUID victim = tameable.getOwner().getUniqueId();
- if (victim == damager)
- return;
+ if (victim.equals(damager)) return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetHitBySplashPotionListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetHitBySplashPotionListener.java
similarity index 51%
rename from src/main/java/eu/endermite/togglepvp/listeners/pets/PetHitBySplashPotionListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetHitBySplashPotionListener.java
index 9142daa..f3a00bb 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetHitBySplashPotionListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetHitBySplashPotionListener.java
@@ -1,7 +1,9 @@
-package eu.endermite.togglepvp.listeners.pets;
+package me.youhavetrouble.preventstabby.listeners.pets;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+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.Entity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
@@ -12,7 +14,7 @@ import org.bukkit.potion.PotionEffect;
import org.bukkit.potion.PotionEffectType;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PetHitBySplashPotionListener implements Listener {
/**
@@ -22,40 +24,25 @@ public class PetHitBySplashPotionListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPetHitBySplashPotion(org.bukkit.event.entity.PotionSplashEvent event) {
- if (!(event.getEntity().getShooter() instanceof Player))
- return;
-
+ if (!(event.getEntity().getShooter() instanceof Player)) return;
boolean harmful = false;
for (PotionEffect effect : event.getPotion().getEffects()) {
- if (effect.getType().equals(PotionEffectType.BLINDNESS) ||
- 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)) {
+ if (Util.isPotionEffectHarmful(effect.getType())) {
harmful = true;
+ break;
}
}
- if (!harmful)
- return;
+ if (!harmful) return;
+ UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
for (Entity entity : event.getAffectedEntities()) {
if (entity instanceof Tameable) {
- UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
Tameable tameable = (Tameable) entity;
-
- if (tameable.getOwner() == null)
- continue;
-
+ if (tameable.getOwner() == null) continue;
UUID victim = tameable.getOwner().getUniqueId();
+ if (victim == damager) return;
- if (victim == damager)
- return;
-
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetLeashListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetLeashListener.java
similarity index 62%
rename from src/main/java/eu/endermite/togglepvp/listeners/pets/PetLeashListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetLeashListener.java
index 18da4ed..0a84a9b 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetLeashListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetLeashListener.java
@@ -1,29 +1,28 @@
-package eu.endermite.togglepvp.listeners.pets;
+package me.youhavetrouble.preventstabby.listeners.pets;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Tameable;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PetLeashListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPetLeash(org.bukkit.event.entity.PlayerLeashEntityEvent event) {
if (event.getEntity() instanceof Tameable) {
Tameable tameable = (Tameable) event.getEntity();
- if (tameable.getOwner() == null)
- return;
+ if (tameable.getOwner() == null) return;
UUID damager = event.getPlayer().getUniqueId();
UUID victim = tameable.getOwner().getUniqueId();
- if (victim == damager)
- return;
+ if (victim == damager) return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetTargettingMountListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetTargettingMountListener.java
new file mode 100644
index 0000000..78e97e6
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetTargettingMountListener.java
@@ -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);
+ }
+
+ }
+
+}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetTargettingPetListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetTargettingPetListener.java
similarity index 77%
rename from src/main/java/eu/endermite/togglepvp/listeners/pets/PetTargettingPetListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetTargettingPetListener.java
index 1c64ede..2954528 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetTargettingPetListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetTargettingPetListener.java
@@ -1,14 +1,15 @@
-package eu.endermite.togglepvp.listeners.pets;
+package me.youhavetrouble.preventstabby.listeners.pets;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.players.SmartCache;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.players.SmartCache;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
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;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PetTargettingPetListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -16,10 +17,9 @@ public class PetTargettingPetListener implements Listener {
if (event.getDamager() instanceof Tameable && event.getEntity() instanceof Tameable) {
Tameable damager = (Tameable) event.getDamager();
Tameable victim = (Tameable) event.getEntity();
- if (damager.getOwner() == null || victim.getOwner() == null)
- return;
+ if (damager.getOwner() == null || victim.getOwner() == null) return;
- SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
+ SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
boolean damagerPvpEnabled = smartCache.getPlayerData(damager.getOwner().getUniqueId()).isPvpEnabled();
boolean victimPvpEnabled = smartCache.getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled();
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetTargettingPlayerListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetTargettingPlayerListener.java
similarity index 65%
rename from src/main/java/eu/endermite/togglepvp/listeners/pets/PetTargettingPlayerListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetTargettingPlayerListener.java
index d977fa2..bda99a7 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/pets/PetTargettingPlayerListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PetTargettingPlayerListener.java
@@ -1,7 +1,8 @@
-package eu.endermite.togglepvp.listeners.pets;
+package me.youhavetrouble.preventstabby.listeners.pets;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
import org.bukkit.event.EventHandler;
@@ -10,25 +11,22 @@ import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PetTargettingPlayerListener implements Listener {
/**
* Stops pets with owners targetting players with pvp off
*/
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPetTargetPlayer(org.bukkit.event.entity.EntityTargetEvent event) {
- if (!(event.getEntity() instanceof Tameable))
- return;
-
+ if (!(event.getEntity() instanceof Tameable)) return;
Tameable entity = (Tameable) event.getEntity();
- if (entity.getOwner() == null)
- return;
+ if (entity.getOwner() == null) return;
if (event.getTarget() instanceof Player) {
UUID damager = entity.getOwner().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);
else
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/pets/PlayerAttackPetListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PlayerAttackPetListener.java
similarity index 60%
rename from src/main/java/eu/endermite/togglepvp/listeners/pets/PlayerAttackPetListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PlayerAttackPetListener.java
index 4051a6a..26bd36d 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/pets/PlayerAttackPetListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PlayerAttackPetListener.java
@@ -1,10 +1,11 @@
-package eu.endermite.togglepvp.listeners.pets;
+package me.youhavetrouble.preventstabby.listeners.pets;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.config.ConfigCache;
-import eu.endermite.togglepvp.players.SmartCache;
-import eu.endermite.togglepvp.util.CombatTimer;
-import eu.endermite.togglepvp.util.PluginMessages;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.config.ConfigCache;
+import me.youhavetrouble.preventstabby.players.SmartCache;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PluginMessages;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
import org.bukkit.event.EventHandler;
@@ -13,26 +14,24 @@ import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlayerAttackPetListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerAttackPet(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
if (event.getDamager() instanceof Player && event.getEntity() instanceof Tameable) {
- SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
+ SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
Tameable tameable = (Tameable) event.getEntity();
- if (tameable.getOwner() == null)
- return;
+ if (tameable.getOwner() == null) return;
UUID damager = event.getDamager().getUniqueId();
UUID victim = tameable.getOwner().getUniqueId();
- if (damager == victim)
- return;
+ if (damager.equals(victim)) return;
- ConfigCache config = TogglePvp.getPlugin().getConfigCache();
- boolean damagerPvpState = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager);
+ ConfigCache config = PreventStabby.getPlugin().getConfigCache();
+ boolean damagerPvpState = PreventStabby.getPlugin().getPlayerManager().getPlayerPvPState(damager);
if (!damagerPvpState) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/pets/PlayerHitPetWithProjectile.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PlayerHitPetWithProjectileListener.java
similarity index 63%
rename from src/main/java/eu/endermite/togglepvp/listeners/pets/PlayerHitPetWithProjectile.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PlayerHitPetWithProjectileListener.java
index e9215a7..e9fd088 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/pets/PlayerHitPetWithProjectile.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PlayerHitPetWithProjectileListener.java
@@ -1,10 +1,11 @@
-package eu.endermite.togglepvp.listeners.pets;
+package me.youhavetrouble.preventstabby.listeners.pets;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.config.ConfigCache;
-import eu.endermite.togglepvp.players.SmartCache;
-import eu.endermite.togglepvp.util.CombatTimer;
-import eu.endermite.togglepvp.util.PluginMessages;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.config.ConfigCache;
+import me.youhavetrouble.preventstabby.players.SmartCache;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PluginMessages;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
import org.bukkit.entity.Tameable;
@@ -14,8 +15,8 @@ import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
-public class PlayerHitPetWithProjectile implements Listener {
+@PreventStabbyListener
+public class PlayerHitPetWithProjectileListener implements Listener {
/**
* 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) {
if (event.getEntity() instanceof Tameable && event.getDamager() instanceof Projectile) {
Projectile projectile = (Projectile) event.getDamager();
- if (!(projectile.getShooter() instanceof Player))
- return;
-
+ if (!(projectile.getShooter() instanceof Player)) return;
Tameable tameable = (Tameable) event.getEntity();
-
- if (tameable.getOwner() == null)
- return;
+ if (tameable.getOwner() == null) return;
UUID damager = ((Player) projectile.getShooter()).getUniqueId();
UUID victim = tameable.getOwner().getUniqueId();
- if (damager == victim)
- return;
+ if (damager.equals(victim)) return;
- ConfigCache config = TogglePvp.getPlugin().getConfigCache();
- SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
+ ConfigCache config = PreventStabby.getPlugin().getConfigCache();
+ SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
if (!smartCache.getPlayerData(damager).isPvpEnabled()) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/pets/PlayerInteractWithPetListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PlayerInteractWithPetListener.java
similarity index 55%
rename from src/main/java/eu/endermite/togglepvp/listeners/pets/PlayerInteractWithPetListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PlayerInteractWithPetListener.java
index 263a491..a936753 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/pets/PlayerInteractWithPetListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/pets/PlayerInteractWithPetListener.java
@@ -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.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlayerInteractWithPetListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerInteractWithPet(org.bukkit.event.player.PlayerInteractEntityEvent event) {
- if (!TogglePvp.getPlugin().getConfigCache().isOnly_owner_can_interact_with_pet())
- return;
-
- if (!(event.getRightClicked() instanceof Tameable))
- return;
+ if (!PreventStabby.getPlugin().getConfigCache().isOnly_owner_can_interact_with_pet()) return;
+ if (!(event.getRightClicked() instanceof Tameable)) return;
Tameable tameable = (Tameable) event.getRightClicked();
- if (tameable.getOwner() == null)
- return;
-
- if (tameable.getOwner().getUniqueId().equals(event.getPlayer().getUniqueId()))
- return;
+ if (tameable.getOwner() == null) return;
+ if (tameable.getOwner().getUniqueId().equals(event.getPlayer().getUniqueId())) return;
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PetAttackPlayerListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PetAttackPlayerListener.java
similarity index 72%
rename from src/main/java/eu/endermite/togglepvp/listeners/player/PetAttackPlayerListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/player/PetAttackPlayerListener.java
index f6f296c..6311c3d 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/player/PetAttackPlayerListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PetAttackPlayerListener.java
@@ -1,8 +1,9 @@
-package eu.endermite.togglepvp.listeners.player;
+package me.youhavetrouble.preventstabby.listeners.player;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.players.PlayerManager;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.players.PlayerManager;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
import org.bukkit.entity.Wolf;
@@ -11,7 +12,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PetAttackPlayerListener implements Listener {
/**
@@ -21,16 +22,14 @@ public class PetAttackPlayerListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPetAttack(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
- if (!(event.getDamager() instanceof Tameable))
- return;
+ if (!(event.getDamager() instanceof Tameable)) return;
Tameable entity = (Tameable) event.getDamager();
if (entity.getOwner() != null && event.getEntity() instanceof Player) {
UUID victim = event.getEntity().getUniqueId();
UUID damager = entity.getOwner().getUniqueId();
-
- PlayerManager playerManager = TogglePvp.getPlugin().getPlayerManager();
+ PlayerManager playerManager = PreventStabby.getPlugin().getPlayerManager();
if (!playerManager.canDamage(damager, victim, false)) {
if (entity instanceof Wolf) {
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerAttackListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerAttackListener.java
similarity index 72%
rename from src/main/java/eu/endermite/togglepvp/listeners/player/PlayerAttackListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerAttackListener.java
index 2cebb15..acf266e 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerAttackListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerAttackListener.java
@@ -1,7 +1,8 @@
-package eu.endermite.togglepvp.listeners.player;
+package me.youhavetrouble.preventstabby.listeners.player;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -9,7 +10,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlayerAttackListener implements Listener {
/**
@@ -24,7 +25,7 @@ public class PlayerAttackListener implements Listener {
UUID damager = damagerEntity.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);
else
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerDeathListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerDeathListener.java
similarity index 55%
rename from src/main/java/eu/endermite/togglepvp/listeners/player/PlayerDeathListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerDeathListener.java
index 58ffee1..d506f9a 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerDeathListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerDeathListener.java
@@ -1,24 +1,24 @@
-package eu.endermite.togglepvp.listeners.player;
+package me.youhavetrouble.preventstabby.listeners.player;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.players.PlayerData;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.players.PlayerData;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlayerDeathListener implements Listener {
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onPlayerDeath(org.bukkit.event.entity.EntityDeathEvent event) {
- if (!(event.getEntity() instanceof Player))
- return;
+ if (!(event.getEntity() instanceof Player)) return;
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.setLastCombatCheck(false);
playerData.setInCombat(false);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitByExplosionListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitByExplosionListener.java
similarity index 82%
rename from src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitByExplosionListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitByExplosionListener.java
index a6bf877..846c348 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitByExplosionListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitByExplosionListener.java
@@ -1,7 +1,8 @@
-package eu.endermite.togglepvp.listeners.player;
+package me.youhavetrouble.preventstabby.listeners.player;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.EnderCrystal;
import org.bukkit.entity.Player;
import org.bukkit.entity.Projectile;
@@ -15,7 +16,7 @@ import org.bukkit.event.entity.EntityDamageEvent;
import org.bukkit.metadata.FixedMetadataValue;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlayerHitByExplosionListener implements Listener {
/**
@@ -24,16 +25,14 @@ public class PlayerHitByExplosionListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerHitByExplosion(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
if (event.getEntity() instanceof Player) {
- if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) {
- return;
- }
+ if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) return;
+
UUID victim = event.getEntity().getUniqueId();
try {
UUID damager = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString());
- if (victim.equals(damager))
- return;
+ if (victim.equals(damager)) return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
@@ -51,12 +50,12 @@ public class PlayerHitByExplosionListener implements Listener {
if (event.getEntity() instanceof EnderCrystal) {
EnderCrystal enderCrystal = (EnderCrystal) event.getEntity();
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) {
Projectile projectile = (Projectile) event.getDamager();
if (projectile.getShooter() instanceof Player) {
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();
if (tntPrimed.getSource() instanceof Player) {
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) {
try {
TNTPrimed sourceTnt = (TNTPrimed) tntPrimed.getSource();
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) {
}
}
@@ -91,7 +90,7 @@ public class PlayerHitByExplosionListener implements Listener {
public void onPlayerPlacedTntMinecart(org.bukkit.event.entity.EntityPlaceEvent event) {
if (event.getEntityType().equals(EntityType.MINECART_TNT)) {
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) {
if (event.getVehicle() instanceof ExplosiveMinecart && event.getEntity() instanceof Player) {
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()));
}
}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitByFireworkListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitByFireworkListener.java
similarity index 70%
rename from src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitByFireworkListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitByFireworkListener.java
index 94a84f1..ba09448 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitByFireworkListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitByFireworkListener.java
@@ -1,7 +1,8 @@
-package eu.endermite.togglepvp.listeners.player;
+package me.youhavetrouble.preventstabby.listeners.player;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Firework;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
@@ -9,7 +10,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlayerHitByFireworkListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
@@ -19,11 +20,9 @@ public class PlayerHitByFireworkListener implements Listener {
Firework firework = (Firework) event.getDamager();
if (firework.getShooter() instanceof Player) {
UUID damager = ((Player) firework.getShooter()).getUniqueId();
- if (damager == victim) {
- return;
- }
+ if (damager == victim) return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitByProjectileListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitByProjectileListener.java
similarity index 65%
rename from src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitByProjectileListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitByProjectileListener.java
index a2d183e..19b889f 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerHitByProjectileListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitByProjectileListener.java
@@ -1,14 +1,15 @@
-package eu.endermite.togglepvp.listeners.player;
+package me.youhavetrouble.preventstabby.listeners.player;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.*;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlayerHitByProjectileListener implements Listener {
/**
@@ -23,8 +24,8 @@ public class PlayerHitByProjectileListener implements Listener {
UUID damager = ((Player) projectile.getShooter()).getUniqueId();
UUID victim = event.getEntity().getUniqueId();
- if (TogglePvp.getPlugin().getConfigCache().isSnowballs_knockback() && event.getDamager() instanceof Snowball) {
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
+ if (PreventStabby.getPlugin().getConfigCache().isSnowballs_knockback() && event.getDamager() instanceof Snowball) {
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
((Player) event.getEntity()).damage(0.01, (Entity) projectile.getShooter());
CombatTimer.refreshPlayersCombatTime(damager, victim);
} else {
@@ -32,8 +33,8 @@ public class PlayerHitByProjectileListener implements Listener {
return;
}
- } else if (TogglePvp.getPlugin().getConfigCache().isEgg_knockback() && event.getDamager() instanceof Egg) {
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
+ } else if (PreventStabby.getPlugin().getConfigCache().isEgg_knockback() && event.getDamager() instanceof Egg) {
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
((Player) event.getEntity()).damage(0.01, (Entity) projectile.getShooter());
CombatTimer.refreshPlayersCombatTime(damager, victim);
} else {
@@ -43,13 +44,11 @@ public class PlayerHitByProjectileListener implements Listener {
}
// Ender pearls and other self-damage
- if (damager == victim)
- return;
+ if (damager.equals(victim)) return;
- if (event.getDamage() == 0)
- return;
+ if (event.getDamage() == 0) return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitBySplashPotionListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitBySplashPotionListener.java
new file mode 100644
index 0000000..918a7c7
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerHitBySplashPotionListener.java
@@ -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);
+ }
+
+ }
+ }
+}
diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerJoinAndLeaveListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerJoinAndLeaveListener.java
new file mode 100644
index 0000000..6de36f2
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerJoinAndLeaveListener.java
@@ -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());
+
+
+ }
+}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerTeleportListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerTeleportListener.java
similarity index 60%
rename from src/main/java/eu/endermite/togglepvp/listeners/player/PlayerTeleportListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerTeleportListener.java
index d1e7f55..a76ecb7 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/player/PlayerTeleportListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/player/PlayerTeleportListener.java
@@ -1,21 +1,22 @@
-package eu.endermite.togglepvp.listeners.player;
+package me.youhavetrouble.preventstabby.listeners.player;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.players.PlayerData;
-import eu.endermite.togglepvp.players.SmartCache;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.players.PlayerData;
+import me.youhavetrouble.preventstabby.players.SmartCache;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.time.Instant;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlayerTeleportListener implements Listener {
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void onPlayerTeleport(org.bukkit.event.player.PlayerTeleportEvent event) {
Player player = event.getPlayer();
- SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
+ SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
PlayerData playerData = smartCache.getPlayerData(player.getUniqueId());
playerData.setTeleportTimestamp(Instant.now().getEpochSecond());
}
diff --git a/src/main/java/me/youhavetrouble/preventstabby/listeners/toggles/CombatCommandListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/toggles/CombatCommandListener.java
new file mode 100644
index 0000000..238be22
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/toggles/CombatCommandListener.java
@@ -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());
+
+ }
+
+}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/toggles/PlayerTeleportInCombatListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/toggles/PlayerTeleportInCombatListener.java
similarity index 50%
rename from src/main/java/eu/endermite/togglepvp/listeners/toggles/PlayerTeleportInCombatListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/toggles/PlayerTeleportInCombatListener.java
index 09f4299..81aed6a 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/toggles/PlayerTeleportInCombatListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/toggles/PlayerTeleportInCombatListener.java
@@ -1,22 +1,23 @@
-package eu.endermite.togglepvp.listeners.toggles;
+package me.youhavetrouble.preventstabby.listeners.toggles;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.players.PlayerManager;
-import eu.endermite.togglepvp.util.PluginMessages;
+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;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlayerTeleportInCombatListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
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;
- PlayerManager playerManager = TogglePvp.getPlugin().getPlayerManager();
+ PlayerManager playerManager = PreventStabby.getPlugin().getPlayerManager();
if (!playerManager.getPlayer(event.getPlayer().getUniqueId()).isInCombat())
return;
@@ -25,7 +26,7 @@ public class PlayerTeleportInCombatListener implements Listener {
return;
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());
}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/AreaEffectCloudApplyListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/AreaEffectCloudApplyListener.java
similarity index 86%
rename from src/main/java/eu/endermite/togglepvp/listeners/unspecific/AreaEffectCloudApplyListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/AreaEffectCloudApplyListener.java
index 7a360f9..eabe629 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/AreaEffectCloudApplyListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/AreaEffectCloudApplyListener.java
@@ -1,8 +1,9 @@
-package eu.endermite.togglepvp.listeners.unspecific;
+package me.youhavetrouble.preventstabby.listeners.unspecific;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.players.PlayerManager;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.players.PlayerManager;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.LivingEntity;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
@@ -13,7 +14,7 @@ import org.bukkit.potion.PotionEffectType;
import java.util.Iterator;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class AreaEffectCloudApplyListener implements Listener {
@EventHandler(ignoreCancelled = true)
@@ -35,7 +36,7 @@ public class AreaEffectCloudApplyListener implements Listener {
potionEffectType.equals(PotionEffectType.SLOW) ||
potionEffectType.equals(PotionEffectType.WITHER)) {
- PlayerManager playerManager = TogglePvp.getPlugin().getPlayerManager();
+ PlayerManager playerManager = PreventStabby.getPlugin().getPlayerManager();
Iterator it = event.getAffectedEntities().iterator();
UUID damager = ((Player) event.getEntity().getSource()).getUniqueId();
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/EntityHitByLightningListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/EntityHitByLightningListener.java
similarity index 71%
rename from src/main/java/eu/endermite/togglepvp/listeners/unspecific/EntityHitByLightningListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/EntityHitByLightningListener.java
index fb248b2..9ec35a7 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/EntityHitByLightningListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/EntityHitByLightningListener.java
@@ -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.Player;
import org.bukkit.entity.Tameable;
@@ -15,7 +16,7 @@ import java.util.UUID;
* Listen for lightning strikes and tag the trident spawned ones.
* Idea from aasmus' PvPToggle plugin
*/
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class EntityHitByLightningListener implements Listener {
/**
@@ -27,17 +28,17 @@ public class EntityHitByLightningListener implements Listener {
if (event.getEntity() instanceof Player) {
UUID victim = event.getEntity().getUniqueId();
- if (TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(victim)) {
+ if (PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(victim)) {
event.setCancelled(true);
return;
}
- if (!TogglePvp.getPlugin().getSmartCache().getPlayerData(victim).isPvpEnabled()) {
+ if (!PreventStabby.getPlugin().getSmartCache().getPlayerData(victim).isPvpEnabled()) {
event.setCancelled(true);
}
} else if (event.getEntity() instanceof Tameable) {
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);
}
}
@@ -50,11 +51,11 @@ public class EntityHitByLightningListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onLightningStrike(LightningStrikeEvent event){
if(event.getCause() == LightningStrikeEvent.Cause.TRIDENT){
- if (TogglePvp.getPlugin().getConfigCache().isChanneling_enchant_disabled()) {
+ if (PreventStabby.getPlugin().getConfigCache().isChanneling_enchant_disabled()) {
event.setCancelled(true);
return;
}
- event.getLightning().setMetadata("TRIDENT", new FixedMetadataValue(TogglePvp.getPlugin(), event.getLightning().getLocation()));
+ event.getLightning().setMetadata("TRIDENT", new FixedMetadataValue(PreventStabby.getPlugin(), event.getLightning().getLocation()));
}
}
}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/FishingListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/FishingListener.java
similarity index 74%
rename from src/main/java/eu/endermite/togglepvp/listeners/unspecific/FishingListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/FishingListener.java
index 4d8a77d..767cbf3 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/FishingListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/FishingListener.java
@@ -1,7 +1,8 @@
-package eu.endermite.togglepvp.listeners.unspecific;
+package me.youhavetrouble.preventstabby.listeners.unspecific;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.entity.Player;
import org.bukkit.entity.Tameable;
import org.bukkit.event.EventHandler;
@@ -9,7 +10,7 @@ import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class FishingListener implements Listener {
/**
@@ -23,7 +24,7 @@ public class FishingListener implements Listener {
if (damager == victim)
return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
@@ -38,7 +39,7 @@ public class FishingListener implements Listener {
if (damager == victim)
return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/LavaDumpAndIgniteListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/LavaDumpAndIgniteListener.java
similarity index 79%
rename from src/main/java/eu/endermite/togglepvp/listeners/unspecific/LavaDumpAndIgniteListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/LavaDumpAndIgniteListener.java
index 43fbd63..aed5d05 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/LavaDumpAndIgniteListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/LavaDumpAndIgniteListener.java
@@ -1,9 +1,10 @@
-package eu.endermite.togglepvp.listeners.unspecific;
+package me.youhavetrouble.preventstabby.listeners.unspecific;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.config.ConfigCache;
-import eu.endermite.togglepvp.util.BoundingBoxUtil;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.config.ConfigCache;
+import me.youhavetrouble.preventstabby.util.BoundingBoxUtil;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
@@ -17,7 +18,7 @@ import org.bukkit.util.BoundingBox;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class LavaDumpAndIgniteListener implements Listener {
/**
@@ -26,7 +27,7 @@ public class LavaDumpAndIgniteListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
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())
return;
@@ -41,12 +42,12 @@ public class LavaDumpAndIgniteListener implements Listener {
if (entity instanceof Player) {
UUID victim = entity.getUniqueId();
if (victim != damager) {
- if (TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(victim, damager)) {
+ if (PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(victim, damager)) {
event.setCancelled(true);
return;
}
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
@@ -59,12 +60,12 @@ public class LavaDumpAndIgniteListener implements Listener {
}
UUID victim = tameable.getOwner().getUniqueId();
- if (TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(victim, damager)) {
+ if (PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(victim, damager)) {
event.setCancelled(true);
return;
}
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
@@ -80,7 +81,7 @@ public class LavaDumpAndIgniteListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
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())
return;
@@ -98,7 +99,7 @@ public class LavaDumpAndIgniteListener implements Listener {
if (victim == damager)
continue;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
@@ -113,7 +114,7 @@ public class LavaDumpAndIgniteListener implements Listener {
if (victim == damager)
continue;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/LightningBlockIgniteListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/LightningBlockIgniteListener.java
similarity index 72%
rename from src/main/java/eu/endermite/togglepvp/listeners/unspecific/LightningBlockIgniteListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/LightningBlockIgniteListener.java
index 8d6677d..e14b95b 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/LightningBlockIgniteListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/LightningBlockIgniteListener.java
@@ -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.event.EventHandler;
import org.bukkit.event.EventPriority;
import org.bukkit.event.Listener;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class LightningBlockIgniteListener implements Listener {
/**
@@ -22,12 +23,12 @@ public class LightningBlockIgniteListener implements Listener {
if (entity instanceof Player) {
Player victim = (Player) entity;
- if (TogglePvp.getPlugin().getPlayerManager().hasLoginProtection(victim.getUniqueId())) {
+ if (PreventStabby.getPlugin().getPlayerManager().hasLoginProtection(victim.getUniqueId())) {
event.setCancelled(true);
return;
}
- if (!TogglePvp.getPlugin().getSmartCache().getPlayerData(victim.getUniqueId()).isPvpEnabled()) {
+ if (!PreventStabby.getPlugin().getSmartCache().getPlayerData(victim.getUniqueId()).isPvpEnabled()) {
event.setCancelled(true);
return;
}
@@ -36,7 +37,7 @@ public class LightningBlockIgniteListener implements Listener {
if (victim.getOwner() == null) {
return;
}
- if (!TogglePvp.getPlugin().getSmartCache().getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled()) {
+ if (!PreventStabby.getPlugin().getSmartCache().getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled()) {
event.setCancelled(true);
return;
}
diff --git a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/PlaceWitherRoseListener.java b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/PlaceWitherRoseListener.java
similarity index 75%
rename from src/main/java/eu/endermite/togglepvp/listeners/unspecific/PlaceWitherRoseListener.java
rename to src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/PlaceWitherRoseListener.java
index 9d9d01c..2d66351 100644
--- a/src/main/java/eu/endermite/togglepvp/listeners/unspecific/PlaceWitherRoseListener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/listeners/unspecific/PlaceWitherRoseListener.java
@@ -1,9 +1,10 @@
-package eu.endermite.togglepvp.listeners.unspecific;
+package me.youhavetrouble.preventstabby.listeners.unspecific;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.config.ConfigCache;
-import eu.endermite.togglepvp.util.BoundingBoxUtil;
-import eu.endermite.togglepvp.util.CombatTimer;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.config.ConfigCache;
+import me.youhavetrouble.preventstabby.util.BoundingBoxUtil;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Entity;
@@ -16,13 +17,13 @@ import org.bukkit.util.BoundingBox;
import java.util.UUID;
-@eu.endermite.togglepvp.util.Listener
+@PreventStabbyListener
public class PlaceWitherRoseListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
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())
return;
@@ -38,7 +39,7 @@ public class PlaceWitherRoseListener implements Listener {
if (victim == damager)
return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
@@ -52,7 +53,7 @@ public class PlaceWitherRoseListener implements Listener {
if (victim == damager)
return;
- if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
+ if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true, false))
CombatTimer.refreshPlayersCombatTime(damager, victim);
else
event.setCancelled(true);
diff --git a/src/main/java/eu/endermite/togglepvp/players/PlayerData.java b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerData.java
similarity index 69%
rename from src/main/java/eu/endermite/togglepvp/players/PlayerData.java
rename to src/main/java/me/youhavetrouble/preventstabby/players/PlayerData.java
index bf57a6f..091f447 100644
--- a/src/main/java/eu/endermite/togglepvp/players/PlayerData.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerData.java
@@ -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.util.UUID;
public class PlayerData {
+ private UUID playerUuid;
private long cachetime, combattime, loginTimestamp, teleportTimestamp;
private boolean pvpEnabled, lastCombatCheck, inCombat;
@@ -18,6 +20,10 @@ public class PlayerData {
refreshCachetime();
}
+ public UUID getPlayerUuid() {
+ return playerUuid;
+ }
+
public boolean isPvpEnabled() {
return pvpEnabled;
}
@@ -31,7 +37,7 @@ public class PlayerData {
}
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() {
@@ -43,7 +49,7 @@ public class PlayerData {
}
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() {
@@ -55,7 +61,7 @@ public class PlayerData {
}
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() {
@@ -63,7 +69,7 @@ public class PlayerData {
}
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() {
diff --git a/src/main/java/eu/endermite/togglepvp/players/PlayerManager.java b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerManager.java
similarity index 57%
rename from src/main/java/eu/endermite/togglepvp/players/PlayerManager.java
rename to src/main/java/me/youhavetrouble/preventstabby/players/PlayerManager.java
index c7272b3..a9a8f67 100644
--- a/src/main/java/eu/endermite/togglepvp/players/PlayerManager.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/players/PlayerManager.java
@@ -1,10 +1,10 @@
-package eu.endermite.togglepvp.players;
+package me.youhavetrouble.preventstabby.players;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.api.event.PlayerLeaveCombatEvent;
-import eu.endermite.togglepvp.config.ConfigCache;
-import eu.endermite.togglepvp.util.CombatTimer;
-import eu.endermite.togglepvp.util.PluginMessages;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.api.event.PlayerLeaveCombatEvent;
+import me.youhavetrouble.preventstabby.config.ConfigCache;
+import me.youhavetrouble.preventstabby.util.CombatTimer;
+import me.youhavetrouble.preventstabby.util.PluginMessages;
import lombok.Getter;
import org.bukkit.Bukkit;
import org.bukkit.entity.Player;
@@ -12,6 +12,7 @@ import org.bukkit.scheduler.BukkitTask;
import java.time.Instant;
import java.util.HashMap;
+import java.util.Iterator;
import java.util.UUID;
public class PlayerManager {
@@ -23,32 +24,38 @@ public class PlayerManager {
public PlayerManager() {
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);
}
- combatTrackerTask = Bukkit.getScheduler().runTaskTimerAsynchronously(TogglePvp.getPlugin(), () -> playerList.forEach(((uuid, playerData) -> {
- if (!CombatTimer.isInCombat(uuid)) {
- if (playerData.getLastCombatCheck()) {
- Player player = Bukkit.getPlayer(uuid);
- if (player == null)
- return;
- PlayerLeaveCombatEvent playerLeaveCombatEvent = new PlayerLeaveCombatEvent(player);
- Bukkit.getScheduler().runTask(TogglePvp.getPlugin(), () -> {
- Bukkit.getPluginManager().callEvent(playerLeaveCombatEvent);
- if (playerLeaveCombatEvent.isCancelled()) {
- playerData.refreshCombatTime();
+ combatTrackerTask = Bukkit.getScheduler().runTaskTimerAsynchronously(PreventStabby.getPlugin(), () -> {
+ Iterator iterator = playerList.values().iterator();
+ while (iterator.hasNext()) {
+ PlayerData playerData = iterator.next();
+ UUID uuid = playerData.getPlayerUuid();
+ if (!CombatTimer.isInCombat(uuid)) {
+ if (playerData.getLastCombatCheck()) {
+ Player player = Bukkit.getPlayer(uuid);
+ if (player == null)
return;
- }
- playerData.setLastCombatCheck(false);
- playerData.setInCombat(false);
- PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getLeaving_combat());
- });
+ PlayerLeaveCombatEvent playerLeaveCombatEvent = new PlayerLeaveCombatEvent(player);
+ Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
+ Bukkit.getPluginManager().callEvent(playerLeaveCombatEvent);
+ if (playerLeaveCombatEvent.isCancelled()) {
+ playerData.refreshCombatTime();
+ return;
+ }
+ playerData.setLastCombatCheck(false);
+ playerData.setInCombat(false);
+ PluginMessages.sendActionBar(uuid, PreventStabby.getPlugin().getConfigCache().getLeaving_combat());
+ });
+ }
+ } else {
+ playerData.setLastCombatCheck(true);
}
- } else {
- playerData.setLastCombatCheck(true);
}
- })), 20, 20);
+ }, 20, 20);
+
}
@@ -80,15 +87,15 @@ public class PlayerManager {
}
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) {
- TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).setPvpEnabled(state);
+ PreventStabby.getPlugin().getSmartCache().getPlayerData(uuid).setPvpEnabled(state);
}
public boolean togglePlayerPvpState(UUID uuid) {
- SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
+ SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
if (smartCache.getPlayerData(uuid).isPvpEnabled()) {
smartCache.getPlayerData(uuid).setPvpEnabled(false);
return false;
@@ -113,18 +120,18 @@ public class PlayerManager {
if (checkVictimSpawnProtection && hasTeleportProtection(victim))
return false;
- SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
+ SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
if (!smartCache.getPlayerData(attacker).isPvpEnabled()) {
if (sendDenyMessage) {
- ConfigCache config = TogglePvp.getPlugin().getConfigCache();
+ ConfigCache config = PreventStabby.getPlugin().getConfigCache();
PluginMessages.sendActionBar(attacker, config.getCannot_attack_attacker());
}
return false;
}
if (!smartCache.getPlayerData(victim).isPvpEnabled()) {
if (sendDenyMessage) {
- ConfigCache config = TogglePvp.getPlugin().getConfigCache();
+ ConfigCache config = PreventStabby.getPlugin().getConfigCache();
PluginMessages.sendActionBar(attacker, config.getCannot_attack_victim());
}
return false;
@@ -137,7 +144,7 @@ public class PlayerManager {
* @return true if any of the provided UUIDs has spawn protection
*/
public boolean hasLoginProtection(UUID... uuid) {
- SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
+ SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
for (UUID checkedUuid : uuid) {
if (Instant.now().getEpochSecond() < smartCache.getPlayerData(checkedUuid).getLoginTimestamp())
return true;
@@ -146,7 +153,7 @@ public class PlayerManager {
}
public boolean hasTeleportProtection(UUID uuid) {
- SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
+ SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
return Instant.now().getEpochSecond() < smartCache.getPlayerData(uuid).getTeleportTimestamp();
}
diff --git a/src/main/java/eu/endermite/togglepvp/players/SmartCache.java b/src/main/java/me/youhavetrouble/preventstabby/players/SmartCache.java
similarity index 55%
rename from src/main/java/eu/endermite/togglepvp/players/SmartCache.java
rename to src/main/java/me/youhavetrouble/preventstabby/players/SmartCache.java
index ad9e7aa..2f90e6c 100644
--- a/src/main/java/eu/endermite/togglepvp/players/SmartCache.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/players/SmartCache.java
@@ -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.entity.Player;
import java.time.Instant;
@@ -10,20 +10,20 @@ import java.util.UUID;
public class SmartCache {
public void runSmartCache() {
- Bukkit.getScheduler().runTaskTimerAsynchronously(TogglePvp.getPlugin(), () -> {
+ Bukkit.getScheduler().runTaskTimerAsynchronously(PreventStabby.getPlugin(), () -> {
// Refresh cache timer if player is online
- for (Map.Entry e : TogglePvp.getPlugin().getPlayerManager().getPlayerList().entrySet()) {
+ for (Map.Entry e : PreventStabby.getPlugin().getPlayerManager().getPlayerList().entrySet()) {
try {
Player player = Bukkit.getPlayer(e.getKey());
if (player != null && player.isOnline()) {
- TogglePvp.getPlugin().getPlayerManager().refreshPlayersCacheTime(e.getKey());
+ PreventStabby.getPlugin().getPlayerManager().refreshPlayersCacheTime(e.getKey());
}
} catch (NullPointerException ignored) {}
}
// Check for entries that should be invalidated
try {
long now = Instant.now().getEpochSecond();
- TogglePvp.getPlugin().getPlayerManager().getPlayerList().entrySet()
+ PreventStabby.getPlugin().getPlayerManager().getPlayerList().entrySet()
.removeIf(cacheEntry -> cacheEntry.getValue().getCachetime() < now);
} catch (Exception ignored) {}
}, 100, 100);
@@ -32,13 +32,13 @@ public class SmartCache {
public PlayerData getPlayerData(UUID uuid) {
// Try to get data from cache and refresh it
try {
- TogglePvp.getPlugin().getPlayerManager().refreshPlayersCacheTime(uuid);
- return TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid);
+ PreventStabby.getPlugin().getPlayerManager().refreshPlayersCacheTime(uuid);
+ return PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid);
} catch (NullPointerException e) {
// If player data is not in cache get it from database and put into cache
try {
- PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(uuid);
- TogglePvp.getPlugin().getPlayerManager().addPlayer(uuid, playerData);
+ PlayerData playerData = PreventStabby.getPlugin().getSqLite().getPlayerInfo(uuid);
+ PreventStabby.getPlugin().getPlayerManager().addPlayer(uuid, playerData);
return playerData;
} catch (NullPointerException ex) {
// Return false if database call fails
@@ -49,11 +49,11 @@ public class SmartCache {
public void setPlayerPvpState(UUID uuid, boolean state) {
// If player is in cache update that
- if (TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid) != null) {
- TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid).setPvpEnabled(state);
+ if (PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid) != null) {
+ PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid).setPvpEnabled(state);
}
// Update the database aswell
- TogglePvp.getPlugin().getSqLite().updatePlayerInfo(uuid, new PlayerData(state));
+ PreventStabby.getPlugin().getSqLite().updatePlayerInfo(uuid, new PlayerData(state));
}
diff --git a/src/main/java/eu/endermite/togglepvp/util/BoundingBoxUtil.java b/src/main/java/me/youhavetrouble/preventstabby/util/BoundingBoxUtil.java
similarity index 91%
rename from src/main/java/eu/endermite/togglepvp/util/BoundingBoxUtil.java
rename to src/main/java/me/youhavetrouble/preventstabby/util/BoundingBoxUtil.java
index 140f0f3..bd8b9c9 100644
--- a/src/main/java/eu/endermite/togglepvp/util/BoundingBoxUtil.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/util/BoundingBoxUtil.java
@@ -1,4 +1,4 @@
-package eu.endermite.togglepvp.util;
+package me.youhavetrouble.preventstabby.util;
import org.bukkit.Location;
import org.bukkit.util.BoundingBox;
diff --git a/src/main/java/me/youhavetrouble/preventstabby/util/CombatTimer.java b/src/main/java/me/youhavetrouble/preventstabby/util/CombatTimer.java
new file mode 100644
index 0000000..854535f
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/util/CombatTimer.java
@@ -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;
+ }
+ }
+
+}
diff --git a/src/main/java/eu/endermite/togglepvp/util/DatabaseSQLite.java b/src/main/java/me/youhavetrouble/preventstabby/util/DatabaseSQLite.java
similarity index 90%
rename from src/main/java/eu/endermite/togglepvp/util/DatabaseSQLite.java
rename to src/main/java/me/youhavetrouble/preventstabby/util/DatabaseSQLite.java
index 87e0c14..d3170be 100644
--- a/src/main/java/eu/endermite/togglepvp/util/DatabaseSQLite.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/util/DatabaseSQLite.java
@@ -1,7 +1,7 @@
-package eu.endermite.togglepvp.util;
+package me.youhavetrouble.preventstabby.util;
-import eu.endermite.togglepvp.TogglePvp;
-import eu.endermite.togglepvp.players.PlayerData;
+import me.youhavetrouble.preventstabby.PreventStabby;
+import me.youhavetrouble.preventstabby.players.PlayerData;
import java.io.File;
import java.sql.*;
@@ -52,12 +52,11 @@ public class DatabaseSQLite {
}
public PlayerData getPlayerInfo(UUID uuid) {
-
try {
Connection conn = DriverManager.getConnection(url);
Statement insertnewuser = conn.createStatement();
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);
} catch (SQLException e) {
if (e.getErrorCode() != 19) {
@@ -85,7 +84,7 @@ public class DatabaseSQLite {
String newuserdata = "UPDATE `players` SET pvpenabled = "+data.isPvpEnabled()+" WHERE `player_uuid` = '"+uuid.toString()+"';";
insertnewuser.execute(newuserdata);
} catch (SQLException e) {
- TogglePvp.getPlugin().getLogger().severe("Error while saving player data!");
+ PreventStabby.getPlugin().getLogger().severe("Error while saving player data!");
e.printStackTrace();
}
} catch (SQLException throwables) {
diff --git a/src/main/java/eu/endermite/togglepvp/util/PluginMessages.java b/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java
similarity index 95%
rename from src/main/java/eu/endermite/togglepvp/util/PluginMessages.java
rename to src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java
index 80179e8..6922f48 100644
--- a/src/main/java/eu/endermite/togglepvp/util/PluginMessages.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/util/PluginMessages.java
@@ -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.chat.BaseComponent;
@@ -23,6 +23,7 @@ public class PluginMessages {
}
public static void sendActionBar(Player player, String message) {
+ // TODO use adventure
BaseComponent[] component = TextComponent.fromLegacyText(parseMessage(message));
player.spigot().sendMessage(ChatMessageType.ACTION_BAR, component);
}
diff --git a/src/main/java/eu/endermite/togglepvp/util/Listener.java b/src/main/java/me/youhavetrouble/preventstabby/util/PreventStabbyListener.java
similarity index 71%
rename from src/main/java/eu/endermite/togglepvp/util/Listener.java
rename to src/main/java/me/youhavetrouble/preventstabby/util/PreventStabbyListener.java
index 9731a8c..f0e10c1 100644
--- a/src/main/java/eu/endermite/togglepvp/util/Listener.java
+++ b/src/main/java/me/youhavetrouble/preventstabby/util/PreventStabbyListener.java
@@ -1,4 +1,4 @@
-package eu.endermite.togglepvp.util;
+package me.youhavetrouble.preventstabby.util;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
@@ -8,4 +8,4 @@ import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE})
-public @interface Listener {}
+public @interface PreventStabbyListener {}
diff --git a/src/main/java/me/youhavetrouble/preventstabby/util/Util.java b/src/main/java/me/youhavetrouble/preventstabby/util/Util.java
new file mode 100644
index 0000000..62e3de0
--- /dev/null
+++ b/src/main/java/me/youhavetrouble/preventstabby/util/Util.java
@@ -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 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 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);
+ }
+
+}
diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml
index e43bdf8..8640710 100644
--- a/src/main/resources/plugin.yml
+++ b/src/main/resources/plugin.yml
@@ -1,12 +1,13 @@
name: TogglePvP
version: ${project.version}
-main: eu.endermite.togglepvp.TogglePvp
+main: eu.endermite.togglepvp.PreventStabby
authors: [YouHaveTrouble]
api-version: 1.13
-description: PvP toggle plugin
+description: Stop people from getting stabbed!
commands:
- pvp:
- usage: /pvp [args]
+ preventstabby:
+ aliases:
+ - pvp
permissions:
toglepvp.combatcommandblock.bypass:
default: op