1
mirror of https://github.com/CarmJos/UltraDepository.git synced 2024-09-19 19:55:45 +00:00

[v1.2.4] 依赖更新

- [U] 采用EasyPlugin的EasyMessages实现消息配置文件
This commit is contained in:
Carm Jos 2022-01-09 13:16:08 +08:00
parent 8538aa2be8
commit c2eeddedcb
9 changed files with 530 additions and 539 deletions

View File

@ -207,9 +207,9 @@
详见源文件。
### 消息配置文件 ([messages.yml](src/main/resources/messages.yml))
### 消息配置文件 ([messages.yml](src/main/java/cc/carm/plugin/ultradepository/configuration/PluginMessages.java))
详见源文件
详见代码文件中默认值,相关文件将在首次运行时创建
### 仓库配置文件 ([depositories/<仓库ID>.yml](.examples/depositories/full-example.yml))

View File

@ -9,13 +9,13 @@
<maven.compiler.target>11</maven.compiler.target>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
<easyplugin.version>1.2.0</easyplugin.version>
<easyplugin.version>1.3.0</easyplugin.version>
</properties>
<groupId>cc.carm.plugin</groupId>
<artifactId>ultradepository</artifactId>
<packaging>jar</packaging>
<version>1.2.3</version>
<version>1.2.4</version>
<name>UltraDepository</name>
<description>超级仓库插件,支持设定不同物品的存储仓库。</description>

View File

