Skip to content

Commit 72fca8a

Browse files
committed
implement
1 parent c5b0832 commit 72fca8a

File tree

1 file changed

+90
-26
lines changed

1 file changed

+90
-26
lines changed
Lines changed: 90 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,15 @@
11
package org.maxgamer.quickshop.economy;
22

3+
import gg.jps.jpscore.JpsCore;
4+
import gg.jps.jpscore.api.JpsApiResponse;
5+
import gg.jps.jpscore.api.i.IJpsBankApi;
6+
import gg.jps.jpscore.core.JpsUtils;
7+
import gg.jps.jpscore.db.def.strChar.PlayerUuidStr;
8+
import gg.jps.jpscore.db.def.varchar.PassBookNote;
9+
import gg.jps.jpscore.db.def.varchar.PluginName;
10+
import gg.jps.jpscore.define.JpsConst;
11+
import gg.jps.jpscore.define.exception.JpsApiException;
12+
import gg.jps.jpscore.economy.def.MoneyJp;
313
import org.bukkit.OfflinePlayer;
414
import org.bukkit.World;
515
import org.bukkit.plugin.Plugin;
@@ -14,70 +24,125 @@ public class Economy_JpsCore extends AbstractEconomy {
1424

1525
private static final QuickShop plugin = QuickShop.getInstance();
1626

27+
private final IJpsBankApi api = JpsCore.API().JpsBankApi();
28+
29+
private String lastError = null;
1730
@Override
18-
public boolean deposit(@NotNull UUID name, double amount, @NotNull World world, @Nullable String currency) {
19-
//TODO implement
20-
return false;
31+
public @Nullable String getLastError() {
32+
return this.lastError;
33+
}
34+
35+
@Override
36+
public boolean deposit(@NotNull UUID toPlayer, double amount, @NotNull World world, @Nullable String currency) {
37+
try {
38+
JpsApiResponse<Boolean> res = api.giveBySystem(
39+
new PlayerUuidStr(toPlayer), PluginName.instance(plugin.getName()), new MoneyJp(amount),
40+
PassBookNote.instance("ショップ収入"), IJpsBankApi.AddableToDailyEarnAmount.YES
41+
);
42+
return res.get();
43+
}catch(JpsApiException e){
44+
plugin.getLogger().warning(e.getMessage());
45+
JpsUtils.Logging.fail(e.getCause());
46+
lastError = e.getCause().getMessage();
47+
return false;
48+
}
2149
}
2250

2351
@Override
2452
public boolean deposit(@NotNull OfflinePlayer trader, double amount, @NotNull World world, @Nullable String currency) {
25-
//TODO implement
26-
return false;
53+
try {
54+
JpsApiResponse<Boolean> res = api.giveBySystem(
55+
PlayerUuidStr.instance(trader), PluginName.instance(plugin.getName()), new MoneyJp(amount),
56+
PassBookNote.instance("ショップ収入"), IJpsBankApi.AddableToDailyEarnAmount.YES
57+
);
58+
return res.get();
59+
}catch(JpsApiException e){
60+
plugin.getLogger().warning(e.getMessage());
61+
JpsUtils.Logging.fail(e.getCause());
62+
lastError = e.getCause().getMessage();
63+
return false;
64+
}
2765
}
2866

2967
@Override
3068
public String format(double balance, @NotNull World world, @Nullable String currency) {
31-
//TODO implement
32-
return null;
69+
return new MoneyJp(balance).toUnitString();
3370
}
3471

3572
@Override
3673
public double getBalance(@NotNull UUID name, @NotNull World world, @Nullable String currency) {
37-
//TODO implement
38-
return 0;
74+
try{
75+
JpsApiResponse<MoneyJp> res = api.currentCharge(api.getAccountId(new PlayerUuidStr(name)).get());
76+
return res.get().doubleValue();
77+
}catch(JpsApiException e){
78+
plugin.getLogger().warning(e.getMessage());
79+
JpsUtils.Logging.fail(e.getCause());
80+
return 0;
81+
}
3982
}
4083

4184
@Override
4285
public double getBalance(@NotNull OfflinePlayer player, @NotNull World world, @Nullable String currency) {
43-
//TODO implement
44-
return 0;
86+
try{
87+
JpsApiResponse<MoneyJp> res = api.currentCharge(api.getAccountId(PlayerUuidStr.instance(player)).get());
88+
return res.get().doubleValue();
89+
}catch(JpsApiException e){
90+
plugin.getLogger().warning(e.getMessage());
91+
JpsUtils.Logging.fail(e.getCause());
92+
return 0;
93+
}
4594
}
4695

4796
@Override
48-
public boolean withdraw(@NotNull UUID name, double amount, @NotNull World world, @Nullable String currency) {
49-
//TODO implement
50-
return false;
97+
public boolean withdraw(@NotNull UUID fromPlayer, double amount, @NotNull World world, @Nullable String currency) {
98+
try {
99+
JpsApiResponse<Boolean> res = api.tollBySystem(
100+
new PlayerUuidStr(fromPlayer), PluginName.instance(plugin.getName()),
101+
new MoneyJp(amount), PassBookNote.instance("ショップ費用")
102+
);
103+
return res.get();
104+
}catch(JpsApiException e){
105+
plugin.getLogger().warning(e.getMessage());
106+
JpsUtils.Logging.fail(e.getCause());
107+
lastError = e.getCause().getMessage();
108+
return false;
109+
}
51110
}
52111

53112
@Override
54113
public boolean withdraw(@NotNull OfflinePlayer trader, double amount, @NotNull World world, @Nullable String currency) {
55-
//TODO implement
56-
return false;
114+
try {
115+
JpsApiResponse<Boolean> res = api.tollBySystem(
116+
PlayerUuidStr.instance(trader), PluginName.instance(plugin.getName()),
117+
new MoneyJp(amount), PassBookNote.instance("ショップ費用")
118+
);
119+
return res.get();
120+
}catch(JpsApiException e){
121+
plugin.getLogger().warning(e.getMessage());
122+
JpsUtils.Logging.fail(e.getCause());
123+
lastError = e.getCause().getMessage();
124+
return false;
125+
}
57126
}
58127

59128
@Override
60129
public boolean hasCurrency(@NotNull World world, @NotNull String currency) {
61-
//TODO implement
62130
return false;
63131
}
64132

65133
@Override
66134
public boolean supportCurrency() {
67-
//TODO implement
68135
return false;
69136
}
70137

71138
@Override
72-
public @Nullable String getLastError() {
73-
//TODO implement
74-
return null;
139+
public boolean isValid() {
140+
return api != null;
75141
}
76142

77143
@Override
78-
public boolean isValid() {
79-
//TODO implement
80-
return false;
144+
public @NotNull String getName() {
145+
return JpsConst.pluginName.get();
81146
}
82147

83148
@Override
@@ -87,7 +152,6 @@ public boolean isValid() {
87152

88153
@Override
89154
public String toString() {
90-
//TODO implement
91-
return null;
155+
return getClass().getName() +":{isValid:"+ isValid() +", lastError:"+ lastError +"}";
92156
}
93157
}

0 commit comments

Comments
 (0)