Skip to content

Commit 4e507d3

Browse files
committed
Add command to force run offline rewards
1 parent dd66364 commit 4e507d3

File tree

2 files changed

+78
-8
lines changed

2 files changed

+78
-8
lines changed

AdvancedCore/src/com/bencodez/advancedcore/api/user/AdvancedCoreUser.java

Lines changed: 31 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,33 @@ public void run() {
289289
}
290290
}
291291

292+
public void forceRunOfflineRewards() {
293+
if (!plugin.getOptions().isProcessRewards()) {
294+
plugin.debug("Processing rewards is disabled");
295+
return;
296+
}
297+
setCheckWorld(false);
298+
final ArrayList<String> copy = getOfflineRewards();
299+
setOfflineRewards(new ArrayList<String>());
300+
final AdvancedCoreUser user = this;
301+
if (plugin.isEnabled()) {
302+
303+
for (String str : copy) {
304+
if (str != null && !str.equals("null")) {
305+
String[] args = str.split("%placeholders%");
306+
String placeholders = "";
307+
if (args.length > 1) {
308+
placeholders = args[1];
309+
}
310+
plugin.getRewardHandler().giveReward(user, args[0],
311+
new RewardOptions().setOnline(false).setGiveOffline(false).forceOffline()
312+
.setCheckTimed(false).withPlaceHolder(ArrayUtils.fromString(placeholders)));
313+
}
314+
}
315+
316+
}
317+
}
318+
292319
public void clearCache() {
293320
if (isCached()) {
294321
getCache().clearCache();
@@ -910,8 +937,7 @@ public void sendActionBar(String msg, int delay) {
910937
if (player != null) {
911938

912939
try {
913-
ActionBar actionBar = new ActionBar(PlaceholderUtils.replaceJavascript(getPlayer(), msg),
914-
delay);
940+
ActionBar actionBar = new ActionBar(PlaceholderUtils.replaceJavascript(getPlayer(), msg), delay);
915941
actionBar.send(player);
916942
} catch (Exception ex) {
917943
plugin.debug("Failed to send ActionBar, turn debug on to see stack trace");
@@ -935,8 +961,8 @@ public void sendBossBar(String msg, String color, String style, double progress,
935961
Player player = getPlayer();
936962
if (player != null) {
937963
try {
938-
BossBar bossBar = new BossBar(PlaceholderUtils.replaceJavascript(getPlayer(), msg), color,
939-
style, progress);
964+
BossBar bossBar = new BossBar(PlaceholderUtils.replaceJavascript(getPlayer(), msg), color, style,
965+
progress);
940966
bossBar.send(player, delay);
941967
} catch (Exception ex) {
942968
plugin.debug("Failed to send BossBar");
@@ -1046,8 +1072,7 @@ public void sendMessage(String[] msg) {
10461072
if ((player != null) && (msg != null)) {
10471073
if (!str.equals("")) {
10481074
for (String str1 : str.split("%NewLine%")) {
1049-
TextComponent text = PlaceholderUtils
1050-
.parseJson(PlaceholderUtils.parseText(player, str1));
1075+
TextComponent text = PlaceholderUtils.parseJson(PlaceholderUtils.parseText(player, str1));
10511076
text.setText(PlaceholderUtils.replaceJavascript(getPlayer(), text.getText()));
10521077
texts.add(text);
10531078
}

AdvancedCore/src/com/bencodez/advancedcore/command/CommandLoader.java

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.bencodez.advancedcore.command;
22

33
import java.util.ArrayList;
4+
import java.util.HashMap;
45
import java.util.Map.Entry;
56
import java.util.UUID;
67

@@ -24,6 +25,7 @@
2425
import com.bencodez.advancedcore.api.user.UserStorage;
2526
import com.bencodez.advancedcore.api.user.usercache.keys.UserDataKey;
2627
import com.bencodez.advancedcore.api.user.usercache.value.DataValue;
28+
import com.bencodez.advancedcore.api.user.userstorage.Column;
2729
import com.bencodez.advancedcore.api.user.userstorage.DataType;
2830
import com.bencodez.advancedcore.api.valuerequest.InputMethod;
2931
import com.bencodez.advancedcore.api.valuerequest.ValueRequest;
@@ -259,6 +261,49 @@ public void execute(CommandSender sender, String[] args) {
259261
sendMessage(sender, "&cFinished clearing offline rewards");
260262
}
261263
});
264+
cmds.add(new CommandHandler(plugin, new String[] { "ForceRunOfflineRewards" },
265+
permPrefix + ".ForceRunOfflineRewards",
266+
"Force run all offline rewards as if they were online for all players", true, true) {
267+
268+
@Override
269+
public void execute(CommandSender sender, String[] args) {
270+
sendMessage(sender, "&cStarting to run offline rewards");
271+
HashMap<UUID, ArrayList<Column>> cols = plugin.getUserManager().getAllKeys();
272+
273+
for (Entry<UUID, ArrayList<Column>> playerData : cols.entrySet()) {
274+
275+
String uuid = playerData.getKey().toString();
276+
if (plugin != null && plugin.isEnabled()) {
277+
if (uuid != null && !uuid.isEmpty()) {
278+
AdvancedCoreUser user = plugin.getUserManager().getUser(UUID.fromString(uuid), false);
279+
user.dontCache();
280+
user.updateTempCacheWithColumns(playerData.getValue());
281+
cols.put(playerData.getKey(), null);
282+
283+
user.forceRunOfflineRewards();
284+
}
285+
}
286+
}
287+
sendMessage(sender, "&cFinished running offline rewards");
288+
}
289+
});
290+
291+
cmds.add(new CommandHandler(plugin, new String[] { "ForceRunOfflineRewards", "(player)" },
292+
permPrefix + ".ForceRunOfflineRewards",
293+
"Force run all offline rewards as if they were online for a specific player", true, true) {
294+
295+
@Override
296+
public void execute(CommandSender sender, String[] args) {
297+
sendMessage(sender, "&cStarting to run offline rewards for " + args[1]);
298+
299+
AdvancedCoreUser user = plugin.getUserManager().getUser(args[1]);
300+
user.dontCache();
301+
302+
user.forceRunOfflineRewards();
303+
304+
sendMessage(sender, "&cFinished running offline rewards for " + args[1]);
305+
}
306+
});
262307

263308
cmds.add(new CommandHandler(plugin, new String[] { "GUI" }, permPrefix + ".AdminGUI", "Open AdminGUI", false) {
264309

@@ -472,8 +517,8 @@ public void execute(CommandSender sender, String[] args) {
472517
for (InputMethod method : InputMethod.values()) {
473518
methods.add(method.toString());
474519
}
475-
new ValueRequest(InputMethod.INVENTORY).requestString((Player) sender, "",
476-
ArrayUtils.convert(methods), false, new StringListener() {
520+
new ValueRequest(InputMethod.INVENTORY).requestString((Player) sender, "", ArrayUtils.convert(methods),
521+
false, new StringListener() {
477522

478523
@Override
479524
public void onInput(Player player, String value) {

0 commit comments

Comments
 (0)