mirror of
https://github.com/Flowsqy/ShopChest.git
synced 2025-02-02 11:31:20 +01:00
add shop value command
This commit is contained in:
parent
1a8d48954d
commit
1e0c4cdbb9
@ -155,6 +155,17 @@ public class ShopCommand {
|
||||
}
|
||||
});
|
||||
|
||||
addSubCommand(new ShopSubCommand("value", true, executor, tabCompleter) {
|
||||
@Override
|
||||
public String getHelpMessage(CommandSender sender) {
|
||||
if (sender.hasPermission(Permissions.CONFIG)) {
|
||||
return LanguageUtils.getMessage(Message.COMMAND_DESC_VALUE, cmdReplacement);
|
||||
} else {
|
||||
return "";
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
register();
|
||||
commandCreated = true;
|
||||
}
|
||||
|
@ -4,11 +4,14 @@ import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Chunk;
|
||||
import org.bukkit.GameMode;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.OfflinePlayer;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.command.Command;
|
||||
@ -134,6 +137,8 @@ class ShopCommandExecutor implements CommandExecutor {
|
||||
new Replacement(Placeholder.AMOUNT, String.valueOf(shopUtils.getShopAmount(p)))));
|
||||
} else if (subCommand.getName().equalsIgnoreCase("open")) {
|
||||
open(p);
|
||||
} else if (subCommand.getName().equalsIgnoreCase("value")) {
|
||||
value(p);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
@ -522,6 +527,33 @@ class ShopCommandExecutor implements CommandExecutor {
|
||||
ClickType.setPlayerClickType(p, new ClickType(ClickType.EnumClickType.OPEN));
|
||||
}
|
||||
|
||||
private void value(final Player p) {
|
||||
ItemStack item = p.getInventory().getItemInMainHand();
|
||||
|
||||
if (item.getType() == Material.AIR || item.getType() == Material.CAVE_AIR || item.getType() == Material.VOID_AIR) {
|
||||
return;
|
||||
}
|
||||
|
||||
AtomicInteger count = new AtomicInteger();
|
||||
AtomicReference<Double> buyPrice = new AtomicReference<>(0d);
|
||||
AtomicReference<Double> sellPrice = new AtomicReference<>(0d);
|
||||
|
||||
plugin.getShopUtils().getShops().forEach(shop -> {
|
||||
if (!shop.hasItem()) {
|
||||
return;
|
||||
}
|
||||
if (!Utils.isItemSimilar(shop.getProduct().getItemStack(), item)) {
|
||||
return;
|
||||
}
|
||||
|
||||
count.getAndIncrement();
|
||||
buyPrice.updateAndGet(v -> v + shop.getBuyPrice());
|
||||
sellPrice.updateAndGet(v -> v + shop.getSellPrice());
|
||||
});
|
||||
|
||||
p.sendMessage(LanguageUtils.getMessage(Message.VALUE_OF_ITEM, new Replacement(Placeholder.AMOUNT, count.get()), new Replacement(Placeholder.BUY_PRICE, buyPrice.get()), new Replacement(Placeholder.SELL_PRICE, sellPrice.get())));
|
||||
}
|
||||
|
||||
private boolean changeConfig(CommandSender sender, String[] args) {
|
||||
plugin.debug(sender.getName() + " is changing the configuration");
|
||||
|
||||
|
@ -63,8 +63,8 @@ public class PlotSquaredListener implements Listener {
|
||||
|
||||
private void removeShopsFromPlot(Plot plot) {
|
||||
Set<CuboidRegion> regions = plot.getRegions();
|
||||
for (Shop shop : plugin.getShopUtils().getShops()) {
|
||||
for (CuboidRegion region : regions) {
|
||||
for (Shop shop: plugin.getShopUtils().getShops()) {
|
||||
for (CuboidRegion region: regions) {
|
||||
org.bukkit.Location loc = shop.getLocation();
|
||||
if (!region.contains(BlockVector3.at(loc.getX(), loc.getY(), loc.getZ()))) {
|
||||
continue;
|
||||
|
@ -2588,9 +2588,11 @@ public class LanguageUtils {
|
||||
messages.add(new LocalizedMessage(Message.COMMAND_DESC_LIMITS, langConfig.getString("message.commandDescription.limits", "&a/%COMMAND% limits - View shop limits.")));
|
||||
messages.add(new LocalizedMessage(Message.COMMAND_DESC_OPEN, langConfig.getString("message.commandDescription.open", "&a/%COMMAND% open - Open a shop.")));
|
||||
messages.add(new LocalizedMessage(Message.COMMAND_DESC_CONFIG, langConfig.getString("message.commandDescription.config", "&a/%COMMAND% config <set|add|remove> <property> <value> - Change configuration values.")));
|
||||
messages.add(new LocalizedMessage(Message.COMMAND_DESC_VALUE, langConfig.getString("message.commandDescription.value", "&a/%COMMAND% value - Get the average price of an item.")));
|
||||
messages.add(new LocalizedMessage(Message.CHANGED_CONFIG_SET, langConfig.getString("message.config.set", "&6Changed &a%PROPERTY% &6to &a%VALUE%&6.")));
|
||||
messages.add(new LocalizedMessage(Message.CHANGED_CONFIG_REMOVED, langConfig.getString("message.config.removed", "&6Removed &a%VALUE% &6from &a%PROPERTY%&6.")));
|
||||
messages.add(new LocalizedMessage(Message.CHANGED_CONFIG_ADDED, langConfig.getString("message.config.added", "&6Added &a%VALUE% &6to &a%PROPERTY%&6.")));
|
||||
messages.add(new LocalizedMessage(Message.VALUE_OF_ITEM, langConfig.getString("message.valueOfItem", "&6This item is sold in &a%COUNT% &6shops for an average price of &a%SELL-PRICE%&6, and bought for &a%BUY-PRICE%.")));
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -93,7 +93,9 @@ public enum Message {
|
||||
COMMAND_DESC_LIMITS,
|
||||
COMMAND_DESC_OPEN,
|
||||
COMMAND_DESC_CONFIG,
|
||||
COMMAND_DESC_VALUE,
|
||||
CHANGED_CONFIG_SET,
|
||||
CHANGED_CONFIG_REMOVED,
|
||||
CHANGED_CONFIG_ADDED
|
||||
CHANGED_CONFIG_ADDED,
|
||||
VALUE_OF_ITEM
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user