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)) ### 仓库配置文件 ([depositories/<仓库ID>.yml](.examples/depositories/full-example.yml))

View File

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

View File

@ -29,457 +29,457 @@ import java.util.stream.Collectors;
public class DepositoryCommand implements CommandExecutor, TabCompleter { public class DepositoryCommand implements CommandExecutor, TabCompleter {
private boolean helpConsole(CommandSender sender) { private boolean helpConsole(CommandSender sender) {
PluginMessages.HELP_CONSOLE.send(sender); PluginMessages.Usages.CONSOLE.send(sender);
return true; return true;
} }
private boolean helpPlayer(Player player) { private boolean helpPlayer(Player player) {
PluginMessages.HELP_PLAYER.send(player); PluginMessages.Usages.PLAYER.send(player);
return true; return true;
} }
@Override @Override
public boolean onCommand( public boolean onCommand(
@NotNull CommandSender sender, @NotNull Command command, @NotNull CommandSender sender, @NotNull Command command,
@NotNull String alias, @NotNull String[] args) { @NotNull String alias, @NotNull String[] args) {
if (sender instanceof Player) { if (sender instanceof Player) {
Player player = (Player) sender; Player player = (Player) sender;
if (args.length < 1) return helpPlayer(player); if (args.length < 1) return helpPlayer(player);
switch (args[0].toLowerCase()) { switch (args[0].toLowerCase()) {
case "open": { case "open": {
if (!player.hasPermission("UltraDepository.use")) { if (!player.hasPermission("UltraDepository.use")) {
return false; return false;
} }
if (args.length < 2) return helpPlayer(player); if (args.length < 2) return helpPlayer(player);
Depository depository = UltraDepository.getDepositoryManager().getDepository(args[1]); Depository depository = UltraDepository.getDepositoryManager().getDepository(args[1]);
if (depository == null) { if (depository == null) {
PluginMessages.NO_DEPOSITORY.send(player); PluginMessages.NO_DEPOSITORY.send(player);
return true; return true;
} }
DepositoryGUI.open((Player) sender, depository); DepositoryGUI.open((Player) sender, depository);
return true; return true;
} }
case "sell": { case "sell": {
if (!player.hasPermission("UltraDepository.Command.Sell")) { if (!player.hasPermission("UltraDepository.Command.Sell")) {
return false; return false;
} }
if (!UltraDepository.getEconomyManager().isInitialized()) { if (!UltraDepository.getEconomyManager().isInitialized()) {
PluginConfig.Sounds.SELL_FAIL.play(player); PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ECONOMY.send(player); PluginMessages.NO_ECONOMY.send(player);
return true; return true;
} }
if (args.length < 4) return helpPlayer(player); if (args.length < 4) return helpPlayer(player);
Depository depository = UltraDepository.getDepositoryManager().getDepository(args[1]); Depository depository = UltraDepository.getDepositoryManager().getDepository(args[1]);
if (depository == null) { if (depository == null) {
PluginConfig.Sounds.SELL_FAIL.play(player); PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_DEPOSITORY.send(player); PluginMessages.NO_DEPOSITORY.send(player);
return true; return true;
} }
DepositoryItem item = depository.getItems().get(args[2]); DepositoryItem item = depository.getItems().get(args[2]);
if (item == null) { if (item == null) {
PluginConfig.Sounds.SELL_FAIL.play(player); PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ITEM.send(player); PluginMessages.NO_ITEM.send(player);
return true; return true;
} }
int amount = -1; int amount = -1;
try { try {
amount = Integer.parseInt(args[3]); amount = Integer.parseInt(args[3]);
} catch (Exception ignore) { } catch (Exception ignore) {
} }
if (amount <= 0) { if (amount <= 0) {
PluginConfig.Sounds.SELL_FAIL.play(player); PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.WRONG_NUMBER.send(player); PluginMessages.WRONG_NUMBER.send(player);
return true; return true;
} }
UserData userData = UltraDepository.getUserManager().getData(player); UserData userData = UltraDepository.getUserManager().getData(player);
DepositoryItemData itemData = userData.getItemData(item); DepositoryItemData itemData = userData.getItemData(item);
int limit = item.getLimit(); int limit = item.getLimit();
int sold = itemData.getSold(); int sold = itemData.getSold();
int currentAmount = itemData.getAmount(); int currentAmount = itemData.getAmount();
if (currentAmount < amount) { if (currentAmount < amount) {
PluginConfig.Sounds.SELL_FAIL.play(player); PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ENOUGH_ITEM.send(player); PluginMessages.NO_ENOUGH_ITEM.send(player);
return true; return true;
} }
if (amount > (limit - sold)) { if (amount > (limit - sold)) {
PluginConfig.Sounds.SELL_FAIL.play(player); PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.ITEM_SOLD_LIMIT.send(player, new Object[]{(limit - sold), limit}); PluginMessages.ITEM_SOLD_LIMIT.send(player, new Object[]{(limit - sold), limit});
return true; return true;
} }
UltraDepository.getEconomyManager().sellItem(player, userData, item, amount); UltraDepository.getEconomyManager().sellItem(player, userData, item, amount);
return true; return true;
} }
case "sellall": { case "sellall": {
if (!player.hasPermission("UltraDepository.Command.SellAll")) { if (!player.hasPermission("UltraDepository.Command.SellAll")) {
return false; return false;
} }
if (!UltraDepository.getEconomyManager().isInitialized()) { if (!UltraDepository.getEconomyManager().isInitialized()) {
PluginConfig.Sounds.SELL_FAIL.play(player); PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ECONOMY.send(player); PluginMessages.NO_ECONOMY.send(player);
return true; return true;
} }
UserData userData = UltraDepository.getUserManager().getData(player); UserData userData = UltraDepository.getUserManager().getData(player);
String depositoryID = args.length >= 2 ? args[1] : null; String depositoryID = args.length >= 2 ? args[1] : null;
String itemID = args.length >= 3 ? args[2] : null; String itemID = args.length >= 3 ? args[2] : null;
Depository depository = null; Depository depository = null;
if (depositoryID != null) { if (depositoryID != null) {
depository = UltraDepository.getDepositoryManager().getDepository(depositoryID); depository = UltraDepository.getDepositoryManager().getDepository(depositoryID);
if (depository == null) { if (depository == null) {
PluginConfig.Sounds.SELL_FAIL.play(player); PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_DEPOSITORY.send(player); PluginMessages.NO_DEPOSITORY.send(player);
return true; return true;
} }
} }
if (depository == null) { if (depository == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData); UltraDepository.getEconomyManager().sellAllItem(player, userData);
sender.sendMessage("Success! " + player.getName() + "'s items had been sold."); sender.sendMessage("Success! " + player.getName() + "'s items had been sold.");
return true; return true;
} }
DepositoryItem item = null; DepositoryItem item = null;
if (itemID != null) { if (itemID != null) {
item = depository.getItems().get(itemID); item = depository.getItems().get(itemID);
if (item == null) { if (item == null) {
PluginConfig.Sounds.SELL_FAIL.play(player); PluginConfig.Sounds.SELL_FAIL.play(player);
PluginMessages.NO_ITEM.send(player); PluginMessages.NO_ITEM.send(player);
return true; return true;
} }
} }
if (item == null) { if (item == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData, depository); UltraDepository.getEconomyManager().sellAllItem(player, userData, depository);
return true; return true;
} }
UltraDepository.getEconomyManager().sellAllItem(player, userData, item); UltraDepository.getEconomyManager().sellAllItem(player, userData, item);
return true; return true;
} }
default: default:
return helpPlayer(player); return helpPlayer(player);
} }
} else { } else {
if (args.length < 1) return helpConsole(sender); if (args.length < 1) return helpConsole(sender);
switch (args[0].toLowerCase()) { switch (args[0].toLowerCase()) {
case "info": { case "info": {
if (args.length < 2) return helpConsole(sender); if (args.length < 2) return helpConsole(sender);
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
if (player == null) { if (player == null) {
sender.sendMessage("Player does not exist."); sender.sendMessage("Player does not exist.");
return false; return false;
} }
UserData userData = UltraDepository.getUserManager().getData(player); UserData userData = UltraDepository.getUserManager().getData(player);
String depositoryID = args.length >= 3 ? args[2] : null; String depositoryID = args.length >= 3 ? args[2] : null;
String itemID = args.length >= 4 ? args[3] : null; String itemID = args.length >= 4 ? args[3] : null;
Depository depository = null; Depository depository = null;
if (depositoryID != null) { if (depositoryID != null) {
depository = UltraDepository.getDepositoryManager().getDepository(depositoryID); depository = UltraDepository.getDepositoryManager().getDepository(depositoryID);
if (depository == null) { if (depository == null) {
PluginMessages.NO_DEPOSITORY.send(player); PluginMessages.NO_DEPOSITORY.send(player);
return true; return true;
} }
} }
sender.sendMessage(ColorParser.parse("&fInfo &6" + player.getName() + " &f:")); sender.sendMessage(ColorParser.parse("&fInfo &6" + player.getName() + " &f:"));
if (depository == null) { if (depository == null) {
userData.getDepositories().values().forEach(depositoryData -> { userData.getDepositories().values().forEach(depositoryData -> {
MessageUtils.send(sender, "&8# &e" + depositoryData.getIdentifier()); MessageUtils.send(sender, "&8# &e" + depositoryData.getIdentifier());
depositoryData.getContents().values().forEach(itemData -> { depositoryData.getContents().values().forEach(itemData -> {
String typeID = itemData.getSource().getTypeID(); String typeID = itemData.getSource().getTypeID();
int amount = itemData.getAmount(); int amount = itemData.getAmount();
int sold = itemData.getSold(); int sold = itemData.getSold();
MessageUtils.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]"); MessageUtils.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]");
}); });
}); });
return true; return true;
} }
DepositoryItem item = null; DepositoryItem item = null;
if (itemID != null) { if (itemID != null) {
item = depository.getItems().get(itemID); item = depository.getItems().get(itemID);
if (item == null) { if (item == null) {
PluginMessages.NO_ITEM.send(player); PluginMessages.NO_ITEM.send(player);
return true; return true;
} }
} }
if (item == null) { if (item == null) {
DepositoryData depositoryData = userData.getDepositoryData(depository); DepositoryData depositoryData = userData.getDepositoryData(depository);
MessageUtils.send(sender, "&8# &e" + depositoryData.getIdentifier()); MessageUtils.send(sender, "&8# &e" + depositoryData.getIdentifier());
depositoryData.getContents().values().forEach(itemData -> { depositoryData.getContents().values().forEach(itemData -> {
String typeID = itemData.getSource().getTypeID(); String typeID = itemData.getSource().getTypeID();
int amount = itemData.getAmount(); int amount = itemData.getAmount();
int sold = itemData.getSold(); int sold = itemData.getSold();
MessageUtils.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]"); MessageUtils.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]");
}); });
return true; return true;
} }
DepositoryItemData itemData = userData.getItemData(item); DepositoryItemData itemData = userData.getItemData(item);
String typeID = itemData.getSource().getTypeID(); String typeID = itemData.getSource().getTypeID();
int amount = itemData.getAmount(); int amount = itemData.getAmount();
int sold = itemData.getSold(); int sold = itemData.getSold();
MessageUtils.send(sender, "&8# &e" + depository.getIdentifier()); MessageUtils.send(sender, "&8# &e" + depository.getIdentifier());
MessageUtils.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]"); MessageUtils.send(sender, "&8- &f" + typeID + " &7[&f " + amount + "&8|&f " + sold + "&7]");
return true; return true;
} }
case "add": { case "add": {
if (args.length < 5) return true; if (args.length < 5) return true;
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
if (player == null) { if (player == null) {
sender.sendMessage("Player does not exist."); sender.sendMessage("Player does not exist.");
return false; return false;
} }
Depository depository = UltraDepository.getDepositoryManager().getDepository(args[2]); Depository depository = UltraDepository.getDepositoryManager().getDepository(args[2]);
if (depository == null) { if (depository == null) {
PluginMessages.NO_DEPOSITORY.send(sender); PluginMessages.NO_DEPOSITORY.send(sender);
return true; return true;
} }
DepositoryItem item = depository.getItems().get(args[3]); DepositoryItem item = depository.getItems().get(args[3]);
if (item == null) { if (item == null) {
PluginMessages.NO_ITEM.send(sender); PluginMessages.NO_ITEM.send(sender);
return true; return true;
} }
int amount = -1; int amount = -1;
try { try {
amount = Integer.parseInt(args[4]); amount = Integer.parseInt(args[4]);
} catch (Exception ignore) { } catch (Exception ignore) {
} }
if (amount <= 0) { if (amount <= 0) {
PluginMessages.WRONG_NUMBER.send(sender); PluginMessages.WRONG_NUMBER.send(sender);
return true; return true;
} }
Integer after = UltraDepository.getUserManager().getData(player) Integer after = UltraDepository.getUserManager().getData(player)
.addItemAmount(depository.getIdentifier(), item.getTypeID(), amount); .addItemAmount(depository.getIdentifier(), item.getTypeID(), amount);
if (after != null) { if (after != null) {
sender.sendMessage("Success! Now " + player.getName() + "'s " + item.getTypeID() + " is " + after + " ."); sender.sendMessage("Success! Now " + player.getName() + "'s " + item.getTypeID() + " is " + after + " .");
} else { } else {
sender.sendMessage("Failed!"); sender.sendMessage("Failed!");
} }
return true; return true;
} }
case "remove": { case "remove": {
if (args.length < 4) return true; if (args.length < 4) return true;
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
if (player == null) { if (player == null) {
sender.sendMessage("Player does not exist."); sender.sendMessage("Player does not exist.");
return false; return false;
} }
Depository depository = UltraDepository.getDepositoryManager().getDepository(args[2]); Depository depository = UltraDepository.getDepositoryManager().getDepository(args[2]);
if (depository == null) { if (depository == null) {
PluginMessages.NO_DEPOSITORY.send(sender); PluginMessages.NO_DEPOSITORY.send(sender);
return true; return true;
} }
DepositoryItem item = depository.getItems().get(args[3]); DepositoryItem item = depository.getItems().get(args[3]);
if (item == null) { if (item == null) {
PluginMessages.NO_ITEM.send(sender); PluginMessages.NO_ITEM.send(sender);
return true; return true;
} }
Integer amount = null; Integer amount = null;
try { try {
amount = Integer.parseInt(args[4]); amount = Integer.parseInt(args[4]);
} catch (Exception ignore) { } catch (Exception ignore) {
} }
if (amount != null && amount < 0) { if (amount != null && amount < 0) {
PluginMessages.WRONG_NUMBER.send(sender); PluginMessages.WRONG_NUMBER.send(sender);
return true; return true;
} }
UserData userData = UltraDepository.getUserManager().getData(player); UserData userData = UltraDepository.getUserManager().getData(player);
if (amount != null) { if (amount != null) {
Integer after = userData.removeItemAmount(depository.getIdentifier(), item.getTypeID(), amount); Integer after = userData.removeItemAmount(depository.getIdentifier(), item.getTypeID(), amount);
if (after != null) { if (after != null) {
sender.sendMessage("Success! Now " + player.getName() + "'s " + item.getTypeID() + " is " + after + " ."); sender.sendMessage("Success! Now " + player.getName() + "'s " + item.getTypeID() + " is " + after + " .");
} else { } else {
sender.sendMessage("Failed!"); sender.sendMessage("Failed!");
} }
} else { } else {
userData.setItemAmount(depository.getIdentifier(), item.getTypeID(), 0); userData.setItemAmount(depository.getIdentifier(), item.getTypeID(), 0);
sender.sendMessage("Success! Cleared " + player.getName() + "'s " + item.getTypeID() + " ."); sender.sendMessage("Success! Cleared " + player.getName() + "'s " + item.getTypeID() + " .");
} }
return true; return true;
} }
case "sell": { case "sell": {
if (args.length < 2) return true; if (args.length < 2) return true;
Player player = Bukkit.getPlayer(args[1]); Player player = Bukkit.getPlayer(args[1]);
if (player == null) { if (player == null) {
sender.sendMessage("Player does not exist."); sender.sendMessage("Player does not exist.");
return false; return false;
} }
String depositoryID = args.length >= 3 ? args[2] : null; String depositoryID = args.length >= 3 ? args[2] : null;
String itemID = args.length >= 4 ? args[3] : null; String itemID = args.length >= 4 ? args[3] : null;
Depository depository = null; Depository depository = null;
if (depositoryID != null) { if (depositoryID != null) {
depository = UltraDepository.getDepositoryManager().getDepository(depositoryID); depository = UltraDepository.getDepositoryManager().getDepository(depositoryID);
if (depository == null) { if (depository == null) {
PluginMessages.NO_DEPOSITORY.send(sender); PluginMessages.NO_DEPOSITORY.send(sender);
return true; return true;
} }
} }
UserData userData = UltraDepository.getUserManager().getData(player); UserData userData = UltraDepository.getUserManager().getData(player);
if (depository == null) { if (depository == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData); UltraDepository.getEconomyManager().sellAllItem(player, userData);
sender.sendMessage("Success! " + player.getName() + "'s items had been sold."); sender.sendMessage("Success! " + player.getName() + "'s items had been sold.");
return true; return true;
} }
DepositoryItem item = null; DepositoryItem item = null;
if (itemID != null) { if (itemID != null) {
item = depository.getItems().get(itemID); item = depository.getItems().get(itemID);
if (item == null) { if (item == null) {
PluginMessages.NO_ITEM.send(player); PluginMessages.NO_ITEM.send(player);
return true; return true;
} }
} }
if (item == null) { if (item == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData, depository); UltraDepository.getEconomyManager().sellAllItem(player, userData, depository);
sender.sendMessage("Success! " + player.getName() + "'s " + depository.getIdentifier() + " had been sold."); sender.sendMessage("Success! " + player.getName() + "'s " + depository.getIdentifier() + " had been sold.");
return true; return true;
} }
Integer amount = null; Integer amount = null;
if (args.length >= 5) { if (args.length >= 5) {
try { try {
amount = Integer.parseInt(args[4]); amount = Integer.parseInt(args[4]);
} catch (Exception ignore) { } catch (Exception ignore) {
} }
} }
if (amount != null && amount < 0) { if (amount != null && amount < 0) {
PluginMessages.WRONG_NUMBER.send(sender); PluginMessages.WRONG_NUMBER.send(sender);
return true; return true;
} }
if (amount == null) { if (amount == null) {
UltraDepository.getEconomyManager().sellAllItem(player, userData, item); UltraDepository.getEconomyManager().sellAllItem(player, userData, item);
sender.sendMessage("Success! " + player.getName() + "'s " + item.getTypeID() + " had been sold."); sender.sendMessage("Success! " + player.getName() + "'s " + item.getTypeID() + " had been sold.");
return true; return true;
} }
DepositoryItemData itemData = userData.getItemData(item); DepositoryItemData itemData = userData.getItemData(item);
int limit = item.getLimit(); int limit = item.getLimit();
int sold = itemData.getSold(); int sold = itemData.getSold();
int currentAmount = itemData.getAmount(); int currentAmount = itemData.getAmount();
if (currentAmount < amount) { if (currentAmount < amount) {
PluginMessages.NO_ENOUGH_ITEM.send(sender); PluginMessages.NO_ENOUGH_ITEM.send(sender);
return true; return true;
} }
if (currentAmount > (limit - sold)) { if (currentAmount > (limit - sold)) {
PluginMessages.ITEM_SOLD_LIMIT.send(sender, new Object[]{(limit - sold), limit}); PluginMessages.ITEM_SOLD_LIMIT.send(sender, new Object[]{(limit - sold), limit});
return true; return true;
} }
UltraDepository.getEconomyManager().sellItem(player, userData, item, amount); UltraDepository.getEconomyManager().sellItem(player, userData, item, amount);
sender.sendMessage("Success! " + player.getName() + "'s " + amount + " " + item.getTypeID() + " had been sold."); sender.sendMessage("Success! " + player.getName() + "'s " + amount + " " + item.getTypeID() + " had been sold.");
return true; return true;
} }
default: default:
return helpConsole(sender); return helpConsole(sender);
} }
} }
} }
@Nullable @Nullable
@Override @Override
public List<String> onTabComplete( public List<String> onTabComplete(
@NotNull CommandSender sender, @NotNull Command command, @NotNull CommandSender sender, @NotNull Command command,
@NotNull String alias, @NotNull String[] args) { @NotNull String alias, @NotNull String[] args) {
List<String> allCompletes = new ArrayList<>(); List<String> allCompletes = new ArrayList<>();
if (sender instanceof Player) { if (sender instanceof Player) {
// 玩家指令部分 // 玩家指令部分
Player player = (Player) sender; Player player = (Player) sender;
if (player.hasPermission("UltraDepository.use")) { if (player.hasPermission("UltraDepository.use")) {
switch (args.length) { switch (args.length) {
case 1: { case 1: {
allCompletes.add("open"); allCompletes.add("open");
if (player.hasPermission("UltraDepository.Command.Sell")) allCompletes.add("sell"); if (player.hasPermission("UltraDepository.Command.Sell")) allCompletes.add("sell");
if (player.hasPermission("UltraDepository.Command.SellAll")) allCompletes.add("sellAll"); if (player.hasPermission("UltraDepository.Command.SellAll")) allCompletes.add("sellAll");
break; break;
} }
case 2: { case 2: {
String aim = args[0]; String aim = args[0];
if (aim.equalsIgnoreCase("open") if (aim.equalsIgnoreCase("open")
|| (aim.equalsIgnoreCase("sell") || (aim.equalsIgnoreCase("sell")
&& player.hasPermission("UltraDepository.Command.Sell")) && player.hasPermission("UltraDepository.Command.Sell"))
|| (aim.equalsIgnoreCase("sellAll") || (aim.equalsIgnoreCase("sellAll")
&& player.hasPermission("UltraDepository.Command.SellAll"))) { && player.hasPermission("UltraDepository.Command.SellAll"))) {
allCompletes.addAll(UltraDepository.getDepositoryManager().getDepositories().keySet()); allCompletes.addAll(UltraDepository.getDepositoryManager().getDepositories().keySet());
} }
break; break;
} }
case 3: { case 3: {
String aim = args[0]; String aim = args[0];
String depositoryID = args[1]; String depositoryID = args[1];
if ((aim.equalsIgnoreCase("sell") if ((aim.equalsIgnoreCase("sell")
&& player.hasPermission("UltraDepository.Command.Sell")) && player.hasPermission("UltraDepository.Command.Sell"))
|| (aim.equalsIgnoreCase("sellAll") || (aim.equalsIgnoreCase("sellAll")
&& player.hasPermission("UltraDepository.Command.SellAll"))) { && player.hasPermission("UltraDepository.Command.SellAll"))) {
Depository depository = UltraDepository.getDepositoryManager().getDepository(depositoryID); Depository depository = UltraDepository.getDepositoryManager().getDepository(depositoryID);
if (depository != null) { if (depository != null) {
allCompletes.addAll(depository.getItems().keySet()); allCompletes.addAll(depository.getItems().keySet());
} }
} }
break; break;
} }
} }
} }
} else { } else {
//后台指令部分 //后台指令部分
switch (args.length) { switch (args.length) {
case 1: { case 1: {
allCompletes.add("info"); allCompletes.add("info");
allCompletes.add("add"); allCompletes.add("add");
allCompletes.add("remove"); allCompletes.add("remove");
allCompletes.add("sell"); allCompletes.add("sell");
break; break;
} }
case 2: { case 2: {
allCompletes = Bukkit.getOnlinePlayers().stream().map(HumanEntity::getName).collect(Collectors.toList()); allCompletes = Bukkit.getOnlinePlayers().stream().map(HumanEntity::getName).collect(Collectors.toList());
break; break;
} }
case 3: { case 3: {
allCompletes.addAll(UltraDepository.getDepositoryManager().getDepositories().keySet()); allCompletes.addAll(UltraDepository.getDepositoryManager().getDepositories().keySet());
break; break;
} }
case 4: { case 4: {
Depository depository = UltraDepository.getDepositoryManager().getDepository(args[2]); Depository depository = UltraDepository.getDepositoryManager().getDepository(args[2]);
if (depository != null) { if (depository != null) {
allCompletes.addAll(depository.getItems().keySet()); allCompletes.addAll(depository.getItems().keySet());
} }
break; break;
} }
} }
} }
return allCompletes.stream() return allCompletes.stream()
.filter(s -> StringUtil.startsWithIgnoreCase(s, args[args.length - 1])) .filter(s -> StringUtil.startsWithIgnoreCase(s, args[args.length - 1]))
.limit(10).collect(Collectors.toList()); .limit(10).collect(Collectors.toList());
} }
} }

