Change MoneyMixinVault to use OfflinePlayer instead of name

This commit is contained in:
Magnus Ulf 2018-12-22 01:54:49 +01:00
parent bef59da1d8
commit 265ee919a6
5 changed files with 37 additions and 16 deletions

View File

@ -97,7 +97,7 @@ public class Money
public static boolean exists(Object account) public static boolean exists(Object account)
{ {
if (disabled()) return false; if (disabled()) return false;
return mixin.exists(accountId(account)); return mixin.exists(accountId(account).toString());
} }
public static boolean create(Object account) public static boolean create(Object account)

View File

@ -1,13 +1,14 @@
package com.massivecraft.massivecore.money; package com.massivecraft.massivecore.money;
import com.massivecraft.massivecore.util.IdUtil;
import com.massivecraft.massivecore.util.MUtil; import com.massivecraft.massivecore.util.MUtil;
import net.milkbowl.vault.economy.Economy; import net.milkbowl.vault.economy.Economy;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;
import org.bukkit.plugin.RegisteredServiceProvider; import org.bukkit.plugin.RegisteredServiceProvider;
import java.util.Collection; import java.util.Collection;
@SuppressWarnings("deprecation")
public class MoneyMixinVault extends MoneyMixinAbstract public class MoneyMixinVault extends MoneyMixinAbstract
{ {
// -------------------------------------------- // // -------------------------------------------- //
@ -114,7 +115,7 @@ public class MoneyMixinVault extends MoneyMixinAbstract
@Override @Override
public boolean exists(String accountId) public boolean exists(String accountId)
{ {
return this.getEconomy().hasAccount(accountId); return this.getEconomy().hasAccount(IdUtil.getOfflinePlayer(accountId));
} }
@Override @Override
@ -131,14 +132,14 @@ public class MoneyMixinVault extends MoneyMixinAbstract
public double get(String accountId) public double get(String accountId)
{ {
this.ensureExists(accountId); this.ensureExists(accountId);
return this.getEconomy().getBalance(accountId); return this.getEconomy().getBalance(IdUtil.getOfflinePlayer(accountId));
} }
@Override @Override
public boolean has(String accountId, double amount) public boolean has(String accountId, double amount)
{ {
this.ensureExists(accountId); this.ensureExists(accountId);
return this.getEconomy().has(accountId, amount); return this.getEconomy().has(IdUtil.getOfflinePlayer(accountId), amount);
} }
// -------------------------------------------- // // -------------------------------------------- //
@ -150,6 +151,9 @@ public class MoneyMixinVault extends MoneyMixinAbstract
{ {
Economy economy = this.getEconomy(); Economy economy = this.getEconomy();
OfflinePlayer offlinePlayerFrom = IdUtil.getOfflinePlayer(fromId);
OfflinePlayer offlinePlayerTo = IdUtil.getOfflinePlayer(toId);
// Ensure positive direction // Ensure positive direction
if (amount < 0) if (amount < 0)
{ {
@ -166,7 +170,7 @@ public class MoneyMixinVault extends MoneyMixinAbstract
// Subtract From // Subtract From
if (fromId != null) if (fromId != null)
{ {
if (!economy.withdrawPlayer(fromId, amount).transactionSuccess()) if (!economy.withdrawPlayer(offlinePlayerFrom, amount).transactionSuccess())
{ {
return false; return false;
} }
@ -175,12 +179,12 @@ public class MoneyMixinVault extends MoneyMixinAbstract
// Add To // Add To
if (toId != null) if (toId != null)
{ {
if (!economy.depositPlayer(toId, amount).transactionSuccess()) if (!economy.depositPlayer(offlinePlayerTo, amount).transactionSuccess())
{ {
if (fromId != null) if (fromId != null)
{ {
// Undo the withdraw // Undo the withdraw
economy.depositPlayer(fromId, amount); economy.depositPlayer(offlinePlayerFrom, amount);
} }
return false; return false;
} }
@ -197,14 +201,14 @@ public class MoneyMixinVault extends MoneyMixinAbstract
{ {
Economy economy = this.getEconomy(); 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); double balance = economy.getBalance(IdUtil.getOfflinePlayer(accountId));
economy.withdrawPlayer(accountId, balance); economy.withdrawPlayer(IdUtil.getOfflinePlayer(accountId), balance);
return true; return true;
} }

View File

@ -13,6 +13,7 @@ import com.massivecraft.massivecore.mixin.MixinPlayed;
import com.massivecraft.massivecore.store.SenderEntity; import com.massivecraft.massivecore.store.SenderEntity;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.GameMode; import org.bukkit.GameMode;
import org.bukkit.OfflinePlayer;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender; import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Entity; import org.bukkit.entity.Entity;
@ -753,6 +754,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) public static String getNameFromSender(CommandSender sender)
{ {
if (sender instanceof ConsoleCommandSender) return CONSOLE_ID; if (sender instanceof ConsoleCommandSender) return CONSOLE_ID;

View File

@ -21,7 +21,6 @@ import com.massivecraft.massivecore.util.extractor.ExtractorPlayer;
import com.massivecraft.massivecore.util.extractor.ExtractorPlayerName; import com.massivecraft.massivecore.util.extractor.ExtractorPlayerName;
import com.massivecraft.massivecore.util.extractor.ExtractorSender; import com.massivecraft.massivecore.util.extractor.ExtractorSender;
import com.massivecraft.massivecore.util.extractor.ExtractorSenderId; 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.ExtractorWorld;
import com.massivecraft.massivecore.util.extractor.ExtractorWorldName; import com.massivecraft.massivecore.util.extractor.ExtractorWorldName;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
@ -1974,7 +1973,7 @@ public class MUtil
// The accountId extractor is used for the money mixin. // The accountId extractor is used for the money mixin.
// For now we act on the name instead of the ID since vault needs names. // 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());
} }
} }

View File

@ -29,6 +29,8 @@ import org.bukkit.event.vehicle.VehicleEnterEvent;
import org.bukkit.event.vehicle.VehicleEvent; import org.bukkit.event.vehicle.VehicleEvent;
import org.bukkit.event.vehicle.VehicleExitEvent; import org.bukkit.event.vehicle.VehicleExitEvent;
import java.util.UUID;
public class ExtractorLogic public class ExtractorLogic
{ {
// -------------------------------------------- // // -------------------------------------------- //