Skip to content

Commit fb381c5

Browse files
authored
Merge pull request #82 from Ben12345rocks/2.9
2.9
2 parents 833acd1 + 34bb3d2 commit fb381c5

File tree

9 files changed

+91
-43
lines changed

9 files changed

+91
-43
lines changed

AdvancedCore/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<modelVersion>4.0.0</modelVersion>
44
<groupId>com.Ben12345rocks</groupId>
55
<artifactId>AdvancedCore</artifactId>
6-
<version>2.8.7</version>
6+
<version>2.9</version>
77
<packaging>jar</packaging>
88
<name>AdvancedCore</name>
99
<properties>

AdvancedCore/src/com/Ben12345rocks/AdvancedCore/AdvancedCoreHook.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,15 @@ public static AdvancedCoreHook getInstance() {
8383
private String version = "";
8484
private String buildTime = "";
8585
private int maxMysqlSize = -1;
86+
private boolean autoKillInvs = true;
87+
88+
public boolean isAutoKillInvs() {
89+
return autoKillInvs;
90+
}
91+
92+
public void setAutoKillInvs(boolean autoKillInvs) {
93+
this.autoKillInvs = autoKillInvs;
94+
}
8695

8796
public int getMaxMysqlSize() {
8897
return maxMysqlSize;

AdvancedCore/src/com/Ben12345rocks/AdvancedCore/Listeners/PlayerJoinEvent.java

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package com.Ben12345rocks.AdvancedCore.Listeners;
22

3-
import java.util.UUID;
4-
53
import org.bukkit.Bukkit;
64
import org.bukkit.entity.Player;
75
import org.bukkit.event.EventHandler;
@@ -56,7 +54,7 @@ public void run() {
5654
&& UserManager.getInstance().getAllUUIDs().contains(player.getUniqueId().toString())) {
5755
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)
5856
&& AdvancedCoreHook.getInstance().getMysql() != null) {
59-
AdvancedCoreHook.getInstance().getMysql().loadPlayer(player.getUniqueId().toString());
57+
AdvancedCoreHook.getInstance().getMysql().loadPlayerIfNeeded(player.getUniqueId().toString());
6058
}
6159
User user = UserManager.getInstance().getUser(player);
6260
user.checkOfflineRewards();
@@ -69,17 +67,14 @@ public void run() {
6967
public void onPlayerQuit(PlayerQuitEvent event) {
7068
AdvancedCoreHook.getInstance()
7169
.debug("Logout: " + event.getPlayer().getName() + " (" + event.getPlayer().getUniqueId() + ")");
72-
final String uuid = event.getPlayer().getPlayer().getUniqueId().toString();
73-
Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
74-
75-
@Override
76-
public void run() {
77-
if (Bukkit.getPlayer(UUID.fromString(uuid)) == null) {
78-
if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
79-
AdvancedCoreHook.getInstance().getMysql().removePlayer(uuid);
80-
}
81-
}
82-
}
83-
}, 100L);
70+
/*
71+
* final String uuid = event.getPlayer().getPlayer().getUniqueId().toString();
72+
* Bukkit.getScheduler().runTaskLaterAsynchronously(plugin, new Runnable() {
73+
*
74+
* @Override public void run() { if (Bukkit.getPlayer(UUID.fromString(uuid)) ==
75+
* null) { if
76+
* (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
77+
* AdvancedCoreHook.getInstance().getMysql().removePlayer(uuid); } } } }, 100L);
78+
*/
8479
}
8580
}

AdvancedCore/src/com/Ben12345rocks/AdvancedCore/Objects/User.java

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -381,21 +381,21 @@ public void giveItem(ItemStack item) {
381381
return;
382382
}
383383

384-
Player player = getPlayer();
384+
final Player player = getPlayer();
385385

386-
HashMap<Integer, ItemStack> excess = player.getInventory().addItem(item);
387-
for (Map.Entry<Integer, ItemStack> me : excess.entrySet()) {
388-
Bukkit.getScheduler().runTask(plugin, new Runnable() {
386+
Bukkit.getScheduler().runTask(plugin, new Runnable() {
389387

390-
@Override
391-
public void run() {
388+
@Override
389+
public void run() {
390+
HashMap<Integer, ItemStack> excess = player.getInventory().addItem(item);
391+
for (Map.Entry<Integer, ItemStack> me : excess.entrySet()) {
392392
player.getWorld().dropItem(player.getLocation(), me.getValue());
393393
}
394-
});
395394

396-
}
395+
player.updateInventory();
397396

398-
player.updateInventory();
397+
}
398+
});
399399

400400
}
401401

