diff --git a/src/main/java/com/bitnix/dirtpvp/DirtPVPPlugin.java b/src/main/java/com/bitnix/dirtpvp/DirtPVPPlugin.java index 9a622ef..eff0439 100644 --- a/src/main/java/com/bitnix/dirtpvp/DirtPVPPlugin.java +++ b/src/main/java/com/bitnix/dirtpvp/DirtPVPPlugin.java @@ -42,7 +42,6 @@ public final class DirtPVPPlugin extends JavaPlugin implements Listener, TabExec private final Map expiryTasks = new HashMap<>(); private final Map previousAllowFlight = new HashMap<>(); private final Set notifyToggledOff = new HashSet<>(); - private final Set combatLogged = new HashSet<>(); private final List killRewardRules = new ArrayList<>(); private long combatDurationTicks; @@ -75,6 +74,7 @@ public final class DirtPVPPlugin extends JavaPlugin implements Listener, TabExec private boolean combatLogClearInventoryOnLogout; private boolean combatLogKillPlayerOnLogout; private boolean combatLogLightningEffect; + private List combatLogConsoleCommands; private boolean notificationsEnabled; private boolean notifyConsole; @@ -136,7 +136,6 @@ public final class DirtPVPPlugin extends JavaPlugin implements Listener, TabExec combatUntil.clear(); previousAllowFlight.clear(); notifyToggledOff.clear(); - combatLogged.clear(); killRewardRules.clear(); } @@ -210,9 +209,15 @@ public final class DirtPVPPlugin extends JavaPlugin implements Listener, TabExec this.combatLogEnabled = config.getBoolean("combat-log.enabled", true); this.combatLogDropInventoryOnLogout = config.getBoolean("combat-log.drop-inventory-on-logout", true); - this.combatLogClearInventoryOnLogout = config.getBoolean("combat-log.clear-inventory-on-logout", true); + this.combatLogClearInventoryOnLogout = config.getBoolean("combat-log.clear-inventory-on-logout", false); this.combatLogKillPlayerOnLogout = config.getBoolean("combat-log.kill-player-on-logout", false); this.combatLogLightningEffect = config.getBoolean("combat-log.lightning-effect", false); + this.combatLogConsoleCommands = new ArrayList<>(); + for (String command : config.getStringList("combat-log.console-commands")) { + if (command != null && !command.isBlank()) { + combatLogConsoleCommands.add(command); + } + } this.notificationsEnabled = config.getBoolean("notifications.enabled", true); this.notifyConsole = config.getBoolean("notifications.notify-console", false); @@ -400,8 +405,6 @@ public final class DirtPVPPlugin extends JavaPlugin implements Listener, TabExec return; } - combatLogged.add(player.getUniqueId()); - Location location = player.getLocation(); if (combatLogLightningEffect) { @@ -416,6 +419,8 @@ public final class DirtPVPPlugin extends JavaPlugin implements Listener, TabExec clearPlayerInventory(player); } + runCombatLogConsoleCommands(player); + if (combatLogKillPlayerOnLogout) { player.setHealth(0.0); } @@ -424,7 +429,6 @@ public final class DirtPVPPlugin extends JavaPlugin implements Listener, TabExec notifyStaff(msgNotifyCombatLog.replace("%player%", player.getName())); } - player.sendMessage(withPrefix(msgCombatLogSelf)); clearCombatState(player.getUniqueId()); } @@ -455,10 +459,6 @@ public final class DirtPVPPlugin extends JavaPlugin implements Listener, TabExec public void onJoin(PlayerJoinEvent event) { Player player = event.getPlayer(); - if (combatLogged.remove(player.getUniqueId())) { - clearPlayerInventory(player); - } - if (!disableFlightOnJoinIfTagged) { return; } @@ -595,6 +595,13 @@ public final class DirtPVPPlugin extends JavaPlugin implements Listener, TabExec player.updateInventory(); } + private void runCombatLogConsoleCommands(Player player) { + for (String rawCommand : combatLogConsoleCommands) { + String finalCommand = rawCommand.replace("%player%", player.getName()); + Bukkit.dispatchCommand(Bukkit.getConsoleSender(), finalCommand); + } + } + private void clearCombatState(UUID uuid) { combatUntil.remove(uuid); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index d47ee29..c9d55d8 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -63,9 +63,11 @@ kill-rewards: combat-log: enabled: true drop-inventory-on-logout: true - clear-inventory-on-logout: true + clear-inventory-on-logout: false kill-player-on-logout: false lightning-effect: false + console-commands: + - "cmi clear %player%" notifications: enabled: true diff --git a/target/DirtPVP.jar b/target/DirtPVP.jar index 2c25af9..f7a3aa0 100644 Binary files a/target/DirtPVP.jar and b/target/DirtPVP.jar differ diff --git a/target/classes/com/bitnix/dirtpvp/DirtPVPPlugin$KillRewardRule.class b/target/classes/com/bitnix/dirtpvp/DirtPVPPlugin$KillRewardRule.class index d531c23..1fa6d4c 100644 Binary files a/target/classes/com/bitnix/dirtpvp/DirtPVPPlugin$KillRewardRule.class and b/target/classes/com/bitnix/dirtpvp/DirtPVPPlugin$KillRewardRule.class differ diff --git a/target/classes/com/bitnix/dirtpvp/DirtPVPPlugin.class b/target/classes/com/bitnix/dirtpvp/DirtPVPPlugin.class index 33e718d..f7f1cb3 100644 Binary files a/target/classes/com/bitnix/dirtpvp/DirtPVPPlugin.class and b/target/classes/com/bitnix/dirtpvp/DirtPVPPlugin.class differ diff --git a/target/classes/config.yml b/target/classes/config.yml index d47ee29..c9d55d8 100644 --- a/target/classes/config.yml +++ b/target/classes/config.yml @@ -63,9 +63,11 @@ kill-rewards: combat-log: enabled: true drop-inventory-on-logout: true - clear-inventory-on-logout: true + clear-inventory-on-logout: false kill-player-on-logout: false lightning-effect: false + console-commands: + - "cmi clear %player%" notifications: enabled: true diff --git a/target/maven-archiver/pom.properties b/target/maven-archiver/pom.properties index 17935c0..d1afd46 100644 --- a/target/maven-archiver/pom.properties +++ b/target/maven-archiver/pom.properties @@ -1,5 +1,5 @@ #Generated by Maven -#Sat Jun 20 12:16:51 EDT 2026 +#Sun Jun 21 07:37:02 EDT 2026 artifactId=DirtPVP groupId=com.bitnix version=1.0