View File

@ -1,46 +1,88 @@
package cc.carm.plugin.ultradepository.configuration; 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( public static final EasyMessageList NO_SPACE = new EasyMessageList(
"item-sold", new String[0], new String[]{ "&f您仓库内没有足够的空间取出物品"
"%(item)", "%(amount)", "%(money)" );
});
public static final ConfigMessageList PICKUP = new ConfigMessageList( public static final EasyMessageList NO_ECONOMY = new EasyMessageList(
"item-pickup", new String[0], new String[]{ "&f本服务器暂未启用出售功能。"
"%(item)", "%(amount)" );
});
public static final ConfigMessageList COLLECTED = new ConfigMessageList( public static final EasyMessageList NO_DEPOSITORY = new EasyMessageList(
"item-collected", new String[0], new String[]{ "&f不存在该仓库请检查仓库ID是否正确。"
"%(item)", "%(amount)", "%(depository)" );
});
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.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.UltraDepository;
import cc.carm.plugin.ultradepository.configuration.PluginMessages;
public class ConfigManager { public class ConfigManager {
private static FileConfig pluginConfiguration; private static FileConfig pluginConfiguration;
private static FileConfig messageConfiguration; private static MessagesConfig messageConfiguration;
public static boolean initialize() { public static boolean initialize() {
try { try {
pluginConfiguration = new FileConfig(UltraDepository.getInstance(), "config.yml"); pluginConfiguration = new FileConfig(UltraDepository.getInstance(), "config.yml");
messageConfiguration = new FileConfig(UltraDepository.getInstance(), "messages.yml"); messageConfiguration = new MessagesConfig(UltraDepository.getInstance(), "messages.yml");
FileConfig.pluginConfiguration = () -> pluginConfiguration; FileConfig.pluginConfiguration = () -> pluginConfiguration;
FileConfig.messageConfiguration = () -> messageConfiguration; FileConfig.messageConfiguration = () -> messageConfiguration;
return true;
} catch (Exception ex) {
return false;
}
}
public static FileConfig getPluginConfig() { MessagesInitializer.initialize(messageConfiguration, PluginMessages.class);
return pluginConfiguration;
}
public static FileConfig getMessageConfig() { return true;
return messageConfiguration; } catch (Exception ex) {
} ex.printStackTrace();
return false;
}
}
public static void reload() { public static FileConfig getPluginConfig() {
try { return pluginConfiguration;
getPluginConfig().reload(); }
getMessageConfig().reload();
} catch (Exception ex) {
ex.printStackTrace();
}
}
public static void saveConfig() { public static MessagesConfig getMessageConfig() {
try { return messageConfiguration;
getPluginConfig().save(); }
getMessageConfig().save();
} catch (Exception ex) { public static void reload() {
ex.printStackTrace(); 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); collectItemEvent.getUserData().addItemAmount(depository.getIdentifier(), typeID, finalAmount);
if (!player.hasPermission("UltraDepository.silent")) { if (!player.hasPermission("UltraDepository.silent")) {
PluginMessages.COLLECTED.send(player, new Object[]{ PluginMessages.ITEM_COLLECT.send(player, new Object[]{
depository.getItems().get(typeID).getName(), depository.getItems().get(typeID).getName(),
finalAmount, depository.getName() finalAmount, depository.getName()
}); });

View File

@ -89,7 +89,7 @@ public class EconomyManager {
player, depositoryItem, changes[0] + amount, changes[0], money 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); 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()); int pickupAmount = Math.min(itemData.getAmount(), item.getMaterial().getMaxStackSize());
userData.removeItemAmount(item.getDepository().getIdentifier(), item.getTypeID(), pickupAmount); userData.removeItemAmount(item.getDepository().getIdentifier(), item.getTypeID(), pickupAmount);
player.getInventory().addItem(item.getRawItem(pickupAmount)); player.getInventory().addItem(item.getRawItem(pickupAmount));
PluginMessages.PICKUP.send(player, new Object[]{ PluginMessages.ITEM_PICKUP.send(player, new Object[]{
item.getName(), pickupAmount item.getName(), pickupAmount
}); });
setupItems(); //刷新GUI 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数目输入错误请输入正确的数字"