Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<maven.compiler.release>21</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.proc>full</maven.compiler.proc>
<denareconomy.version>0.2.0</denareconomy.version>
<denareconomy.version>0.2.4</denareconomy.version>
<rpcharacters.version>2.0.1</rpcharacters.version>
<tlibs.version>2.0.0</tlibs.version>
<vehicleframework.version>2.0.1</vehicleframework.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
import net.tfminecraft.simplefactions.government.movement.cause.Cause;
import net.tfminecraft.tlibs.TLibs;
import net.tfminecraft.denareconomy.DenarEconomy;
import net.tfminecraft.denareconomy.accounts.OfflineModifier;
import net.tfminecraft.denareconomy.enums.Accounts;

public class FactionManager implements Listener{
Expand Down Expand Up @@ -495,8 +496,6 @@ public void time() {
}
}

// Existing configuration identifies offline profiles by player name, not UUID.
@SuppressWarnings("deprecation")
public void settleIncome() {
DailyGuildTransfers buffer = new DailyGuildTransfers();

Expand Down Expand Up @@ -555,7 +554,7 @@ public void settleIncome() {
buffer,
DenarEconomyPlayerBank.INSTANCE,
PlayerEconomyManager.get(),
name -> Bukkit.getOfflinePlayer(name).getUniqueId());
OfflineModifier::playerId);
for (Guild g : getAllGuilds()) {
g.refreshDividendEligibility();
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
package net.tfminecraft.simplefactions.managers;

import java.util.UUID;

import org.bukkit.Bukkit;
import org.bukkit.Chunk;
import org.bukkit.Material;
Expand Down Expand Up @@ -269,8 +267,6 @@ private ItemStack signedAgreement(
return i;
}

// Existing configuration identifies offline profiles by player name, not UUID.
@SuppressWarnings("deprecation")
@EventHandler
public void earnMoney(PlayerEarnMoneyEvent e) {
String playerName = e.getPlayer();
Expand All @@ -285,11 +281,7 @@ public void earnMoney(PlayerEarnMoneyEvent e) {
}
}
}
Player online = Bukkit.getPlayerExact(playerName);
UUID playerUuid = online != null
? online.getUniqueId()
: Bukkit.getOfflinePlayer(playerName).getUniqueId();
PlayerLedger ledger = PlayerEconomyManager.get().getLedger(playerUuid);
PlayerLedger ledger = PlayerEconomyManager.get().getLedger(playerName);
if (gross > 0) {
ledger.add(PlayerCashflow.EARNINGS, gross);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@
import java.util.List;
import java.util.UUID;

import org.bukkit.Bukkit;
import org.bukkit.entity.Player;

import net.tfminecraft.denareconomy.accounts.OfflineModifier;
import net.tfminecraft.simplefactions.guild.Guild;
import net.tfminecraft.simplefactions.managers.FactionManager;
import net.tfminecraft.simplefactions.objects.Faction;
Expand Down Expand Up @@ -47,15 +45,8 @@ public static PlayerUuidLookup uuidLookup() {
return uuids;
}

// Existing configuration identifies offline profiles by player name, not UUID.
@SuppressWarnings("deprecation")
public static PlayerUuidLookup bukkitUuids() {
return name -> {
if (name == null || Bukkit.getServer() == null) return null;
Player online = Bukkit.getPlayerExact(name);
if (online != null) return online.getUniqueId();
return Bukkit.getOfflinePlayer(name).getUniqueId();
};
return OfflineModifier::playerId;
}

public static List<Engagement> on(War war, Side side) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,7 @@
import java.util.Map;
import java.util.UUID;

import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;

import net.tfminecraft.denareconomy.accounts.OfflineModifier;
import net.tfminecraft.simplefactions.SimpleFactions;
import net.tfminecraft.simplefactions.player.income.PlayerLedger;

Expand All @@ -24,14 +22,8 @@ public PlayerLedger getLedger(UUID playerUuid) {
return ledgers.computeIfAbsent(playerUuid, ignored -> new PlayerLedger());
}

// Existing configuration identifies offline profiles by player name, not UUID.
@SuppressWarnings("deprecation")
public PlayerLedger getLedger(String playerName) {
if (playerName == null || playerName.isBlank()) {
return new PlayerLedger();
}
OfflinePlayer offline = Bukkit.getOfflinePlayer(playerName);
UUID uuid = offline.getUniqueId();
UUID uuid = OfflineModifier.playerId(playerName);
if (uuid == null) {
return new PlayerLedger();
}
Expand Down
17 changes: 3 additions & 14 deletions src/main/java/net/tfminecraft/simplefactions/utils/Wealth.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,18 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;

import org.bukkit.Bukkit;
import org.bukkit.OfflinePlayer;

import net.tfminecraft.simplefactions.guild.Guild;
import net.tfminecraft.simplefactions.managers.FactionManager;
import net.tfminecraft.simplefactions.objects.Faction;
import net.tfminecraft.denareconomy.DenarEconomy;
import net.tfminecraft.denareconomy.accounts.OfflineModifier;
import net.tfminecraft.denareconomy.enums.Accounts;
import net.tfminecraft.simplefactions.managers.RelationManager;

public class Wealth {
// Existing configuration identifies offline profiles by player name, not UUID.
@SuppressWarnings("deprecation")
public static double wealth(String player) {
double wealth = 0;
OfflinePlayer op = Bukkit.getOfflinePlayer(player);
if(op.hasPlayedBefore()) {
UUID uuid = op.getUniqueId();
wealth += DenarEconomy.getMoneyManager().getBalance(Accounts.POUCH, uuid);
wealth += DenarEconomy.getMoneyManager().getBalance(Accounts.BANK, uuid);
}
double wealth = OfflineModifier.balance(player, Accounts.POUCH);
wealth += OfflineModifier.balance(player, Accounts.BANK);
Guild guild = FactionManager.getGuildByMember(player);
if(guild != null) {
if(guild.getLeader().equalsIgnoreCase(player) && guild.isBase()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import java.util.UUID;

import net.tfminecraft.denareconomy.DenarEconomy;
import net.tfminecraft.denareconomy.accounts.OfflineModifier;
import net.tfminecraft.denareconomy.enums.Accounts;

public final class DenarEconomyPlayerBank {
Expand All @@ -12,6 +12,9 @@ public interface PlayerBank {
boolean withdrawFromBank(UUID playerUuid, double amount);

boolean depositToBank(UUID playerUuid, double amount);

/** Account id for this name, whether or not they are logged in. */
UUID resolve(String playerName);
}

public interface PlayerPouch {
Expand All @@ -27,54 +30,34 @@ private DenarEconomyPlayerBank() {}
public static final class Impl implements PlayerBank, PlayerPouch {
private Impl() {}

@Override
public UUID resolve(String playerName) {
return OfflineModifier.playerId(playerName);
}

@Override
public double getBankBalance(UUID playerUuid) {
if (playerUuid == null) {
return 0.0;
}
DenarEconomy.getPlayerManager().get(playerUuid);
return DenarEconomy.getMoneyManager().getBalance(Accounts.BANK, playerUuid);
return OfflineModifier.balance(playerUuid, Accounts.BANK);
}

@Override
public boolean withdrawFromBank(UUID playerUuid, double amount) {
return withdraw(playerUuid, amount, Accounts.BANK);
return amount > 0.0 && OfflineModifier.apply(playerUuid, Accounts.BANK, -amount);
}

@Override
public boolean depositToBank(UUID playerUuid, double amount) {
if (playerUuid == null || amount <= 0.0) {
return false;
}
DenarEconomy.getPlayerManager().get(playerUuid);
DenarEconomy.getMoneyManager().changeBal(playerUuid.toString(), amount, Accounts.BANK);
return true;
return amount > 0.0 && OfflineModifier.apply(playerUuid, Accounts.BANK, amount);
}

@Override
public double getPouchBalance(UUID playerUuid) {
if (playerUuid == null) {
return 0.0;
}
DenarEconomy.getPlayerManager().get(playerUuid);
return DenarEconomy.getMoneyManager().getBalance(Accounts.POUCH, playerUuid);
return OfflineModifier.balance(playerUuid, Accounts.POUCH);
}

@Override
public boolean withdrawFromPouch(UUID playerUuid, double amount) {
return withdraw(playerUuid, amount, Accounts.POUCH);
}

private boolean withdraw(UUID playerUuid, double amount, Accounts account) {
if (playerUuid == null || amount <= 0.0) {
return false;
}
double balance = DenarEconomy.getMoneyManager().getBalance(account, playerUuid);
if (balance < amount) {
return false;
}
DenarEconomy.getMoneyManager().changeBal(playerUuid.toString(), -amount, account);
return true;
return amount > 0.0 && OfflineModifier.apply(playerUuid, Accounts.POUCH, -amount);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,9 @@ public void processDailyUpkeep() {
continue;
}
String playerName = VehicleOwnershipQueries.playerNameFromOwner(vehicle.getOwner());
UUID playerUuid = VehicleOwnershipQueries.resolvePlayerUuid(playerName);
UUID playerUuid = playerBank.resolve(playerName);
if (playerUuid == null) {
markUnpaid(vehicle.getUuid(), vehicle.getTypeId(), null, upkeep, now);
continue;
}
chargePlayer(playerUuid, upkeep, vehicle.getTypeId(), vehicle.getUuid(), now);
Expand All @@ -80,37 +81,46 @@ private void chargePlayer(
return;
}
if (!playerBank.withdrawFromBank(playerUuid, upkeep)) {
maintenanceStore.markUnpaid(vehicleUuid, nowMillis);
persistMaintenance();
SimpleFactions plugin = SimpleFactions.getInstance();
if (plugin != null) {
plugin.getLogger().info(
"Vehicle upkeep unpaid for player "
+ playerUuid
+ " vehicle "
+ vehicleTypeId
+ " amount "
+ upkeep
);
}
Player online = null;
if (Bukkit.getServer() != null) {
online = Bukkit.getPlayer(playerUuid);
}
if (online != null && online.isOnline()) {
online.sendMessage(
"§cCould not pay vehicle upkeep ("
+ vehicleTypeId
+ "): insufficient bank balance."
);
}
markUnpaid(vehicleUuid, vehicleTypeId, playerUuid, upkeep, nowMillis);
return;
}
economyManager.getLedger(playerUuid).add(PlayerCashflow.VEHICLE_UPKEEP, -upkeep);
maintenanceStore.clearUnpaid(vehicleUuid);
persistMaintenance();
}

private void markUnpaid(
String vehicleUuid,
String vehicleTypeId,
UUID playerUuid,
double upkeep,
long nowMillis) {
maintenanceStore.markUnpaid(vehicleUuid, nowMillis);
persistMaintenance();
SimpleFactions plugin = SimpleFactions.getInstance();
if (plugin != null) {
plugin.getLogger().info(
"Vehicle upkeep unpaid for player "
+ playerUuid
+ " vehicle "
+ vehicleTypeId
+ " amount "
+ upkeep
);
}
if (playerUuid == null || Bukkit.getServer() == null) {
return;
}
Player online = Bukkit.getPlayer(playerUuid);
if (online != null && online.isOnline()) {
online.sendMessage(
"§cCould not pay vehicle upkeep ("
+ vehicleTypeId
+ "): insufficient bank balance."
);
}
}

private void persistMaintenance() {
SimpleFactions plugin = SimpleFactions.getInstance();
if (plugin != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.bukkit.OfflinePlayer;
import org.bukkit.entity.Player;

import net.tfminecraft.denareconomy.accounts.OfflineModifier;
import net.tfminecraft.simplefactions.loaders.VehiclesConfigLoader;
import net.tfminecraft.vehicleframework.data.OwnedVehicleSummary;
import net.tfminecraft.vehicleframework.VehicleFramework;
Expand Down Expand Up @@ -91,18 +92,8 @@ public static int countExcludingIgnoreLimit(List<OwnedVehicleSummary> personal)
return count;
}

// Existing configuration identifies offline profiles by player name, not UUID.
@SuppressWarnings("deprecation")
public static UUID resolvePlayerUuid(String playerName) {
if (playerName == null || playerName.isBlank() || Bukkit.getServer() == null) {
return null;
}
Player online = Bukkit.getPlayerExact(playerName);
if (online != null) {
return online.getUniqueId();
}
OfflinePlayer offline = Bukkit.getOfflinePlayer(playerName);
return offline.getUniqueId();
return OfflineModifier.playerId(playerName);
}

public static String resolvePlayerName(UUID playerUuid) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -189,5 +189,10 @@ public boolean depositToBank(UUID playerUuid, double amount) {
balances.put(playerUuid, balance(playerUuid) + amount);
return true;
}

@Override
public UUID resolve(String playerName) {
return null;
}
}
}
Loading