diff --git a/src/com/massivecraft/massivecore/money/Money.java b/src/com/massivecraft/massivecore/money/Money.java index 3f046f20..ed6d9eb3 100644 --- a/src/com/massivecraft/massivecore/money/Money.java +++ b/src/com/massivecraft/massivecore/money/Money.java @@ -97,7 +97,7 @@ public class Money public static boolean exists(Object account) { if (disabled()) return false; - return mixin.exists(accountId(account)); + return mixin.exists(accountId(account).toString()); } public static boolean create(Object account) diff --git a/src/com/massivecraft/massivecore/money/MoneyMixinVault.java b/src/com/massivecraft/massivecore/money/MoneyMixinVault.java index 31c0a4dd..2da60957 100644 --- a/src/com/massivecraft/massivecore/money/MoneyMixinVault.java +++ b/src/com/massivecraft/massivecore/money/MoneyMixinVault.java @@ -1,13 +1,14 @@ package com.massivecraft.massivecore.money; +import com.massivecraft.massivecore.util.IdUtil; import com.massivecraft.massivecore.util.MUtil; import net.milkbowl.vault.economy.Economy; import org.bukkit.Bukkit; +import org.bukkit.OfflinePlayer; import org.bukkit.plugin.RegisteredServiceProvider; import java.util.Collection; -@SuppressWarnings("deprecation") public class MoneyMixinVault extends MoneyMixinAbstract { // -------------------------------------------- // @@ -114,7 +115,7 @@ public class MoneyMixinVault extends MoneyMixinAbstract @Override public boolean exists(String accountId) { - return this.getEconomy().hasAccount(accountId); + return this.getEconomy().hasAccount(IdUtil.getOfflinePlayer(accountId)); } @Override @@ -131,14 +132,14 @@ public class MoneyMixinVault extends MoneyMixinAbstract public double get(String accountId) { this.ensureExists(accountId); - return this.getEconomy().getBalance(accountId); + return this.getEconomy().getBalance(IdUtil.getOfflinePlayer(accountId)); } @Override public boolean has(String accountId, double amount) { this.ensureExists(accountId); - return this.getEconomy().has(accountId, amount); + return this.getEconomy().has(IdUtil.getOfflinePlayer(accountId), amount); } // -------------------------------------------- // @@ -149,7 +150,10 @@ public class MoneyMixinVault extends MoneyMixinAbstract public boolean move(String fromId, String toId, String byId, double amount, Collection categories, Object message) { Economy economy = this.getEconomy(); - + + OfflinePlayer offlinePlayerFrom = IdUtil.getOfflinePlayer(fromId); + OfflinePlayer offlinePlayerTo = IdUtil.getOfflinePlayer(toId); + // Ensure positive direction if (amount < 0) { @@ -166,7 +170,7 @@ public class MoneyMixinVault extends MoneyMixinAbstract // Subtract From if (fromId != null) { - if (!economy.withdrawPlayer(fromId, amount).transactionSuccess()) + if (!economy.withdrawPlayer(offlinePlayerFrom, amount).transactionSuccess()) { return false; } @@ -175,12 +179,12 @@ public class MoneyMixinVault extends MoneyMixinAbstract // Add To if (toId != null) { - if (!economy.depositPlayer(toId, amount).transactionSuccess()) + if (!economy.depositPlayer(offlinePlayerTo, amount).transactionSuccess()) { if (fromId != null) { // Undo the withdraw - economy.depositPlayer(fromId, amount); + economy.depositPlayer(offlinePlayerFrom, amount); } return false; } @@ -197,14 +201,14 @@ public class MoneyMixinVault extends MoneyMixinAbstract { Economy economy = this.getEconomy(); - if (economy.hasAccount(accountId)) return true; + if (economy.hasAccount(IdUtil.getOfflinePlayer(accountId))) return true; - if (!economy.createPlayerAccount(accountId)) return false; + if (!economy.createPlayerAccount(IdUtil.getOfflinePlayer(accountId))) return false; - if (MUtil.isValidPlayerName(accountId)) return true; + if (MUtil.isUuid(accountId)) return true; - double balance = economy.getBalance(accountId); - economy.withdrawPlayer(accountId, balance); + double balance = economy.getBalance(IdUtil.getOfflinePlayer(accountId)); + economy.withdrawPlayer(IdUtil.getOfflinePlayer(accountId), balance); return true; } diff --git a/src/com/massivecraft/massivecore/util/IdUtil.java b/src/com/massivecraft/massivecore/util/IdUtil.java index 0d886bed..c68063b2 100644 --- a/src/com/massivecraft/massivecore/util/IdUtil.java +++ b/src/com/massivecraft/massivecore/util/IdUtil.java @@ -13,6 +13,7 @@ import com.massivecraft.massivecore.mixin.MixinPlayed; import com.massivecraft.massivecore.store.SenderEntity; import org.bukkit.Bukkit; import org.bukkit.GameMode; +import org.bukkit.OfflinePlayer; import org.bukkit.command.CommandSender; import org.bukkit.command.ConsoleCommandSender; import org.bukkit.entity.Entity; @@ -752,6 +753,21 @@ public class IdUtil implements Listener, Runnable // Return Null return null; } + + public static OfflinePlayer getOfflinePlayer(Object senderObject) + { + // Null Return + if (senderObject == null) return null; + + // Already done + if (senderObject instanceof OfflinePlayer) return (OfflinePlayer) senderObject; + + // + UUID uuid = getUuid(senderObject); + if (uuid == null) return null; + + return Bukkit.getOfflinePlayer(uuid); + } public static String getNameFromSender(CommandSender sender) { diff --git a/src/com/massivecraft/massivecore/util/MUtil.java b/src/com/massivecraft/massivecore/util/MUtil.java index 349651f8..70492599 100644 --- a/src/com/massivecraft/massivecore/util/MUtil.java +++ b/src/com/massivecraft/massivecore/util/MUtil.java @@ -21,7 +21,6 @@ import com.massivecraft.massivecore.util.extractor.ExtractorPlayer; import com.massivecraft.massivecore.util.extractor.ExtractorPlayerName; import com.massivecraft.massivecore.util.extractor.ExtractorSender; import com.massivecraft.massivecore.util.extractor.ExtractorSenderId; -import com.massivecraft.massivecore.util.extractor.ExtractorSenderName; import com.massivecraft.massivecore.util.extractor.ExtractorWorld; import com.massivecraft.massivecore.util.extractor.ExtractorWorldName; import org.bukkit.Bukkit; @@ -1974,7 +1973,7 @@ public class MUtil // The accountId extractor is used for the money mixin. // For now we act on the name instead of the ID since vault needs names. - registerExtractor(String.class, "accountId", ExtractorSenderName.get()); + registerExtractor(UUID.class, "accountId", ExtractorSenderId.get()); } } diff --git a/src/com/massivecraft/massivecore/util/extractor/ExtractorLogic.java b/src/com/massivecraft/massivecore/util/extractor/ExtractorLogic.java index c6b6441d..df2f85d2 100644 --- a/src/com/massivecraft/massivecore/util/extractor/ExtractorLogic.java +++ b/src/com/massivecraft/massivecore/util/extractor/ExtractorLogic.java @@ -29,6 +29,8 @@ import org.bukkit.event.vehicle.VehicleEnterEvent; import org.bukkit.event.vehicle.VehicleEvent; import org.bukkit.event.vehicle.VehicleExitEvent; +import java.util.UUID; + public class ExtractorLogic { // -------------------------------------------- //