@ -29,457 +29,457 @@ 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 helpConsole(CommandSender sender) {
PluginMessages.Usages.CONSOLE.send(sender);
return true;
}
private boolean helpPlayer(Player player) {
PluginMessages.HELP_PLAYER.send(player);
return true;
}
private boolean helpPlayer(Player player) {
PluginMessages.Usages.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 = UltraDepository.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 (!UltraDepository.getEconomyManager().isInitialized()) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ECONOMY.send(player);
return true;
}
if (args.length < 4) return helpPlayer(player);
Depository depository = UltraDepository.getDepositoryManager().getDepository(args[1]);
if (depository == null) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_DEPOSITORY.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 = UltraDepository.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 (!UltraDepository.getEconomyManager().isInitialized()) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ECONOMY.send(player);
return true;
}
if (args.length < 4) return helpPlayer(player);
Depository depository = UltraDepository.getDepositoryManager().getDepository(args[1]);
if (depository == null) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_DEPOSITORY.send(player);
return true;
}
DepositoryItem item = depository.getItems().get(args[2]);
if (item == null) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ITEM.send(player);
return true;
}
DepositoryItem item = depository.getItems().get(args[2]);
if (item == null) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ITEM.send(player);
return true;
}
int amount = -1;
try {
amount = Integer.parseInt(args[3]);
} catch (Exception ignore) {
}
if (amount <= 0) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.WRONG_NUMBER.send(player);
return true;
}
int amount = -1;
try {
amount = Integer.parseInt(args[3]);
} catch (Exception ignore) {
}
if (amount <= 0) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.WRONG_NUMBER.send(player);
return true;
}
UserData userData = UltraDepository.getUserManager().getData(player);
DepositoryItemData itemData = userData.getItemData(item);
int limit = item.getLimit();
int sold = itemData.getSold();
int currentAmount = itemData.getAmount();
UserData userData = UltraDepository.getUserManager().getData(player);
DepositoryItemData itemData = userData.getItemData(item);
int limit = item.getLimit();
int sold = itemData.getSold();
int currentAmount = itemData.getAmount();
if (currentAmount < amount) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ENOUGH_ITEM.send(player);
return true;
}
if (currentAmount < amount) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ENOUGH_ITEM.send(player);
return true;
}
if (amount > (limit - sold)) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.ITEM_SOLD_LIMIT.send(player, new Object[]{(limit - sold), limit});
return true;
}
if (amount > (limit - sold)) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.ITEM_SOLD_LIMIT.send(player, new Object[]{(limit - sold), limit});
return true;
}
UltraDepository.getEconomyManager().sellItem(player, userData, item, amount);
return true;
}
case "sellall": {
if (!player.hasPermission("UltraDepository.Command.SellAll")) {
return false;
}
if (!UltraDepository.getEconomyManager().isInitialized()) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ECONOMY.send(player);
return true;
}
UserData userData = UltraDepository.getUserManager().getData(player);
UltraDepository.getEconomyManager().sellItem(player, userData, item, amount);
return true;
}
case "sellall": {
if (!player.hasPermission("UltraDepository.Command.SellAll")) {
return false;
}
if (!UltraDepository.getEconomyManager().isInitialized()) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ECONOMY.send(player);
return true;
}
UserData userData = UltraDepository.getUserManager().getData(player);
String depositoryID = args.length >= 2 ? args[1] : null;
String itemID = args.length >= 3 ? args[2] : null;
String depositoryID = args.length >= 2 ? args[1] : null;
String itemID = args.length >= 3 ? args[2] : null;
Depository depository = null;
if (depositoryID != null) {
depository = UltraDepository.getDepositoryManager().getDepository(depositoryID);
if (depository == null) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_DEPOSITORY.send(player);
return true;
}
}
Depository depository = null;
if (depositoryID != null) {
depository = UltraDepository.getDepositoryManager().getDepository(depositoryID);
if (depository == null) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_DEPOSITORY.send(player);
return true;
}
}
if (depository == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData);
sender.sendMessage("Success! " + player.getName() + "'s items had been sold.");
return true;
}
if (depository == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData);
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) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ITEM.send(player);
return true;
}
}
DepositoryItem item = null;
if (itemID != null) {
item = depository.getItems().get(itemID);
if (item == null) {
PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ITEM.send(player);
return true;
}
}
if (item == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData, depository);
return true;
}
if (item == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData, depository);
return true;
}
UltraDepository.getEconomyManager().sellAllItem(player, userData, 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 = UltraDepository.getUserManager().getData(player);
UltraDepository.getEconomyManager().sellAllItem(player, userData, 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 = UltraDepository.getUserManager().getData(player);
String depositoryID = args.length >= 3 ? args[2] : null;
String itemID = args.length >= 4 ? args[3] : null;
String depositoryID = args.length >= 3 ? args[2] : null;
String itemID = args.length >= 4 ? args[3] : null;
Depository depository = null;
if (depositoryID != null) {
depository = UltraDepository.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 -> {
MessageUtils.send(sender, "&8# &e" + depositoryData.getIdentifier());
depositoryData.getContents().values().forEach(itemData -> {
String typeID = itemData.getSource().getTypeID();
int amount = itemData.getAmount();
int sold = itemData.getSold();
MessageUtils.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]");
});
});
return true;
}
Depository depository = null;
if (depositoryID != null) {
depository = UltraDepository.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 -> {
MessageUtils.send(sender, "&8# &e" + depositoryData.getIdentifier());
depositoryData.getContents().values().forEach(itemData -> {
String typeID = itemData.getSource().getTypeID();
int amount = itemData.getAmount();
int sold = itemData.getSold();
MessageUtils.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;
}
}
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);
MessageUtils.send(sender, "&8# &e" + depositoryData.getIdentifier());
depositoryData.getContents().values().forEach(itemData -> {
String typeID = itemData.getSource().getTypeID();
int amount = itemData.getAmount();
int sold = itemData.getSold();
MessageUtils.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]");
});
return true;
}
if (item == null) {
DepositoryData depositoryData = userData.getDepositoryData(depository);
MessageUtils.send(sender, "&8# &e" + depositoryData.getIdentifier());
depositoryData.getContents().values().forEach(itemData -> {
String typeID = itemData.getSource().getTypeID();
int amount = itemData.getAmount();
int sold = itemData.getSold();
MessageUtils.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();
DepositoryItemData itemData = userData.getItemData(item);
String typeID = itemData.getSource().getTypeID();
int amount = itemData.getAmount();
int sold = itemData.getSold();
MessageUtils.send(sender, "&8# &e" + depository.getIdentifier());
MessageUtils.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;
}
MessageUtils.send(sender, "&8# &e" + depository.getIdentifier());
MessageUtils.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 = UltraDepository.getDepositoryManager().getDepository(args[2]);
if (depository == null) {
PluginMessages.NO_DEPOSITORY.send(sender);
return true;
}
Depository depository = UltraDepository.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;
}
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;
}
int amount = -1;
try {
amount = Integer.parseInt(args[4]);
} catch (Exception ignore) {
}
if (amount <= 0) {
PluginMessages.WRONG_NUMBER.send(sender);
return true;
}
Integer after = UltraDepository.getUserManager().getData(player)
.addItemAmount(depository.getIdentifier(), item.getTypeID(), amount);
Integer after = UltraDepository.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!");
}
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;
}
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 = UltraDepository.getDepositoryManager().getDepository(args[2]);
if (depository == null) {
PluginMessages.NO_DEPOSITORY.send(sender);
return true;
}
Depository depository = UltraDepository.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;
}
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;
}
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 = UltraDepository.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;
UserData userData = UltraDepository.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 = UltraDepository.getDepositoryManager().getDepository(depositoryID);
if (depository == null) {
PluginMessages.NO_DEPOSITORY.send(sender);
return true;
}
}
Depository depository = null;
if (depositoryID != null) {
depository = UltraDepository.getDepositoryManager().getDepository(depositoryID);
if (depository == null) {
PluginMessages.NO_DEPOSITORY.send(sender);
return true;
}
}
UserData userData = UltraDepository.getUserManager().getData(player);
UserData userData = UltraDepository.getUserManager().getData(player);
if (depository == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData);
sender.sendMessage("Success! " + player.getName() + "'s items had been sold.");
return true;
}
if (depository == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData);
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) {
UltraDepository.getEconomyManager().sellAllItem(player, userData, depository);
sender.sendMessage("Success! " + player.getName() + "'s " + depository.getIdentifier() + " 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) {
UltraDepository.getEconomyManager().sellAllItem(player, userData, depository);
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) {
}
}
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 && amount < 0) {
PluginMessages.WRONG_NUMBER.send(sender);
return true;
}
if (amount == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData, item);
sender.sendMessage("Success! " + player.getName() + "'s " + item.getTypeID() + " had been sold.");
return true;
}
if (amount == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData, item);
sender.sendMessage("Success! " + player.getName() + "'s " + item.getTypeID() + " had been sold.");
return true;
}
DepositoryItemData itemData = userData.getItemData(item);
DepositoryItemData itemData = userData.getItemData(item);
int limit = item.getLimit();
int sold = itemData.getSold();
int currentAmount = itemData.getAmount();
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 < 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;
}
if (currentAmount > (limit - sold)) {
PluginMessages.ITEM_SOLD_LIMIT.send(sender, new Object[]{(limit - sold), limit});
return true;
}
UltraDepository.getEconomyManager().sellItem(player, userData, item, amount);
sender.sendMessage("Success! " + player.getName() + "'s " + amount + " " + item.getTypeID() + " had been sold.");
return true;
}
default:
return helpConsole(sender);
}
}
}
UltraDepository.getEconomyManager().sellItem(player, userData, item, amount);
sender.sendMessage("Success! " + player.getName() + "'s " + amount + " " + item.getTypeID() + " had been sold.");
return true;
}
default:
return helpConsole(sender);
}
}
}
@Nullable
@Override
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(UltraDepository.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 = UltraDepository.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(UltraDepository.getDepositoryManager().getDepositories().keySet());
break;
}
case 4: {
Depository depository = UltraDepository.getDepositoryManager().getDepository(args[2]);
if (depository != null) {
allCompletes.addAll(depository.getItems().keySet());
}
break;
}
}
}
@Nullable
@Override
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(UltraDepository.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 = UltraDepository.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(UltraDepository.getDepositoryManager().getDepositories().keySet());
break;
}
case 4: {
Depository depository = UltraDepository.getDepositoryManager().getDepository(args[2]);
if (depository != null) {
allCompletes.addAll(depository.getItems().keySet());
}
break;
}
}
}
return allCompletes.stream()
.filter(s -> StringUtil.startsWithIgnoreCase(s, args[args.length - 1]))
.limit(10).collect(Collectors.toList());
}
return allCompletes.stream()
.filter(s -> StringUtil.startsWithIgnoreCase(s, args[args.length - 1]))
.limit(10).collect(Collectors.toList());
}
}

