Skip to content

Commit ce61032

Browse files
committed
v3.2.4 - /token sell/worth all & bug fixes
1 parent 25d9431 commit ce61032

22 files changed

Lines changed: 204 additions & 42 deletions

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ plugins {
1717
}
1818

1919
group 'me.realized'
20-
version '3.2.3'
20+
version '3.2.4'
2121

2222
compileJava.options.encoding = 'UTF-8'
2323
sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package me.realized.tokenmanager;
2+
3+
public final class Permissions {
4+
5+
private static final String PREFIX = "tokenmanager.";
6+
7+
public static final String CMD_TOKEN = PREFIX + "use";
8+
public static final String CMD_ADMIN = PREFIX + "admin";
9+
public static final String CMD_BALANCE_OTHERS = PREFIX + "use.balance.others";
10+
public static final String CMD_SELL = PREFIX + "use.sell";
11+
public static final String CMD_SELL_ALL = PREFIX + "use.sell.all";
12+
public static final String CMD_SEND = PREFIX + "use.send";
13+
public static final String CMD_SHOP = PREFIX + "use.shop";
14+
public static final String CMD_TOP = PREFIX + "use.top";
15+
public static final String CMD_WORTH = PREFIX + "use.worth";
16+
public static final String CMD_WORTH_ALL = PREFIX + "use.worth.all";
17+
18+
public static final String SHOP = PREFIX + "use.shop.";
19+
public static final String SHOP_SLOT_OLD = PREFIX + "use."; // TODO: Deprecated, remove support in future versions.
20+
21+
private Permissions() {}
22+
}

