forked from LogBlock/LogBlock
Merge branch 'master' into pretty-chat
This commit is contained in:
@ -15,6 +15,7 @@ import org.bukkit.entity.EntityType;
|
|||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import static de.diddiz.LogBlock.Session.getSession;
|
import static de.diddiz.LogBlock.Session.getSession;
|
||||||
import static de.diddiz.LogBlock.config.Config.*;
|
import static de.diddiz.LogBlock.config.Config.*;
|
||||||
@ -780,6 +781,34 @@ public final class QueryParams implements Cloneable {
|
|||||||
typeIds.add(MaterialConverter.getOrAddMaterialId(mat.getKey()));
|
typeIds.add(MaterialConverter.getOrAddMaterialId(mat.getKey()));
|
||||||
}
|
}
|
||||||
typeTags.add(tag);
|
typeTags.add(tag);
|
||||||
|
} else if (blockName.contains("*")) {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
for (int ci = 0; ci < blockName.length(); ci++) {
|
||||||
|
char c = blockName.charAt(ci);
|
||||||
|
if (!Character.isAlphabetic(c)) {
|
||||||
|
if (c == '*') {
|
||||||
|
sb.append('.');
|
||||||
|
} else {
|
||||||
|
sb.append('\\');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sb.append(c);
|
||||||
|
}
|
||||||
|
String blockNamePattern = sb.toString();
|
||||||
|
Pattern pattern = Pattern.compile(blockNamePattern, Pattern.CASE_INSENSITIVE);
|
||||||
|
ArrayList<Material> matched = new ArrayList<>();
|
||||||
|
for (Material mat : Material.values()) {
|
||||||
|
if (pattern.matcher(mat.name()).matches()) {
|
||||||
|
matched.add(mat);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (matched.isEmpty()) {
|
||||||
|
throw new IllegalArgumentException("No material matching: '" + blockName + "'");
|
||||||
|
}
|
||||||
|
for (Material mat : matched) {
|
||||||
|
types.add(mat);
|
||||||
|
typeIds.add(MaterialConverter.getOrAddMaterialId(mat.getKey()));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
final Material mat = Material.matchMaterial(blockName);
|
final Material mat = Material.matchMaterial(blockName);
|
||||||
if (mat == null) {
|
if (mat == null) {
|
||||||
|
Reference in New Issue
Block a user