@@ -506,7 +506,7 @@ public boolean hasPermission(String perm) {
506506
}
507507
return player.hasPermission(perm);
508508
}
509-
509+
510510
public void closeInv() {
511511
Player player = getPlayer();
512512
if (player != null) {

AdvancedCore/src/com/Ben12345rocks/AdvancedCore/Objects/UserData.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -130,11 +130,14 @@ public String getString(String key) {
130130
if (row != null) {
131131
for (int i = 0; i < row.size(); i++) {
132132
if (row.get(i).getName().equals(key) && row.get(i).getDataType().equals(DataType.STRING)) {
133-
String st = (String) row.get(i).getValue();
134-
if (st != null) {
135-
return st;
133+
// AdvancedCoreHook.getInstance().debug(key);
134+
Object value = row.get(i).getValue();
135+
136+
if (value != null) {
137+
return value.toString();
136138
}
137139
return "";
140+
138141
}
139142
}
140143
}

AdvancedCore/src/com/Ben12345rocks/AdvancedCore/UserManager/UserManager.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import com.Ben12345rocks.AdvancedCore.Objects.UUID;
1212
import com.Ben12345rocks.AdvancedCore.Objects.User;
1313
import com.Ben12345rocks.AdvancedCore.Objects.UserStorage;
14+
import com.Ben12345rocks.AdvancedCore.Util.Misc.ArrayUtils;
1415
import com.Ben12345rocks.AdvancedCore.sql.Column;
1516

1617
/**
@@ -61,7 +62,7 @@ public ArrayList<String> getAllUUIDs() {
6162
}
6263
return uuids;
6364
} else if (AdvancedCoreHook.getInstance().getStorageType().equals(UserStorage.MYSQL)) {
64-
return AdvancedCoreHook.getInstance().getMysql().getUuids();
65+
return ArrayUtils.getInstance().convert(AdvancedCoreHook.getInstance().getMysql().getUuids());
6566
}
6667
return new ArrayList<String>();
6768
}

AdvancedCore/src/com/Ben12345rocks/AdvancedCore/Util/Inventory/BInventory.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,9 @@ public void onInventoryClose(InventoryCloseEvent event) {
447447
}
448448
if (inv != null && inv.equals(inv) && player != null
449449
&& player.getUniqueId().equals(((Player) event.getPlayer()).getUniqueId()) && !pages) {
450-
destroy();
450+
if (AdvancedCoreHook.getInstance().isAutoKillInvs()) {
451+
destroy();
452+
}
451453
}
452454
return;
453455
}
@@ -475,7 +477,7 @@ public void openInventory(Player player) {
475477
ItemStack item = pair.getValue().getItem(player);
476478
inv.setItem(pair.getKey(), item);
477479
}
478-
480+
479481
Bukkit.getScheduler().runTask(AdvancedCoreHook.getInstance().getPlugin(), new Runnable() {
480482

481483
@Override
@@ -557,7 +559,8 @@ public ItemStack getPrevItem() {
557559
}
558560

559561
/**
560-
* @param prevItem the prevItem to set
562+
* @param prevItem
563+
* the prevItem to set
561564
*/
562565
public void setPrevItem(ItemStack prevItem) {
563566
this.prevItem = prevItem;
@@ -571,7 +574,8 @@ public ItemStack getNextItem() {
571574
}
572575

573576
/**
574-
* @param nextItem the nextItem to set
577+
* @param nextItem
578+
* the nextItem to set
575579
*/
576580
public void setNextItem(ItemStack nextItem) {
577581
this.nextItem = nextItem;

AdvancedCore/src/com/Ben12345rocks/AdvancedCore/Util/Misc/MiscUtils.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,17 @@ private MiscUtils() {
4646
public void broadcast(String broadcastMsg) {
4747
if (broadcastMsg != null) {
4848
if (!broadcastMsg.equals("")) {
49-
Bukkit.getScheduler().runTask(plugin.getPlugin(), new Runnable() {
50-
51-
@Override
52-
public void run() {
53-
Bukkit.broadcastMessage(StringUtils.getInstance().colorize(broadcastMsg));
54-
}
55-
});
49+
for (Player player : Bukkit.getOnlinePlayers()) {
50+
final String msg = StringUtils.getInstance()
51+
.colorize(StringUtils.getInstance().replacePlaceHolders(player, broadcastMsg));
52+
Bukkit.getScheduler().runTask(plugin.getPlugin(), new Runnable() {
53+
54+
@Override
55+
public void run() {
56+
player.sendMessage(msg);
57+
}
58+
});
59+
}
5660
}
5761
}
5862
}

AdvancedCore/src/com/Ben12345rocks/AdvancedCore/mysql/MySQL.java

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,10 @@
55
import java.sql.SQLException;
66
import java.util.ArrayList;
77
import java.util.Collections;
8+
import java.util.HashSet;
89
import java.util.List;
910
import java.util.Map.Entry;
11+
import java.util.Set;
1012
import java.util.Timer;
1113
import java.util.TimerTask;
1214
import java.util.concurrent.ConcurrentLinkedQueue;
@@ -39,6 +41,8 @@ public ArrayList<Column> load(String key) {
3941

4042
private String name;
4143

44+
private Set<String> uuids = (Set<String>) Collections.synchronizedSet(new HashSet<String>());
45+
4246
public MySQL(String tableName, String hostName, int port, String database, String user, String pass,
4347
int maxThreads) {
4448
if (AdvancedCoreHook.getInstance().getMaxMysqlSize() >= 0) {
@@ -83,7 +87,7 @@ public ArrayList<Column> load(String key) {
8387
public void run() {
8488
updateBatch();
8589
}
86-
}, 10 * 1000, 1 * 1000);
90+
}, 10 * 1000, 500);
8791

8892
}
8993

@@ -115,8 +119,14 @@ public synchronized void checkColumn(String column, DataType dataType) {
115119

116120
public void clearCache() {
117121
table.clear();
122+
clearCacheBasic();
123+
}
124+
125+
public void clearCacheBasic() {
118126
columns.clear();
119127
columns.addAll(getColumnsQueury());
128+
uuids.clear();
129+
uuids.addAll(getUuidsQuery());
120130
}
121131

122132
public void close() {
@@ -146,6 +156,9 @@ public boolean containsKeyQuery(String index) {
146156
}
147157

148158
public List<String> getColumns() {
159+
if (columns == null || columns.size() == 0) {
160+
loadData();
161+
}
149162
return columns;
150163
}
151164

@@ -232,7 +245,7 @@ public ArrayList<Column> getRowsQuery() {
232245
return result;
233246
}
234247

235-
public ArrayList<String> getUuids() {
248+
public ArrayList<String> getUuidsQuery() {
236249
ArrayList<String> uuids = new ArrayList<String>();
237250

238251
ArrayList<Column> rows = getRowsQuery();
@@ -243,6 +256,15 @@ public ArrayList<String> getUuids() {
243256
return uuids;
244257
}
245258

259+
public Set<String> getUuids() {
260+
if (uuids == null || uuids.size() == 0) {
261+
uuids.clear();
262+
uuids.addAll(getUuidsQuery());
263+
return uuids;
264+
}
265+
return uuids;
266+
}
267+
246268
public synchronized void insert(String index, String column, Object value, DataType dataType) {
247269
insertQuery(index, column, value, dataType);
248270

@@ -256,6 +278,7 @@ public synchronized void insertQuery(String index, String column, Object value,
256278

257279
try {
258280
new Query(mysql, query).executeUpdateAsync();
281+
uuids.add(index);
259282
} catch (SQLException e) {
260283
e.printStackTrace();
261284
}
@@ -267,6 +290,9 @@ public void loadData() {
267290

268291
public void loadPlayer(String uuid) {
269292
table.put(uuid, getExactQuery(new Column("uuid", uuid, DataType.STRING)));
293+
if (uuids.contains(uuid)) {
294+
uuids.add(uuid);
295+
}
270296
}
271297

272298
public void removePlayer(String uuid) {
@@ -324,4 +350,10 @@ public synchronized void updateBatch() {
324350
}
325351

326352
}
353+
354+
public void loadPlayerIfNeeded(String uuid) {
355+
if (!containsKey(uuid)) {
356+
loadPlayer(uuid);
357+
}
358+
}
327359
}

0 commit comments

Comments
 (0)