View File

@ -1,46 +1,88 @@
package cc.carm.plugin.ultradepository.configuration;
import cc.carm.lib.easyplugin.configuration.message.ConfigMessageList;
import cc.carm.lib.easyplugin.configuration.language.EasyMessageList;
import cc.carm.lib.easyplugin.configuration.language.MessagesRoot;
import cc.carm.lib.easyplugin.configuration.language.MessagesSection;
public class PluginMessages {
public class PluginMessages extends MessagesRoot {
public static final ConfigMessageList HELP_CONSOLE = new ConfigMessageList("help.console");
@MessagesSection("help")
public static class Usages {
public static final ConfigMessageList HELP_PLAYER = new ConfigMessageList("help.player");
public static final EasyMessageList CONSOLE = new EasyMessageList(
"&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 该指令受到玩家每日售出数量的限制。"
);
public static final EasyMessageList PLAYER = new EasyMessageList(
"&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 该指令受到玩家每日售出数量的限制。"
);
}
public static final EasyMessageList ITEM_SOLD = new EasyMessageList(
new String[]{"&f您出售了 &r%(item)&7x%(amount) &f共赚取 &6%(money) &f元。"},
new String[]{"%(item)", "%(amount)", "%(money)"}
);
public static final EasyMessageList ITEM_SOLD_LIMIT = new EasyMessageList(
new String[]{"&f该物品今日剩余可出售额度为 &a%(amount)&8/%(limit) &f个。"},
new String[]{"%(amount)", "%(limit)"}
);
public static final EasyMessageList ITEM_PICKUP = new EasyMessageList(
new String[]{"&f您拾取了 &r%(item)&7x%(amount) &f已自动放入到您的仓库中。"},
new String[]{"%(item)", "%(amount)"}
);
public static final EasyMessageList ITEM_COLLECT = new EasyMessageList(
new String[]{"&f您收集了 &r%(item)&7x%(amount) &f已自动放入到您的 &6%(depository) &f中。"},
new String[]{"%(item)", "%(amount)", "%(depository)"}
);
public static final ConfigMessageList SOLD = new ConfigMessageList(
"item-sold", new String[0], new String[]{
"%(item)", "%(amount)", "%(money)"
});
public static final EasyMessageList NO_SPACE = new EasyMessageList(
"&f您仓库内没有足够的空间取出物品"
);
public static final ConfigMessageList PICKUP = new ConfigMessageList(
"item-pickup", new String[0], new String[]{
"%(item)", "%(amount)"
});
public static final EasyMessageList NO_ECONOMY = new EasyMessageList(
"&f本服务器暂未启用出售功能。"
);
public static final ConfigMessageList COLLECTED = new ConfigMessageList(
"item-collected", new String[0], new String[]{
"%(item)", "%(amount)", "%(depository)"
});
public static final EasyMessageList NO_DEPOSITORY = new EasyMessageList(
"&f不存在该仓库请检查仓库ID是否正确。"
);
public static final EasyMessageList NO_ITEM = new EasyMessageList(
"&f仓库中不存在该物品请检查物品ID是否正确。"
);
public static final ConfigMessageList NO_ECONOMY = new ConfigMessageList("no-economy");
public static final EasyMessageList NO_ENOUGH_ITEM = new EasyMessageList(
"&f仓库中不存在足够的物品。"
);
public static final ConfigMessageList NO_SPACE = new ConfigMessageList("no-space");
public static final EasyMessageList WRONG_NUMBER = new EasyMessageList(
"&f数目输入错误请输入正确的数字"
);
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");
}

View File

@ -2,50 +2,57 @@ package cc.carm.plugin.ultradepository.manager;
import cc.carm.lib.easyplugin.configuration.file.FileConfig;
import cc.carm.lib.easyplugin.configuration.language.MessagesConfig;
import cc.carm.lib.easyplugin.configuration.language.MessagesInitializer;
import cc.carm.plugin.ultradepository.UltraDepository;
import cc.carm.plugin.ultradepository.configuration.PluginMessages;
public class ConfigManager {
private static FileConfig pluginConfiguration;
private static FileConfig messageConfiguration;
private static FileConfig pluginConfiguration;
private static MessagesConfig messageConfiguration;
public static boolean initialize() {
try {
pluginConfiguration = new FileConfig(UltraDepository.getInstance(), "config.yml");
messageConfiguration = new FileConfig(UltraDepository.getInstance(), "messages.yml");
public static boolean initialize() {
try {
pluginConfiguration = new FileConfig(UltraDepository.getInstance(), "config.yml");
messageConfiguration = new MessagesConfig(UltraDepository.getInstance(), "messages.yml");
FileConfig.pluginConfiguration = () -> pluginConfiguration;
FileConfig.messageConfiguration = () -> messageConfiguration;
return true;
} catch (Exception ex) {
return false;
}
}
FileConfig.pluginConfiguration = () -> pluginConfiguration;
FileConfig.messageConfiguration = () -> messageConfiguration;
public static FileConfig getPluginConfig() {
return pluginConfiguration;
}
MessagesInitializer.initialize(messageConfiguration, PluginMessages.class);
public static FileConfig getMessageConfig() {
return messageConfiguration;
}
return true;
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
}
public static void reload() {
try {
getPluginConfig().reload();
getMessageConfig().reload();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static FileConfig getPluginConfig() {
return pluginConfiguration;
}
public static void saveConfig() {
try {
getPluginConfig().save();
getMessageConfig().save();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static MessagesConfig getMessageConfig() {
return messageConfiguration;
}
public static void reload() {
try {
getPluginConfig().reload();
getMessageConfig().reload();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void saveConfig() {
try {
getPluginConfig().save();
getMessageConfig().save();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

View File

@ -166,7 +166,7 @@ public class DepositoryManager {
collectItemEvent.getUserData().addItemAmount(depository.getIdentifier(), typeID, finalAmount);
if (!player.hasPermission("UltraDepository.silent")) {
PluginMessages.COLLECTED.send(player, new Object[]{
PluginMessages.ITEM_COLLECT.send(player, new Object[]{
depository.getItems().get(typeID).getName(),
finalAmount, depository.getName()
});

View File

@ -89,7 +89,7 @@ public class EconomyManager {
player, depositoryItem, changes[0] + amount, changes[0], money
));
PluginMessages.SOLD.send(player, new Object[]{depositoryItem.getName(), amount, money});
PluginMessages.ITEM_SOLD.send(player, new Object[]{depositoryItem.getName(), amount, money});
if (playSound) PluginConfig.Sounds.SELL_SUCCESS.play(player);
}

View File

@ -78,7 +78,7 @@ public class DepositoryGUI extends GUI {
int pickupAmount = Math.min(itemData.getAmount(), item.getMaterial().getMaxStackSize());
userData.removeItemAmount(item.getDepository().getIdentifier(), item.getTypeID(), pickupAmount);
player.getInventory().addItem(item.getRawItem(pickupAmount));
PluginMessages.PICKUP.send(player, new Object[]{
PluginMessages.ITEM_PICKUP.send(player, new Object[]{
item.getName(), pickupAmount
});
setupItems(); //刷新GUI

View File

@ -1,58 +0,0 @@
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您取出了 &r%(item)&7x%(amount) &f已自动放入到您的仓库中。"
item-sold:
- "&f您出售了 &r%(item)&7x%(amount) &f共赚取 &6%(money) &f元。"
item-sold-limit:
- "&f该物品今日剩余可出售额度为 &a%(amount)&8/%(limit) &f个。"
no-economy:
- "&f本服务器暂未启用出售功能。"
no-space:
- "&f您仓库内没有足够的空间取出物品"
no-depository:
- "&f不存在该仓库请检查仓库ID是否正确。"
no-item:
- "&f仓库中不存在该物品请检查物品ID是否正确。"
no-enough-item:
- "&f仓库中不存在足够的物品。"
wrong-number:
- "&f数目输入错误请输入正确的数字"