src/main/java/me/realized/tokenmanager/TokenManagerPlugin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ public List<String> getReloadables() {
344344
public void on(final PlayerJoinEvent event) {
345345
final Player player = event.getPlayer();
346346

347-
if (updateAvailable && (player.isOp() || player.hasPermission("tokenmanager.admin"))) {
347+
if (updateAvailable && (player.isOp() || player.hasPermission(Permissions.CMD_ADMIN))) {
348348
player.sendMessage(StringUtil.color(String.format(ADMIN_UPDATE_MESSAGE, newVersion, RESOURCE_URL)));
349349
}
350350
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package me.realized.tokenmanager.api.event;
2+
3+
import org.bukkit.entity.Player;
4+
import org.bukkit.event.HandlerList;
5+
6+
public class TMSellAllEvent extends TMEvent {
7+
8+
private static final HandlerList handlers = new HandlerList();
9+
10+
public TMSellAllEvent(final Player player, final long amount) {
11+
super(player, amount);
12+
}
13+
14+
@Override
15+
public HandlerList getHandlers() {
16+
return handlers;
17+
}
18+
19+
public static HandlerList getHandlerList() {
20+
return handlers;
21+
}
22+
}

src/main/java/me/realized/tokenmanager/command/commands/TMCommand.java

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

2828
package me.realized.tokenmanager.command.commands;
2929

30+
import me.realized.tokenmanager.Permissions;
3031
import me.realized.tokenmanager.TokenManagerPlugin;
3132
import me.realized.tokenmanager.command.BaseCommand;
3233
import me.realized.tokenmanager.command.commands.subcommands.GiveAllCommand;
@@ -40,7 +41,7 @@
4041
public class TMCommand extends BaseCommand {
4142

4243
public TMCommand(final TokenManagerPlugin plugin) {
43-
super(plugin, "tokenmanager", "tokenmanager.admin", false);
44+
super(plugin, "tokenmanager", Permissions.CMD_ADMIN, false);
4445
child(
4546
new OfflineCommand(plugin, ModifyType.ADD, "add <username> <amount>", "give"),
4647
new OfflineCommand(plugin, ModifyType.REMOVE, "remove <username> <amount>", "delete"),

src/main/java/me/realized/tokenmanager/command/commands/TokenCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
package me.realized.tokenmanager.command.commands;
2929

3030
import java.util.OptionalLong;
31+
import me.realized.tokenmanager.Permissions;
3132
import me.realized.tokenmanager.TokenManagerPlugin;
3233
import me.realized.tokenmanager.command.BaseCommand;
3334
import me.realized.tokenmanager.command.commands.subcommands.BalanceCommand;
@@ -44,7 +45,7 @@
4445
public class TokenCommand extends BaseCommand {
4546

4647
public TokenCommand(final TokenManagerPlugin plugin) {
47-
super(plugin, "token", "tokenmanager.use", false);
48+
super(plugin, "token", Permissions.CMD_TOKEN, false);
4849
child(
4950
new BalanceCommand(plugin),
5051
new SendCommand(plugin),

src/main/java/me/realized/tokenmanager/command/commands/subcommands/BalanceCommand.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
package me.realized.tokenmanager.command.commands.subcommands;
2929

3030
import java.util.OptionalLong;
31+
import me.realized.tokenmanager.Permissions;
3132
import me.realized.tokenmanager.TokenManagerPlugin;
3233
import me.realized.tokenmanager.command.BaseCommand;
3334
import org.bukkit.Bukkit;
@@ -56,8 +57,8 @@ protected void execute(final CommandSender sender, final String label, final Str
5657
return;
5758
}
5859

59-
if (!sender.hasPermission("tokenmanager.use.balance.others")) {
60-
sendMessage(sender, true, "ERROR.no-permission", "permission", "tokenmanager.use.balance.others");
60+
if (!sender.hasPermission(Permissions.CMD_BALANCE_OTHERS)) {
61+
sendMessage(sender, true, "ERROR.no-permission", "permission", Permissions.CMD_BALANCE_OTHERS);
6162
return;
6263
}
6364

src/main/java/me/realized/tokenmanager/command/commands/subcommands/SellCommand.java

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,78 @@
11
package me.realized.tokenmanager.command.commands.subcommands;
22

33
import java.util.OptionalLong;
4+
import me.realized.tokenmanager.Permissions;
45
import me.realized.tokenmanager.TokenManagerPlugin;
6+
import me.realized.tokenmanager.api.event.TMSellAllEvent;
57
import me.realized.tokenmanager.api.event.TMSellHandEvent;
68
import me.realized.tokenmanager.command.BaseCommand;
79
import org.apache.commons.lang.WordUtils;
810
import org.bukkit.command.CommandSender;
911
import org.bukkit.entity.Player;
1012
import org.bukkit.inventory.ItemStack;
13+
import org.bukkit.inventory.PlayerInventory;
1114

1215
public class SellCommand extends BaseCommand {
1316

1417
public SellCommand(final TokenManagerPlugin plugin) {
15-
super(plugin, "sell", "sell", "tokenmanager.use.sell", 1, true);
18+
super(plugin, "sell", "sell", Permissions.CMD_SELL, 1, true);
1619
}
1720

1821
@Override
1922
protected void execute(final CommandSender sender, final String label, final String[] args) {
2023
final Player player = (Player) sender;
24+
25+
if (args.length > getLength() && args[1].equalsIgnoreCase("all")) {
26+
if (!player.hasPermission(Permissions.CMD_SELL_ALL)) {
27+
sendMessage(sender, true, "ERROR.no-permission", "permission", Permissions.CMD_SELL_ALL);
28+
return;
29+
}
30+
31+
final PlayerInventory inventory = player.getInventory();
32+
int total = 0;
33+
long price = 0;
34+
35+
for (int slot = 0; slot < 36; slot++) {
36+
final ItemStack item = inventory.getItem(slot);
37+
38+
if (item == null) {
39+
continue;
40+
}
41+
42+
final OptionalLong worth = plugin.getWorth(item);
43+
44+
if (worth.isPresent()) {
45+
price += worth.getAsLong();
46+
total += item.getAmount();
47+
}
48+
}
49+
50+
final TMSellAllEvent event = new TMSellAllEvent(player, price);
51+
plugin.getServer().getPluginManager().callEvent(event);
52+
53+
if (event.isCancelled()) {
54+
return;
55+
}
56+
57+
for (int slot = 0; slot < 36; slot++) {
58+
final ItemStack item = inventory.getItem(slot);
59+
60+
if (item == null) {
61+
continue;
62+
}
63+
64+
final OptionalLong worth = plugin.getWorth(item);
65+
66+
if (worth.isPresent()) {
67+
inventory.setItem(slot, null);
68+
}
69+
}
70+
71+
dataManager.set(player, dataManager.get(player).orElse(0) + price);
72+
sendMessage(sender, true, "COMMAND.token.sell-all", "item_amount", total, "amount", price);
73+
return;
74+
}
75+
2176
final int heldSlot = player.getInventory().getHeldItemSlot();
2277
final ItemStack item = player.getInventory().getItem(heldSlot);
2378

src/main/java/me/realized/tokenmanager/command/commands/subcommands/SendCommand.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.Arrays;
3131
import java.util.List;
3232
import java.util.OptionalLong;
33+
import me.realized.tokenmanager.Permissions;
3334
import me.realized.tokenmanager.TokenManagerPlugin;
3435
import me.realized.tokenmanager.api.event.TMTokenSendEvent;
3536
import me.realized.tokenmanager.command.BaseCommand;
@@ -45,7 +46,7 @@ public class SendCommand extends BaseCommand {
4546
private static final List<String> TAB_AMOUNTS = Arrays.asList("5", "10", "25", "50", "75", "100", "500", "1000");
4647

4748
public SendCommand(final TokenManagerPlugin plugin) {
48-
super(plugin, "send", "send <username> <amount>", "tokenmanager.use.send", 3, true);
49+
super(plugin, "send", "send <username> <amount>", Permissions.CMD_SEND, 3, true);
4950
}
5051

5152
@Override

src/main/java/me/realized/tokenmanager/command/commands/subcommands/ShopCommand.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import java.util.List;
3131
import java.util.Optional;
3232
import java.util.stream.Collectors;
33+
import me.realized.tokenmanager.Permissions;
3334
import me.realized.tokenmanager.TokenManagerPlugin;
3435
import me.realized.tokenmanager.command.BaseCommand;
3536
import me.realized.tokenmanager.shop.Shop;
@@ -41,7 +42,7 @@
4142
public class ShopCommand extends BaseCommand {
4243

4344
public ShopCommand(final TokenManagerPlugin plugin) {
44-
super(plugin, "shop", "shop <name>", "tokenmanager.use.shop", plugin.getConfiguration().isOpenSelectedEnabled() ? 1 : 2, true);
45+
super(plugin, "shop", "shop <name>", Permissions.CMD_SHOP, plugin.getConfiguration().isOpenSelectedEnabled() ? 1 : 2, true);
4546
}
4647

4748
@Override
@@ -71,8 +72,8 @@ protected void execute(final CommandSender sender, final String label, final Str
7172
return;
7273
}
7374

74-
if (shop.get().isUsePermission() && !player.hasPermission("tokenmanager.use.shop." + target)) {
75-
sendMessage(player, true, "ERROR.no-permission", "permission", "tokenmanager.use.shop." + target);
75+
if (shop.get().isUsePermission() && !player.hasPermission(Permissions.SHOP + target)) {
76+
sendMessage(player, true, "ERROR.no-permission", "permission", Permissions.SHOP + target);
7677
return;
7778
}
7879

0 commit comments

Comments
 (0)