Skip to content

Commit f986aa8

Browse files
committed
Big Changes
Added EconomicTransactions (Changes functionality of all commands) Fixed italics of banknotes Banknotes now allow new lines using "||" Fixed Request command answer issue
1 parent 089471e commit f986aa8

21 files changed

Lines changed: 492 additions & 142 deletions

src/main/java/com/imnotstable/qualityeconomy/api/QualityEconomyAPI.java

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
package com.imnotstable.qualityeconomy.api;
22

3+
import com.imnotstable.qualityeconomy.commands.RequestCommand;
34
import com.imnotstable.qualityeconomy.storage.StorageManager;
45
import com.imnotstable.qualityeconomy.storage.accounts.Account;
56
import com.imnotstable.qualityeconomy.storage.accounts.AccountManager;
67
import org.jetbrains.annotations.NotNull;
78

9+
import java.util.HashMap;
810
import java.util.Set;
911
import java.util.UUID;
1012

@@ -81,14 +83,43 @@ public static boolean isPayable(@NotNull UUID uuid) {
8183
return getAccount(uuid).isPayable();
8284
}
8385

84-
public static void setRequestable(@NotNull UUID uuid, boolean isPayable) {
85-
getAccount(uuid).setRequestable(isPayable);
86+
public static void setRequestable(@NotNull UUID uuid, boolean isRequestable) {
87+
getAccount(uuid).setRequestable(isRequestable);
8688
}
8789

8890
public static boolean isRequestable(@NotNull UUID uuid) {
8991
return getAccount(uuid).isRequestable();
9092
}
9193

94+
public static void createRequest(@NotNull UUID requester, @NotNull UUID requestee, double amount) {
95+
if (RequestCommand.getRequests() == null) return;
96+
RequestCommand.getRequests().computeIfAbsent(requestee, uuid -> new HashMap<>()).put(requester, amount);
97+
}
98+
99+
public static void deleteRequest(@NotNull UUID requester, @NotNull UUID requestee) {
100+
if (RequestCommand.getRequests() == null) return;
101+
RequestCommand.getRequests().get(requestee).remove(requester);
102+
}
103+
104+
public static boolean requestExists(@NotNull UUID requester, @NotNull UUID requestee) {
105+
if (RequestCommand.getRequests() == null) return false;
106+
return RequestCommand.getRequests().get(requestee).containsKey(requester);
107+
}
108+
109+
public static boolean hasRequest(@NotNull UUID requestee) {
110+
if (RequestCommand.getRequests() == null) return false;
111+
return RequestCommand.getRequests().containsKey(requestee) && !RequestCommand.getRequests().get(requestee).isEmpty();
112+
}
113+
114+
public static void answerRequest(@NotNull UUID requester, @NotNull UUID requestee, boolean answer) {
115+
if (RequestCommand.getRequests() == null) return;
116+
if (answer) {
117+
double amount = RequestCommand.getRequests().get(requestee).get(requester);
118+
transferBalance(requestee, requester, amount);
119+
}
120+
deleteRequest(requester, requestee);
121+
}
122+
92123
public static void createCustomCurrency(@NotNull String currency) {
93124
StorageManager.addCurrency(currency);
94125
}

src/main/java/com/imnotstable/qualityeconomy/commands/BaseCommand.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,19 +11,19 @@ public abstract class BaseCommand {
1111
public abstract void register();
1212
public abstract void unregister();
1313

14-
public boolean register(CommandTree command) {
14+
protected boolean register(CommandTree command) {
1515
return register(command, true);
1616
}
1717

18-
public boolean register(CommandTree command, boolean conditions) {
18+
protected boolean register(CommandTree command, boolean conditions) {
1919
if (isRegistered || !Configuration.isCommandEnabled(command.getName()) || !conditions)
2020
return false;
2121
command.register();
2222
isRegistered = true;
2323
return true;
2424
}
2525

26-
public boolean unregister(CommandTree command) {
26+
protected boolean unregister(CommandTree command) {
2727
if (!isRegistered)
2828
return false;
2929
CommandAPI.unregister(command.getName(), true);

src/main/java/com/imnotstable/qualityeconomy/commands/CustomEconomyCommand.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import com.imnotstable.qualityeconomy.api.QualityEconomyAPI;
44
import com.imnotstable.qualityeconomy.configuration.MessageType;
55
import com.imnotstable.qualityeconomy.configuration.Messages;
6+
import com.imnotstable.qualityeconomy.economy.EconomicTransaction;
7+
import com.imnotstable.qualityeconomy.economy.EconomicTransactionType;
8+
import com.imnotstable.qualityeconomy.economy.EconomyPlayer;
69
import com.imnotstable.qualityeconomy.storage.StorageManager;
710
import com.imnotstable.qualityeconomy.util.CommandUtils;
811
import com.imnotstable.qualityeconomy.util.Number;
@@ -13,6 +16,7 @@
1316
import dev.jorel.commandapi.arguments.StringArgument;
1417
import dev.jorel.commandapi.executors.CommandArguments;
1518
import lombok.Getter;
19+
import lombok.SneakyThrows;
1620
import org.bukkit.OfflinePlayer;
1721
import org.bukkit.command.CommandSender;
1822

@@ -39,18 +43,19 @@ public void unregister() {
3943
super.unregister(command);
4044
}
4145

46+
@SneakyThrows
4247
private void resetBalance(CommandSender sender, CommandArguments args) {
4348
String currency = (String) args.get("currency");
4449
if (CommandUtils.requirement(StorageManager.getActiveStorageType().getCurrencies().contains(currency), MessageType.CURRENCY_NOT_FOUND, sender))
4550
return;
4651
OfflinePlayer target = (OfflinePlayer) args.get("target");
4752
if (CommandUtils.requirement(QualityEconomyAPI.hasAccount(target.getUniqueId()), MessageType.PLAYER_NOT_FOUND, sender))
4853
return;
49-
QualityEconomyAPI.setCustomBalance(target.getUniqueId(), currency, 0);
50-
Messages.sendParsedMessage(sender, MessageType.ECONOMY_RESET,
51-
target.getName());
54+
EconomicTransaction transaction = EconomicTransaction.startNewTransaction(EconomicTransactionType.CUSTOM_ECONOMY_RESET, sender, 0, EconomyPlayer.of(target));
55+
transaction.execute();
5256
}
5357

58+
@SneakyThrows
5459
private void setBalance(CommandSender sender, CommandArguments args) {
5560
String currency = (String) args.get("currency");
5661
if (CommandUtils.requirement(StorageManager.getActiveStorageType().getCurrencies().contains(currency), MessageType.CURRENCY_NOT_FOUND, sender))
@@ -60,16 +65,16 @@ private void setBalance(CommandSender sender, CommandArguments args) {
6065
return;
6166
double balance;
6267
try {
63-
balance = Number.roundObj(CommandUtils.parseNumber((String) args.get("amount")));
68+
balance = Number.roundObj(CommandUtils.parseNumber(args.get("amount").toString().toUpperCase()));
6469
} catch (NumberFormatException exception) {
6570
Messages.sendParsedMessage(sender, MessageType.INVALID_NUMBER);
6671
return;
6772
}
68-
QualityEconomyAPI.setCustomBalance(target.getUniqueId(), currency, balance);
69-
Messages.sendParsedMessage(sender, MessageType.ECONOMY_SET,
70-
Number.format(balance, Number.FormatType.COMMAS), target.getName());
73+
EconomicTransaction transaction = EconomicTransaction.startNewTransaction(EconomicTransactionType.CUSTOM_ECONOMY_SET, sender, balance, EconomyPlayer.of(target));
74+
transaction.execute();
7175
}
7276

77+
@SneakyThrows
7378
private void addBalance(CommandSender sender, CommandArguments args) {
7479
String currency = (String) args.get("currency");
7580
if (CommandUtils.requirement(StorageManager.getActiveStorageType().getCurrencies().contains(currency), MessageType.CURRENCY_NOT_FOUND, sender))
@@ -79,16 +84,16 @@ private void addBalance(CommandSender sender, CommandArguments args) {
7984
return;
8085
double balance;
8186
try {
82-
balance = Number.roundObj(CommandUtils.parseNumber((String) args.get("amount")));
87+
balance = Number.roundObj(CommandUtils.parseNumber(args.get("amount").toString().toUpperCase()));
8388
} catch (NumberFormatException exception) {
8489
Messages.sendParsedMessage(sender, MessageType.INVALID_NUMBER);
8590
return;
8691
}
87-
QualityEconomyAPI.addCustomBalance(target.getUniqueId(), currency, balance);
88-
Messages.sendParsedMessage(sender, MessageType.ECONOMY_ADD,
89-
Number.format(balance, Number.FormatType.COMMAS), target.getName());
92+
EconomicTransaction transaction = EconomicTransaction.startNewTransaction(EconomicTransactionType.CUSTOM_ECONOMY_ADD, sender, balance, EconomyPlayer.of(target));
93+
transaction.execute();
9094
}
9195

96+
@SneakyThrows
9297
private void removeBalance(CommandSender sender, CommandArguments args) {
9398
String currency = (String) args.get("currency");
9499
if (CommandUtils.requirement(StorageManager.getActiveStorageType().getCurrencies().contains(currency), MessageType.CURRENCY_NOT_FOUND, sender))
@@ -98,14 +103,13 @@ private void removeBalance(CommandSender sender, CommandArguments args) {
98103
return;
99104
double balance;
100105
try {
101-
balance = Number.roundObj(CommandUtils.parseNumber((String) args.get("amount")));
106+
balance = Number.roundObj(CommandUtils.parseNumber(args.get("amount").toString().toUpperCase()));
102107
} catch (NumberFormatException exception) {
103108
Messages.sendParsedMessage(sender, MessageType.INVALID_NUMBER);
104109
return;
105110
}
106-
QualityEconomyAPI.removeCustomBalance(target.getUniqueId(), currency, balance);
107-
Messages.sendParsedMessage(sender, MessageType.ECONOMY_REMOVE,
108-
Number.format(balance, Number.FormatType.COMMAS), target.getName());
111+
EconomicTransaction transaction = EconomicTransaction.startNewTransaction(EconomicTransactionType.CUSTOM_ECONOMY_REMOVE, sender, balance, EconomyPlayer.of(target));
112+
transaction.execute();
109113
}
110114

111115
}

src/main/java/com/imnotstable/qualityeconomy/commands/EconomyCommand.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
import com.imnotstable.qualityeconomy.api.QualityEconomyAPI;
44
import com.imnotstable.qualityeconomy.configuration.MessageType;
55
import com.imnotstable.qualityeconomy.configuration.Messages;
6+
import com.imnotstable.qualityeconomy.economy.EconomicTransaction;
7+
import com.imnotstable.qualityeconomy.economy.EconomicTransactionType;
8+
import com.imnotstable.qualityeconomy.economy.EconomyPlayer;
69
import com.imnotstable.qualityeconomy.util.CommandUtils;
710
import com.imnotstable.qualityeconomy.util.Number;
811
import dev.jorel.commandapi.CommandTree;
912
import dev.jorel.commandapi.arguments.LiteralArgument;
1013
import dev.jorel.commandapi.arguments.OfflinePlayerArgument;
1114
import dev.jorel.commandapi.arguments.StringArgument;
1215
import dev.jorel.commandapi.executors.CommandArguments;
16+
import lombok.SneakyThrows;
1317
import org.bukkit.OfflinePlayer;
1418
import org.bukkit.command.CommandSender;
1519

@@ -33,61 +37,61 @@ public void unregister() {
3337
super.unregister(command);
3438
}
3539

40+
@SneakyThrows
3641
private void resetBalance(CommandSender sender, CommandArguments args) {
3742
OfflinePlayer target = (OfflinePlayer) args.get("target");
3843
if (CommandUtils.requirement(QualityEconomyAPI.hasAccount(target.getUniqueId()), MessageType.PLAYER_NOT_FOUND, sender))
3944
return;
40-
QualityEconomyAPI.setBalance(target.getUniqueId(), 0);
41-
Messages.sendParsedMessage(sender, MessageType.ECONOMY_RESET,
42-
target.getName());
45+
EconomicTransaction transaction = EconomicTransaction.startNewTransaction(EconomicTransactionType.ECONOMY_RESET, sender, 0, EconomyPlayer.of(target));
46+
transaction.execute();
4347
}
4448

49+
@SneakyThrows
4550
private void setBalance(CommandSender sender, CommandArguments args) {
4651
OfflinePlayer target = (OfflinePlayer) args.get("target");
4752
if (CommandUtils.requirement(QualityEconomyAPI.hasAccount(target.getUniqueId()), MessageType.PLAYER_NOT_FOUND, sender))
4853
return;
4954
double balance;
5055
try {
51-
balance = Number.roundObj(CommandUtils.parseNumber((String) args.get("amount")));
56+
balance = Number.roundObj(CommandUtils.parseNumber(args.get("amount").toString().toUpperCase()));
5257
} catch (NumberFormatException exception) {
5358
Messages.sendParsedMessage(sender, MessageType.INVALID_NUMBER);
5459
return;
5560
}
56-
QualityEconomyAPI.setBalance(target.getUniqueId(), balance);
57-
Messages.sendParsedMessage(sender, MessageType.ECONOMY_SET,
58-
Number.format(balance, Number.FormatType.COMMAS), target.getName());
61+
EconomicTransaction transaction = EconomicTransaction.startNewTransaction(EconomicTransactionType.ECONOMY_SET, sender, balance, EconomyPlayer.of(target));
62+
transaction.execute();
5963
}
6064

65+
@SneakyThrows
6166
private void addBalance(CommandSender sender, CommandArguments args) {
6267
OfflinePlayer target = (OfflinePlayer) args.get("target");
6368
if (CommandUtils.requirement(QualityEconomyAPI.hasAccount(target.getUniqueId()), MessageType.PLAYER_NOT_FOUND, sender))
6469
return;
6570
double balance;
6671
try {
67-
balance = Number.roundObj(CommandUtils.parseNumber((String) args.get("amount")));
72+
balance = Number.roundObj(CommandUtils.parseNumber(args.get("amount").toString().toUpperCase()));
6873
} catch (NumberFormatException exception) {
6974
Messages.sendParsedMessage(sender, MessageType.INVALID_NUMBER);
7075
return;
7176
}
72-
QualityEconomyAPI.addBalance(target.getUniqueId(), balance);
73-
Messages.sendParsedMessage(sender, MessageType.ECONOMY_ADD,
74-
Number.format(balance, Number.FormatType.COMMAS), target.getName());
77+
EconomicTransaction transaction = EconomicTransaction.startNewTransaction(EconomicTransactionType.ECONOMY_ADD, sender, balance, EconomyPlayer.of(target));
78+
transaction.execute();
7579
}
7680

81+
@SneakyThrows
7782
private void removeBalance(CommandSender sender, CommandArguments args) {
7883
OfflinePlayer target = (OfflinePlayer) args.get("target");
7984
if (CommandUtils.requirement(QualityEconomyAPI.hasAccount(target.getUniqueId()), MessageType.PLAYER_NOT_FOUND, sender))
8085
return;
8186
double balance;
8287
try {
83-
balance = Number.roundObj(CommandUtils.parseNumber((String) args.get("amount")));
88+
balance = Number.roundObj(CommandUtils.parseNumber(args.get("amount").toString().toUpperCase()));
8489
} catch (NumberFormatException exception) {
8590
Messages.sendParsedMessage(sender, MessageType.INVALID_NUMBER);
8691
return;
8792
}
88-
QualityEconomyAPI.removeBalance(target.getUniqueId(), balance);
89-
Messages.sendParsedMessage(sender, MessageType.ECONOMY_REMOVE,
90-
Number.format(balance, Number.FormatType.COMMAS), target.getName());
93+
EconomicTransaction transaction = EconomicTransaction.startNewTransaction(EconomicTransactionType.ECONOMY_REMOVE, sender, balance, EconomyPlayer.of(target));
94+
transaction.execute();
9195
}
9296

9397
}

src/main/java/com/imnotstable/qualityeconomy/commands/PayCommand.java

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,17 @@
33
import com.imnotstable.qualityeconomy.api.QualityEconomyAPI;
44
import com.imnotstable.qualityeconomy.configuration.MessageType;
55
import com.imnotstable.qualityeconomy.configuration.Messages;
6+
import com.imnotstable.qualityeconomy.economy.EconomicTransaction;
7+
import com.imnotstable.qualityeconomy.economy.EconomicTransactionType;
8+
import com.imnotstable.qualityeconomy.economy.EconomyPlayer;
69
import com.imnotstable.qualityeconomy.util.CommandUtils;
710
import com.imnotstable.qualityeconomy.util.Number;
811
import dev.jorel.commandapi.CommandTree;
912
import dev.jorel.commandapi.arguments.DoubleArgument;
1013
import dev.jorel.commandapi.arguments.LiteralArgument;
1114
import dev.jorel.commandapi.arguments.OfflinePlayerArgument;
1215
import dev.jorel.commandapi.executors.CommandArguments;
16+
import lombok.SneakyThrows;
1317
import org.bukkit.OfflinePlayer;
1418
import org.bukkit.entity.Player;
1519

@@ -41,6 +45,7 @@ private void togglePay(Player sender, CommandArguments args) {
4145
}
4246
}
4347

48+
@SneakyThrows
4449
private void pay(Player sender, CommandArguments args) {
4550
OfflinePlayer target = (OfflinePlayer) args.get("target");
4651
if (CommandUtils.requirement(QualityEconomyAPI.hasAccount(target.getUniqueId()), MessageType.PLAYER_NOT_FOUND, sender))
@@ -52,14 +57,8 @@ private void pay(Player sender, CommandArguments args) {
5257
double amount = Number.roundObj(args.get("amount"));
5358
if (CommandUtils.requirement(QualityEconomyAPI.hasBalance(sender.getUniqueId(), amount), MessageType.SELF_NOT_ENOUGH_MONEY, sender))
5459
return;
55-
Messages.sendParsedMessage(sender, MessageType.PAY_SEND,
56-
Number.format(amount, Number.FormatType.COMMAS),
57-
target.getName()
58-
);
59-
if (target.isOnline())
60-
Messages.sendParsedMessage(target.getPlayer(), MessageType.PAY_RECEIVE,
61-
Number.format(amount, Number.FormatType.COMMAS), sender.getName());
62-
QualityEconomyAPI.transferBalance(sender.getUniqueId(), target.getUniqueId(), amount);
60+
EconomicTransaction transaction = EconomicTransaction.startNewTransaction(EconomicTransactionType.BALANCE_TRANSFER, sender, amount, EconomyPlayer.of(sender), EconomyPlayer.of(target));
61+
transaction.execute();
6362
}
6463

6564
}

0 commit comments

Comments
 (0)