Я только недавно начал программировать плагины Bukkit для личного использования и в учебных целях. Я решил сделать глобальный магазин из командной строки, так как не хочу создавать магазин в игре. Вот код, который у меня есть сейчас:
package me.rougelong.globalshop;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.PluginDescriptionFile;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.Material;
import java.util.logging.Logger;
public class globalshop extends JavaPlugin{
public final Logger logger = Logger.getLogger("Minecraft");
public static globalshop plugin;
@Override
public void onDisable() {
PluginDescriptionFile pdfFile = this.getDescription();
this.logger.info(pdfFile.getName() + " Has Been Disabled!");
}
@Override
public void onEnable() {
PluginDescriptionFile pdfFile = this.getDescription();
this.logger.info(pdfFile.getName() + " Version " + pdfFile.getVersion() + " Has Been Enabled!");
}
public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
String itemName = args[0];
String amount = args[1];
if (args.length > 4 && commandLabel.equalsIgnoreCase("shopcheck")) {
sender.sendMessage(ChatColor.RED + "Too many arguments! /shopcheck [item_name] [quantity]");
return false;
}
if (args.length < 2 && commandLabel.equalsIgnoreCase("shopcheck")) {
sender.sendMessage(ChatColor.RED + "Not enough arguments! /shopcheck [item_name] [quantity]");
return false;
}
if (args.length > 4 && commandLabel.equalsIgnoreCase("shopbuy")) {
sender.sendMessage(ChatColor.RED + "Too many arguments! /shopbuy [item_name] [quantity]");
return false;
}
if (args.length < 2 && commandLabel.equalsIgnoreCase("shopbuy")) {
sender.sendMessage(ChatColor.RED + "Not enough arguments! /shopbuy [item_name] [quantity]");
return false;
}
if (args.length > 4 && commandLabel.equalsIgnoreCase("shopsell")) {
sender.sendMessage(ChatColor.RED + "Too many arguments! /shopsell [item_name] [quantity]");
return false;
}
if (args.length < 2 && commandLabel.equalsIgnoreCase("shopsell")) {
sender.sendMessage(ChatColor.RED + "Not enough arguments! /shopsell [item_name] [quantity]");
return false;
}
if (commandLabel.equalsIgnoreCase("shopcheck")){
//I need to get it to compare HERE. :P
return false;
}
return false;
}
}
Мне нужно, чтобы сравнить itemName или args[0] (будет строкой. Пример: «булыжник») со всеми возможными элементами, и я бы предпочел не записывать все элементы в этот плагин, я был интересно, как ссылаться на списки элементов в Bukkit. Я не уверен, будут ли это блоки, материалы или что-то еще.
Мой вопрос (ы): что мне нужно импортировать, чтобы правильно сравнить аргумент? Какой код я бы использовал для сравнения этого единственного аргумента со всеми элементами, чтобы он мог его идентифицировать?
Как только этот код будет понят и заработает, я перейду к тому, чтобы он определил цену, указанную либо в этой программе (надеюсь, нет), либо в отдельном файле. И затем заставить его проверить баланс отправляющего игрока, чтобы узнать, могут ли они его купить, а затем вычесть деньги и добавить предмет в свой инвентарь, не удаляя что-то еще, что у них есть в руке.