refactors and basic api

This commit is contained in:
YouHaveTrouble
2021-02-19 04:02:06 +01:00
parent 905861079f
commit 8626d79825
32 changed files with 189 additions and 177 deletions
@@ -2,11 +2,6 @@ package eu.endermite.togglepvp;
import eu.endermite.togglepvp.commands.MainCommand; import eu.endermite.togglepvp.commands.MainCommand;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.listeners.player.*;
import eu.endermite.togglepvp.listeners.player.WolfAttackPlayerListener;
import eu.endermite.togglepvp.listeners.wolf.WolfTargettingPlayerListener;
import eu.endermite.togglepvp.listeners.unspecific.*;
import eu.endermite.togglepvp.listeners.wolf.*;
import eu.endermite.togglepvp.players.PlayerManager; import eu.endermite.togglepvp.players.PlayerManager;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.Listener; import eu.endermite.togglepvp.util.Listener;
@@ -15,16 +10,14 @@ import lombok.Getter;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.reflections.Reflections; import org.reflections.Reflections;
import org.reflections.scanners.TypeAnnotationsScanner;
import java.io.File; import java.io.File;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.Objects; import java.util.Objects;
import java.util.Set; import java.util.Set;
public final class TogglePvP extends JavaPlugin { public final class TogglePvp extends JavaPlugin {
@Getter private static TogglePvP plugin; @Getter private static TogglePvp plugin;
private ConfigCache configCache; private ConfigCache configCache;
private PlayerManager playerManager; private PlayerManager playerManager;
private DatabaseSQLite sqLite; private DatabaseSQLite sqLite;
@@ -0,0 +1,27 @@
package eu.endermite.togglepvp;
import eu.endermite.togglepvp.players.SmartCache;
import java.util.UUID;
public class TogglePvpAPI {
/**
* Sets player PvP state. This will always save to database.
* @param uuid uuid of player to set
* @param newState State to set
*/
public static void setPvpEnabled(UUID uuid, boolean newState) {
SmartCache.setPlayerPvpState(uuid, newState);
}
/**
* Gets player's PvP state. If player is not cached this will query the database.
* @param uuid uuid of player to get data from.
* @return true if enabled, false if disabled
*/
public static boolean getPvpEnabled(UUID uuid) {
return SmartCache.getPlayerData(uuid).isPvpEnabled();
}
}
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.commands; package eu.endermite.togglepvp.commands;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -11,7 +11,7 @@ import java.util.List;
public class HelpCommand { public class HelpCommand {
public static void help(CommandSender sender, String[] args) { public static void help(CommandSender sender, String[] args) {
Bukkit.getScheduler().runTaskAsynchronously(TogglePvP.getPlugin(), () -> { Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
List<String> helpPage = new ArrayList<>(); List<String> helpPage = new ArrayList<>();
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.commands; package eu.endermite.togglepvp.commands;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
import org.bukkit.command.Command; import org.bukkit.command.Command;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
@@ -33,14 +33,14 @@ public class MainCommand implements TabExecutor {
ReloadCommand.reload(sender); ReloadCommand.reload(sender);
break; break;
default: default:
sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getNo_such_command())); sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getNo_such_command()));
break; break;
} }
} else { } else {
HelpCommand.help(sender, args); HelpCommand.help(sender, args);
} }
} else { } else {
sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getNo_permission())); sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getNo_permission()));
} }
return true; return true;
} }
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.commands; package eu.endermite.togglepvp.commands;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
import net.md_5.bungee.api.ChatMessageType; import net.md_5.bungee.api.ChatMessageType;
@@ -14,10 +14,10 @@ public class PvpToggleCommand {
public static void toggle(CommandSender sender, String[] args) { public static void toggle(CommandSender sender, String[] args) {
Bukkit.getScheduler().runTaskAsynchronously(TogglePvP.getPlugin(), () -> { Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
if (!sender.hasPermission("togglepvp.command.toggle")) { if (!sender.hasPermission("togglepvp.command.toggle")) {
String message = TogglePvP.getPlugin().getConfigCache().getNo_permission(); String message = TogglePvp.getPlugin().getConfigCache().getNo_permission();
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
sender.spigot().sendMessage(component); sender.spigot().sendMessage(component);
return; return;
@@ -28,17 +28,17 @@ public class PvpToggleCommand {
Player player = (Player) sender; Player player = (Player) sender;
if (CombatTimer.isInCombat(player.getUniqueId())) { if (CombatTimer.isInCombat(player.getUniqueId())) {
sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getCant_do_that_during_combat())); sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
return; return;
} }
boolean currentState = TogglePvP.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId()); boolean currentState = TogglePvp.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
String message = ""; String message = "";
if (currentState) { if (currentState) {
message = PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getPvp_enabled()); message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_enabled());
} else { } else {
message = PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getPvp_disabled()); message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_disabled());
} }
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
player.spigot().sendMessage(ChatMessageType.CHAT, component); player.spigot().sendMessage(ChatMessageType.CHAT, component);
@@ -47,7 +47,7 @@ public class PvpToggleCommand {
} }
} else if (args.length == 2) { } else if (args.length == 2) {
if (!sender.hasPermission("togglepvp.command.toggle.others")) { if (!sender.hasPermission("togglepvp.command.toggle.others")) {
String message = TogglePvP.getPlugin().getConfigCache().getNo_permission(); String message = TogglePvp.getPlugin().getConfigCache().getNo_permission();
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
sender.spigot().sendMessage(component); sender.spigot().sendMessage(component);
return; return;
@@ -56,18 +56,18 @@ public class PvpToggleCommand {
if (sender instanceof Player) { if (sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
if (CombatTimer.isInCombat(player.getUniqueId())) { if (CombatTimer.isInCombat(player.getUniqueId())) {
sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getCant_do_that_during_combat())); sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
return; return;
} }
} }
try { try {
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
boolean currentState = TogglePvP.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId()); boolean currentState = TogglePvp.getPlugin().getPlayerManager().togglePlayerPvpState(player.getUniqueId());
String message; String message;
if (currentState) { if (currentState) {
message = TogglePvP.getPlugin().getConfigCache().getPvp_enabled_other(); message = TogglePvp.getPlugin().getConfigCache().getPvp_enabled_other();
} else { } else {
message = TogglePvP.getPlugin().getConfigCache().getPvp_disabled_other(); message = TogglePvp.getPlugin().getConfigCache().getPvp_disabled_other();
} }
sender.sendMessage(PluginMessages.parsePlayerName(player, message)); sender.sendMessage(PluginMessages.parsePlayerName(player, message));
@@ -86,7 +86,7 @@ public class PvpToggleCommand {
public static void enable(CommandSender sender, String[] args) { public static void enable(CommandSender sender, String[] args) {
if (!sender.hasPermission("togglepvp.command.toggle")) { if (!sender.hasPermission("togglepvp.command.toggle")) {
String message = TogglePvP.getPlugin().getConfigCache().getNo_permission(); String message = TogglePvp.getPlugin().getConfigCache().getNo_permission();
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
sender.spigot().sendMessage(component); sender.spigot().sendMessage(component);
return; return;
@@ -95,11 +95,11 @@ public class PvpToggleCommand {
if (sender instanceof Player) { if (sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
if (CombatTimer.isInCombat(player.getUniqueId())) { if (CombatTimer.isInCombat(player.getUniqueId())) {
sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getCant_do_that_during_combat())); sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
return; return;
} }
TogglePvP.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true); TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
String message = PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getPvp_enabled()); String message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_enabled());
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
player.spigot().sendMessage(ChatMessageType.CHAT, component); player.spigot().sendMessage(ChatMessageType.CHAT, component);
} else { } else {
@@ -107,7 +107,7 @@ public class PvpToggleCommand {
} }
} else if (args.length == 2) { } else if (args.length == 2) {
if (!sender.hasPermission("togglepvp.command.toggle.others")) { if (!sender.hasPermission("togglepvp.command.toggle.others")) {
String message = TogglePvP.getPlugin().getConfigCache().getNo_permission(); String message = TogglePvp.getPlugin().getConfigCache().getNo_permission();
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
sender.spigot().sendMessage(component); sender.spigot().sendMessage(component);
return; return;
@@ -115,15 +115,15 @@ public class PvpToggleCommand {
if (sender instanceof Player) { if (sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
if (CombatTimer.isInCombat(player.getUniqueId())) { if (CombatTimer.isInCombat(player.getUniqueId())) {
sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getCant_do_that_during_combat())); sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
return; return;
} }
} }
try { try {
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
String message = TogglePvP.getPlugin().getConfigCache().getPvp_enabled_other(); String message = TogglePvp.getPlugin().getConfigCache().getPvp_enabled_other();
sender.sendMessage(PluginMessages.parsePlayerName(player, message)); sender.sendMessage(PluginMessages.parsePlayerName(player, message));
TogglePvP.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true); TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
} catch (NullPointerException e) { } catch (NullPointerException e) {
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline.")); sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
} }
@@ -138,7 +138,7 @@ public class PvpToggleCommand {
public static void disable(CommandSender sender, String[] args) { public static void disable(CommandSender sender, String[] args) {
if (!sender.hasPermission("togglepvp.command.toggle")) { if (!sender.hasPermission("togglepvp.command.toggle")) {
String message = TogglePvP.getPlugin().getConfigCache().getNo_permission(); String message = TogglePvp.getPlugin().getConfigCache().getNo_permission();
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
sender.spigot().sendMessage(component); sender.spigot().sendMessage(component);
return; return;
@@ -147,11 +147,11 @@ public class PvpToggleCommand {
if (sender instanceof Player) { if (sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
if (CombatTimer.isInCombat(player.getUniqueId())) { if (CombatTimer.isInCombat(player.getUniqueId())) {
sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getCant_do_that_during_combat())); sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
return; return;
} }
TogglePvP.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false); TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), false);
String message = PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getPvp_disabled()); String message = PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getPvp_disabled());
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
player.spigot().sendMessage(ChatMessageType.CHAT, component); player.spigot().sendMessage(ChatMessageType.CHAT, component);
} else { } else {
@@ -159,7 +159,7 @@ public class PvpToggleCommand {
} }
} else if (args.length == 2) { } else if (args.length == 2) {
if (!sender.hasPermission("togglepvp.command.toggle.others")) { if (!sender.hasPermission("togglepvp.command.toggle.others")) {
String message = TogglePvP.getPlugin().getConfigCache().getNo_permission(); String message = TogglePvp.getPlugin().getConfigCache().getNo_permission();
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
sender.spigot().sendMessage(component); sender.spigot().sendMessage(component);
return; return;
@@ -167,15 +167,15 @@ public class PvpToggleCommand {
if (sender instanceof Player) { if (sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
if (CombatTimer.isInCombat(player.getUniqueId())) { if (CombatTimer.isInCombat(player.getUniqueId())) {
sender.sendMessage(PluginMessages.parseMessage(TogglePvP.getPlugin().getConfigCache().getCant_do_that_during_combat())); sender.sendMessage(PluginMessages.parseMessage(TogglePvp.getPlugin().getConfigCache().getCant_do_that_during_combat()));
return; return;
} }
} }
try { try {
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
String message = TogglePvP.getPlugin().getConfigCache().getPvp_disabled_other(); String message = TogglePvp.getPlugin().getConfigCache().getPvp_disabled_other();
sender.sendMessage(PluginMessages.parsePlayerName(player, message)); sender.sendMessage(PluginMessages.parsePlayerName(player, message));
TogglePvP.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true); TogglePvp.getPlugin().getPlayerManager().setPlayerPvpState(player.getUniqueId(), true);
} catch (NullPointerException e) { } catch (NullPointerException e) {
sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline.")); sender.sendMessage(PluginMessages.parseMessage("&cPlayer offline."));
} }
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.commands; package eu.endermite.togglepvp.commands;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import net.md_5.bungee.api.chat.BaseComponent; import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.api.chat.TextComponent; import net.md_5.bungee.api.chat.TextComponent;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@@ -10,14 +10,14 @@ public class ReloadCommand {
public static void reload(CommandSender sender) { public static void reload(CommandSender sender) {
Bukkit.getScheduler().runTaskAsynchronously(TogglePvP.getPlugin(), () -> { Bukkit.getScheduler().runTaskAsynchronously(TogglePvp.getPlugin(), () -> {
if (!sender.hasPermission("togglepvp.command.reload")) { if (!sender.hasPermission("togglepvp.command.reload")) {
String message = TogglePvP.getPlugin().getConfigCache().getNo_permission(); String message = TogglePvp.getPlugin().getConfigCache().getNo_permission();
BaseComponent[] component = TextComponent.fromLegacyText(message); BaseComponent[] component = TextComponent.fromLegacyText(message);
sender.spigot().sendMessage(component); sender.spigot().sendMessage(component);
return; return;
} }
TogglePvP.getPlugin().reloadPluginConfig(sender); TogglePvp.getPlugin().reloadPluginConfig(sender);
}); });
} }
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.config; package eu.endermite.togglepvp.config;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import lombok.Getter; import lombok.Getter;
import org.bukkit.configuration.Configuration; import org.bukkit.configuration.Configuration;
@@ -31,7 +31,7 @@ public class ConfigCache {
public ConfigCache() { public ConfigCache() {
Configuration config = TogglePvP.getPlugin().getConfig(); Configuration config = TogglePvp.getPlugin().getConfig();
// Settings // Settings
this.pvp_enabled_by_default = config.getBoolean("settings.pvp_enabled_by_default", false); this.pvp_enabled_by_default = config.getBoolean("settings.pvp_enabled_by_default", false);
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.player; package eu.endermite.togglepvp.listeners.player;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
@@ -25,10 +25,10 @@ public class PlayerAttackListener implements Listener {
Player damager = (Player) damagerEntity; Player damager = (Player) damagerEntity;
Player victim = (Player) victimEntity; Player victim = (Player) victimEntity;
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.player; package eu.endermite.togglepvp.listeners.player;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
@@ -30,14 +30,14 @@ public class PlayerHitByExplosionListener implements Listener {
try { try {
UUID damageruuid = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString()); UUID damageruuid = UUID.fromString(event.getDamager().getMetadata("PLAYEREXPLODED").get(0).asString());
if (!victim.getUniqueId().equals(damageruuid)) { if (!victim.getUniqueId().equals(damageruuid)) {
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = SmartCache.getPlayerData(damageruuid).isPvpEnabled(); boolean damagerPvpEnabled = SmartCache.getPlayerData(damageruuid).isPvpEnabled();
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_attacker());
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_victim()); PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_victim());
event.setCancelled(true); event.setCancelled(true);
@@ -58,12 +58,12 @@ public class PlayerHitByExplosionListener implements Listener {
if (event.getEntity() instanceof EnderCrystal) { if (event.getEntity() instanceof EnderCrystal) {
EnderCrystal enderCrystal = (EnderCrystal) event.getEntity(); EnderCrystal enderCrystal = (EnderCrystal) event.getEntity();
if (event.getDamager() instanceof Player) { if (event.getDamager() instanceof Player) {
enderCrystal.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvP.getPlugin(), event.getDamager().getUniqueId().toString())); enderCrystal.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), event.getDamager().getUniqueId().toString()));
} else if (event.getDamager() instanceof Projectile) { } else if (event.getDamager() instanceof Projectile) {
Projectile projectile = (Projectile) event.getDamager(); Projectile projectile = (Projectile) event.getDamager();
if (projectile.getShooter() instanceof Player) { if (projectile.getShooter() instanceof Player) {
Player damager = (Player) projectile.getShooter(); Player damager = (Player) projectile.getShooter();
enderCrystal.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvP.getPlugin(), damager.getUniqueId().toString())); enderCrystal.setMetadata("PLAYEREXPLODED", new FixedMetadataValue(TogglePvp.getPlugin(), damager.getUniqueId().toString()));
} }
} }
} }
@@ -78,12 +78,12 @@ public class PlayerHitByExplosionListener implements Listener {
TNTPrimed tntPrimed = (TNTPrimed) event.getEntity(); TNTPrimed tntPrimed = (TNTPrimed) event.getEntity();
if (tntPrimed.getSource() instanceof Player) { if (tntPrimed.getSource() instanceof Player) {
Player damager = (Player) tntPrimed.getSource(); Player damager = (Player) tntPrimed.getSource();
tntPrimed.setMetadata("PLAYEREXPLODED",new FixedMetadataValue( TogglePvP.getPlugin(), damager.getUniqueId().toString())); tntPrimed.setMetadata("PLAYEREXPLODED",new FixedMetadataValue( TogglePvp.getPlugin(), damager.getUniqueId().toString()));
} else if (tntPrimed.getSource() instanceof TNTPrimed) { } else if (tntPrimed.getSource() instanceof TNTPrimed) {
try { try {
TNTPrimed sourceTnt = (TNTPrimed) tntPrimed.getSource(); TNTPrimed sourceTnt = (TNTPrimed) tntPrimed.getSource();
String damagerUuid = sourceTnt.getMetadata("PLAYEREXPLODED").get(0).asString(); String damagerUuid = sourceTnt.getMetadata("PLAYEREXPLODED").get(0).asString();
tntPrimed.setMetadata("PLAYEREXPLODED", new FixedMetadataValue( TogglePvP.getPlugin(), damagerUuid)); tntPrimed.setMetadata("PLAYEREXPLODED", new FixedMetadataValue( TogglePvp.getPlugin(), damagerUuid));
}catch (NullPointerException ignored) {} }catch (NullPointerException ignored) {}
} }
} }
@@ -97,7 +97,7 @@ public class PlayerHitByExplosionListener implements Listener {
public void onPlayerPlacedTntMinecart(org.bukkit.event.entity.EntityPlaceEvent event) { public void onPlayerPlacedTntMinecart(org.bukkit.event.entity.EntityPlaceEvent event) {
if (event.getEntityType().equals(EntityType.MINECART_TNT)) { if (event.getEntityType().equals(EntityType.MINECART_TNT)) {
if (event.getPlayer() != null) { if (event.getPlayer() != null) {
event.getEntity().setMetadata("PLAYEREXPLODED", new FixedMetadataValue( TogglePvP.getPlugin(), event.getPlayer().getUniqueId().toString())); event.getEntity().setMetadata("PLAYEREXPLODED", new FixedMetadataValue( TogglePvp.getPlugin(), event.getPlayer().getUniqueId().toString()));
} }
} }
} }
@@ -109,7 +109,7 @@ public class PlayerHitByExplosionListener implements Listener {
public void onPlayerNudgedTntMinecart(org.bukkit.event.vehicle.VehicleEntityCollisionEvent event) { public void onPlayerNudgedTntMinecart(org.bukkit.event.vehicle.VehicleEntityCollisionEvent event) {
if (event.getVehicle() instanceof ExplosiveMinecart && event.getEntity() instanceof Player) { if (event.getVehicle() instanceof ExplosiveMinecart && event.getEntity() instanceof Player) {
Player damager = (Player) event.getEntity(); Player damager = (Player) event.getEntity();
event.getVehicle().setMetadata("PLAYEREXPLODED", new FixedMetadataValue( TogglePvP.getPlugin(), damager.getUniqueId().toString())); event.getVehicle().setMetadata("PLAYEREXPLODED", new FixedMetadataValue( TogglePvp.getPlugin(), damager.getUniqueId().toString()));
} }
} }
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.player; package eu.endermite.togglepvp.listeners.player;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
import org.bukkit.entity.Firework; import org.bukkit.entity.Firework;
@@ -22,16 +22,16 @@ public class PlayerHitByFireworkListener implements Listener {
if (damager == victim) { if (damager == victim) {
return; return;
} }
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
PluginMessages.sendActionBar(damager.getUniqueId(), TogglePvP.getPlugin().getConfigCache().getCannot_attack_attacker()); PluginMessages.sendActionBar(damager.getUniqueId(), TogglePvp.getPlugin().getConfigCache().getCannot_attack_attacker());
return; return;
} }
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
PluginMessages.sendActionBar(damager.getUniqueId(), TogglePvP.getPlugin().getConfigCache().getCannot_attack_victim()); PluginMessages.sendActionBar(damager.getUniqueId(), TogglePvp.getPlugin().getConfigCache().getCannot_attack_victim());
return; return;
} }
CombatTimer.refreshPlayersCombatTime(damager.getUniqueId(), victim.getUniqueId()); CombatTimer.refreshPlayersCombatTime(damager.getUniqueId(), victim.getUniqueId());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.player; package eu.endermite.togglepvp.listeners.player;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
@@ -29,9 +29,9 @@ public class PlayerHitByProjectileListener implements Listener {
if (damager == victim) { if (damager == victim) {
return; return;
} }
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.player; package eu.endermite.togglepvp.listeners.player;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
@@ -48,14 +48,14 @@ public class PlayerHitBySplashPotionListener implements Listener {
if (damager == victim) if (damager == victim)
continue; continue;
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setIntensity(victim, 0); event.setIntensity(victim, 0);
PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker());
continue; continue;
} }
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
event.setIntensity(victim, 0); event.setIntensity(victim, 0);
PluginMessages.sendActionBar(damager, config.getCannot_attack_victim()); PluginMessages.sendActionBar(damager, config.getCannot_attack_victim());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.player; package eu.endermite.togglepvp.listeners.player;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.players.PlayerData; import eu.endermite.togglepvp.players.PlayerData;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -17,8 +17,8 @@ public class PlayerJoinAndLeaveListener implements Listener {
public void onPlayerJoin(org.bukkit.event.player.PlayerJoinEvent event) { public void onPlayerJoin(org.bukkit.event.player.PlayerJoinEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
PlayerData playerData = TogglePvP.getPlugin().getSqLite().getPlayerInfo(player.getUniqueId()); PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(player.getUniqueId());
TogglePvP.getPlugin().getPlayerManager().addPlayer(player.getUniqueId(), playerData); TogglePvp.getPlugin().getPlayerManager().addPlayer(player.getUniqueId(), playerData);
} }
/** /**
* This event is here to dump player's saved options from memory * This event is here to dump player's saved options from memory
@@ -27,16 +27,16 @@ public class PlayerJoinAndLeaveListener implements Listener {
@EventHandler @EventHandler
public void onPlayerLeave(org.bukkit.event.player.PlayerQuitEvent event) { public void onPlayerLeave(org.bukkit.event.player.PlayerQuitEvent event) {
Player player = event.getPlayer(); Player player = event.getPlayer();
TogglePvP.getPlugin().getSqLite().updatePlayerInfo(player.getUniqueId(), TogglePvP.getPlugin().getPlayerManager().getPlayer(player.getUniqueId())); TogglePvp.getPlugin().getSqLite().updatePlayerInfo(player.getUniqueId(), TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()));
if (TogglePvP.getPlugin().getConfigCache().isPunish_for_combat_logout()) { if (TogglePvp.getPlugin().getConfigCache().isPunish_for_combat_logout()) {
long now = Instant.now().getEpochSecond(); long now = Instant.now().getEpochSecond();
long combatTime = TogglePvP.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()).getCombattime(); long combatTime = TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()).getCombattime();
if (combatTime > now) { if (combatTime > now) {
player.setHealth(0); player.setHealth(0);
if (TogglePvP.getPlugin().getConfigCache().isPunish_for_combat_logout_announce()) { if (TogglePvp.getPlugin().getConfigCache().isPunish_for_combat_logout_announce()) {
PluginMessages.broadcastMessage(player, TogglePvP.getPlugin().getConfigCache().getPunish_for_combat_logout_message()); PluginMessages.broadcastMessage(player, TogglePvp.getPlugin().getConfigCache().getPunish_for_combat_logout_message());
} }
TogglePvP.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()).setCombattime(now-1); TogglePvp.getPlugin().getPlayerManager().getPlayer(player.getUniqueId()).setCombattime(now-1);
} }
} }
} }
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.player; package eu.endermite.togglepvp.listeners.player;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -24,7 +24,7 @@ public class WolfAttackPlayerListener implements Listener {
try { try {
boolean damagerPvpEnabled = SmartCache.getPlayerData(wolf.getOwner().getUniqueId()).isPvpEnabled(); boolean damagerPvpEnabled = SmartCache.getPlayerData(wolf.getOwner().getUniqueId()).isPvpEnabled();
Player victim = (Player) event.getEntity(); Player victim = (Player) event.getEntity();
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled || !damagerPvpEnabled) { if (!victimPvpEnabled || !damagerPvpEnabled) {
wolf.setAngry(false); wolf.setAngry(false);
event.setCancelled(true); event.setCancelled(true);
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.unspecific; package eu.endermite.togglepvp.listeners.unspecific;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
@@ -46,14 +46,14 @@ public class AreaEffectCloudApplyListener implements Listener {
if (damager == victim) if (damager == victim)
continue; continue;
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
it.remove(); it.remove();
PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker());
continue; continue;
} }
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
it.remove(); it.remove();
PluginMessages.sendActionBar(damager, config.getCannot_attack_victim()); PluginMessages.sendActionBar(damager, config.getCannot_attack_victim());
@@ -65,8 +65,8 @@ public class AreaEffectCloudApplyListener implements Listener {
if (victim.getOwner() == null || victim.getOwner() == damager) { if (victim.getOwner() == null || victim.getOwner() == damager) {
return; return;
} }
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
it.remove(); it.remove();
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.unspecific; package eu.endermite.togglepvp.listeners.unspecific;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import org.bukkit.entity.LightningStrike; import org.bukkit.entity.LightningStrike;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@@ -26,7 +26,7 @@ public class EntityHitByLightningListener implements Listener {
if (event.getDamager() instanceof LightningStrike && event.getDamager().getMetadata("TRIDENT").size() >= 1) { if (event.getDamager() instanceof LightningStrike && event.getDamager().getMetadata("TRIDENT").size() >= 1) {
if (event.getEntity() instanceof Player) { if (event.getEntity() instanceof Player) {
Player victim = (Player) event.getEntity(); Player victim = (Player) event.getEntity();
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
} }
@@ -46,11 +46,11 @@ public class EntityHitByLightningListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onLightningStrike(LightningStrikeEvent event){ public void onLightningStrike(LightningStrikeEvent event){
if(event.getCause() == LightningStrikeEvent.Cause.TRIDENT){ if(event.getCause() == LightningStrikeEvent.Cause.TRIDENT){
if (TogglePvP.getPlugin().getConfigCache().isChanneling_enchant_disabled()) { if (TogglePvp.getPlugin().getConfigCache().isChanneling_enchant_disabled()) {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
event.getLightning().setMetadata("TRIDENT", new FixedMetadataValue(TogglePvP.getPlugin(), event.getLightning().getLocation())); event.getLightning().setMetadata("TRIDENT", new FixedMetadataValue(TogglePvp.getPlugin(), event.getLightning().getLocation()));
} }
} }
} }
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.unspecific; package eu.endermite.togglepvp.listeners.unspecific;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
@@ -14,7 +14,7 @@ import org.bukkit.event.Listener;
@eu.endermite.togglepvp.util.Listener @eu.endermite.togglepvp.util.Listener
public class FishingListener implements Listener { public class FishingListener implements Listener {
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
/** /**
* Prevents hooking players with disabled pvp with fishing rod * Prevents hooking players with disabled pvp with fishing rod
@@ -27,13 +27,13 @@ public class FishingListener implements Listener {
if (damager == victim) { if (damager == victim) {
return; return;
} }
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker());
return; return;
} }
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
PluginMessages.sendActionBar(damager, config.getCannot_attack_victim()); PluginMessages.sendActionBar(damager, config.getCannot_attack_victim());
@@ -46,7 +46,7 @@ public class FishingListener implements Listener {
if (victim.getOwner() == null || victim.getOwner() == damager) { if (victim.getOwner() == null || victim.getOwner() == damager) {
return; return;
} }
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.unspecific; package eu.endermite.togglepvp.listeners.unspecific;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.BoundingBoxUtil; import eu.endermite.togglepvp.util.BoundingBoxUtil;
@@ -20,7 +20,7 @@ import org.bukkit.util.BoundingBox;
@eu.endermite.togglepvp.util.Listener @eu.endermite.togglepvp.util.Listener
public class LavaDumpAndIgniteListener implements Listener { public class LavaDumpAndIgniteListener implements Listener {
private ConfigCache config = TogglePvP.getPlugin().getConfigCache(); private ConfigCache config = TogglePvp.getPlugin().getConfigCache();
/** /**
* Prevents dumping lava and pufferfish bucket near players with pvp off * Prevents dumping lava and pufferfish bucket near players with pvp off
@@ -28,7 +28,7 @@ public class LavaDumpAndIgniteListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onLavaDump(org.bukkit.event.player.PlayerBucketEmptyEvent event) { public void onLavaDump(org.bukkit.event.player.PlayerBucketEmptyEvent event) {
if (!TogglePvP.getPlugin().getConfigCache().isLava_and_fire_stopper_enabled()) if (!TogglePvp.getPlugin().getConfigCache().isLava_and_fire_stopper_enabled())
return; return;
if (event.getBucket().equals(Material.LAVA_BUCKET) || event.getBucket().equals(Material.PUFFERFISH_BUCKET)) { if (event.getBucket().equals(Material.LAVA_BUCKET) || event.getBucket().equals(Material.PUFFERFISH_BUCKET)) {
@@ -40,13 +40,13 @@ public class LavaDumpAndIgniteListener implements Listener {
if (entity instanceof Player) { if (entity instanceof Player) {
Player victim = (Player) entity; Player victim = (Player) entity;
if (victim != damager) { if (victim != damager) {
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker());
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_victim()); PluginMessages.sendActionBar(damager, config.getCannot_attack_victim());
event.setCancelled(true); event.setCancelled(true);
@@ -59,7 +59,7 @@ public class LavaDumpAndIgniteListener implements Listener {
if (victim.getOwner() == null) { if (victim.getOwner() == null) {
return; return;
} }
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
event.setCancelled(true); event.setCancelled(true);
@@ -85,7 +85,7 @@ public class LavaDumpAndIgniteListener implements Listener {
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onIgnite(org.bukkit.event.block.BlockIgniteEvent event) { public void onIgnite(org.bukkit.event.block.BlockIgniteEvent event) {
if (!TogglePvP.getPlugin().getConfigCache().isLava_and_fire_stopper_enabled()) if (!TogglePvp.getPlugin().getConfigCache().isLava_and_fire_stopper_enabled())
return; return;
if (event.getPlayer() !=null) { if (event.getPlayer() !=null) {
@@ -97,13 +97,13 @@ public class LavaDumpAndIgniteListener implements Listener {
if (entity instanceof Player) { if (entity instanceof Player) {
Player victim = (Player) entity; Player victim = (Player) entity;
if (victim != damager) { if (victim != damager) {
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker());
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_victim()); PluginMessages.sendActionBar(damager, config.getCannot_attack_victim());
event.setCancelled(true); event.setCancelled(true);
@@ -116,7 +116,7 @@ public class LavaDumpAndIgniteListener implements Listener {
if (victim.getOwner() == null || victim.getOwner() == damager) { if (victim.getOwner() == null || victim.getOwner() == damager) {
return; return;
} }
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
event.setCancelled(true); event.setCancelled(true);
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.unspecific; package eu.endermite.togglepvp.listeners.unspecific;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
import org.bukkit.entity.LightningStrike; import org.bukkit.entity.LightningStrike;
@@ -25,7 +25,7 @@ public class LightningBlockIgniteListener implements Listener {
for (Entity entity : lightningStrike.getNearbyEntities(2,2,2)) { for (Entity entity : lightningStrike.getNearbyEntities(2,2,2)) {
if (entity instanceof Player) { if (entity instanceof Player) {
Player victim = (Player) entity; Player victim = (Player) entity;
if (!TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId())) { if (!TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId())) {
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.unspecific; package eu.endermite.togglepvp.listeners.unspecific;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.BoundingBoxUtil; import eu.endermite.togglepvp.util.BoundingBoxUtil;
@@ -19,11 +19,11 @@ import org.bukkit.util.BoundingBox;
@eu.endermite.togglepvp.util.Listener @eu.endermite.togglepvp.util.Listener
public class PlaceWitherRoseListener implements Listener { public class PlaceWitherRoseListener implements Listener {
private ConfigCache config = TogglePvP.getPlugin().getConfigCache(); private ConfigCache config = TogglePvp.getPlugin().getConfigCache();
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onPlayerWitherRosePlace(org.bukkit.event.block.BlockPlaceEvent event) { public void onPlayerWitherRosePlace(org.bukkit.event.block.BlockPlaceEvent event) {
if (!TogglePvP.getPlugin().getConfigCache().isLava_and_fire_stopper_enabled()) if (!TogglePvp.getPlugin().getConfigCache().isLava_and_fire_stopper_enabled())
return; return;
if(event.getBlock().getType().equals(Material.WITHER_ROSE)) { if(event.getBlock().getType().equals(Material.WITHER_ROSE)) {
@@ -35,13 +35,13 @@ public class PlaceWitherRoseListener implements Listener {
Player damager = event.getPlayer(); Player damager = event.getPlayer();
Player victim = (Player) entity; Player victim = (Player) entity;
if (victim != damager) { if (victim != damager) {
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_attacker());
event.setCancelled(true); event.setCancelled(true);
return; return;
} }
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_victim()); PluginMessages.sendActionBar(damager, config.getCannot_attack_victim());
event.setCancelled(true); event.setCancelled(true);
@@ -55,7 +55,7 @@ public class PlaceWitherRoseListener implements Listener {
if (victim.getOwner() == null || victim.getOwner() == damager) { if (victim.getOwner() == null || victim.getOwner() == damager) {
return; return;
} }
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
event.setCancelled(true); event.setCancelled(true);
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.wolf; package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
@@ -26,8 +26,8 @@ public class PlayerAttackWolfListener implements Listener {
return; return;
} }
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpState = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpState = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpState) { if (!damagerPvpState) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.wolf; package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
@@ -28,8 +28,8 @@ public class PlayerHitWolfWithProjectile implements Listener {
if (victim.getOwner() == null || victim.getOwner() == damager) { if (victim.getOwner() == null || victim.getOwner() == damager) {
return; return;
} }
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
boolean victimPvpEnabled = SmartCache.getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled(); boolean victimPvpEnabled = SmartCache.getPlayerData(victim.getOwner().getUniqueId()).isPvpEnabled();
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.wolf; package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
@@ -33,7 +33,7 @@ public class WolfHitByExplosionListener implements Listener {
if (victim.getOwner().getUniqueId() == damageruuid) { if (victim.getOwner().getUniqueId() == damageruuid) {
return; return;
} }
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = SmartCache.getPlayerData(damageruuid).isPvpEnabled(); boolean damagerPvpEnabled = SmartCache.getPlayerData(damageruuid).isPvpEnabled();
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damageruuid, config.getCannot_attack_pets_attacker());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.wolf; package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
import org.bukkit.entity.Firework; import org.bukkit.entity.Firework;
@@ -24,16 +24,16 @@ public class WolfHitByFireworkListener implements Listener {
Player damager = (Player) firework.getShooter(); Player damager = (Player) firework.getShooter();
if (victim.getOwner() == damager) if (victim.getOwner() == damager)
return; return;
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getOwner().getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getOwner().getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
PluginMessages.sendActionBar(damager.getUniqueId(), TogglePvP.getPlugin().getConfigCache().getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damager.getUniqueId(), TogglePvp.getPlugin().getConfigCache().getCannot_attack_pets_attacker());
return; return;
} }
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!victimPvpEnabled) { if (!victimPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
PluginMessages.sendActionBar(damager.getUniqueId(), TogglePvP.getPlugin().getConfigCache().getCannot_attack_pets_victim()); PluginMessages.sendActionBar(damager.getUniqueId(), TogglePvp.getPlugin().getConfigCache().getCannot_attack_pets_victim());
return; return;
} }
CombatTimer.refreshPlayersCombatTime(damager.getUniqueId(), victim.getOwner().getUniqueId()); CombatTimer.refreshPlayersCombatTime(damager.getUniqueId(), victim.getOwner().getUniqueId());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.wolf; package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.CombatTimer; import eu.endermite.togglepvp.util.CombatTimer;
@@ -51,8 +51,8 @@ public class WolfHitBySplashPotionListener implements Listener {
if (victim.getOwner() == null || victim.getOwner() == damager) if (victim.getOwner() == null || victim.getOwner() == damager)
continue; continue;
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId()); boolean damagerPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(damager.getUniqueId());
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
event.setIntensity(victim, 0); event.setIntensity(victim, 0);
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.wolf; package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.config.ConfigCache; import eu.endermite.togglepvp.config.ConfigCache;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import eu.endermite.togglepvp.util.PluginMessages; import eu.endermite.togglepvp.util.PluginMessages;
@@ -24,7 +24,7 @@ public class WolfLeashListener implements Listener {
if (victim.getOwner() == damager) { if (victim.getOwner() == damager) {
return; return;
} }
ConfigCache config = TogglePvP.getPlugin().getConfigCache(); ConfigCache config = TogglePvp.getPlugin().getConfigCache();
boolean damagerPvpEnabled = SmartCache.getPlayerData(damager.getUniqueId()).isPvpEnabled(); boolean damagerPvpEnabled = SmartCache.getPlayerData(damager.getUniqueId()).isPvpEnabled();
if (!damagerPvpEnabled) { if (!damagerPvpEnabled) {
PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker()); PluginMessages.sendActionBar(damager, config.getCannot_attack_pets_attacker());
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.listeners.wolf; package eu.endermite.togglepvp.listeners.wolf;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import org.bukkit.entity.Wolf; import org.bukkit.entity.Wolf;
@@ -21,7 +21,7 @@ public class WolfTargettingPlayerListener implements Listener {
if (event.getTarget() instanceof Player) { if (event.getTarget() instanceof Player) {
boolean attackerPvPEnabled = SmartCache.getPlayerData(wolf.getOwner().getUniqueId()).isPvpEnabled(); boolean attackerPvPEnabled = SmartCache.getPlayerData(wolf.getOwner().getUniqueId()).isPvpEnabled();
Player victim = (Player) event.getTarget(); Player victim = (Player) event.getTarget();
boolean victimPvpEnabled = TogglePvP.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId()); boolean victimPvpEnabled = TogglePvp.getPlugin().getPlayerManager().getPlayerPvPState(victim.getUniqueId());
if (!attackerPvPEnabled || !victimPvpEnabled) { if (!attackerPvPEnabled || !victimPvpEnabled) {
event.setCancelled(true); event.setCancelled(true);
} }
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.players; package eu.endermite.togglepvp.players;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import java.time.Instant; import java.time.Instant;
@@ -28,7 +28,7 @@ public class PlayerData {
} }
public void refreshCachetime() { public void refreshCachetime() {
this.cachetime = Instant.now().getEpochSecond()+TogglePvP.getPlugin().getConfigCache().getCache_time(); this.cachetime = Instant.now().getEpochSecond()+ TogglePvp.getPlugin().getConfigCache().getCache_time();
} }
public long getCombattime() { public long getCombattime() {
@@ -40,6 +40,6 @@ public class PlayerData {
} }
public void refreshCombatTime() { public void refreshCombatTime() {
this.combattime = Instant.now().getEpochSecond()+TogglePvP.getPlugin().getConfigCache().getCombat_time(); this.combattime = Instant.now().getEpochSecond()+ TogglePvp.getPlugin().getConfigCache().getCombat_time();
} }
} }
@@ -1,11 +1,9 @@
package eu.endermite.togglepvp.players; package eu.endermite.togglepvp.players;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import lombok.Getter; import lombok.Getter;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.time.Instant;
import java.util.HashMap; import java.util.HashMap;
import java.util.UUID; import java.util.UUID;
@@ -15,22 +13,11 @@ public class PlayerManager {
public PlayerManager() { public PlayerManager() {
for (Player p : Bukkit.getOnlinePlayers()) { for (Player p : Bukkit.getOnlinePlayers()) {
PlayerData playerData = TogglePvP.getPlugin().getSqLite().getPlayerInfo(p.getUniqueId()); PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(p.getUniqueId());
playerList.put(p.getUniqueId(), playerData); playerList.put(p.getUniqueId(), playerData);
} }
} }
public long refreshedCacheTime() {
long cacheTime = TogglePvP.getPlugin().getConfigCache().getCache_time();
return Instant.now().getEpochSecond()+cacheTime;
}
public long refreshedCombatTime() {
long combatTime = TogglePvP.getPlugin().getConfigCache().getCombat_time();
return Instant.now().getEpochSecond()+combatTime;
}
public void refreshPlayersCacheTime(UUID uuid) { public void refreshPlayersCacheTime(UUID uuid) {
playerList.get(uuid).refreshCachetime(); playerList.get(uuid).refreshCachetime();
} }
@@ -62,7 +49,7 @@ public class PlayerManager {
} }
public boolean togglePlayerPvpState(UUID uuid) { public boolean togglePlayerPvpState(UUID uuid) {
boolean currentState = (boolean) playerList.get(uuid).isPvpEnabled(); boolean currentState = playerList.get(uuid).isPvpEnabled();
if (currentState) { if (currentState) {
playerList.get(uuid).setPvpEnabled(false); playerList.get(uuid).setPvpEnabled(false);
return false; return false;
@@ -1,6 +1,6 @@
package eu.endermite.togglepvp.players; package eu.endermite.togglepvp.players;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
import java.time.Instant; import java.time.Instant;
@@ -10,20 +10,21 @@ import java.util.UUID;
public class SmartCache { public class SmartCache {
public static void runSmartCache() { public static void runSmartCache() {
Bukkit.getScheduler().runTaskTimerAsynchronously(TogglePvP.getPlugin(), () -> { Bukkit.getScheduler().runTaskTimerAsynchronously(TogglePvp.getPlugin(), () -> {
// Refresh cache timer if player is online // Refresh cache timer if player is online
for (Map.Entry<UUID, PlayerData> e : TogglePvP.getPlugin().getPlayerManager().getPlayerList().entrySet()) { for (Map.Entry<UUID, PlayerData> e : TogglePvp.getPlugin().getPlayerManager().getPlayerList().entrySet()) {
try { try {
Player player = Bukkit.getPlayer(e.getKey()); Player player = Bukkit.getPlayer(e.getKey());
if (player != null && player.isOnline()) { if (player != null && player.isOnline()) {
TogglePvP.getPlugin().getPlayerManager().refreshPlayersCacheTime(e.getKey()); TogglePvp.getPlugin().getPlayerManager().refreshPlayersCacheTime(e.getKey());
} }
} catch (NullPointerException ignored) {} } catch (NullPointerException ignored) {}
} }
// Check for entries that should be invalidated // Check for entries that should be invalidated
try { try {
long now = Instant.now().getEpochSecond(); long now = Instant.now().getEpochSecond();
TogglePvP.getPlugin().getPlayerManager().getPlayerList().entrySet().removeIf(cacheEntry -> cacheEntry.getValue().getCachetime() < now); TogglePvp.getPlugin().getPlayerManager().getPlayerList().entrySet()
.removeIf(cacheEntry -> cacheEntry.getValue().getCachetime() < now);
} catch (Exception ignored) {} } catch (Exception ignored) {}
}, 100, 100); }, 100, 100);
} }
@@ -31,13 +32,13 @@ public class SmartCache {
public static PlayerData getPlayerData(UUID uuid) { public static PlayerData getPlayerData(UUID uuid) {
// Try to get data from cache and refresh it // Try to get data from cache and refresh it
try { try {
TogglePvP.getPlugin().getPlayerManager().refreshPlayersCacheTime(uuid); TogglePvp.getPlugin().getPlayerManager().refreshPlayersCacheTime(uuid);
return TogglePvP.getPlugin().getPlayerManager().getPlayer(uuid); return TogglePvp.getPlugin().getPlayerManager().getPlayer(uuid);
} catch (NullPointerException e) { } catch (NullPointerException e) {
// If player data is not in cache get it from database and put into cache // If player data is not in cache get it from database and put into cache
try { try {
PlayerData playerData = TogglePvP.getPlugin().getSqLite().getPlayerInfo(uuid); PlayerData playerData = TogglePvp.getPlugin().getSqLite().getPlayerInfo(uuid);
TogglePvP.getPlugin().getPlayerManager().addPlayer(uuid, playerData); TogglePvp.getPlugin().getPlayerManager().addPlayer(uuid, playerData);
return playerData; return playerData;
} catch (NullPointerException ex) { } catch (NullPointerException ex) {
// Return false if database call fails // Return false if database call fails
@@ -46,5 +47,14 @@ public class SmartCache {
} }
} }
public static 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);
}
// Update the database aswell
TogglePvp.getPlugin().getSqLite().updatePlayerInfo(uuid, new PlayerData(state));
}
} }
@@ -1,8 +1,7 @@
package eu.endermite.togglepvp.util; package eu.endermite.togglepvp.util;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.players.SmartCache; import eu.endermite.togglepvp.players.SmartCache;
import java.time.Instant; import java.time.Instant;
import java.util.UUID; import java.util.UUID;
@@ -13,9 +12,9 @@ public class CombatTimer {
long now = Instant.now().getEpochSecond(); long now = Instant.now().getEpochSecond();
long combattime = SmartCache.getPlayerData(uuid).getCombattime(); long combattime = SmartCache.getPlayerData(uuid).getCombattime();
if (combattime < now) { if (combattime < now) {
PluginMessages.sendActionBar(uuid, TogglePvP.getPlugin().getConfigCache().getEntering_combat()); PluginMessages.sendActionBar(uuid, TogglePvp.getPlugin().getConfigCache().getEntering_combat());
} }
TogglePvP.getPlugin().getPlayerManager().refreshPlayersCombatTime(uuid); TogglePvp.getPlugin().getPlayerManager().refreshPlayersCombatTime(uuid);
} catch (Exception ignored) {} } catch (Exception ignored) {}
} }
@@ -32,8 +31,6 @@ public class CombatTimer {
} catch (Exception e) { } catch (Exception e) {
return false; return false;
} }
} }
} }
@@ -1,11 +1,10 @@
package eu.endermite.togglepvp.util; package eu.endermite.togglepvp.util;
import eu.endermite.togglepvp.TogglePvP; import eu.endermite.togglepvp.TogglePvp;
import eu.endermite.togglepvp.players.PlayerData; import eu.endermite.togglepvp.players.PlayerData;
import java.io.File; import java.io.File;
import java.sql.*; import java.sql.*;
import java.util.HashMap;
import java.util.UUID; import java.util.UUID;
public class DatabaseSQLite { public class DatabaseSQLite {
@@ -62,7 +61,7 @@ public class DatabaseSQLite {
Connection conn = DriverManager.getConnection(url); Connection conn = DriverManager.getConnection(url);
Statement insertnewuser = conn.createStatement(); Statement insertnewuser = conn.createStatement();
try { try {
String newuserdata = "INSERT OR IGNORE INTO `players` (player_uuid, pvpenabled) VALUES ('" + uuid.toString() + "', " + TogglePvP.getPlugin().getConfigCache().isPvp_enabled_by_default() + ")"; String newuserdata = "INSERT OR IGNORE INTO `players` (player_uuid, pvpenabled) VALUES ('" + uuid.toString() + "', " + TogglePvp.getPlugin().getConfigCache().isPvp_enabled_by_default() + ")";
insertnewuser.execute(newuserdata); insertnewuser.execute(newuserdata);
} catch (SQLException e) { } catch (SQLException e) {
if (e.getErrorCode() != 19) { if (e.getErrorCode() != 19) {
@@ -82,7 +81,6 @@ public class DatabaseSQLite {
} }
public void updatePlayerInfo(UUID uuid, PlayerData data) { public void updatePlayerInfo(UUID uuid, PlayerData data) {
try { try {
Connection conn = DriverManager.getConnection(url); Connection conn = DriverManager.getConnection(url);
Statement insertnewuser = conn.createStatement(); Statement insertnewuser = conn.createStatement();
@@ -90,7 +88,7 @@ public class DatabaseSQLite {
String newuserdata = "UPDATE `players` SET pvpenabled = "+data.isPvpEnabled()+" WHERE `player_uuid` = '"+uuid.toString()+"';"; String newuserdata = "UPDATE `players` SET pvpenabled = "+data.isPvpEnabled()+" WHERE `player_uuid` = '"+uuid.toString()+"';";
insertnewuser.execute(newuserdata); insertnewuser.execute(newuserdata);
} catch (SQLException e) { } catch (SQLException e) {
TogglePvP.getPlugin().getLogger().severe("Error while saving player data!"); TogglePvp.getPlugin().getLogger().severe("Error while saving player data!");
e.printStackTrace(); e.printStackTrace();
} }
} catch (SQLException throwables) { } catch (SQLException throwables) {