mirror of
https://github.com/plexusorg/Plex-FAWE.git
synced 2025-07-13 14:58:35 +00:00
Fix schematic load with no specified format
This commit is contained in:
@ -31,7 +31,7 @@ public class BuiltInClipboardFormat {
|
||||
|
||||
@Deprecated
|
||||
public static final ClipboardFormat[] values() {
|
||||
return ClipboardFormat.values();
|
||||
return ClipboardFormat.values;
|
||||
}
|
||||
|
||||
@Deprecated
|
||||
|
@ -48,6 +48,7 @@ import com.sk89q.worldedit.session.ClipboardHolder;
|
||||
import com.sk89q.worldedit.world.block.BlockTypes;
|
||||
|
||||
import java.io.*;
|
||||
import java.lang.reflect.Array;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
@ -243,6 +244,8 @@ public enum ClipboardFormat {
|
||||
|
||||
;
|
||||
|
||||
public static final ClipboardFormat[] values;
|
||||
|
||||
private static final Map<String, ClipboardFormat> aliasMap;
|
||||
|
||||
static {
|
||||
@ -252,6 +255,7 @@ public enum ClipboardFormat {
|
||||
aliasMap.put(alias, emum);
|
||||
}
|
||||
}
|
||||
values = values();
|
||||
}
|
||||
|
||||
private IClipboardFormat format;
|
||||
@ -560,6 +564,18 @@ public enum ClipboardFormat {
|
||||
return aliasMap.get(alias.toLowerCase(Locale.ENGLISH).trim());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static ClipboardFormat findByExtension(String extension) {
|
||||
checkNotNull(extension);
|
||||
extension = extension.toLowerCase();
|
||||
for (ClipboardFormat format : values) {
|
||||
if (format.getFileExtensions().contains(extension)) {
|
||||
return format;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect the format given a file.
|
||||
*
|
||||
@ -584,6 +600,17 @@ public enum ClipboardFormat {
|
||||
for (String alias : newEnum.getAliases()) {
|
||||
aliasMap.put(alias, newEnum);
|
||||
}
|
||||
|
||||
ArrayList<ClipboardFormat> newValues = new ArrayList<>(Arrays.asList(values));
|
||||
newValues.add(newEnum);
|
||||
ClipboardFormat[] newValuesArray = newValues.toArray(new ClipboardFormat[newValues.size()]);
|
||||
try {
|
||||
ReflectionUtils.setFailsafeFieldValue(ClipboardFormat.class.getDeclaredField("values"), null, newValuesArray);
|
||||
} catch (NoSuchFieldException e) {
|
||||
e.printStackTrace();
|
||||
} catch (IllegalAccessException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return newEnum;
|
||||
}
|
||||
|
||||
|
@ -53,7 +53,7 @@ public class ClipboardFormats {
|
||||
public static ClipboardFormat findByFile(File file) {
|
||||
checkNotNull(file);
|
||||
|
||||
for (ClipboardFormat format : ClipboardFormat.values()) {
|
||||
for (ClipboardFormat format : ClipboardFormat.values) {
|
||||
if (format.isFormat(file)) {
|
||||
return format;
|
||||
}
|
||||
@ -67,7 +67,7 @@ public class ClipboardFormats {
|
||||
*/
|
||||
public static Multimap<String, ClipboardFormat> getFileExtensionMap() {
|
||||
HashMultimap<String, ClipboardFormat> map = HashMultimap.create();
|
||||
for (ClipboardFormat format : ClipboardFormat.values()) {
|
||||
for (ClipboardFormat format : ClipboardFormat.values) {
|
||||
for (String ext : format.getFileExtensions()) {
|
||||
map.put(ext, format);
|
||||
}
|
||||
@ -76,7 +76,7 @@ public class ClipboardFormats {
|
||||
}
|
||||
|
||||
public static Collection<ClipboardFormat> getAll() {
|
||||
return Arrays.asList(ClipboardFormat.values());
|
||||
return Arrays.asList(ClipboardFormat.values);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -86,7 +86,7 @@ public class ClipboardFormats {
|
||||
public static String[] getFileExtensionArray() {
|
||||
List<String> exts = new ArrayList<>();
|
||||
HashMultimap<String, ClipboardFormat> map = HashMultimap.create();
|
||||
for (ClipboardFormat format : ClipboardFormat.values()) {
|
||||
for (ClipboardFormat format : ClipboardFormat.values) {
|
||||
exts.addAll(format.getFileExtensions());
|
||||
}
|
||||
return exts.toArray(new String[exts.size()]);
|
||||
|
Reference in New Issue
Block a user