mirror of
https://github.com/mcMMO-Dev/mcMMO.git
synced 2024-11-24 22:26:46 +01:00
Merge branch 'master' of github.com:mcMMO-Dev/mcMMO into tridentsxbows
This commit is contained in:
commit
515d58f04f
@ -48,6 +48,8 @@ Version 2.2.000
|
|||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
These are the first new skills that I've written for mcMMO in about 9 years, I'll be listening closely to feedback and tweaking them often.
|
These are the first new skills that I've written for mcMMO in about 9 years, I'll be listening closely to feedback and tweaking them often.
|
||||||
|
Version 2.1.136
|
||||||
|
Furnace ownership was made more reliable
|
||||||
|
|
||||||
Version 2.1.135
|
Version 2.1.135
|
||||||
Furnaces no longer simulate block break checks when assigning ownership as it caused some unwanted plugin conflicts
|
Furnaces no longer simulate block break checks when assigning ownership as it caused some unwanted plugin conflicts
|
||||||
|
@ -14,7 +14,8 @@ public class FurnaceCleanupTask extends BukkitRunnable {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void run() {
|
public void run() {
|
||||||
if(furnace != null && furnace.getInventory().getResult() == null) {
|
if(furnace != null
|
||||||
|
&& furnace.getInventory().getSmelting() == null) {
|
||||||
//Furnace is empty so stop tracking it
|
//Furnace is empty so stop tracking it
|
||||||
mcMMO.getSmeltingTracker().untrackFurnace(furnace);
|
mcMMO.getSmeltingTracker().untrackFurnace(furnace);
|
||||||
}
|
}
|
||||||
|
@ -432,8 +432,8 @@ public final class CommandRegistrationManager {
|
|||||||
private static void registerXPBarCommand() {
|
private static void registerXPBarCommand() {
|
||||||
PluginCommand command = mcMMO.p.getCommand("mmoxpbar"); //TODO: Localize
|
PluginCommand command = mcMMO.p.getCommand("mmoxpbar"); //TODO: Localize
|
||||||
command.setDescription(LocaleLoader.getString("Commands.Description.mmoxpbar"));
|
command.setDescription(LocaleLoader.getString("Commands.Description.mmoxpbar"));
|
||||||
command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mmoxpbar", "<reset>"));
|
command.setUsage(LocaleLoader.getString("Commands.Usage.1", "mmoxpbar", "<reset | disable>"));
|
||||||
command.setUsage(command.getUsage() +"\n" + LocaleLoader.getString("Commands.Usage.2", "mmoxpbar", "<skillname>", "<show | hide>"));
|
command.setUsage(command.getUsage() +"\n" + LocaleLoader.getString("Commands.Usage.2", "mmoxpbar", "<show | hide | disable>", "<skillname>"));
|
||||||
command.setExecutor(new XPBarCommand());
|
command.setExecutor(new XPBarCommand());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
package com.gmail.nossr50.util.skills;
|
package com.gmail.nossr50.util.skills;
|
||||||
|
|
||||||
|
import com.gmail.nossr50.datatypes.player.McMMOPlayer;
|
||||||
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
||||||
import com.gmail.nossr50.mcMMO;
|
import com.gmail.nossr50.mcMMO;
|
||||||
import com.gmail.nossr50.skills.smelting.Smelting;
|
import com.gmail.nossr50.skills.smelting.Smelting;
|
||||||
import com.gmail.nossr50.util.EventUtils;
|
import com.gmail.nossr50.util.EventUtils;
|
||||||
import com.gmail.nossr50.util.Permissions;
|
import com.gmail.nossr50.util.Permissions;
|
||||||
|
import com.gmail.nossr50.util.player.UserManager;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
|
import org.bukkit.ChatColor;
|
||||||
import org.bukkit.OfflinePlayer;
|
import org.bukkit.OfflinePlayer;
|
||||||
import org.bukkit.block.Furnace;
|
import org.bukkit.block.Furnace;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
@ -17,16 +20,55 @@ import java.util.HashMap;
|
|||||||
|
|
||||||
public class SmeltingTracker {
|
public class SmeltingTracker {
|
||||||
|
|
||||||
private HashMap<Furnace, OfflinePlayer> furnaceOwners;
|
private final HashMap<Furnace, OfflinePlayer> furnaceOwners;
|
||||||
|
|
||||||
public SmeltingTracker() {
|
public SmeltingTracker() {
|
||||||
furnaceOwners = new HashMap<>();
|
furnaceOwners = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void changeFurnaceOwnership(Furnace furnace, Player player) {
|
private void changeFurnaceOwnership(Furnace furnace, Player player) {
|
||||||
|
|
||||||
|
McMMOPlayer mcMMOPlayer = UserManager.getPlayer(player);
|
||||||
|
|
||||||
|
/*
|
||||||
|
Debug output
|
||||||
|
*/
|
||||||
|
printOwnershipGainDebug(furnace, mcMMOPlayer);
|
||||||
|
|
||||||
|
printOwnershipLossDebug(furnace);
|
||||||
|
|
||||||
furnaceOwners.put(furnace, player);
|
furnaceOwners.put(furnace, player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void printOwnershipGainDebug(Furnace furnace, McMMOPlayer mcMMOPlayer) {
|
||||||
|
if(mcMMOPlayer != null) {
|
||||||
|
if(mcMMOPlayer.isDebugMode()) {
|
||||||
|
mcMMOPlayer.getPlayer().sendMessage("Furnace ownership " +
|
||||||
|
ChatColor.GREEN +"gained " + ChatColor.RESET +
|
||||||
|
"at location: " + furnace.getLocation().toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void printOwnershipLossDebug(Furnace furnace) {
|
||||||
|
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());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public Furnace getFurnaceFromInventory(Inventory inventory) {
|
public Furnace getFurnaceFromInventory(Inventory inventory) {
|
||||||
if (!(inventory instanceof FurnaceInventory)) {
|
if (!(inventory instanceof FurnaceInventory)) {
|
||||||
@ -45,10 +87,6 @@ public class SmeltingTracker {
|
|||||||
return furnaceOwners.get(furnace) != null;
|
return furnaceOwners.get(furnace) != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void removeFurnaceOwner(Furnace furnace) {
|
|
||||||
furnaceOwners.remove(furnace);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void processFurnaceOwnership(Furnace furnace, Player player) {
|
public void processFurnaceOwnership(Furnace furnace, Player player) {
|
||||||
if(!Permissions.skillEnabled(player, PrimarySkillType.SMELTING))
|
if(!Permissions.skillEnabled(player, PrimarySkillType.SMELTING))
|
||||||
return;
|
return;
|
||||||
@ -57,6 +95,7 @@ public class SmeltingTracker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void untrackFurnace(Furnace furnace) {
|
public void untrackFurnace(Furnace furnace) {
|
||||||
|
printOwnershipLossDebug(furnace);
|
||||||
furnaceOwners.remove(furnace);
|
furnaceOwners.remove(furnace);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user