Skip to content
This repository was archived by the owner on Mar 8, 2022. It is now read-only.

Commit 3e236e2

Browse files
committed
support minecraft item name
1 parent f691fa6 commit 3e236e2

File tree

3 files changed

+26
-35
lines changed

3 files changed

+26
-35
lines changed

src/main/java/cat/nyaa/HamsterEcoHelper/requisition/RequisitionCommands.java

+5-7
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public void Requisition(CommandSender sender, Arguments args) {
137137
}
138138

139139
Player player = asPlayer(sender);
140-
String itemName = args.next().toUpperCase();
140+
String itemName = args.nextString().toUpperCase();
141141
ItemStack item = null;
142142
double unitPrice = args.nextDouble("#.##");
143143
int amount = args.nextInt();
@@ -155,13 +155,11 @@ public void Requisition(CommandSender sender, Arguments args) {
155155
if (itemName.equals("HAND")) {
156156
item = getItemInHand(sender).clone();
157157
} else {
158-
try {
159-
item = new ItemStack(Material.valueOf(itemName));
160-
} catch (IllegalArgumentException e) {
161-
msg(sender, "user.error.unknown_item", itemName);
162-
return;
158+
Material material = Utils.getMaterial(itemName);
159+
if (material != null) {
160+
item = new ItemStack(material);
163161
}
164-
if (!ReflectionUtils.isValidItem(item)) {
162+
if (item == null || !ReflectionUtils.isValidItem(item)) {
165163
msg(sender, "user.error.unknown_item", itemName);
166164
return;
167165
}

src/main/java/cat/nyaa/HamsterEcoHelper/signshop/SearchCommands.java

+9-19
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import cat.nyaa.HamsterEcoHelper.HamsterEcoHelper;
44
import cat.nyaa.HamsterEcoHelper.I18n;
5+
import cat.nyaa.HamsterEcoHelper.utils.Utils;
56
import cat.nyaa.HamsterEcoHelper.utils.database.tables.signshop.Sign;
67
import cat.nyaa.HamsterEcoHelper.utils.database.tables.signshop.SignShop;
78
import cat.nyaa.nyaacore.CommandReceiver;
89
import cat.nyaa.nyaacore.LanguageRepository;
910
import cat.nyaa.nyaacore.Message;
11+
import cat.nyaa.nyaacore.utils.ReflectionUtils;
1012
import com.google.common.cache.Cache;
1113
import com.google.common.cache.CacheBuilder;
1214
import com.google.common.collect.ImmutableSet;
@@ -105,26 +107,14 @@ public void search(CommandSender sender, Arguments args) {
105107
boolean matchEnch = matchEnchOnly || advancedOption.contains("ench");
106108
final int rangeLimit = player == null ? -1 : args.argInt("r", args.argInt("range", -1));
107109
final Material materialLimit;
108-
try {
109-
if (itemLimit != null) {
110-
int id;
111-
try {
112-
id = Integer.parseInt(itemLimit);
113-
} catch (NumberFormatException e) {
114-
id = -1;
115-
}
116-
if (id == -1) {
117-
materialLimit = Material.valueOf(itemLimit.toUpperCase());
118-
} else {
119-
materialLimit = Material.getMaterial(id);
120-
if (materialLimit == null) throw new IllegalArgumentException();
121-
}
122-
} else {
123-
materialLimit = null;
110+
if (itemLimit != null) {
111+
materialLimit = Utils.getMaterial(itemLimit);
112+
if (materialLimit == null || materialLimit == Material.AIR || !ReflectionUtils.isValidItem(new ItemStack(materialLimit))) {
113+
msg(sender, "user.error.unknown_item", itemLimit);
114+
return;
124115
}
125-
} catch (IllegalArgumentException e) {
126-
msg(sender, "user.error.unknown_item", itemLimit);
127-
return;
116+
} else {
117+
materialLimit = null;
128118
}
129119
while (args.top() != null) {
130120
keywords.add(args.next().toLowerCase());

src/main/java/cat/nyaa/HamsterEcoHelper/utils/Utils.java

+12-9
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,17 @@
22

33
import cat.nyaa.HamsterEcoHelper.HamsterEcoHelper;
44
import cat.nyaa.nyaacore.utils.InventoryUtils;
5-
import cat.nyaa.nyaacore.utils.ItemStackUtils;
6-
import cat.nyaa.nyaacore.utils.ReflectionUtils;
7-
import com.google.common.io.BaseEncoding;
85
import org.bukkit.Bukkit;
6+
import org.bukkit.Material;
97
import org.bukkit.OfflinePlayer;
108
import org.bukkit.entity.Player;
119
import org.bukkit.inventory.ItemStack;
1210
import org.librazy.nyaautils_lang_checker.LangKey;
1311
import org.librazy.nyaautils_lang_checker.LangKeyType;
1412

15-
import java.io.ByteArrayOutputStream;
16-
import java.io.IOException;
17-
import java.util.ArrayList;
1813
import java.util.List;
1914
import java.util.Random;
2015
import java.util.function.Function;
21-
import java.util.zip.DataFormatException;
22-
import java.util.zip.Deflater;
23-
import java.util.zip.Inflater;
2416

2517
public class Utils {
2618
public static final Random random = new Random();
@@ -97,4 +89,15 @@ public static String getItemName(ItemStack item) {
9789
}
9890
return itemName;
9991
}
92+
93+
@SuppressWarnings("deprecation")
94+
public static Material getMaterial(String name) {
95+
Material m = null;
96+
if (name.toLowerCase().contains("minecraft:")) {
97+
m = Bukkit.getServer().getUnsafe().getMaterialFromInternalName(name);
98+
} else {
99+
m = Material.matchMaterial(name);
100+
}
101+
return m;
102+
}
100103
}

0 commit comments

Comments
 (0)