1
mirror of https://github.com/StarWishsama/Slimefun4.git synced 2024-09-20 03:35:51 +00:00

@poma123 for the rescue

This commit is contained in:
TheBusyBiscuit 2020-10-04 13:40:41 +02:00
parent 655b429f0d
commit b32dc0b727
17 changed files with 35 additions and 48 deletions

View File

@ -50,7 +50,7 @@ public enum MinecraftVersion {
*/ */
UNIT_TEST("Unit Test Environment"); UNIT_TEST("Unit Test Environment");
public static final MinecraftVersion[] values = values(); public static final MinecraftVersion[] valuesCache = values();
private final String name; private final String name;
private final String prefix; private final String prefix;

View File

@ -28,13 +28,14 @@ import io.github.thebusybiscuit.slimefun4.implementation.listeners.BackpackListe
*/ */
public class PlayerBackpack { public class PlayerBackpack {
private static final String CONFIG_PREFIX = "backpacks.";
private final PlayerProfile profile; private final PlayerProfile profile;
private final int id; private final int id;
private final Config cfg; private final Config cfg;
private Inventory inventory; private Inventory inventory;
private int size; private int size;
private static final String CONFIG_PREFIX = "backpacks.";
/** /**
* This constructor loads an existing Backpack * This constructor loads an existing Backpack

View File

@ -31,6 +31,6 @@ public enum SlimefunGuideLayout {
*/ */
CHEAT_SHEET; CHEAT_SHEET;
public static final SlimefunGuideLayout[] values = values(); public static final SlimefunGuideLayout[] valuesCache = values();
} }

View File

@ -101,7 +101,7 @@ class GuideLayoutOption implements SlimefunGuideOption<SlimefunGuideLayout> {
@Override @Override
public Optional<SlimefunGuideLayout> getSelectedOption(Player p, ItemStack guide) { public Optional<SlimefunGuideLayout> getSelectedOption(Player p, ItemStack guide) {
for (SlimefunGuideLayout layout : SlimefunGuideLayout.values) { for (SlimefunGuideLayout layout : SlimefunGuideLayout.valuesCache) {
if (SlimefunUtils.isItemSimilar(guide, SlimefunGuide.getItem(layout), true, false)) { if (SlimefunUtils.isItemSimilar(guide, SlimefunGuide.getItem(layout), true, false)) {
return Optional.of(layout); return Optional.of(layout);
} }

View File

@ -85,7 +85,7 @@ public abstract class SlimefunLocalization extends Localization implements Keyed
protected abstract void addLanguage(@Nonnull String id, @Nonnull String texture); protected abstract void addLanguage(@Nonnull String id, @Nonnull String texture);
protected void loadEmbeddedLanguages() { protected void loadEmbeddedLanguages() {
for (SupportedLanguage lang : SupportedLanguage.values) { for (SupportedLanguage lang : SupportedLanguage.valuesCache) {
if (lang.isReadyForRelease() || SlimefunPlugin.getUpdater().getBranch() != SlimefunBranch.STABLE) { if (lang.isReadyForRelease() || SlimefunPlugin.getUpdater().getBranch() != SlimefunBranch.STABLE) {
addLanguage(lang.getLanguageId(), lang.getTexture()); addLanguage(lang.getLanguageId(), lang.getTexture());
} }

View File

@ -58,7 +58,7 @@ enum SupportedLanguage {
MACEDONIAN("mk", false, "a0e0b0b5d87a855466980a101a757bcdb5f77d9f7287889f3efa998ee0472fc0"), MACEDONIAN("mk", false, "a0e0b0b5d87a855466980a101a757bcdb5f77d9f7287889f3efa998ee0472fc0"),
TAGALOG("tl", true, "9306c0c1ce6a9c61bb42a572c49e6d0ed20e0e6b3d122cc64c339cbf78e9e937"); TAGALOG("tl", true, "9306c0c1ce6a9c61bb42a572c49e6d0ed20e0e6b3d122cc64c339cbf78e9e937");
public static final SupportedLanguage[] values = values(); public static final SupportedLanguage[] valuesCache = values();
private final String id; private final String id;
private final boolean releaseReady; private final boolean releaseReady;

View File

@ -31,7 +31,7 @@ public enum PerformanceRating implements Predicate<Float> {
HURTFUL(ChatColor.DARK_RED, 500), HURTFUL(ChatColor.DARK_RED, 500),
BAD(ChatColor.DARK_RED, Float.MAX_VALUE); BAD(ChatColor.DARK_RED, Float.MAX_VALUE);
public static final PerformanceRating[] values = values(); public static final PerformanceRating[] valuesCache = values();
private final ChatColor color; private final ChatColor color;
private final float threshold; private final float threshold;

View File

@ -297,7 +297,7 @@ public class SlimefunProfiler {
public PerformanceRating getPerformance() { public PerformanceRating getPerformance() {
float percentage = getPercentageOfTick(); float percentage = getPercentageOfTick();
for (PerformanceRating rating : PerformanceRating.values) { for (PerformanceRating rating : PerformanceRating.valuesCache) {
if (rating.test(percentage)) { if (rating.test(percentage)) {
return rating; return rating;
} }

View File

@ -318,7 +318,7 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
String currentVersion = ReflectionUtils.getVersion(); String currentVersion = ReflectionUtils.getVersion();
if (currentVersion.startsWith("v")) { if (currentVersion.startsWith("v")) {
for (MinecraftVersion version : MinecraftVersion.values) { for (MinecraftVersion version : MinecraftVersion.valuesCache) {
if (version.matches(currentVersion)) { if (version.matches(currentVersion)) {
minecraftVersion = version; minecraftVersion = version;
return false; return false;
@ -345,7 +345,7 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
private Collection<String> getSupportedVersions() { private Collection<String> getSupportedVersions() {
List<String> list = new ArrayList<>(); List<String> list = new ArrayList<>();
for (MinecraftVersion version : MinecraftVersion.values) { for (MinecraftVersion version : MinecraftVersion.valuesCache) {
if (version != MinecraftVersion.UNKNOWN) { if (version != MinecraftVersion.UNKNOWN) {
list.add(version.getName()); list.add(version.getName());
} }
@ -498,7 +498,7 @@ public final class SlimefunPlugin extends JavaPlugin implements SlimefunAddon {
} }
private void loadTags() { private void loadTags() {
for (SlimefunTag tag : SlimefunTag.values) { for (SlimefunTag tag : SlimefunTag.valuesCache) {
try { try {
tag.reload(); tag.reload();
} }

View File

@ -146,10 +146,10 @@ enum Instruction {
}); });
private static final Map<String, Instruction> nameLookup = new HashMap<>(); private static final Map<String, Instruction> nameLookup = new HashMap<>();
public static final Instruction[] values = values(); public static final Instruction[] valuesCache = values();
static { static {
for (Instruction instruction : values) { for (Instruction instruction : valuesCache) {
nameLookup.put(instruction.name(), instruction); nameLookup.put(instruction.name(), instruction);
} }
} }

View File

@ -502,7 +502,7 @@ public class ProgrammableAndroid extends SlimefunItem implements InventoryBlock,
protected List<Instruction> getValidScriptInstructions() { protected List<Instruction> getValidScriptInstructions() {
List<Instruction> list = new ArrayList<>(); List<Instruction> list = new ArrayList<>();
for (Instruction part : Instruction.values) { for (Instruction part : Instruction.valuesCache) {
if (part == Instruction.START || part == Instruction.REPEAT) { if (part == Instruction.START || part == Instruction.REPEAT) {
continue; continue;
} }

View File

@ -109,7 +109,7 @@ public enum HeadTexture {
IRON_GOLEM("89091d79ea0f59ef7ef94d7bba6e5f17f2f7d4572c44f90f76c4819a714"), IRON_GOLEM("89091d79ea0f59ef7ef94d7bba6e5f17f2f7d4572c44f90f76c4819a714"),
PIGLIN_HEAD("2882af1294a74023e6919a31d1a027310f2e142afb4667d230d155e7f21dbb41"); PIGLIN_HEAD("2882af1294a74023e6919a31d1a027310f2e142afb4667d230d155e7f21dbb41");
public static final HeadTexture[] values = values(); public static final HeadTexture[] valuesCache = values();
private final String texture; private final String texture;
@ -123,6 +123,7 @@ public enum HeadTexture {
* *
* @return The associated texture hash * @return The associated texture hash
*/ */
@Nonnull
public String getTexture() { public String getTexture() {
return texture; return texture;
} }
@ -132,6 +133,7 @@ public enum HeadTexture {
* *
* @return A custom head {@link ItemStack} * @return A custom head {@link ItemStack}
*/ */
@Nonnull
public ItemStack getAsItemStack() { public ItemStack getAsItemStack() {
return SlimefunUtils.getCustomHead(getTexture()); return SlimefunUtils.getCustomHead(getTexture());
} }

View File

@ -177,10 +177,10 @@ public enum SlimefunTag implements Tag<Material> {
CAVEMAN_TALISMAN_TRIGGERS; CAVEMAN_TALISMAN_TRIGGERS;
private static final Map<String, SlimefunTag> nameLookup = new HashMap<>(); private static final Map<String, SlimefunTag> nameLookup = new HashMap<>();
public static final SlimefunTag[] values = values(); public static final SlimefunTag[] valuesCache = values();
static { static {
for (SlimefunTag tag : values) { for (SlimefunTag tag : valuesCache) {
nameLookup.put(tag.name(), tag); nameLookup.put(tag.name(), tag);
} }
} }
@ -214,6 +214,12 @@ public enum SlimefunTag implements Tag<Material> {
}); });
} }
public static void reloadAll() throws TagMisconfigurationException {
for (SlimefunTag tag : valuesCache) {
tag.reload();
}
}
@Nonnull @Nonnull
@Override @Override
public NamespacedKey getKey() { public NamespacedKey getKey() {

View File

@ -55,15 +55,6 @@ class TestClimbingPick implements SlimefunItemTest<ClimbingPick> {
@Override @Override
public ClimbingPick registerSlimefunItem(SlimefunPlugin plugin, String id) { public ClimbingPick registerSlimefunItem(SlimefunPlugin plugin, String id) {
try {
TestUtilities.registerDefaultTags(server);
SlimefunTag.CLIMBING_PICK_WEAK_SURFACES.reload();
SlimefunTag.CLIMBING_PICK_STRONG_SURFACES.reload();
}
catch (TagMisconfigurationException e) {
Assertions.fail(e);
}
SlimefunItemStack item = new SlimefunItemStack(id, Material.IRON_PICKAXE, "&5Test Pick", id); SlimefunItemStack item = new SlimefunItemStack(id, Material.IRON_PICKAXE, "&5Test Pick", id);
ClimbingPick pick = new ClimbingPick(TestUtilities.getCategory(plugin, "climbing_pick"), item, RecipeType.NULL, new ItemStack[9]) { ClimbingPick pick = new ClimbingPick(TestUtilities.getCategory(plugin, "climbing_pick"), item, RecipeType.NULL, new ItemStack[9]) {
@ -93,7 +84,7 @@ class TestClimbingPick implements SlimefunItemTest<ClimbingPick> {
private static Stream<Arguments> getStrongSurfaces() throws TagMisconfigurationException { private static Stream<Arguments> getStrongSurfaces() throws TagMisconfigurationException {
TestUtilities.registerDefaultTags(server); TestUtilities.registerDefaultTags(server);
SlimefunTag.CLIMBING_PICK_STRONG_SURFACES.reload(); SlimefunTag.reloadAll();
return SlimefunTag.CLIMBING_PICK_STRONG_SURFACES.getValues().stream().map(Arguments::of); return SlimefunTag.CLIMBING_PICK_STRONG_SURFACES.getValues().stream().map(Arguments::of);
} }
@ -111,7 +102,7 @@ class TestClimbingPick implements SlimefunItemTest<ClimbingPick> {
private static Stream<Arguments> getWeakSurfaces() throws TagMisconfigurationException { private static Stream<Arguments> getWeakSurfaces() throws TagMisconfigurationException {
TestUtilities.registerDefaultTags(server); TestUtilities.registerDefaultTags(server);
SlimefunTag.CLIMBING_PICK_WEAK_SURFACES.reload(); SlimefunTag.reloadAll();
return SlimefunTag.CLIMBING_PICK_WEAK_SURFACES.getValues().stream().map(Arguments::of); return SlimefunTag.CLIMBING_PICK_WEAK_SURFACES.getValues().stream().map(Arguments::of);
} }

View File

@ -55,10 +55,7 @@ class TestBackpackListener {
server = MockBukkit.mock(); server = MockBukkit.mock();
TestUtilities.registerDefaultTags(server); TestUtilities.registerDefaultTags(server);
plugin = MockBukkit.load(SlimefunPlugin.class); plugin = MockBukkit.load(SlimefunPlugin.class);
SlimefunTag.reloadAll();
for (SlimefunTag tag : SlimefunTag.values) {
tag.reload();
}
listener = new BackpackListener(); listener = new BackpackListener();
listener.register(plugin); listener.register(plugin);

View File

@ -46,9 +46,7 @@ class TestSlimefunTags {
@Test @Test
@DisplayName("Test for infinite loops with Slimefun Tags") @DisplayName("Test for infinite loops with Slimefun Tags")
void testForInfiniteLoops() throws TagMisconfigurationException { void testForInfiniteLoops() throws TagMisconfigurationException {
for (SlimefunTag tag : SlimefunTag.values()) { SlimefunTag.reloadAll();
tag.reload();
}
for (SlimefunTag tag : SlimefunTag.values()) { for (SlimefunTag tag : SlimefunTag.values()) {
assertNotCyclic(tag); assertNotCyclic(tag);
@ -58,9 +56,7 @@ class TestSlimefunTags {
@Test @Test
@DisplayName("Test SlimefunTag#isTagged()") @DisplayName("Test SlimefunTag#isTagged()")
void testIsTagged() throws TagMisconfigurationException { void testIsTagged() throws TagMisconfigurationException {
for (SlimefunTag tag : SlimefunTag.values()) { SlimefunTag.reloadAll();
tag.reload();
}
// Direct inclusion // Direct inclusion
Assertions.assertTrue(SlimefunTag.SENSITIVE_MATERIALS.isTagged(Material.CAKE)); Assertions.assertTrue(SlimefunTag.SENSITIVE_MATERIALS.isTagged(Material.CAKE));
@ -75,9 +71,7 @@ class TestSlimefunTags {
@Test @Test
@DisplayName("Test SlimefunTag#toArray()") @DisplayName("Test SlimefunTag#toArray()")
void testToArray() throws TagMisconfigurationException { void testToArray() throws TagMisconfigurationException {
for (SlimefunTag tag : SlimefunTag.values()) { SlimefunTag.reloadAll();
tag.reload();
}
for (SlimefunTag tag : SlimefunTag.values()) { for (SlimefunTag tag : SlimefunTag.values()) {
Set<Material> values = tag.getValues(); Set<Material> values = tag.getValues();
@ -88,9 +82,7 @@ class TestSlimefunTags {
@Test @Test
@DisplayName("Test SlimefunTag#getValues()") @DisplayName("Test SlimefunTag#getValues()")
void testGetValues() throws TagMisconfigurationException { void testGetValues() throws TagMisconfigurationException {
for (SlimefunTag tag : SlimefunTag.values()) { SlimefunTag.reloadAll();
tag.reload();
}
for (SlimefunTag tag : SlimefunTag.values()) { for (SlimefunTag tag : SlimefunTag.values()) {
Set<Material> values = tag.getValues(); Set<Material> values = tag.getValues();
@ -119,8 +111,6 @@ class TestSlimefunTags {
Assertions.assertEquals(SlimefunTag.SHULKER_BOXES, SlimefunTag.getTag("SHULKER_BOXES")); Assertions.assertEquals(SlimefunTag.SHULKER_BOXES, SlimefunTag.getTag("SHULKER_BOXES"));
Assertions.assertNull(SlimefunTag.getTag("hello")); Assertions.assertNull(SlimefunTag.getTag("hello"));
Assertions.assertThrows(IllegalArgumentException.class, () -> SlimefunTag.getTag(null)); Assertions.assertThrows(IllegalArgumentException.class, () -> SlimefunTag.getTag(null));
Assertions.assertArrayEquals(SlimefunTag.values(), SlimefunTag.values);
} }
private void assertNotCyclic(@Nonnull SlimefunTag tag) { private void assertNotCyclic(@Nonnull SlimefunTag tag) {

View File

@ -16,7 +16,7 @@ class TestHeadTextures {
void testForDuplicates() { void testForDuplicates() {
Set<String> textures = new HashSet<>(); Set<String> textures = new HashSet<>();
for (HeadTexture head : HeadTexture.values) { for (HeadTexture head : HeadTexture.valuesCache) {
String texture = head.getTexture(); String texture = head.getTexture();
Assertions.assertNotNull(texture); Assertions.assertNotNull(texture);