From c97dc4181dad1570abd1e069f00ba33ad74e19ce Mon Sep 17 00:00:00 2001 From: srbedrock <51332006+SrBedrock@users.noreply.github.com> Date: Sun, 26 Jul 2020 22:01:30 -0300 Subject: [PATCH 1/6] Update CommandRegistrationManager.java --- .../nossr50/util/commands/CommandRegistrationManager.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java index 125c6abba..d21ad7d5c 100644 --- a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java +++ b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java @@ -432,8 +432,8 @@ public final class CommandRegistrationManager { private static void registerXPBarCommand() { PluginCommand command = mcMMO.p.getCommand("mmoxpbar"); //TODO: Localize command.setDescription(LocaleLoader.getString("Commands.Description.mmoxpbar")); - command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mmoxpbar", "")); - command.setUsage(command.getUsage() +"\n" + LocaleLoader.getString("Commands.Usage.2", "mmoxpbar", "", "")); + command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mmoxpbar", "")); + command.setUsage(command.getUsage() +"\n" + LocaleLoader.getString("Commands.Usage.2", "mmoxpbar", "", "")); command.setExecutor(new XPBarCommand()); } From 2eb924d433a82c1de997e83f9f3a6f417157b90c Mon Sep 17 00:00:00 2001 From: srbedrock <51332006+SrBedrock@users.noreply.github.com> Date: Sun, 26 Jul 2020 22:04:43 -0300 Subject: [PATCH 2/6] Update CommandRegistrationManager.java --- .../gmail/nossr50/util/commands/CommandRegistrationManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java index d21ad7d5c..81f6c34bc 100644 --- a/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java +++ b/src/main/java/com/gmail/nossr50/util/commands/CommandRegistrationManager.java @@ -433,7 +433,7 @@ public final class CommandRegistrationManager { PluginCommand command = mcMMO.p.getCommand("mmoxpbar"); //TODO: Localize command.setDescription(LocaleLoader.getString("Commands.Description.mmoxpbar")); command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mmoxpbar", "")); - command.setUsage(command.getUsage() +"\n" + LocaleLoader.getString("Commands.Usage.2", "mmoxpbar", "", "")); + command.setUsage(command.getUsage() +"\n" + LocaleLoader.getString("Commands.Usage.2", "mmoxpbar", "", "")); command.setExecutor(new XPBarCommand()); } From 567a5461e11e971641878c45edfeb71688e339f5 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 27 Jul 2020 21:19:25 -0700 Subject: [PATCH 3/6] Add some more mmodebug related to furnaces --- .../nossr50/util/skills/SmeltingTracker.java | 37 ++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java b/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java index 6fa99bed8..761e8714e 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java +++ b/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java @@ -1,11 +1,14 @@ package com.gmail.nossr50.util.skills; +import com.gmail.nossr50.datatypes.player.McMMOPlayer; import com.gmail.nossr50.datatypes.skills.PrimarySkillType; import com.gmail.nossr50.mcMMO; import com.gmail.nossr50.skills.smelting.Smelting; import com.gmail.nossr50.util.EventUtils; import com.gmail.nossr50.util.Permissions; +import com.gmail.nossr50.util.player.UserManager; import org.bukkit.Bukkit; +import org.bukkit.ChatColor; import org.bukkit.OfflinePlayer; import org.bukkit.block.Furnace; import org.bukkit.entity.Player; @@ -17,13 +20,45 @@ import java.util.HashMap; public class SmeltingTracker { - private HashMap furnaceOwners; + private final HashMap furnaceOwners; public SmeltingTracker() { furnaceOwners = new HashMap<>(); } private void changeFurnaceOwnership(Furnace furnace, Player player) { + + McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player); + + /* + Debug output + */ + if(mcMMOPlayer != null) { + if(mcMMOPlayer.isDebugMode()) { + mcMMOPlayer.getPlayer().sendMessage("Furnace ownership " + + ChatColor.GREEN +"gained " + ChatColor.RESET + + "at location: " + furnace.getLocation().toString()); + } + + if(furnaceOwners.get(furnace) != null) { + OfflinePlayer furnaceOwner = furnaceOwners.get(furnace); + + if(furnaceOwner.isOnline()) { + McMMOPlayer furnaceOwnerProfile = UserManager.getPlayer(furnaceOwner.getPlayer()); + + if(furnaceOwnerProfile != null) { + if(furnaceOwnerProfile.isDebugMode()) { + furnaceOwnerProfile.getPlayer().sendMessage("Furnace ownership " + + ChatColor.RED + "lost " + ChatColor.RESET + + "at location: " + furnace.getLocation().toString()); + } + } + } + } + } + + + furnaceOwners.put(furnace, player); } From 4169dceca8681db5cd7bb9de4059ad1b8a1faa97 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 27 Jul 2020 21:20:03 -0700 Subject: [PATCH 4/6] debug tweak for furnaces --- .../nossr50/util/skills/SmeltingTracker.java | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java b/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java index 761e8714e..709b9be8e 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java +++ b/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java @@ -40,25 +40,25 @@ public class SmeltingTracker { "at location: " + furnace.getLocation().toString()); } - if(furnaceOwners.get(furnace) != null) { - OfflinePlayer furnaceOwner = furnaceOwners.get(furnace); + } - if(furnaceOwner.isOnline()) { - McMMOPlayer furnaceOwnerProfile = UserManager.getPlayer(furnaceOwner.getPlayer()); + if(furnaceOwners.get(furnace) != null) { + OfflinePlayer furnaceOwner = furnaceOwners.get(furnace); - if(furnaceOwnerProfile != null) { - if(furnaceOwnerProfile.isDebugMode()) { - furnaceOwnerProfile.getPlayer().sendMessage("Furnace ownership " + - ChatColor.RED + "lost " + ChatColor.RESET + - "at location: " + furnace.getLocation().toString()); - } + if(furnaceOwner.isOnline()) { + McMMOPlayer furnaceOwnerProfile = UserManager.getPlayer(furnaceOwner.getPlayer()); + + if(furnaceOwnerProfile != null) { + if(furnaceOwnerProfile.isDebugMode()) { + furnaceOwnerProfile.getPlayer().sendMessage("Furnace ownership " + + ChatColor.RED + "lost " + ChatColor.RESET + + "at location: " + furnace.getLocation().toString()); } } } } - furnaceOwners.put(furnace, player); } From 8e3d2035942af5369a5070c99465926a3345921e Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 27 Jul 2020 21:34:47 -0700 Subject: [PATCH 5/6] only cleanup furnaces without a job --- .../runnables/skills/FurnaceCleanupTask.java | 3 ++- .../nossr50/util/skills/SmeltingTracker.java | 18 +++++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/runnables/skills/FurnaceCleanupTask.java b/src/main/java/com/gmail/nossr50/runnables/skills/FurnaceCleanupTask.java index 341a51ac4..873a6f507 100644 --- a/src/main/java/com/gmail/nossr50/runnables/skills/FurnaceCleanupTask.java +++ b/src/main/java/com/gmail/nossr50/runnables/skills/FurnaceCleanupTask.java @@ -14,7 +14,8 @@ public class FurnaceCleanupTask extends BukkitRunnable { @Override public void run() { - if(furnace != null && furnace.getInventory().getResult() == null) { + if(furnace != null + && furnace.getInventory().getSmelting() == null) { //Furnace is empty so stop tracking it mcMMO.getSmeltingTracker().untrackFurnace(furnace); } diff --git a/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java b/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java index 709b9be8e..c0cd97773 100644 --- a/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java +++ b/src/main/java/com/gmail/nossr50/util/skills/SmeltingTracker.java @@ -33,6 +33,14 @@ public class SmeltingTracker { /* Debug output */ + printOwnershipGainDebug(furnace, mcMMOPlayer); + + printOwnershipLossDebug(furnace); + + furnaceOwners.put(furnace, player); + } + + private void printOwnershipGainDebug(Furnace furnace, McMMOPlayer mcMMOPlayer) { if(mcMMOPlayer != null) { if(mcMMOPlayer.isDebugMode()) { mcMMOPlayer.getPlayer().sendMessage("Furnace ownership " + @@ -41,7 +49,9 @@ public class SmeltingTracker { } } + } + private void printOwnershipLossDebug(Furnace furnace) { if(furnaceOwners.get(furnace) != null) { OfflinePlayer furnaceOwner = furnaceOwners.get(furnace); @@ -57,9 +67,6 @@ public class SmeltingTracker { } } } - - - furnaceOwners.put(furnace, player); } @Nullable @@ -80,10 +87,6 @@ public class SmeltingTracker { return furnaceOwners.get(furnace) != null; } - public void removeFurnaceOwner(Furnace furnace) { - furnaceOwners.remove(furnace); - } - public void processFurnaceOwnership(Furnace furnace, Player player) { if(!Permissions.skillEnabled(player, PrimarySkillType.SMELTING)) return; @@ -92,6 +95,7 @@ public class SmeltingTracker { } public void untrackFurnace(Furnace furnace) { + printOwnershipLossDebug(furnace); furnaceOwners.remove(furnace); } } From 274a41f5309a297ca8052cb1df6c418da3dcc0e6 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Mon, 27 Jul 2020 21:39:26 -0700 Subject: [PATCH 6/6] update changelog --- Changelog.txt | 3 +++ pom.xml | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Changelog.txt b/Changelog.txt index 81c782d36..f35b40083 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,3 +1,6 @@ +Version 2.1.136 + Furnace ownership was made more reliable + Version 2.1.135 Furnaces no longer simulate block break checks when assigning ownership as it caused some unwanted plugin conflicts Fixed an issue where Fishing would break if exploit protection was turned off for Fishing (Thanks Ineusia) diff --git a/pom.xml b/pom.xml index e61fe114b..2aaffa568 100755 --- a/pom.xml +++ b/pom.xml @@ -2,7 +2,7 @@ 4.0.0 com.gmail.nossr50.mcMMO mcMMO - 2.1.135 + 2.1.136-SNAPSHOT mcMMO https://github.com/mcMMO-Dev/mcMMO