Skip to content

Commit b41e6a5

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

13 files changed

Lines changed: 112 additions & 59 deletions

build.gradle

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ plugins {
1212
def devBuild = false
1313

1414
group = 'com.playernguyen'
15-
version = ('2.0.4b') + ((devBuild) ? "-devbuild": "")
15+
version = ('2.1b') + ((devBuild) ? "-devbuild": "")
1616

1717
sourceCompatibility = '1.8'
1818

@@ -41,9 +41,11 @@ dependencies {
4141
implementation 'org.jetbrains:annotations:19.0.0'
4242
compileOnly 'me.clip:placeholderapi:2.10.4'
4343
compileOnly 'com.destroystokyo.paper:paper-api:1.15.2-R0.1-SNAPSHOT'
44-
compile 'com.zaxxer:HikariCP:3.4.5'
45-
4644
compileOnly files('lib/BossShopPro.jar')
45+
46+
// Compile and put to jar
47+
compile 'com.zaxxer:HikariCP:3.4.5'
48+
compile 'org.slf4j:slf4j-site:2.0.0-alpha1'
4749
}
4850

4951
publishing {

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

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import org.bukkit.plugin.Plugin;
3030
import org.bukkit.plugin.java.JavaPlugin;
3131

32-
import java.sql.SQLException;
32+
import java.io.IOException;
3333
import java.util.ArrayList;
3434
import java.util.logging.Logger;
3535

@@ -60,6 +60,8 @@ public class OptEco extends JavaPlugin {
6060
private Metrics metrics;
6161
private ScheduleManager scheduleManager;
6262

63+
private boolean canLoad = true;
64+
6365
@Override
6466
public void onEnable() {
6567
this.setupInstance();
@@ -107,9 +109,11 @@ private void hookBossShopPro() {
107109
@Override
108110
public void onDisable() {
109111
// Unregister listen
110-
listenerManager.unregisterAll();
112+
if (listenerManager != null)
113+
listenerManager.unregisterAll();
111114
// Command manager
112-
commandManager.getContainer().clear();
115+
if (commandManager != null)
116+
commandManager.getContainer().clear();
113117
}
114118

115119
private void setupMetric() {
@@ -122,7 +126,9 @@ private void setupMetric() {
122126
}
123127

124128
private void setupInstance() {
125-
instance = this;
129+
if (instance == null) {
130+
instance = this;
131+
}
126132
}
127133

128134
private void setupManager() {
@@ -133,12 +139,19 @@ private void setupManager() {
133139
}
134140

135141
private void setupLoader() {
136-
// Configuration Loader
137-
this.optEcoConfigurationLoader = new OptEcoConfigurationLoader();
138-
// Language Loader
139-
this.optEcoLanguageLoader = new OptEcoLanguageLoader(
140-
getConfigurationLoader().getString(OptEcoConfiguration.LANGUAGE_FILE)
141-
);
142+
try {
143+
if (canLoad) {
144+
// Configuration Loader
145+
this.optEcoConfigurationLoader = new OptEcoConfigurationLoader();
146+
// Language Loader
147+
this.optEcoLanguageLoader = new OptEcoLanguageLoader(
148+
getConfigurationLoader().getString(OptEcoConfiguration.LANGUAGE_FILE)
149+
);
150+
}
151+
} catch (IOException e) {
152+
this.canLoad = false;
153+
e.printStackTrace();
154+
}
142155
}
143156

144157
private void setupAccount() {

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,24 @@ public enum OptEcoConfiguration {
2525
SQL_ACCOUNT_TABLE_NAME("Settings.SQL.Table.Accounts", "opteco"),
2626
SQL_TRANSACT_TABLE_NAME("Settings.SQL.Table.Transactions", "opteco_transaction"),
2727

28-
SQL_CLOSE_CONNECT_TIMEOUT("Settings.SQL.ConnectionPool.Timeout", 60),
2928
COMMAND_LIMIT_TOP("Settings.Preferences.LimitTopCommand", 5),
3029
COUNTDOWN_ENABLE("Settings.Payment.Pending.Countdown.Enable", true),
3130
COUNTDOWN_TYPE("Settings.Payment.Pending.Countdown.Type", "message"),
3231

3332
REFRESH_TIME("Settings.Preferences.Cache.RefreshTime", 5),
3433

35-
DEBUG("Settings.Debug", false),
34+
DEBUG("Debug", false),
3635
LANGUAGE_FILE("Settings.Preferences.Language", "language.yml"),
3736

38-
TITLE_STAY("Settings.Title.Stay", 20),
39-
TITLE_FADE_OUT("Settings.Title.FadeOut", 100),
37+
TITLE_ENABLE("Settings.Effect.TittleCounter.Enable", true),
38+
TITLE_STAY("Settings.Effect.TittleCounter.Stay", 20),
39+
TITLE_FADE_OUT("Settings.Effect.TittleCounter.FadeOut", 100),
40+
TITLE_SPEED("Settings.Effect.TittleCounter.Speed", 5),
41+
42+
TITLE_LIMIT_VALUE("Settings.Effect.TitleCounter.Limit", 10000),
43+
44+
TAB_EXECUTOR("Settings.Preferences.TabExecutor", true)
45+
4046
;
4147

4248
private final String path;

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,11 @@ public enum OptEcoLanguage {
6161
UNACCEPTED_VALUE_PAYMENT("COMMAND.UNACCEPTED_VALUE", "&cThis value is unaccepted in transaction"),
6262
MUST_BE_INTEGER("MUST_BE_INTEGER", "&cThe value must be an integer!"),
6363

64+
FORMAT_INCREASE_TITLE("EFFECT.TITLE.INCREASE.TITLE", "&a+ &8%current% &a+"),
65+
FORMAT_INCREASE_SUB_TITLE("EFFECT.TITLE.INCREASE.SUBTITLE", "&c^ &6%remain% &c^ "),
66+
67+
FORMAT_DECREASE_TITLE("EFFECT.TITLE.DECREASE.TITLE", "&c- &8%current% &c-"),
68+
FORMAT_DECREASE_SUB_TITLE("EFFECT.TITLE.DECREASE.SUBTITLE", "&c^ &6%remain% &c^"),
6469

6570
;
6671

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

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,18 @@ public boolean hasAccount(UUID uuid) {
138138

139139
@Override
140140
public boolean setBalance(UUID uuid, double newBalance) {
141+
double oldBalance = this.getBalance(uuid);
142+
OptEcoPointChangedEvent.ModifyType type = (oldBalance > newBalance)
143+
? OptEcoPointChangedEvent.ModifyType.DECREASE
144+
: OptEcoPointChangedEvent.ModifyType.INCREASE;
145+
// Call event
146+
Bukkit.getPluginManager().callEvent(new OptEcoPointChangedEvent(
147+
uuid,
148+
oldBalance,
149+
newBalance,
150+
type
151+
));
152+
141153
return this.save(new Account(uuid, newBalance));
142154
}
143155

@@ -149,26 +161,12 @@ public double getBalance(UUID uuid) {
149161
@Override
150162
public boolean takeBalance(UUID uuid, double amount) {
151163
// 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-
));
159164
return this.setBalance(uuid, this.getBalance(uuid) - amount);
160165
}
161166

162167
@Override
163168
public boolean addBalance(UUID uuid, double amount) {
164169
// 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-
));
172170
return this.setBalance(uuid, this.getBalance(uuid) + amount);
173171
}
174172

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

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

3+
import me.playernguyen.opteco.OptEcoConfiguration;
34
import me.playernguyen.opteco.OptEcoLanguage;
45
import me.playernguyen.opteco.permission.OptEcoPermission;
56
import org.bukkit.ChatColor;
@@ -8,6 +9,7 @@
89
import org.bukkit.command.ConsoleCommandSender;
910
import org.bukkit.command.RemoteConsoleCommandSender;
1011
import org.bukkit.entity.Player;
12+
import org.jetbrains.annotations.NotNull;
1113

1214
import java.util.ArrayList;
1315
import java.util.List;
@@ -78,15 +80,22 @@ private boolean execute(CommandSender sender, Command command, String s, String[
7880
}
7981

8082
@Override
81-
public List<String> onTabComplete(CommandSender commandSender, Command command, String s, String[] strings) {
83+
public List<String> onTabComplete(@NotNull CommandSender commandSender,
84+
@NotNull Command command,
85+
@NotNull String s,
86+
String[] strings) {
87+
// Whether the tab executor disabled
88+
if (!getConfigurationLoader().getBool(OptEcoConfiguration.TAB_EXECUTOR)) {
89+
return null;
90+
}
91+
// Whether enabled
8292
if (strings.length < 2) {
8393
ArrayList<String> allowCommand = new ArrayList<>();
8494
for (SubCommand subCommand : getSubCommands()) {
8595
if (subCommand.checkPermission(commandSender)) allowCommand.add(subCommand.getCommand());
8696
}
8797
return allowCommand;
8898
} else {
89-
9099
SubCommand subCommand = getSubCommand(strings[0]);
91100
if (subCommand == null) return null;
92101
else return subCommand.onTabComplete(commandSender, separator(strings, 1));

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313

1414
import java.util.ArrayList;
1515
import java.util.List;
16+
import java.util.Objects;
1617

1718
public class SubCommandSet extends SubCommand {
1819
SubCommandSet(String command, OptEco plugin) {
@@ -78,7 +79,7 @@ private boolean execute(CommandSender sender, ArrayList<String> args) {
7879
getMessageFormat()
7980
.format(getPlugin().getLanguageLoader().getLanguage(OptEcoLanguage.SET_SUCCESS))
8081
.replace("%value%", Double.toString(value))
81-
.replace("%who%", target.getName())
82+
.replace("%who%", Objects.requireNonNull(target.getName()))
8283
.replace("%currency%", getPlugin().getConfigurationLoader().getString(OptEcoConfiguration.CURRENCY_SYMBOL))
8384
);
8485
// Refresh the cache account
@@ -88,7 +89,7 @@ private boolean execute(CommandSender sender, ArrayList<String> args) {
8889
getMessageFormat()
8990
.format(getPlugin().getLanguageLoader().getLanguage(OptEcoLanguage.SET_FAIL))
9091
.replace("%value%", _value)
91-
.replace("%who%", target.getName())
92+
.replace("%who%", Objects.requireNonNull(target.getName()))
9293
.replace("%currency%", getPlugin().getConfigurationLoader().getString(OptEcoConfiguration.CURRENCY_SYMBOL))
9394
);
9495
}

src/main/java/me/playernguyen/opteco/configuration/OptEcoLanguageLoader.java

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,26 @@ public class OptEcoLanguageLoader extends OptEcoLoaderAbstract {
99

1010
public static final char COLOR_SYMBOL = '&';
1111

12-
public OptEcoLanguageLoader(String file) {
12+
public OptEcoLanguageLoader(String file) throws IOException {
1313
// super(new File(OptEco.getInstance().getDataFolder(), file));
1414
super(file, "Auto-generated language by OptEco", "language", false);
1515
saveDefault();
1616
}
1717

18-
public void saveDefault() {
18+
public void saveDefault() throws IOException {
1919
this.getConfiguration().options().copyDefaults(true);
2020

2121
for (OptEcoLanguage dc : OptEcoLanguage.values())
2222
this.getConfiguration().addDefault(dc.getPath(), dc.getDefaultSetting());
2323

24-
try {
25-
this.getConfiguration().save(getFile());
26-
} catch (IOException e) {
27-
e.printStackTrace();
28-
}
24+
this.getConfiguration().save(getFile());
2925
}
3026

3127
public String getRawLanguage(OptEcoLanguage optEcoLanguage) {
3228
return this.getConfiguration().getString(optEcoLanguage.getPath());
3329
}
3430

31+
3532
public String getLanguage(OptEcoLanguage optEcoLanguage) {
3633
return ChatColor.translateAlternateColorCodes(COLOR_SYMBOL, this.getRawLanguage(optEcoLanguage));
3734
}

src/main/java/me/playernguyen/opteco/configuration/OptEcoLoaderAbstract.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ public void setHeader(String header) {
5757
this.header = header;
5858
}
5959

60-
public abstract void saveDefault();
60+
public abstract void saveDefault() throws IOException;
6161

6262
public File getFile() {
6363
return file;

src/main/java/me/playernguyen/opteco/listener/OptEcoPlayerListener.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package me.playernguyen.opteco.listener;
22

3+
import me.playernguyen.opteco.OptEcoConfiguration;
34
import me.playernguyen.opteco.event.OptEcoPointChangedEvent;
45
import me.playernguyen.opteco.schedule.PointChangedPerformance;
56
import org.bukkit.entity.Player;
@@ -38,6 +39,8 @@ public void onPlayerQuitEvent(PlayerQuitEvent e) {
3839

3940
@EventHandler
4041
public void onChange(OptEcoPointChangedEvent e) {
42+
// Whether enable the title counter
43+
if (getConfigurationLoader().getBool(OptEcoConfiguration.TITLE_ENABLE))
4144
// Call new async
4245
this.getScheduleManager().callAsyncTimer(new PointChangedPerformance(e), 0, 0);
4346
}

0 commit comments

Comments
 (0)