mirror of
https://github.com/YouHaveTrouble/PreventStabby.git
synced 2026-05-12 13:26:56 +00:00
massive changes
This commit is contained in:
@@ -1,23 +0,0 @@
|
||||
package eu.endermite.togglepvp.commands;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class ReloadCommand {
|
||||
|
||||
public static void reload(CommandSender sender) {
|
||||
|
||||
Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
|
||||
if (!sender.hasPermission("togglepvp.command.reload")) {
|
||||
String message = ChatColor.translateAlternateColorCodes('&', TogglePvp.getPlugin().getConfigCache().getNo_permission());
|
||||
sender.sendMessage(message);
|
||||
return;
|
||||
}
|
||||
TogglePvp.getPlugin().reloadPluginConfig(sender);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
-68
@@ -1,68 +0,0 @@
|
||||
package eu.endermite.togglepvp.listeners.player;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import eu.endermite.togglepvp.util.CombatTimer;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
@eu.endermite.togglepvp.util.Listener
|
||||
public class PlayerHitBySplashPotionListener implements Listener {
|
||||
|
||||
private final List<PotionEffectType> harmfulPotions = new ArrayList<>();
|
||||
|
||||
public PlayerHitBySplashPotionListener() {
|
||||
harmfulPotions.add(PotionEffectType.BLINDNESS);
|
||||
harmfulPotions.add(PotionEffectType.CONFUSION);
|
||||
harmfulPotions.add(PotionEffectType.HARM);
|
||||
harmfulPotions.add(PotionEffectType.HUNGER);
|
||||
harmfulPotions.add(PotionEffectType.POISON);
|
||||
harmfulPotions.add(PotionEffectType.SLOW_DIGGING);
|
||||
harmfulPotions.add(PotionEffectType.WEAKNESS);
|
||||
harmfulPotions.add(PotionEffectType.SLOW);
|
||||
harmfulPotions.add(PotionEffectType.WITHER);
|
||||
}
|
||||
|
||||
/**
|
||||
* If thrown potion is applies negative effects and it's thrown by a player it will ahve no effect on player with pvp off
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerHitBySplashPotion(org.bukkit.event.entity.PotionSplashEvent event) {
|
||||
|
||||
if (!(event.getEntity().getShooter() instanceof Player))
|
||||
return;
|
||||
|
||||
boolean harmful = false;
|
||||
|
||||
for (PotionEffect effect : event.getPotion().getEffects()) {
|
||||
if (harmfulPotions.contains(effect.getType())) {
|
||||
harmful = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!harmful)
|
||||
return;
|
||||
for (Entity entity : event.getAffectedEntities()) {
|
||||
if (entity instanceof Player) {
|
||||
UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
|
||||
UUID victim = entity.getUniqueId();
|
||||
if (damager == victim)
|
||||
continue;
|
||||
|
||||
if (TogglePvp.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
|
||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||
} else {
|
||||
event.setIntensity((LivingEntity) entity, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
package eu.endermite.togglepvp.listeners.player;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import eu.endermite.togglepvp.players.PlayerData;
|
||||
import eu.endermite.togglepvp.players.SmartCache;
|
||||
import eu.endermite.togglepvp.util.PluginMessages;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.UUID;
|
||||
|
||||
@eu.endermite.togglepvp.util.Listener
|
||||
public class PlayerJoinAndLeaveListener implements Listener {
|
||||
/**
|
||||
* This event is here to get players saved options on join
|
||||
*/
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void onPlayerJoin(org.bukkit.event.player.PlayerJoinEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
UUID uuid = player.getUniqueId();
|
||||
|
||||
PlayerData playerData = TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
|
||||
long time = Instant.now().getEpochSecond();
|
||||
if (playerData == null) {
|
||||
TogglePvp.getPlugin().getPlayerManager().addPlayer(uuid, new PlayerData(false));
|
||||
Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
|
||||
PlayerData data = TogglePvp.getPlugin().getSqLite().getPlayerInfo(uuid);
|
||||
TogglePvp.getPlugin().getPlayerManager().addPlayer(uuid, data);
|
||||
data.setLoginTimestamp(time);
|
||||
});
|
||||
return;
|
||||
}
|
||||
playerData.refreshCachetime();
|
||||
playerData.setLoginTimestamp(time);
|
||||
}
|
||||
|
||||
/**
|
||||
* This event is here to save player's data to database
|
||||
* Also punishes players who log out during combat
|
||||
*/
|
||||
@EventHandler
|
||||
public void onPlayerLeave(org.bukkit.event.player.PlayerQuitEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> TogglePvp.getPlugin().getSqLite().updatePlayerInfo(player.getUniqueId(), TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId())));
|
||||
|
||||
if (!TogglePvp.getPlugin().getConfigCache().isPunish_for_combat_logout())
|
||||
return;
|
||||
|
||||
SmartCache smartCache = TogglePvp.getPlugin().getSmartCache();
|
||||
PlayerData playerData = smartCache.getPlayerData(player.getUniqueId());
|
||||
|
||||
if (!playerData.isInCombat())
|
||||
return;
|
||||
|
||||
player.setHealth(0);
|
||||
if (TogglePvp.getPlugin().getConfigCache().isPunish_for_combat_logout_announce())
|
||||
PluginMessages.broadcastMessage(player, TogglePvp.getPlugin().getConfigCache().getPunish_for_combat_logout_message());
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
package eu.endermite.togglepvp.listeners.toggles;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import eu.endermite.togglepvp.players.PlayerManager;
|
||||
import eu.endermite.togglepvp.util.PluginMessages;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
@eu.endermite.togglepvp.util.Listener
|
||||
public class CombatCommandListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerCommandInCombat(org.bukkit.event.player.PlayerCommandPreprocessEvent event) {
|
||||
|
||||
if (!TogglePvp.getPlugin().getConfigCache().isBlock_commands_in_combat())
|
||||
return;
|
||||
|
||||
PlayerManager playerManager = TogglePvp.getPlugin().getPlayerManager();
|
||||
|
||||
if (!playerManager.getPlayer(event.getPlayer().getUniqueId()).isInCombat())
|
||||
return;
|
||||
|
||||
String command = event.getMessage().replaceFirst("/", "");
|
||||
|
||||
if (!TogglePvp.getPlugin().getConfigCache().getCombatBlockedCommands().contains(command))
|
||||
return;
|
||||
|
||||
if (event.getPlayer().hasPermission("toglepvp.combatcommandblock.bypass"))
|
||||
return;
|
||||
|
||||
event.setCancelled(true);
|
||||
PluginMessages.sendMessage(event.getPlayer(), TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,46 +0,0 @@
|
||||
package eu.endermite.togglepvp.util;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import eu.endermite.togglepvp.api.event.PlayerEnterCombatEvent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import java.time.Instant;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CombatTimer {
|
||||
|
||||
public static void refreshPlayersCombatTime(UUID uuid) {
|
||||
try {
|
||||
long now = Instant.now().getEpochSecond();
|
||||
long combattime = TogglePvp.getPlugin().getSmartCache().getPlayerData(uuid).getCombattime();
|
||||
|
||||
Player player = Bukkit.getPlayer(uuid);
|
||||
PlayerEnterCombatEvent playerEnterCombatEvent = new PlayerEnterCombatEvent(player);
|
||||
Bukkit.getScheduler().runTask(TogglePvp.getPlugin(), () -> {
|
||||
Bukkit.getPluginManager().callEvent(playerEnterCombatEvent);
|
||||
if (playerEnterCombatEvent.isCancelled())
|
||||
return;
|
||||
TogglePvp.getPlugin().getPlayerManager().refreshPlayersCombatTime(uuid);
|
||||
|
||||
if (combattime <= now) {
|
||||
PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getEntering_combat());
|
||||
}
|
||||
});
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void refreshPlayersCombatTime(UUID attacker_uuid, UUID victim_uuid) {
|
||||
refreshPlayersCombatTime(attacker_uuid);
|
||||
refreshPlayersCombatTime(victim_uuid);
|
||||
}
|
||||
|
||||
public static boolean isInCombat(UUID uuid) {
|
||||
try {
|
||||
return TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid).getCombattime() >= Instant.now().getEpochSecond();
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+15
-13
@@ -1,12 +1,13 @@
|
||||
package eu.endermite.togglepvp;
|
||||
package me.youhavetrouble.preventstabby;
|
||||
|
||||
import eu.endermite.togglepvp.commands.MainCommand;
|
||||
import 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<Class<?>> listenerClasses = reflections.getTypesAnnotatedWith(Listener.class);
|
||||
Reflections reflections = new Reflections(new String[]{"eu.endermite.preventstabby"});
|
||||
Set<Class<?>> listenerClasses = reflections.getTypesAnnotatedWith(PreventStabbyListener.class);
|
||||
listenerClasses.forEach((listener)-> {
|
||||
try {
|
||||
getServer().getPluginManager().registerEvents((org.bukkit.event.Listener) listener.getConstructor().newInstance(), this);
|
||||
+13
-13
@@ -1,7 +1,7 @@
|
||||
package eu.endermite.togglepvp.api;
|
||||
package me.youhavetrouble.preventstabby.api;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import 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());
|
||||
}
|
||||
|
||||
/**
|
||||
+4
-4
@@ -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
|
||||
+4
-4
@@ -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
|
||||
@@ -0,0 +1,49 @@
|
||||
package me.youhavetrouble.preventstabby.api.event;
|
||||
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.Event;
|
||||
import org.bukkit.event.HandlerList;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
/**
|
||||
* NOT IMPLEMENTED YET
|
||||
*/
|
||||
@Deprecated
|
||||
public class PlayerTogglePvpEvent extends Event {
|
||||
|
||||
private static final HandlerList HANDLERS = new HandlerList();
|
||||
private final Player player;
|
||||
private boolean newState, sendMessage;
|
||||
|
||||
public PlayerTogglePvpEvent(Player player, boolean newState, boolean sendMessage) {
|
||||
this.player = player;
|
||||
this.newState = newState;
|
||||
this.sendMessage = sendMessage;
|
||||
}
|
||||
|
||||
public Player getPlayer() {
|
||||
return player;
|
||||
}
|
||||
|
||||
public boolean newState() {
|
||||
return newState;
|
||||
}
|
||||
|
||||
public void setNewState(boolean newState) {
|
||||
this.newState = newState;
|
||||
}
|
||||
|
||||
public boolean isSendMessage() {
|
||||
return sendMessage;
|
||||
}
|
||||
|
||||
public void setSendMessage(boolean sendMessage) {
|
||||
this.sendMessage = sendMessage;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public HandlerList getHandlers() {
|
||||
return HANDLERS;
|
||||
}
|
||||
}
|
||||
+5
-5
@@ -1,7 +1,7 @@
|
||||
package eu.endermite.togglepvp.commands;
|
||||
package me.youhavetrouble.preventstabby.commands;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import 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<String> 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"));
|
||||
}
|
||||
+14
-14
@@ -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<String, String> 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;
|
||||
+40
-40
@@ -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 <player>");
|
||||
}
|
||||
} 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 <player>");
|
||||
} 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 <player>");
|
||||
}
|
||||
} 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 <player>");
|
||||
} 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 <player>");
|
||||
}
|
||||
} 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 <player>");
|
||||
} else {
|
||||
sender.sendMessage("Try /pvp disable");
|
||||
@@ -0,0 +1,23 @@
|
||||
package me.youhavetrouble.preventstabby.commands;
|
||||
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.ChatColor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
|
||||
public class ReloadCommand {
|
||||
|
||||
public static void reload(CommandSender sender) {
|
||||
|
||||
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||
if (!sender.hasPermission("preventstabby.command.reload")) {
|
||||
String message = ChatColor.translateAlternateColorCodes('&', PreventStabby.getPlugin().getConfigCache().getNo_permission());
|
||||
sender.sendMessage(message);
|
||||
return;
|
||||
}
|
||||
PreventStabby.getPlugin().reloadPluginConfig(sender);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+8
-4
@@ -1,6 +1,6 @@
|
||||
package eu.endermite.togglepvp.config;
|
||||
package me.youhavetrouble.preventstabby.config;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import io.github.thatsmusic99.configurationmaster.CMFile;
|
||||
import 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<String> combatBlockedCommands = new HashSet<>();
|
||||
@@ -73,6 +73,8 @@ public class ConfigCache {
|
||||
addDefault("messages.cannot_attack_attacker", "&cYou can't attack players while you have PvP turned off!");
|
||||
addDefault("messages.cannot_attack_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.");
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||
|
||||
import me.youhavetrouble.preventstabby.util.Util;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@PreventStabbyListener
|
||||
public class MountHitByExplosionListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||
if (!(event.getDamager() instanceof Player) || event.getEntity().getPassengers().isEmpty()) return;
|
||||
if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) return;
|
||||
UUID damager = event.getDamager().getUniqueId();
|
||||
Entity mount = event.getEntity();
|
||||
if (Util.processMountAttack(damager, mount))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||
|
||||
import me.youhavetrouble.preventstabby.util.Util;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Firework;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.event.entity.EntityDamageEvent;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@PreventStabbyListener
|
||||
public class MountHitByFireworkListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||
if (!(event.getDamager() instanceof Firework) || event.getEntity().getPassengers().isEmpty()) return;
|
||||
if (!event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_EXPLOSION)) return;
|
||||
Firework firework = (Firework) event.getDamager();
|
||||
if (!(firework.getShooter() instanceof Player)) return;
|
||||
UUID damager = ((Player) firework.getShooter()).getUniqueId();
|
||||
Entity mount = event.getEntity();
|
||||
if (Util.processMountAttack(damager, mount))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import me.youhavetrouble.preventstabby.util.Util;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@PreventStabbyListener
|
||||
public class MountHitBySplashPotionListener implements Listener {
|
||||
|
||||
/**
|
||||
* If thrown potion applies negative effects and it's thrown by a player
|
||||
* it will have no effect on a pet of a player with pvp off
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onMountHitBySplashPotion(org.bukkit.event.entity.PotionSplashEvent event) {
|
||||
if (!(event.getEntity().getShooter() instanceof Player)) return;
|
||||
boolean harmful = false;
|
||||
for (PotionEffect effect : event.getPotion().getEffects()) {
|
||||
if (Util.isPotionEffectHarmful(effect.getType())) {
|
||||
harmful = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!harmful) return;
|
||||
UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
|
||||
for (LivingEntity entity : event.getAffectedEntities()) {
|
||||
if (entity.getPassengers().isEmpty()) continue;
|
||||
if (Util.processMountAttack(damager, entity))
|
||||
event.setIntensity(entity, 0);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||
|
||||
import me.youhavetrouble.preventstabby.util.Util;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@PreventStabbyListener
|
||||
public class PlayerAttackMountListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||
if (!(event.getDamager() instanceof Player) || event.getEntity().getPassengers().isEmpty()) return;
|
||||
Entity entity = event.getEntity();
|
||||
UUID damager = event.getDamager().getUniqueId();
|
||||
if (Util.processMountAttack(damager, entity))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
package me.youhavetrouble.preventstabby.listeners.mount;
|
||||
|
||||
import me.youhavetrouble.preventstabby.util.Util;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.entity.Projectile;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@PreventStabbyListener
|
||||
public class PlayerHitMountWithProjectileListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||
if (!(event.getDamager() instanceof Player) || event.getEntity().getPassengers().isEmpty()) return;
|
||||
Projectile projectile = (Projectile) event.getDamager();
|
||||
if (!(projectile.getShooter() instanceof Player)) return;
|
||||
Entity entity = event.getEntity();
|
||||
UUID damager = event.getDamager().getUniqueId();
|
||||
if (Util.processMountAttack(damager, entity))
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
+10
-14
@@ -1,7 +1,8 @@
|
||||
package eu.endermite.togglepvp.listeners.pets;
|
||||
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import 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);
|
||||
+9
-11
@@ -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);
|
||||
+14
-27
@@ -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);
|
||||
+8
-9
@@ -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);
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.players.SmartCache;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import me.youhavetrouble.preventstabby.util.Util;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Tameable;
|
||||
import org.bukkit.entity.Wolf;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
@PreventStabbyListener
|
||||
public class PetTargettingMountListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onWolfAttackMount(org.bukkit.event.entity.EntityDamageByEntityEvent event) {
|
||||
if (!(event.getDamager() instanceof Tameable) || event.getEntity().getPassengers().isEmpty()) return;
|
||||
Tameable damager = (Tameable) event.getDamager();
|
||||
Entity victim = event.getEntity();
|
||||
if (damager.getOwner() == null) return;
|
||||
|
||||
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||
boolean damagerPvpEnabled = smartCache.getPlayerData(damager.getOwner().getUniqueId()).isPvpEnabled();
|
||||
boolean victimPvpEnabled = !Util.processMountAttack(damager.getOwner().getUniqueId(), victim);
|
||||
|
||||
if (!victimPvpEnabled || !damagerPvpEnabled) {
|
||||
if (damager instanceof Wolf) {
|
||||
Wolf wolf = (Wolf) damager;
|
||||
wolf.setAngry(false);
|
||||
}
|
||||
event.setCancelled(true);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+7
-7
@@ -1,14 +1,15 @@
|
||||
package eu.endermite.togglepvp.listeners.pets;
|
||||
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import 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();
|
||||
|
||||
+8
-10
@@ -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);
|
||||
+13
-14
@@ -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);
|
||||
+14
-18
@@ -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());
|
||||
+8
-13
@@ -1,29 +1,24 @@
|
||||
package eu.endermite.togglepvp.listeners.pets;
|
||||
package me.youhavetrouble.preventstabby.listeners.pets;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import org.bukkit.entity.Tameable;
|
||||
import org.bukkit.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);
|
||||
|
||||
+8
-9
@@ -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) {
|
||||
+6
-5
@@ -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);
|
||||
+7
-7
@@ -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);
|
||||
+15
-16
@@ -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()));
|
||||
}
|
||||
}
|
||||
|
||||
+7
-8
@@ -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);
|
||||
+12
-13
@@ -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);
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
package me.youhavetrouble.preventstabby.listeners.player;
|
||||
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.util.CombatTimer;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import me.youhavetrouble.preventstabby.util.Util;
|
||||
import org.bukkit.entity.LivingEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.potion.PotionEffect;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@PreventStabbyListener
|
||||
public class PlayerHitBySplashPotionListener implements Listener {
|
||||
|
||||
/**
|
||||
* If thrown potion is applies negative effects and it's thrown by a player it will have no effect on player with pvp off
|
||||
*/
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerHitBySplashPotion(org.bukkit.event.entity.PotionSplashEvent event) {
|
||||
|
||||
if (!(event.getEntity().getShooter() instanceof Player)) return;
|
||||
boolean harmful = false;
|
||||
|
||||
for (PotionEffect effect : event.getPotion().getEffects()) {
|
||||
if (Util.isPotionEffectHarmful(effect.getType())) {
|
||||
harmful = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!harmful) return;
|
||||
UUID damager = ((Player) event.getEntity().getShooter()).getUniqueId();
|
||||
for (LivingEntity entity : event.getAffectedEntities()) {
|
||||
if (!(entity instanceof Player)) continue;
|
||||
UUID victim = entity.getUniqueId();
|
||||
if (damager == victim) continue;
|
||||
if (PreventStabby.getPlugin().getPlayerManager().canDamage(damager, victim, true)) {
|
||||
CombatTimer.refreshPlayersCombatTime(damager, victim);
|
||||
} else {
|
||||
event.setIntensity(entity, 0);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
+63
@@ -0,0 +1,63 @@
|
||||
package me.youhavetrouble.preventstabby.listeners.player;
|
||||
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.players.PlayerData;
|
||||
import me.youhavetrouble.preventstabby.players.SmartCache;
|
||||
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.UUID;
|
||||
|
||||
@PreventStabbyListener
|
||||
public class PlayerJoinAndLeaveListener implements Listener {
|
||||
/**
|
||||
* This event is here to get players saved options on join
|
||||
*/
|
||||
@EventHandler(ignoreCancelled = true)
|
||||
public void onPlayerJoin(org.bukkit.event.player.PlayerJoinEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
UUID uuid = player.getUniqueId();
|
||||
|
||||
PlayerData playerData = PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId());
|
||||
long time = Instant.now().getEpochSecond();
|
||||
if (playerData == null) {
|
||||
PreventStabby.getPlugin().getPlayerManager().addPlayer(uuid, new PlayerData(false));
|
||||
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> {
|
||||
PlayerData data = PreventStabby.getPlugin().getSqLite().getPlayerInfo(uuid);
|
||||
PreventStabby.getPlugin().getPlayerManager().addPlayer(uuid, data);
|
||||
data.setLoginTimestamp(time);
|
||||
});
|
||||
return;
|
||||
}
|
||||
playerData.refreshCachetime();
|
||||
playerData.setLoginTimestamp(time);
|
||||
}
|
||||
|
||||
/**
|
||||
* This event is here to save player's data to database
|
||||
* Also punishes players who log out during combat
|
||||
*/
|
||||
@EventHandler
|
||||
public void onPlayerLeave(org.bukkit.event.player.PlayerQuitEvent event) {
|
||||
Player player = event.getPlayer();
|
||||
Bukkit.getScheduler().runTaskAsynchronously(PreventStabby.getPlugin(), () -> PreventStabby.getPlugin().getSqLite().updatePlayerInfo(player.getUniqueId(), PreventStabby.getPlugin().getPlayerManager().getPlayer(player.getUniqueId())));
|
||||
|
||||
if (!PreventStabby.getPlugin().getConfigCache().isPunish_for_combat_logout()) return;
|
||||
|
||||
SmartCache smartCache = PreventStabby.getPlugin().getSmartCache();
|
||||
PlayerData playerData = smartCache.getPlayerData(player.getUniqueId());
|
||||
|
||||
if (!playerData.isInCombat()) return;
|
||||
|
||||
player.setHealth(0);
|
||||
if (PreventStabby.getPlugin().getConfigCache().isPunish_for_combat_logout_announce())
|
||||
PluginMessages.broadcastMessage(player, PreventStabby.getPlugin().getConfigCache().getPunish_for_combat_logout_message());
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
+7
-6
@@ -1,21 +1,22 @@
|
||||
package eu.endermite.togglepvp.listeners.player;
|
||||
package me.youhavetrouble.preventstabby.listeners.player;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import 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());
|
||||
}
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
package me.youhavetrouble.preventstabby.listeners.toggles;
|
||||
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.players.PlayerManager;
|
||||
import me.youhavetrouble.preventstabby.util.PluginMessages;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.EventPriority;
|
||||
import org.bukkit.event.Listener;
|
||||
|
||||
@PreventStabbyListener
|
||||
public class CombatCommandListener implements Listener {
|
||||
|
||||
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
|
||||
public void onPlayerCommandInCombat(org.bukkit.event.player.PlayerCommandPreprocessEvent event) {
|
||||
|
||||
if (!PreventStabby.getPlugin().getConfigCache().isBlock_commands_in_combat())
|
||||
return;
|
||||
|
||||
PlayerManager playerManager = PreventStabby.getPlugin().getPlayerManager();
|
||||
|
||||
if (!playerManager.getPlayer(event.getPlayer().getUniqueId()).isInCombat())
|
||||
return;
|
||||
|
||||
String command = event.getMessage().replaceFirst("/", "");
|
||||
|
||||
if (!PreventStabby.getPlugin().getConfigCache().getCombatBlockedCommands().contains(command))
|
||||
return;
|
||||
|
||||
if (event.getPlayer().hasPermission("toglepvp.combatcommandblock.bypass"))
|
||||
return;
|
||||
|
||||
event.setCancelled(true);
|
||||
PluginMessages.sendMessage(event.getPlayer(), PreventStabby.getPlugin().getConfigCache().getCant_do_that_during_combat());
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
+9
-8
@@ -1,22 +1,23 @@
|
||||
package eu.endermite.togglepvp.listeners.toggles;
|
||||
package me.youhavetrouble.preventstabby.listeners.toggles;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import 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());
|
||||
|
||||
}
|
||||
|
||||
+7
-6
@@ -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<LivingEntity> it = event.getAffectedEntities().iterator();
|
||||
UUID damager = ((Player) event.getEntity().getSource()).getUniqueId();
|
||||
+9
-8
@@ -1,6 +1,7 @@
|
||||
package eu.endermite.togglepvp.listeners.unspecific;
|
||||
package me.youhavetrouble.preventstabby.listeners.unspecific;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import org.bukkit.entity.LightningStrike;
|
||||
import org.bukkit.entity.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()));
|
||||
}
|
||||
}
|
||||
}
|
||||
+7
-6
@@ -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);
|
||||
+15
-14
@@ -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);
|
||||
+7
-6
@@ -1,12 +1,13 @@
|
||||
package eu.endermite.togglepvp.listeners.unspecific;
|
||||
package me.youhavetrouble.preventstabby.listeners.unspecific;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.util.PreventStabbyListener;
|
||||
import org.bukkit.entity.*;
|
||||
import org.bukkit.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;
|
||||
}
|
||||
+10
-9
@@ -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);
|
||||
+12
-6
@@ -1,11 +1,13 @@
|
||||
package eu.endermite.togglepvp.players;
|
||||
package me.youhavetrouble.preventstabby.players;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.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() {
|
||||
+41
-34
@@ -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<PlayerData> 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();
|
||||
}
|
||||
|
||||
+13
-13
@@ -1,6 +1,6 @@
|
||||
package eu.endermite.togglepvp.players;
|
||||
package me.youhavetrouble.preventstabby.players;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.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<UUID, PlayerData> e : TogglePvp.getPlugin().getPlayerManager().getPlayerList().entrySet()) {
|
||||
for (Map.Entry<UUID, PlayerData> 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));
|
||||
}
|
||||
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
package eu.endermite.togglepvp.util;
|
||||
package me.youhavetrouble.preventstabby.util;
|
||||
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.util.BoundingBox;
|
||||
@@ -0,0 +1,47 @@
|
||||
package me.youhavetrouble.preventstabby.util;
|
||||
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.api.event.PlayerEnterCombatEvent;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import java.time.Instant;
|
||||
import java.util.UUID;
|
||||
|
||||
public class CombatTimer {
|
||||
|
||||
public static void refreshPlayersCombatTime(UUID uuid) {
|
||||
try {
|
||||
long now = Instant.now().getEpochSecond();
|
||||
long combattime = PreventStabby.getPlugin().getSmartCache().getPlayerData(uuid).getCombattime();
|
||||
|
||||
Player player = Bukkit.getPlayer(uuid);
|
||||
if (player == null || !player.isOnline()) return;
|
||||
PlayerEnterCombatEvent playerEnterCombatEvent = new PlayerEnterCombatEvent(player);
|
||||
Bukkit.getScheduler().runTask(PreventStabby.getPlugin(), () -> {
|
||||
Bukkit.getPluginManager().callEvent(playerEnterCombatEvent);
|
||||
if (playerEnterCombatEvent.isCancelled()) return;
|
||||
PreventStabby.getPlugin().getPlayerManager().refreshPlayersCombatTime(uuid);
|
||||
|
||||
if (combattime <= now) {
|
||||
PluginMessages.sendActionBar(uuid, PreventStabby.getPlugin().getConfigCache().getEntering_combat());
|
||||
}
|
||||
});
|
||||
} catch (Exception ignored) {
|
||||
}
|
||||
}
|
||||
|
||||
public static void refreshPlayersCombatTime(UUID... uuid) {
|
||||
for (UUID id : uuid) {
|
||||
refreshPlayersCombatTime(id);
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean isInCombat(UUID uuid) {
|
||||
try {
|
||||
return PreventStabby.getPlugin().getPlayerManager().getPlayer(uuid).getCombattime() >= Instant.now().getEpochSecond();
|
||||
} catch (Exception e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
+5
-6
@@ -1,7 +1,7 @@
|
||||
package eu.endermite.togglepvp.util;
|
||||
package me.youhavetrouble.preventstabby.util;
|
||||
|
||||
import eu.endermite.togglepvp.TogglePvp;
|
||||
import 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) {
|
||||
+2
-1
@@ -1,4 +1,4 @@
|
||||
package eu.endermite.togglepvp.util;
|
||||
package me.youhavetrouble.preventstabby.util;
|
||||
|
||||
import net.md_5.bungee.api.ChatMessageType;
|
||||
import net.md_5.bungee.api.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);
|
||||
}
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package eu.endermite.togglepvp.util;
|
||||
package me.youhavetrouble.preventstabby.util;
|
||||
|
||||
import java.lang.annotation.ElementType;
|
||||
import java.lang.annotation.Retention;
|
||||
@@ -8,4 +8,4 @@ import java.lang.annotation.Target;
|
||||
@Retention(RetentionPolicy.RUNTIME)
|
||||
@Target({ElementType.TYPE})
|
||||
|
||||
public @interface Listener {}
|
||||
public @interface PreventStabbyListener {}
|
||||
@@ -0,0 +1,69 @@
|
||||
package me.youhavetrouble.preventstabby.util;
|
||||
|
||||
import me.youhavetrouble.preventstabby.PreventStabby;
|
||||
import me.youhavetrouble.preventstabby.config.ConfigCache;
|
||||
import org.bukkit.entity.Entity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.potion.PotionEffectType;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
|
||||
public class Util {
|
||||
|
||||
private static final HashSet<PotionEffectType> harmfulPotions = new HashSet<>();
|
||||
|
||||
public static void initData() {
|
||||
harmfulPotions.add(PotionEffectType.BLINDNESS);
|
||||
harmfulPotions.add(PotionEffectType.CONFUSION);
|
||||
harmfulPotions.add(PotionEffectType.HARM);
|
||||
harmfulPotions.add(PotionEffectType.HUNGER);
|
||||
harmfulPotions.add(PotionEffectType.POISON);
|
||||
harmfulPotions.add(PotionEffectType.SLOW_DIGGING);
|
||||
harmfulPotions.add(PotionEffectType.WEAKNESS);
|
||||
harmfulPotions.add(PotionEffectType.SLOW);
|
||||
harmfulPotions.add(PotionEffectType.WITHER);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param attacker Player attacking the mount
|
||||
* @param mount Entity being ridden
|
||||
* @return true if event should be cancelled
|
||||
*/
|
||||
public static boolean processMountAttack(UUID attacker, Entity mount) {
|
||||
|
||||
// Don't cancel attacks on players that have passengers
|
||||
if (mount instanceof Player) return false;
|
||||
|
||||
ConfigCache config = PreventStabby.getPlugin().getConfigCache();
|
||||
|
||||
if (!PreventStabby.getPlugin().getPlayerManager().getPlayerPvPState(attacker)) {
|
||||
PluginMessages.sendActionBar(attacker, config.getCannot_attack_mounts_attacker());
|
||||
return true;
|
||||
}
|
||||
|
||||
Set<UUID> playerPassengersWithPvpEnabled = new HashSet<>();
|
||||
|
||||
for (Entity passenger : mount.getPassengers()) {
|
||||
if (!(passenger instanceof Player)) continue;
|
||||
Player player = (Player) passenger;
|
||||
if (PreventStabby.getPlugin().getPlayerManager().getPlayerPvPState(player.getUniqueId()))
|
||||
playerPassengersWithPvpEnabled.add(player.getUniqueId());
|
||||
}
|
||||
|
||||
if (playerPassengersWithPvpEnabled.isEmpty()) {
|
||||
PluginMessages.sendActionBar(attacker, config.getCannot_attack_mounts_victim());
|
||||
return true;
|
||||
}
|
||||
|
||||
playerPassengersWithPvpEnabled.forEach(CombatTimer::refreshPlayersCombatTime);
|
||||
CombatTimer.refreshPlayersCombatTime(attacker);
|
||||
return false;
|
||||
}
|
||||
|
||||
public static boolean isPotionEffectHarmful(PotionEffectType effect) {
|
||||
return harmfulPotions.contains(effect);
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user