Skip to content

Commit aa936fc

Browse files
committed
New update 2.1.0 with Title perform when point change
1 parent a677e18 commit aa936fc

24 files changed

Lines changed: 289 additions & 39 deletions

src/main/java/me/playernguyen/opteco/OptEco.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import me.playernguyen.opteco.logger.OptEcoDebugger;
2020
import me.playernguyen.opteco.manager.ManagerSet;
2121
import me.playernguyen.opteco.placeholderapi.OptEcoExpansion;
22+
import me.playernguyen.opteco.schedule.ScheduleManager;
2223
import me.playernguyen.opteco.transaction.TransactionManager;
2324
import me.playernguyen.opteco.updater.OptEcoUpdater;
2425
import me.playernguyen.opteco.utils.MessageFormat;
@@ -28,6 +29,7 @@
2829
import org.bukkit.plugin.Plugin;
2930
import org.bukkit.plugin.java.JavaPlugin;
3031

32+
import java.sql.SQLException;
3133
import java.util.ArrayList;
3234
import java.util.logging.Logger;
3335

@@ -56,13 +58,15 @@ public class OptEco extends JavaPlugin {
5658
private MessageFormat messageFormat;
5759
private TransactionManager transactionManager;
5860
private Metrics metrics;
61+
private ScheduleManager scheduleManager;
5962

6063
@Override
6164
public void onEnable() {
6265
this.setupInstance();
6366
this.setupLoader();
6467
this.setupManager();
6568
this.setupUpdater();
69+
this.setupSchedule();
6670
this.setupStorage();
6771
this.setupAccount();
6872
this.hookPlaceHolderAPI();
@@ -72,6 +76,10 @@ public void onEnable() {
7276
this.waterMarkPrint();
7377
}
7478

79+
private void setupSchedule() {
80+
this.scheduleManager = new ScheduleManager(this);
81+
}
82+
7583
private void announcePlayerPoints() {
7684
// Find BossShopPro
7785
Plugin plugin = Bukkit.getPluginManager().getPlugin("PlayerPoints");
@@ -332,4 +340,8 @@ public OptEcoCacheAccountManager getAccountManager() {
332340
return accountManager;
333341
}
334342

343+
public ScheduleManager getScheduleManager() {
344+
return scheduleManager;
345+
}
346+
335347
}

src/main/java/me/playernguyen/opteco/OptEcoConfiguration.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ public enum OptEcoConfiguration {
1212
MINIMUM_TRANSACT_VALUE("Settings.Preferences.MinimumCanTransact", 0.1),
1313
STORAGE_TYPE("Settings.Storage.Type", StorageType.SQLITE.toString().toLowerCase()),
1414

15+
USE_DOUBLE("Settings.Preferences.UseDouble", false),
16+
1517
MYSQL_HOST("Settings.SQL.MySQL.Host", "localhost"),
1618
MYSQL_DATABASE("Settings.SQL.MySQL.Database", "dbname"),
1719
MYSQL_PORT("Settings.SQL.MySQL.Port", "3306"),
@@ -31,7 +33,11 @@ public enum OptEcoConfiguration {
3133
REFRESH_TIME("Settings.Preferences.Cache.RefreshTime", 5),
3234

3335
DEBUG("Settings.Debug", false),
34-
LANGUAGE_FILE("Settings.Preferences.Language", "language.yml");
36+
LANGUAGE_FILE("Settings.Preferences.Language", "language.yml"),
37+
38+
TITLE_STAY("Settings.Title.Stay", 20),
39+
TITLE_FADE_OUT("Settings.Title.FadeOut", 100),
40+
;
3541

3642
private final String path;
3743
private final Object wh;

src/main/java/me/playernguyen/opteco/OptEcoImplementation.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import me.playernguyen.opteco.configuration.OptEcoLanguageLoader;
77
import me.playernguyen.opteco.configuration.StorageType;
88
import me.playernguyen.opteco.logger.Debugger;
9+
import me.playernguyen.opteco.schedule.ScheduleManager;
910
import me.playernguyen.opteco.transaction.TransactionManager;
1011

1112
import java.util.logging.Logger;
@@ -93,5 +94,12 @@ protected Logger getLogger() {
9394
return getPlugin().getLogger();
9495
}
9596

97+
/**
98+
* @return Schedule manager
99+
*/
100+
protected ScheduleManager getScheduleManager() {
101+
return this.getPlugin().getScheduleManager();
102+
}
103+
96104

97105
}

src/main/java/me/playernguyen/opteco/OptEcoLanguage.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,10 @@ public enum OptEcoLanguage {
5858
GRAY_BAR("RED_BAR", "&7---------------------------"),
5959
COMMAND_TOP_FORMAT("COMMAND.TOP.FORMAT", "&7%id%. &6%name% ~ &c%balance%"),
6060

61-
UNACCEPTED_VALUE_PAYMENT("COMMAND.UNACCEPTED_VALUE", "&cThis value is unaccepted in transaction")
61+
UNACCEPTED_VALUE_PAYMENT("COMMAND.UNACCEPTED_VALUE", "&cThis value is unaccepted in transaction"),
62+
MUST_BE_INTEGER("MUST_BE_INTEGER", "&cThe value must be an integer!"),
63+
64+
6265
;
6366

6467
private final String path;

src/main/java/me/playernguyen/opteco/account/OptEcoCacheAccount.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ public void setLastUpdate(long lastUpdate) {
3232
}
3333

3434
public static OptEcoCacheAccount loadFromAccount(Account account) {
35-
36-
// if (account != null) return new OptEcoCacheAccount(account.getBalance(), System.currentTimeMillis());
37-
//
38-
// else return new OptEcoCacheAccount(0, System.currentTimeMillis());
3935
return (account != null)
4036
? new OptEcoCacheAccount(account.getBalance(), System.currentTimeMillis())
4137
: new OptEcoCacheAccount(0, System.currentTimeMillis());

src/main/java/me/playernguyen/opteco/account/SQLAccountDatabase.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package me.playernguyen.opteco.account;
22

33
import me.playernguyen.opteco.OptEcoImplementation;
4+
import me.playernguyen.opteco.event.OptEcoPointChangedEvent;
45
import me.playernguyen.opteco.sql.SQLEstablish;
56
import org.bukkit.Bukkit;
67
import org.jetbrains.annotations.NotNull;
@@ -136,8 +137,8 @@ public boolean hasAccount(UUID uuid) {
136137
}
137138

138139
@Override
139-
public boolean setBalance(UUID uuid, double amount) {
140-
return this.save(new Account(uuid, amount));
140+
public boolean setBalance(UUID uuid, double newBalance) {
141+
return this.save(new Account(uuid, newBalance));
141142
}
142143

143144
@Override
@@ -147,11 +148,27 @@ public double getBalance(UUID uuid) {
147148

148149
@Override
149150
public boolean takeBalance(UUID uuid, double amount) {
151+
// Take balance
152+
// Call event
153+
Bukkit.getPluginManager().callEvent(new OptEcoPointChangedEvent(
154+
uuid,
155+
this.getBalance(uuid),
156+
this.getBalance(uuid) - amount,
157+
OptEcoPointChangedEvent.ModifyType.DECREASE
158+
));
150159
return this.setBalance(uuid, this.getBalance(uuid) - amount);
151160
}
152161

153162
@Override
154163
public boolean addBalance(UUID uuid, double amount) {
164+
// Add new balance
165+
// Call event
166+
Bukkit.getPluginManager().callEvent(new OptEcoPointChangedEvent(
167+
uuid,
168+
this.getBalance(uuid),
169+
this.getBalance(uuid) + amount,
170+
OptEcoPointChangedEvent.ModifyType.INCREASE
171+
));
155172
return this.setBalance(uuid, this.getBalance(uuid) + amount);
156173
}
157174

src/main/java/me/playernguyen/opteco/account/mysql/MySQLAccountDatabase.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import me.playernguyen.opteco.account.SQLAccountDatabase;
66
import me.playernguyen.opteco.sql.MySQLEstablish;
77

8+
import java.sql.SQLException;
89
import java.util.ArrayList;
910
import java.util.Arrays;
1011

src/main/java/me/playernguyen/opteco/command/SubCommandAdd.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import me.playernguyen.opteco.OptEco;
44
import me.playernguyen.opteco.OptEcoConfiguration;
55
import me.playernguyen.opteco.OptEcoLanguage;
6+
import me.playernguyen.opteco.event.OptEcoPointChangedEvent;
67
import me.playernguyen.opteco.permission.OptEcoPermission;
78
import me.playernguyen.opteco.utils.MathUtils;
89
import org.bukkit.Bukkit;
@@ -74,7 +75,8 @@ private boolean execute(CommandSender sender, ArrayList<String> args) {
7475
.replace("%who%", args.get(0))
7576
);
7677
// Refresh the cache account
77-
this.getAccountManager().refresh(target.getUniqueId());
78+
if (target.isOnline())
79+
this.getAccountManager().refresh(target.getUniqueId());
7880
} else {
7981
sender.sendMessage(
8082
getMessageFormat().format(getPlugin().getLanguageLoader().getLanguage(OptEcoLanguage.COMMAND_FAILED_ADD))

src/main/java/me/playernguyen/opteco/command/SubCommandMe.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ public boolean onPlayerCommand(Player player, ArrayList<String> args) {
3535
.replace("%value%", getMessageFormat()
3636
.numberFormat(optEcoCacheAccount.getBalance())
3737
).replace("%currency%", getPlugin()
38-
.getConfigurationLoader()
39-
.getString(OptEcoConfiguration.CURRENCY_SYMBOL)
40-
)
38+
.getConfigurationLoader()
39+
.getString(OptEcoConfiguration.CURRENCY_SYMBOL)
40+
)
4141
)
4242
);
4343
return true;

src/main/java/me/playernguyen/opteco/command/SubCommandPay.java

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,32 @@ public boolean onPlayerCommand(Player player, ArrayList<String> args) {
8383
);
8484
return true;
8585
}
86-
// If lower than the minimum transact
87-
if ((dummyValue % 1) < getConfigurationLoader().getDouble(OptEcoConfiguration.MINIMUM_TRANSACT_VALUE)) {
86+
// // If lower than the minimum transact
87+
// System.out.println(dummyValue % 1);
88+
// System.out.println(getConfigurationLoader().getDouble(OptEcoConfiguration.MINIMUM_TRANSACT_VALUE));
89+
// System.out.println(
90+
// dummyValue % 1 != 0 &&
91+
// (dummyValue % 1) < getConfigurationLoader().getDouble(OptEcoConfiguration.MINIMUM_TRANSACT_VALUE));
92+
//
93+
// if ((dummyValue % 1) >= getConfigurationLoader().getDouble(OptEcoConfiguration.MINIMUM_TRANSACT_VALUE)) {
94+
// player.sendMessage(
95+
// getMessageFormat()
96+
// .format(getLanguageLoader().getLanguage(OptEcoLanguage.UNACCEPTED_VALUE_PAYMENT))
97+
// );
98+
// return true;
99+
// }
100+
// Whether player is using double in not double mode
101+
if (!getConfigurationLoader().getBool(OptEcoConfiguration.USE_DOUBLE)
102+
&& (dummyValue % 1) != 0
103+
) {
88104
player.sendMessage(
89-
getMessageFormat()
90-
.format(getLanguageLoader().getLanguage(OptEcoLanguage.UNACCEPTED_VALUE_PAYMENT))
105+
getMessageFormat().format(
106+
getLanguageLoader().getLanguage(OptEcoLanguage.MUST_BE_INTEGER)
107+
)
91108
);
92109
return true;
93110
}
111+
94112
// If sender don't have enough points
95113
OptEcoCacheAccount optEcoCacheAccount = getAccountManager().get(player.getUniqueId());
96114
double balance = optEcoCacheAccount.getBalance();

0 commit comments

Comments
 (0)