Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,11 @@
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;

public class ItemManagerCommand implements CommandExecutor {
private CommandSender sender;
private String[] args;

void printHelp() {
void printHelp(CommandSender sender) {
sender.sendMessage("帮助:严格按照格式执行");
sender.sendMessage("创建类型: /im create <类型ID>");
sender.sendMessage("加入物品: /im add <类型ID> <商品ID>");
Expand All @@ -22,54 +21,75 @@ public boolean onCommand(CommandSender sender, Command command, String label, St
if (!sender.isOp()) {
return false;
}
this.sender = sender;
this.args = args;
if (args.length == 0) {
printHelp();
printHelp(sender);
return true;
}
switch (args[0].toLowerCase()) {
case "create":
create();
create(sender, args);
break;
case "add":
add();
add(sender, args);
break;
case "give":
give();
case "get":
get(sender, args);
break;
case "list":
list();
list(sender);
break;
default:
}
return true;
}

private void create() {
private void create(CommandSender sender, String[] args) {
if (args.length < 2) {
sender.sendMessage("参数不足: /im create <类型ID>");
return;
}
String sortId = args[1];
ItemManager.getItemSort().createSort(sortId);
sender.sendMessage("Ok");
}

private void add() {
private void add(CommandSender sender, String[] args) {
if (args.length < 3) {
sender.sendMessage("参数不足: /im add <类型ID> <商品ID>");
return;
}
if (!(sender instanceof Player)) {
sender.sendMessage("只有玩家可以执行此命令");
return;
}
String sortId = args[1];
String itemId = args[2];
ItemManager.getItemSort().addItem(sortId, itemId,
((Player) sender).getInventory().getItemInMainHand());
sender.sendMessage("Ok");
}

private void give() {
private void get(CommandSender sender, String[] args) {
if (args.length < 3) {
sender.sendMessage("参数不足: /im get <类型ID> <商品ID>");
return;
}
if (!(sender instanceof Player)) {
sender.sendMessage("只有玩家可以执行此命令");
return;
}
String sortId = args[1];
String itemId = args[2];
((Player) sender).getInventory().addItem(
ItemManager.getItemSort().getItem(sortId, itemId)
);
sender.sendMessage("Ok");
ItemStack item = ItemManager.getItemSort().getItem(sortId, itemId);
if (item != null) {
((Player) sender).getInventory().addItem(item);
sender.sendMessage("Ok");
} else {
sender.sendMessage("物品不存在");
}
}

private void list() {
private void list(CommandSender sender) {
sender.sendMessage(ItemManager.getItemSort().listAll());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ public void addItem(String id1, String id2, ItemStack itemStack) {
}

public ItemStack getItem(String id1, String id2) {
if (!itemsHashMap.containsKey(id1)) {
return null;
}
return itemsHashMap.get(id1).getItemStackHashMap().get(id2);
}

Expand Down