mirror of
https://github.com/CarmJos/UltraDepository.git
synced 2024-09-19 19:55:45 +00:00
完成插件指令
This commit is contained in:
parent
ec30bd89ed
commit
02eae54e7c
@ -15,6 +15,7 @@
|
||||
[![License](https://img.shields.io/github/license/CarmJos/UltraDepository)](https://opensource.org/licenses/GPL-3.0)
|
||||
[![workflow](https://github.com/CarmJos/UltraDepository/actions/workflows/maven.yml/badge.svg?branch=master)](https://github.com/CarmJos/UltraDepository/actions/workflows/maven.yml)
|
||||
![CodeSize](https://img.shields.io/github/languages/code-size/CarmJos/UltraDepository)
|
||||
![Support](https://img.shields.io/badge/Minecraft-Java%201.13--Latest-green)
|
||||
![](https://visitor-badge.glitch.me/badge?page_id=UltraDepository.readme)
|
||||
|
||||
超级仓库插件,支持设定不同物品的存储仓库。
|
||||
|
@ -1,31 +1,421 @@
|
||||
package cc.carm.plugin.ultradepository.command;
|
||||
|
||||
import cc.carm.plugin.ultradepository.Main;
|
||||
import cc.carm.plugin.ultradepository.configuration.PluginMessages;
|
||||
import cc.carm.plugin.ultradepository.configuration.depository.Depository;
|
||||
import cc.carm.plugin.ultradepository.configuration.depository.DepositoryItem;
|
||||
import cc.carm.plugin.ultradepository.data.DepositoryData;
|
||||
import cc.carm.plugin.ultradepository.data.DepositoryItemData;
|
||||
import cc.carm.plugin.ultradepository.data.UserData;
|
||||
import cc.carm.plugin.ultradepository.ui.DepositoryGUI;
|
||||
import cc.carm.plugin.ultradepository.util.ColorParser;
|
||||
import cc.carm.plugin.ultradepository.util.MessageUtil;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.command.Command;
|
||||
import org.bukkit.command.CommandExecutor;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.command.TabCompleter;
|
||||
import org.bukkit.entity.HumanEntity;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.util.StringUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
public class DepositoryCommand implements CommandExecutor, TabCompleter {
|
||||
|
||||
|
||||
private boolean helpConsole(CommandSender sender) {
|
||||
PluginMessages.HELP_CONSOLE.send(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean helpPlayer(Player player) {
|
||||
PluginMessages.HELP_PLAYER.send(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCommand(
|
||||
@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, @NotNull String[] args) {
|
||||
if (sender instanceof Player) {
|
||||
Player player = (Player) sender;
|
||||
if (args.length < 1) return helpPlayer(player);
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "open": {
|
||||
if (!player.hasPermission("UltraDepository.use")) {
|
||||
return false;
|
||||
}
|
||||
if (args.length < 2) return helpPlayer(player);
|
||||
Depository depository = Main.getDepositoryManager().getDepository(args[1]);
|
||||
if (depository == null) {
|
||||
PluginMessages.NO_DEPOSITORY.send(player);
|
||||
return true;
|
||||
}
|
||||
DepositoryGUI.open((Player) sender, depository);
|
||||
return true;
|
||||
}
|
||||
case "sell": {
|
||||
if (!player.hasPermission("UltraDepository.Command.Sell")) {
|
||||
return false;
|
||||
}
|
||||
if (!Main.getEconomyManager().isInitialized()) {
|
||||
PluginMessages.NO_ECONOMY.send(player);
|
||||
return true;
|
||||
}
|
||||
if (args.length < 4) return helpPlayer(player);
|
||||
Depository depository = Main.getDepositoryManager().getDepository(args[1]);
|
||||
if (depository == null) {
|
||||
PluginMessages.NO_DEPOSITORY.send(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (sender instanceof Player && args.length >= 1) {
|
||||
Depository depository = Main.getDepositoryManager().getDepository(args[0]);
|
||||
if (depository != null) DepositoryGUI.open((Player) sender, depository);
|
||||
DepositoryItem item = depository.getItems().get(args[2]);
|
||||
if (item == null) {
|
||||
PluginMessages.NO_ITEM.send(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
int amount = -1;
|
||||
try {
|
||||
amount = Integer.parseInt(args[3]);
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
if (amount <= 0) {
|
||||
PluginMessages.WRONG_NUMBER.send(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
UserData userData = Main.getUserManager().getData(player);
|
||||
DepositoryItemData itemData = userData.getItemData(item);
|
||||
int limit = item.getLimit();
|
||||
int sold = itemData.getSold();
|
||||
int currentAmount = itemData.getAmount();
|
||||
|
||||
if (currentAmount < amount) {
|
||||
PluginMessages.NO_ENOUGH_ITEM.send(player);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (currentAmount > (limit - sold)) {
|
||||
PluginMessages.ITEM_SOLD_LIMIT.send(player, new Object[]{(limit - sold), limit});
|
||||
return true;
|
||||
}
|
||||
|
||||
sellItem(player, userData, itemData, amount);
|
||||
return true;
|
||||
}
|
||||
case "sellall": {
|
||||
if (!player.hasPermission("UltraDepository.Command.SellAll")) {
|
||||
return false;
|
||||
}
|
||||
if (!Main.getEconomyManager().isInitialized()) {
|
||||
PluginMessages.NO_ECONOMY.send(player);
|
||||
return true;
|
||||
}
|
||||
UserData userData = Main.getUserManager().getData(player);
|
||||
|
||||
String depositoryID = args.length >= 2 ? args[1] : null;
|
||||
String itemID = args.length >= 3 ? args[2] : null;
|
||||
|
||||
Depository depository = null;
|
||||
if (depositoryID != null) {
|
||||
depository = Main.getDepositoryManager().getDepository(depositoryID);
|
||||
if (depository == null) {
|
||||
PluginMessages.NO_DEPOSITORY.send(player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (depository == null) {
|
||||
userData.getDepositories().values().stream()
|
||||
.flatMap(depositoryData -> depositoryData.getContents().values().stream())
|
||||
.forEach(itemData -> sellAllItem(player, userData, itemData));
|
||||
sender.sendMessage("Success! " + player.getName() + "'s items had been sold.");
|
||||
return true;
|
||||
}
|
||||
|
||||
DepositoryItem item = null;
|
||||
if (itemID != null) {
|
||||
item = depository.getItems().get(itemID);
|
||||
if (item == null) {
|
||||
PluginMessages.NO_ITEM.send(player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (item == null) {
|
||||
userData.getDepositoryData(depository).getContents().values()
|
||||
.forEach(itemData -> sellAllItem(player, userData, itemData));
|
||||
return true;
|
||||
}
|
||||
|
||||
sellAllItem(player, userData, userData.getItemData(item));
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
return helpPlayer(player);
|
||||
}
|
||||
} else {
|
||||
if (args.length < 1) return helpConsole(sender);
|
||||
switch (args[0].toLowerCase()) {
|
||||
case "info": {
|
||||
if (args.length < 2) return helpConsole(sender);
|
||||
Player player = Bukkit.getPlayer(args[1]);
|
||||
if (player == null) {
|
||||
sender.sendMessage("Player does not exist.");
|
||||
return false;
|
||||
}
|
||||
UserData userData = Main.getUserManager().getData(player);
|
||||
|
||||
String depositoryID = args.length >= 3 ? args[2] : null;
|
||||
String itemID = args.length >= 4 ? args[3] : null;
|
||||
|
||||
Depository depository = null;
|
||||
if (depositoryID != null) {
|
||||
depository = Main.getDepositoryManager().getDepository(depositoryID);
|
||||
if (depository == null) {
|
||||
PluginMessages.NO_DEPOSITORY.send(player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
sender.sendMessage(ColorParser.parse("&fInfo &6" + player.getName() + " &f:"));
|
||||
if (depository == null) {
|
||||
userData.getDepositories().values().forEach(depositoryData -> {
|
||||
MessageUtil.send(sender, "&8# &e" + depositoryData.getIdentifier());
|
||||
depositoryData.getContents().values().forEach(itemData -> {
|
||||
String typeID = itemData.getSource().getTypeID();
|
||||
int amount = itemData.getAmount();
|
||||
int sold = itemData.getSold();
|
||||
MessageUtil.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]");
|
||||
});
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
DepositoryItem item = null;
|
||||
if (itemID != null) {
|
||||
item = depository.getItems().get(itemID);
|
||||
if (item == null) {
|
||||
PluginMessages.NO_ITEM.send(player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (item == null) {
|
||||
DepositoryData depositoryData = userData.getDepositoryData(depository);
|
||||
MessageUtil.send(sender, "&8# &e" + depositoryData.getIdentifier());
|
||||
depositoryData.getContents().values().forEach(itemData -> {
|
||||
String typeID = itemData.getSource().getTypeID();
|
||||
int amount = itemData.getAmount();
|
||||
int sold = itemData.getSold();
|
||||
MessageUtil.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]");
|
||||
});
|
||||
return true;
|
||||
}
|
||||
|
||||
DepositoryItemData itemData = userData.getItemData(item);
|
||||
String typeID = itemData.getSource().getTypeID();
|
||||
int amount = itemData.getAmount();
|
||||
int sold = itemData.getSold();
|
||||
|
||||
MessageUtil.send(sender, "&8# &e" + depository.getIdentifier());
|
||||
MessageUtil.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]");
|
||||
return true;
|
||||
}
|
||||
case "add": {
|
||||
if (args.length < 5) return true;
|
||||
Player player = Bukkit.getPlayer(args[1]);
|
||||
if (player == null) {
|
||||
sender.sendMessage("Player does not exist.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Depository depository = Main.getDepositoryManager().getDepository(args[2]);
|
||||
if (depository == null) {
|
||||
PluginMessages.NO_DEPOSITORY.send(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
DepositoryItem item = depository.getItems().get(args[3]);
|
||||
if (item == null) {
|
||||
PluginMessages.NO_ITEM.send(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
int amount = -1;
|
||||
try {
|
||||
amount = Integer.parseInt(args[4]);
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
if (amount <= 0) {
|
||||
PluginMessages.WRONG_NUMBER.send(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
Integer after = Main.getUserManager().getData(player)
|
||||
.addItemAmount(depository.getIdentifier(), item.getTypeID(), amount);
|
||||
|
||||
if (after != null) {
|
||||
sender.sendMessage("Success! Now " + player.getName() + "'s " + item.getTypeID() + " is " + after + " .");
|
||||
} else {
|
||||
sender.sendMessage("Failed!");
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
case "remove": {
|
||||
if (args.length < 4) return true;
|
||||
Player player = Bukkit.getPlayer(args[1]);
|
||||
if (player == null) {
|
||||
sender.sendMessage("Player does not exist.");
|
||||
return false;
|
||||
}
|
||||
|
||||
Depository depository = Main.getDepositoryManager().getDepository(args[2]);
|
||||
if (depository == null) {
|
||||
PluginMessages.NO_DEPOSITORY.send(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
DepositoryItem item = depository.getItems().get(args[3]);
|
||||
if (item == null) {
|
||||
PluginMessages.NO_ITEM.send(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
Integer amount = null;
|
||||
try {
|
||||
amount = Integer.parseInt(args[4]);
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
if (amount != null && amount < 0) {
|
||||
PluginMessages.WRONG_NUMBER.send(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
UserData userData = Main.getUserManager().getData(player);
|
||||
if (amount != null) {
|
||||
Integer after = userData.removeItemAmount(depository.getIdentifier(), item.getTypeID(), amount);
|
||||
if (after != null) {
|
||||
sender.sendMessage("Success! Now " + player.getName() + "'s " + item.getTypeID() + " is " + after + " .");
|
||||
} else {
|
||||
sender.sendMessage("Failed!");
|
||||
}
|
||||
} else {
|
||||
userData.setItemAmount(depository.getIdentifier(), item.getTypeID(), 0);
|
||||
sender.sendMessage("Success! Cleared " + player.getName() + "'s " + item.getTypeID() + " .");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
case "sell": {
|
||||
if (args.length < 2) return true;
|
||||
Player player = Bukkit.getPlayer(args[1]);
|
||||
if (player == null) {
|
||||
sender.sendMessage("Player does not exist.");
|
||||
return false;
|
||||
}
|
||||
String depositoryID = args.length >= 3 ? args[2] : null;
|
||||
String itemID = args.length >= 4 ? args[3] : null;
|
||||
|
||||
Depository depository = null;
|
||||
if (depositoryID != null) {
|
||||
depository = Main.getDepositoryManager().getDepository(depositoryID);
|
||||
if (depository == null) {
|
||||
PluginMessages.NO_DEPOSITORY.send(sender);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
UserData userData = Main.getUserManager().getData(player);
|
||||
|
||||
if (depository == null) {
|
||||
userData.getDepositories().values().stream()
|
||||
.flatMap(depositoryData -> depositoryData.getContents().values().stream())
|
||||
.forEach(itemData -> sellAllItem(player, userData, itemData));
|
||||
sender.sendMessage("Success! " + player.getName() + "'s items had been sold.");
|
||||
return true;
|
||||
}
|
||||
|
||||
DepositoryItem item = null;
|
||||
if (itemID != null) {
|
||||
item = depository.getItems().get(itemID);
|
||||
if (item == null) {
|
||||
PluginMessages.NO_ITEM.send(player);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if (item == null) {
|
||||
userData.getDepositoryData(depository).getContents().values()
|
||||
.forEach(itemData -> sellAllItem(player, userData, itemData));
|
||||
sender.sendMessage("Success! " + player.getName() + "'s " + depository.getIdentifier() + " had been sold.");
|
||||
return true;
|
||||
}
|
||||
|
||||
Integer amount = null;
|
||||
if (args.length >= 5) {
|
||||
try {
|
||||
amount = Integer.parseInt(args[4]);
|
||||
} catch (Exception ignore) {
|
||||
}
|
||||
}
|
||||
|
||||
if (amount != null && amount < 0) {
|
||||
PluginMessages.WRONG_NUMBER.send(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (amount == null) {
|
||||
sellAllItem(player, userData, userData.getItemData(item));
|
||||
sender.sendMessage("Success! " + player.getName() + "'s " + item.getTypeID() + " had been sold.");
|
||||
return true;
|
||||
}
|
||||
DepositoryItemData itemData = userData.getItemData(item);
|
||||
|
||||
int limit = item.getLimit();
|
||||
int sold = itemData.getSold();
|
||||
int currentAmount = itemData.getAmount();
|
||||
|
||||
if (currentAmount < amount) {
|
||||
PluginMessages.NO_ENOUGH_ITEM.send(sender);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (currentAmount > (limit - sold)) {
|
||||
PluginMessages.ITEM_SOLD_LIMIT.send(sender, new Object[]{(limit - sold), limit});
|
||||
return true;
|
||||
}
|
||||
|
||||
sellItem(player, userData, userData.getItemData(item), amount);
|
||||
sender.sendMessage("Success! " + player.getName() + "'s " + amount + " " + item.getTypeID() + " had been sold.");
|
||||
return true;
|
||||
}
|
||||
default:
|
||||
return helpConsole(sender);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
private void sellAllItem(Player player, UserData userData, DepositoryItemData itemData) {
|
||||
int amount = itemData.getAmount();
|
||||
int sold = itemData.getSold();
|
||||
int limit = itemData.getSource().getLimit();
|
||||
int finalAmount = Math.min(amount, (limit - sold));
|
||||
if (finalAmount > 0) {
|
||||
sellItem(player, userData, itemData, finalAmount);
|
||||
}
|
||||
}
|
||||
|
||||
private void sellItem(Player player, UserData userData, DepositoryItemData itemData, int amount) {
|
||||
userData.addItemSold(itemData.getOwner().getSource().getIdentifier(), itemData.getSource().getTypeID(), amount);
|
||||
userData.removeItemAmount(itemData.getOwner().getSource().getIdentifier(), itemData.getSource().getTypeID(), amount);
|
||||
double money = Main.getEconomyManager().sell(player, itemData.getSource().getPrice(), amount);
|
||||
PluginMessages.SOLD.send(player, new Object[]{itemData.getSource().getName(), amount, money});
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@ -33,8 +423,75 @@ public class DepositoryCommand implements CommandExecutor, TabCompleter {
|
||||
public List<String> onTabComplete(
|
||||
@NotNull CommandSender sender, @NotNull Command command,
|
||||
@NotNull String alias, @NotNull String[] args) {
|
||||
List<String> allCompletes = new ArrayList<>();
|
||||
if (sender instanceof Player) {
|
||||
// 玩家指令部分
|
||||
Player player = (Player) sender;
|
||||
if (player.hasPermission("UltraDepository.use")) {
|
||||
switch (args.length) {
|
||||
case 1: {
|
||||
allCompletes.add("open");
|
||||
if (player.hasPermission("UltraDepository.Command.Sell")) allCompletes.add("sell");
|
||||
if (player.hasPermission("UltraDepository.Command.SellAll")) allCompletes.add("sellAll");
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
String aim = args[0];
|
||||
if (aim.equalsIgnoreCase("open")
|
||||
|| (aim.equalsIgnoreCase("sell")
|
||||
&& player.hasPermission("UltraDepository.Command.Sell"))
|
||||
|| (aim.equalsIgnoreCase("sellAll")
|
||||
&& player.hasPermission("UltraDepository.Command.SellAll"))) {
|
||||
allCompletes.addAll(Main.getDepositoryManager().getDepositories().keySet());
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
String aim = args[0];
|
||||
String depositoryID = args[1];
|
||||
if ((aim.equalsIgnoreCase("sell")
|
||||
&& player.hasPermission("UltraDepository.Command.Sell"))
|
||||
|| (aim.equalsIgnoreCase("sellAll")
|
||||
&& player.hasPermission("UltraDepository.Command.SellAll"))) {
|
||||
Depository depository = Main.getDepositoryManager().getDepository(depositoryID);
|
||||
if (depository != null) {
|
||||
allCompletes.addAll(depository.getItems().keySet());
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
//后台指令部分
|
||||
switch (args.length) {
|
||||
case 1: {
|
||||
allCompletes.add("info");
|
||||
allCompletes.add("add");
|
||||
allCompletes.add("remove");
|
||||
allCompletes.add("sell");
|
||||
break;
|
||||
}
|
||||
case 2: {
|
||||
allCompletes = Bukkit.getOnlinePlayers().stream().map(HumanEntity::getName).collect(Collectors.toList());
|
||||
break;
|
||||
}
|
||||
case 3: {
|
||||
allCompletes.addAll(Main.getDepositoryManager().getDepositories().keySet());
|
||||
break;
|
||||
}
|
||||
case 4: {
|
||||
Depository depository = Main.getDepositoryManager().getDepository(args[2]);
|
||||
if (depository != null) {
|
||||
allCompletes.addAll(depository.getItems().keySet());
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return null;
|
||||
return allCompletes.stream()
|
||||
.filter(s -> StringUtil.startsWithIgnoreCase(s, args[args.length - 1]))
|
||||
.limit(10).collect(Collectors.toList());
|
||||
}
|
||||
}
|
||||
|
@ -5,6 +5,11 @@ import cc.carm.plugin.ultradepository.configuration.message.ConfigMessageList;
|
||||
|
||||
public class PluginMessages {
|
||||
|
||||
public static final ConfigMessageList HELP_CONSOLE = new ConfigMessageList("help.console");
|
||||
|
||||
public static final ConfigMessageList HELP_PLAYER = new ConfigMessageList("help.player");
|
||||
|
||||
|
||||
public static final ConfigMessageList SOLD = new ConfigMessageList(
|
||||
"item-sold", new String[0], new String[]{
|
||||
"%(item)", "%(amount)", "%(money)"
|
||||
@ -20,5 +25,22 @@ public class PluginMessages {
|
||||
"%(item)", "%(amount)", "%(depository)"
|
||||
});
|
||||
|
||||
|
||||
public static final ConfigMessageList NO_ECONOMY = new ConfigMessageList("no-economy");
|
||||
|
||||
public static final ConfigMessageList NO_SPACE = new ConfigMessageList("no-space");
|
||||
|
||||
public static final ConfigMessageList NO_DEPOSITORY = new ConfigMessageList("no-depository");
|
||||
|
||||
public static final ConfigMessageList NO_ITEM = new ConfigMessageList("no-item");
|
||||
|
||||
public static final ConfigMessageList NO_ENOUGH_ITEM = new ConfigMessageList("no-enough-item");
|
||||
|
||||
|
||||
public static final ConfigMessageList ITEM_SOLD_LIMIT = new ConfigMessageList(
|
||||
"item-sold-limit", new String[0], new String[]{
|
||||
"%(amount)", "%(limit)"
|
||||
});
|
||||
|
||||
public static final ConfigMessageList WRONG_NUMBER = new ConfigMessageList("wrong-number");
|
||||
}
|
||||
|
@ -79,16 +79,16 @@ public class UserData {
|
||||
public @Nullable Integer setItemAmount(@NotNull String depositoryID, @NotNull String typeID, int amount) {
|
||||
DepositoryItemData data = getItemData(depositoryID, typeID);
|
||||
if (data == null) return null;
|
||||
data.setAmount(amount);
|
||||
return amount;
|
||||
data.setAmount(Math.max(0, amount)); // 最小为0
|
||||
return data.getAmount();
|
||||
}
|
||||
|
||||
|
||||
public @Nullable Integer setItemSold(@NotNull String depositoryID, @NotNull String typeID, int soldAmount) {
|
||||
DepositoryItemData data = getItemData(depositoryID, typeID);
|
||||
if (data == null) return null;
|
||||
data.setSold(soldAmount);
|
||||
return soldAmount;
|
||||
data.setSold(Math.max(0, soldAmount));
|
||||
return data.getSold();
|
||||
}
|
||||
|
||||
|
||||
|
@ -1,13 +1,58 @@
|
||||
item-collected:
|
||||
- "&f您收集了 &e%(item)&7x%(amount) &f,已自动放入到您的 &6%(depository) &f中。"
|
||||
help:
|
||||
|
||||
player:
|
||||
- "&6&l超级仓库 &f玩家指令帮助"
|
||||
- "&8#&f open &e[仓库ID]"
|
||||
- "&8-&7 打开对应仓库的界面。"
|
||||
- "&8#&f sell &6<仓库ID> &6<物品ID> &6<数量>"
|
||||
- "&8-&7 售出对应数量的对应物品。"
|
||||
- "&8-&7 该指令受到玩家每日售出数量的限制。"
|
||||
- "&8#&f sellAll &e[仓库ID] &e[物品ID]"
|
||||
- "&8-&7 该指令受到玩家每日售出数量的限制。"
|
||||
console:
|
||||
- "&6&l超级仓库 &f后台指令帮助"
|
||||
- "&8#&f info &6<玩家> &e[仓库ID] &e[物品ID]"
|
||||
- "&8-&7 得到玩家的相关物品信息。"
|
||||
- "&8#&f add &6<玩家> &6<仓库ID> &6<物品ID> &6<数量>"
|
||||
- "&8-&7 为玩家添加对应仓库中对于物品的数量。"
|
||||
- "&8#&f remove &6<玩家> &6<仓库ID> &6<物品ID> &e[数量]"
|
||||
- "&8-&7 为玩家减少对应仓库中对于物品的数量。"
|
||||
- "&8-&7 若不填写数量,则清空对应仓库的对应物品。"
|
||||
- "&8#&f sell &6<玩家> &e[仓库ID] &e[物品ID] &e[数量]"
|
||||
- "&8-&7 为玩家售出相关物品。"
|
||||
- "&8-&7 若不填写数量,则售出所有对应仓库的对应物品。"
|
||||
- "&8-&7 若不填写物品,则售出对应仓库内所有物品。"
|
||||
- "&8-&7 若不填写仓库,则售出所有仓库内所有物品。"
|
||||
- "&8-&7 该指令受到玩家每日售出数量的限制。"
|
||||
|
||||
item-collected:
|
||||
- "&f您收集了 &r%(item)&7x%(amount) &f,已自动放入到您的 &6%(depository) &f中。"
|
||||
|
||||
item-pickup:
|
||||
- "&f您取出了 &e%(item)&7x%(amount) &f,已自动放入到您的背包中。"
|
||||
|
||||
- "&f您取出了 &r%(item)&7x%(amount) &f,已自动放入到您的仓库中。"
|
||||
|
||||
item-sold:
|
||||
- "&f您出售了 &e%(item)&7x%(amount) &f,共赚取 &6%(money) &f元。"
|
||||
- "&f您出售了 &r%(item)&7x%(amount) &f,共赚取 &6%(money) &f元。"
|
||||
|
||||
item-sold-limit:
|
||||
- "&f该物品今日剩余可出售额度为 &a%(amount)&8/%(limit) &f个。"
|
||||
|
||||
|
||||
no-economy:
|
||||
- "&f本服务器暂未启用出售功能。"
|
||||
|
||||
no-space:
|
||||
- "&f您背包内没有足够的空间取出物品!"
|
||||
- "&f您仓库内没有足够的空间取出物品!"
|
||||
|
||||
no-depository:
|
||||
- "&f不存在该仓库,请检查仓库ID是否正确。"
|
||||
|
||||
no-item:
|
||||
- "&f仓库中不存在该物品,请检查物品ID是否正确。"
|
||||
|
||||
no-enough-item:
|
||||
- "&f仓库中不存在足够的物品。"
|
||||
|
||||
|
||||
wrong-number:
|
||||
- "&f数目输入错误,请输入正确的数字!"
|
Loading…
Reference in New Issue
Block a user