Skip to content

Commit 7764b4a

Browse files
committed
2.0.2 Update
1 parent 63586de commit 7764b4a

14 files changed

Lines changed: 118 additions & 49 deletions

File tree

build.gradle

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,13 @@ import org.apache.tools.ant.filters.ReplaceTokens
66
plugins {
77
id 'java'
88
id 'maven-publish'
9+
id 'java-library'
910
}
1011

12+
def devBuild = false
13+
1114
group = 'com.playernguyen'
12-
version = '2.0.1b'
15+
version = ('2.0.2b') + ((devBuild) ? "-devbuild": "")
1316

1417
sourceCompatibility = '1.8'
1518

@@ -38,6 +41,8 @@ dependencies {
3841
implementation 'org.jetbrains:annotations:19.0.0'
3942
compileOnly 'me.clip:placeholderapi:2.10.4'
4043
compileOnly 'com.destroystokyo.paper:paper-api:1.15.2-R0.1-SNAPSHOT'
44+
compile 'com.zaxxer:HikariCP:3.4.5'
45+
4146
compileOnly files('lib/BossShopPro.jar')
4247
}
4348

@@ -54,3 +59,9 @@ processResources {
5459
filter(ReplaceTokens, tokens: ['VERSION': project.version])
5560
}
5661
}
62+
63+
task fatJar(type: Jar) {
64+
baseName = project.name
65+
from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } }
66+
with jar
67+
}

docs/me/playernguyen/opteco/utils/ValidationChecker.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ <h1 title="Class ValidationChecker" class="title">Class ValidationChecker</h1>
8787
</div>
8888
<div class="contentContainer">
8989
<div class="inheritance" title="Inheritance Tree">java.lang.Object
90-
<div class="inheritance">me.playernguyen.opteco.utils.ValidationChecker</div>
90+
<div class="inheritance">me.playernguyen.opteco.utils.MathUtils</div>
9191
</div>
9292
<section class="description">
9393
<hr>

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import me.playernguyen.opteco.placeholderapi.OptEcoExpansion;
2222
import me.playernguyen.opteco.transaction.TransactionManager;
2323
import me.playernguyen.opteco.updater.OptEcoUpdater;
24+
import me.playernguyen.opteco.utils.MathUtils;
2425
import me.playernguyen.opteco.utils.MessageFormat;
2526
import org.bukkit.Bukkit;
2627
import org.bukkit.ChatColor;
@@ -169,6 +170,12 @@ private void waterMarkPrint() {
169170
getServer().getConsoleSender().sendMessage(ChatColor.YELLOW + waterMark);
170171
}
171172
waterMarks.clear();
173+
if (this.getDescription().getVersion().toLowerCase().contains("-dev")) {
174+
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "--------------------------------");
175+
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "[!] OptEco Dev Build");
176+
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "[!] This version is not stable.");
177+
Bukkit.getServer().getConsoleSender().sendMessage(ChatColor.RED + "--------------------------------");
178+
}
172179
}
173180

174181
private void hookPlaceHolderAPI() {
@@ -255,7 +262,21 @@ private void checkForUpdates() {
255262

256263
private void setupStorage() {
257264
logger.info("Loading storage type.");
258-
this.storageType = StorageType.valueOf(getConfigurationLoader().getString(OptEcoConfiguration.STORAGE_TYPE));
265+
String var0 = this.getConfigurationLoader().getString(OptEcoConfiguration.STORAGE_TYPE);
266+
this.storageType = StorageType.fromString(var0);
267+
if (this.storageType == null) {
268+
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "*****************************************");
269+
Bukkit.getConsoleSender().sendMessage(
270+
ChatColor.RED + "[!] " + String.format("Storage type not found %s. Using SQLite instead!", var0)
271+
);
272+
Bukkit.getConsoleSender().sendMessage(ChatColor.RED + "*****************************************");
273+
this.storageType = StorageType.SQLITE;
274+
// Set to default setting (SQLite)
275+
this.getConfigurationLoader().getConfiguration().set(OptEcoConfiguration.STORAGE_TYPE.getPath(),
276+
OptEcoConfiguration.STORAGE_TYPE.getDefaultSetting());
277+
this.getConfigurationLoader().save();
278+
}
279+
259280
logger.info(String.format("Current storage type: %s", storageType.name().toLowerCase()));
260281
}
261282

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public enum OptEcoConfiguration {
1010
PAYMENT_CONFIRM("Settings.Payment.Pending.Duration", 15),
1111
CURRENCY_SYMBOL("Settings.CurrencySymbol", "ps"),
1212
MINIMUM_TRANSACT_VALUE("Settings.Preferences.MinimumCanTransact", 0.1),
13-
STORAGE_TYPE("Settings.Storage.Type", StorageType.SQLITE.toString()),
13+
STORAGE_TYPE("Settings.Storage.Type", StorageType.SQLITE.toString().toLowerCase()),
1414

1515
MYSQL_HOST("Settings.SQL.MySQL.Host", "localhost"),
1616
MYSQL_DATABASE("Settings.SQL.MySQL.Database", "dbname"),

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import me.playernguyen.opteco.OptEcoConfiguration;
55
import me.playernguyen.opteco.OptEcoLanguage;
66
import me.playernguyen.opteco.permission.OptEcoPermission;
7-
import me.playernguyen.opteco.utils.ValidationChecker;
7+
import me.playernguyen.opteco.utils.MathUtils;
88
import org.bukkit.Bukkit;
99
import org.bukkit.OfflinePlayer;
1010
import org.bukkit.command.CommandSender;
@@ -50,7 +50,7 @@ private boolean execute(CommandSender sender, ArrayList<String> args) {
5050
}
5151
OfflinePlayer target = Bukkit.getServer().getOfflinePlayer(args.get(0));
5252
String _value = args.get(1);
53-
if (ValidationChecker.isNotNumber(_value)) {
53+
if (MathUtils.isNotNumber(_value)) {
5454
sender.sendMessage(getMessageFormat().format(
5555
getPlugin().getLanguageLoader().getLanguage(OptEcoLanguage.VAR_NOT_A_NUMBER)
5656
.replace("%value%", _value)

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import me.playernguyen.opteco.OptEcoLanguage;
66
import me.playernguyen.opteco.account.OptEcoCacheAccount;
77
import me.playernguyen.opteco.permission.OptEcoPermission;
8-
import me.playernguyen.opteco.utils.ValidationChecker;
8+
import me.playernguyen.opteco.utils.MathUtils;
99
import org.bukkit.Bukkit;
1010
import org.bukkit.OfflinePlayer;
1111
import org.bukkit.command.CommandSender;
@@ -66,7 +66,7 @@ public boolean onPlayerCommand(Player player, ArrayList<String> args) {
6666
return true;
6767
}
6868
// If the value is not number
69-
if (ValidationChecker.isNotNumber(_value)) {
69+
if (MathUtils.isNotNumber(_value)) {
7070
player.sendMessage(
7171
getMessageFormat()
7272
.format(getPlugin().getLanguageLoader().getLanguage(OptEcoLanguage.VAR_NOT_A_NUMBER))
@@ -84,7 +84,7 @@ public boolean onPlayerCommand(Player player, ArrayList<String> args) {
8484
return true;
8585
}
8686
// If lower than the minimum transact
87-
if (dummyValue < getConfigurationLoader().getDouble(OptEcoConfiguration.MINIMUM_TRANSACT_VALUE)) {
87+
if ((dummyValue % 1) < getConfigurationLoader().getDouble(OptEcoConfiguration.MINIMUM_TRANSACT_VALUE)) {
8888
player.sendMessage(
8989
getMessageFormat()
9090
.format(getLanguageLoader().getLanguage(OptEcoLanguage.UNACCEPTED_VALUE_PAYMENT))

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import me.playernguyen.opteco.OptEcoConfiguration;
55
import me.playernguyen.opteco.OptEcoLanguage;
66
import me.playernguyen.opteco.permission.OptEcoPermission;
7-
import me.playernguyen.opteco.utils.ValidationChecker;
7+
import me.playernguyen.opteco.utils.MathUtils;
88
import org.bukkit.Bukkit;
99
import org.bukkit.OfflinePlayer;
1010
import org.bukkit.command.CommandSender;
@@ -57,7 +57,7 @@ private boolean execute(CommandSender sender, ArrayList<String> args) {
5757
);
5858
return true;
5959
}
60-
if (ValidationChecker.isNotNumber(_value)) {
60+
if (MathUtils.isNotNumber(_value)) {
6161
sender.sendMessage(
6262
getMessageFormat()
6363
.format(getPlugin().getLanguageLoader().getLanguage(OptEcoLanguage.VAR_NOT_A_NUMBER))

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
import me.playernguyen.opteco.OptEcoLanguage;
66
import me.playernguyen.opteco.account.OptEcoCacheAccount;
77
import me.playernguyen.opteco.permission.OptEcoPermission;
8-
import me.playernguyen.opteco.utils.ValidationChecker;
8+
import me.playernguyen.opteco.utils.MathUtils;
99
import org.bukkit.Bukkit;
1010
import org.bukkit.OfflinePlayer;
1111
import org.bukkit.command.CommandSender;
@@ -61,7 +61,7 @@ private boolean execute(CommandSender sender, ArrayList<String> args) {
6161
);
6262
return true;
6363
}
64-
if (ValidationChecker.isNotNumber(_value)) {
64+
if (MathUtils.isNotNumber(_value)) {
6565
sender.sendMessage(
6666
getMessageFormat()
6767
.format(getPlugin().getLanguageLoader().getLanguage(OptEcoLanguage.VAR_NOT_A_NUMBER))

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

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,27 @@
22

33
public enum StorageType {
44

5-
MYSQL, SQLITE
5+
MYSQL("mysql"),
6+
SQLITE("sqlite");
7+
8+
private final String name;
9+
10+
StorageType(String name) {
11+
this.name = name;
12+
}
13+
14+
public String getName() {
15+
return name;
16+
}
17+
18+
public static StorageType fromString(String string) {
19+
StorageType[] values = StorageType.values();
20+
for (StorageType value : values) {
21+
if (value.name.toLowerCase().equalsIgnoreCase(string)) {
22+
return value;
23+
}
24+
}
25+
return null;
26+
}
627

728
}

src/main/java/me/playernguyen/opteco/sql/MySQLEstablish.java

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

3+
import com.zaxxer.hikari.HikariDataSource;
34
import me.playernguyen.opteco.OptEcoConfiguration;
45
import me.playernguyen.opteco.schedule.CloseConnectionRunnable;
56

@@ -8,6 +9,8 @@
89

910
public class MySQLEstablish extends SQLEstablish {
1011

12+
// Connection pool system
13+
private HikariDataSource dataSource;
1114

1215
private final String username;
1316
private final String password;
@@ -23,25 +26,42 @@ public MySQLEstablish(String tableName, ArrayList<String> init) {
2326
this.address = getConfigurationLoader().getString(OptEcoConfiguration.MYSQL_HOST);
2427
this.port = getConfigurationLoader().getString(OptEcoConfiguration.MYSQL_PORT);
2528
this.database = getConfigurationLoader().getString(OptEcoConfiguration.MYSQL_DATABASE);
29+
30+
// Create dataSource and add the data
31+
this.dataSource = new HikariDataSource();
32+
dataSource.setDataSourceClassName("com.mysql.jdbc.jdbc2.optional.MysqlDataSource");
33+
dataSource.addDataSourceProperty("serverName", address);
34+
dataSource.addDataSourceProperty("port", port);
35+
dataSource.addDataSourceProperty("databaseName", database);
36+
dataSource.addDataSourceProperty("user", username);
37+
dataSource.addDataSourceProperty("password", password);
38+
2639
}
2740

41+
// @Override
42+
// public Connection openConnect() throws ClassNotFoundException, SQLException {
43+
// setURL(String.format("jdbc:mysql://%s:%s/%s", address, port, database));
44+
// // If the url not existed
45+
// if (getURL() == null) {
46+
// throw new NullPointerException("Url cannot be null!");
47+
// }
48+
// // Create a connection and return
49+
// Class.forName("com.mysql.jdbc.Driver");
50+
// getDebugger().info("['Connection::MySQL] Create the connection of MySQL");
51+
// Connection connection = DriverManager.getConnection(getURL(), getUsername(), getPassword());
52+
// // Create the offset-closer if the sql cannot close :D
53+
// new CloseConnectionRunnable(connection).runTaskLaterAsynchronously(
54+
// getPlugin(), getConfigurationLoader().getInt(OptEcoConfiguration.SQL_CLOSE_CONNECT_TIMEOUT) * 20L
55+
// );
56+
// // And then return the connection
57+
// return connection;
58+
// }
59+
60+
2861
@Override
29-
public Connection openConnect() throws ClassNotFoundException, SQLException {
30-
setURL(String.format("jdbc:mysql://%s:%s/%s", address, port, database));
31-
// If the url not existed
32-
if (getURL() == null) {
33-
throw new NullPointerException("Url cannot be null!");
34-
}
35-
// Create a connection and return
36-
Class.forName("com.mysql.jdbc.Driver");
37-
getDebugger().info("['Connection::MySQL] Create the connection of MySQL");
38-
Connection connection = DriverManager.getConnection(getURL(), getUsername(), getPassword());
39-
// Create the offset-closer if the sql cannot close :D
40-
new CloseConnectionRunnable(connection).runTaskLaterAsynchronously(
41-
getPlugin(), getConfigurationLoader().getInt(OptEcoConfiguration.SQL_CLOSE_CONNECT_TIMEOUT) * 20L
42-
);
43-
// And then return the connection
44-
return connection;
62+
public Connection openConnect() throws SQLException, ClassNotFoundException {
63+
getDebugger().info("['Connection::MySQL] Open connection...");
64+
return dataSource.getConnection();
4565
}
4666

4767
private String getUsername() {

0 commit comments

Comments
 (0)