From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: IPECTER Date: Tue, 30 May 2023 11:33:01 +0900 Subject: [PATCH] Reduce-allocations diff --git a/src/main/java/ca/spottedleaf/starlight/common/light/StarLightEngine.java b/src/main/java/ca/spottedleaf/starlight/common/light/StarLightEngine.java index 1b0d92c68407cdb09ed8aac271b625d92db87017..8b48be5e2ea8815c152d182aa010eba0da84c562 100644 --- a/src/main/java/ca/spottedleaf/starlight/common/light/StarLightEngine.java +++ b/src/main/java/ca/spottedleaf/starlight/common/light/StarLightEngine.java @@ -39,7 +39,7 @@ public abstract class StarLightEngine { AxisDirection.POSITIVE_Z, AxisDirection.NEGATIVE_Z }; - protected static enum AxisDirection { + public static enum AxisDirection { // Plazma - protected -> public // Declaration order is important and relied upon. Do not change without modifying propagation code. POSITIVE_X(1, 0, 0), NEGATIVE_X(-1, 0, 0), @@ -1094,7 +1094,7 @@ public abstract class StarLightEngine { for (int bitset = i, len = Integer.bitCount(i), index = 0; index < len; ++index, bitset ^= IntegerUtil.getTrailingBit(bitset)) { directions.add(AXIS_DIRECTIONS[IntegerUtil.trailingZeros(bitset)]); } - OLD_CHECK_DIRECTIONS[i] = directions.toArray(new AxisDirection[0]); + OLD_CHECK_DIRECTIONS[i] = directions.toArray(org.plazmamc.plazma.util.Constants.STARLIGHT_AXIS_DIRECTION); } } diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java index cab91880a08c6fdc545804911d295e0f24f4d983..ca2ca7f3b5b0ea5862011c6b4beab4b2ab540792 100644 --- a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java +++ b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java @@ -92,8 +92,8 @@ public final class ChunkPacketBlockControllerAntiXray extends ChunkPacketBlockCo Set presetBlockStateSet = new LinkedHashSet<>(); // Therefore addAll(Collection) is used, which guarantees this order in the doc presetBlockStateSet.addAll(presetBlockStateList); - presetBlockStates = presetBlockStateSet.isEmpty() ? new BlockState[]{Blocks.DIAMOND_ORE.defaultBlockState()} : presetBlockStateSet.toArray(new BlockState[0]); - presetBlockStatesFull = presetBlockStateSet.isEmpty() ? new BlockState[]{Blocks.DIAMOND_ORE.defaultBlockState()} : presetBlockStateList.toArray(new BlockState[0]); + presetBlockStates = presetBlockStateSet.isEmpty() ? new BlockState[]{Blocks.DIAMOND_ORE.defaultBlockState()} : presetBlockStateSet.toArray(org.plazmamc.plazma.util.Constants.BLOCK_STATE); + presetBlockStatesFull = presetBlockStateSet.isEmpty() ? new BlockState[]{Blocks.DIAMOND_ORE.defaultBlockState()} : presetBlockStateList.toArray(org.plazmamc.plazma.util.Constants.BLOCK_STATE); presetBlockStatesStone = null; presetBlockStatesDeepslate = null; presetBlockStatesNetherrack = null; diff --git a/src/main/java/com/destroystokyo/paper/util/maplist/ChunkList.java b/src/main/java/com/destroystokyo/paper/util/maplist/ChunkList.java index 554f4d4e63c1431721989e6f502a32ccc53a8807..237cc1927c237fe4e87d5cbf74c6d1faae1d67f2 100644 --- a/src/main/java/com/destroystokyo/paper/util/maplist/ChunkList.java +++ b/src/main/java/com/destroystokyo/paper/util/maplist/ChunkList.java @@ -17,7 +17,7 @@ public final class ChunkList implements Iterable { this.chunkToIndex.defaultReturnValue(Integer.MIN_VALUE); } - protected static final LevelChunk[] EMPTY_LIST = new LevelChunk[0]; + protected static final LevelChunk[] EMPTY_LIST = org.plazmamc.plazma.util.Constants.LEVEL_CHUNK; protected LevelChunk[] chunks = EMPTY_LIST; protected int count; diff --git a/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java b/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java index 0133ea6feb1ab88f021f66855669f58367e7420b..5bf288af5d2855c2287a297abedb2cf9358b8b3c 100644 --- a/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java +++ b/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java @@ -17,7 +17,7 @@ public final class EntityList implements Iterable { this.entityToIndex.defaultReturnValue(Integer.MIN_VALUE); } - protected static final Entity[] EMPTY_LIST = new Entity[0]; + protected static final Entity[] EMPTY_LIST = org.plazmamc.plazma.util.Constants.ENTITY; protected Entity[] entities = EMPTY_LIST; protected int count; diff --git a/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java b/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java index 277cfd9d1e8fff5d9b5e534b75c3c5162d58b0b7..d552f9fe1bfb8c9a25f27117cb6896c11b05a0c3 100644 --- a/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java +++ b/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java @@ -20,7 +20,7 @@ public final class IBlockDataList { this.map.defaultReturnValue(Long.MAX_VALUE); } - private static final long[] EMPTY_LIST = new long[0]; + private static final long[] EMPTY_LIST = org.plazmamc.plazma.util.Constants.EMPTY_LONG; private long[] byIndex = EMPTY_LIST; private int size; diff --git a/src/main/java/com/destroystokyo/paper/util/maplist/ReferenceList.java b/src/main/java/com/destroystokyo/paper/util/maplist/ReferenceList.java index 190c5f0b02a3d99054704ae1afbffb3498ddffe1..a5460fc96ebc6f1356e4cec1ee7ef14879ab3b2a 100644 --- a/src/main/java/com/destroystokyo/paper/util/maplist/ReferenceList.java +++ b/src/main/java/com/destroystokyo/paper/util/maplist/ReferenceList.java @@ -15,7 +15,7 @@ public final class ReferenceList implements Iterable { this.referenceToIndex.defaultReturnValue(Integer.MIN_VALUE); } - protected static final Object[] EMPTY_LIST = new Object[0]; + protected static final Object[] EMPTY_LIST = org.plazmamc.plazma.util.Constants.EMPTY_OBJECT; protected Object[] references = EMPTY_LIST; protected int count; diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkTaskScheduler.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkTaskScheduler.java index 84cc9397237fa0c17aa1012dfb5683c90eb6d3b8..aec83ebe4038b73a9c69dd86029e466f6d6e52d5 100644 --- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkTaskScheduler.java +++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkTaskScheduler.java @@ -751,7 +751,7 @@ public final class ChunkTaskScheduler { public static ChunkInfo[] getChunkInfos() { synchronized (WAITING_CHUNKS) { - return WAITING_CHUNKS.toArray(new ChunkInfo[0]); + return WAITING_CHUNKS.toArray(org.plazmamc.plazma.util.Constants.CHUNK_INFO); } } diff --git a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java b/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java index ae60bd96b5284d54676d8e7e4dd5d170b526ec1e..e678d1bf61a2238967c3bd999dfba4adbdf315cc 100644 --- a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java +++ b/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java @@ -14,7 +14,7 @@ public final class VersionCommand implements PaperSubcommand { public boolean execute(final CommandSender sender, final String subCommand, final String[] args) { final @Nullable Command ver = MinecraftServer.getServer().server.getCommandMap().getCommand("version"); if (ver != null) { - ver.execute(sender, "paper", new String[0]); + ver.execute(sender, "paper", org.plazmamc.plazma.util.Constants.EMPTY_STRING); } return true; } diff --git a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java index f597d65d56964297eeeed6c7e77703764178fee0..15240fe6ca5fd3f9bbbcc4499c0bf26bb35803c0 100644 --- a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java +++ b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java @@ -81,7 +81,7 @@ public final class ChunkEntitySlices { } } - return ret.toArray(new org.bukkit.entity.Entity[0]); + return ret.toArray(org.plazmamc.plazma.util.Constants.BUKKIT_ENTITY); } public CompoundTag save() { @@ -298,7 +298,7 @@ public final class ChunkEntitySlices { protected static final class BasicEntityList { - protected static final Entity[] EMPTY = new Entity[0]; + protected static final Entity[] EMPTY = org.plazmamc.plazma.util.Constants.ENTITY; protected static final int DEFAULT_CAPACITY = 4; protected E[] storage; diff --git a/src/main/java/net/minecraft/CrashReport.java b/src/main/java/net/minecraft/CrashReport.java index c468733f44ccb3ff4ba3c20921a4ec52658f0689..7e124979a2843b7f0a365e51d23192731747e6bf 100644 --- a/src/main/java/net/minecraft/CrashReport.java +++ b/src/main/java/net/minecraft/CrashReport.java @@ -28,7 +28,7 @@ public class CrashReport { private final List details = Lists.newArrayList(); private File saveFile; private boolean trackingStackTrace = true; - private StackTraceElement[] uncategorizedStackTrace = new StackTraceElement[0]; + private StackTraceElement[] uncategorizedStackTrace = org.plazmamc.plazma.util.Constants.STACK_TRACE_ELEMENT; private final SystemReport systemReport = new SystemReport(); public CrashReport(String message, Throwable cause) { diff --git a/src/main/java/net/minecraft/CrashReportCategory.java b/src/main/java/net/minecraft/CrashReportCategory.java index b54ddd0ba0b001fbcb1838a838ca4890df936f1b..61f63791ddda4fd84298d18be3dbb6c44b3462da 100644 --- a/src/main/java/net/minecraft/CrashReportCategory.java +++ b/src/main/java/net/minecraft/CrashReportCategory.java @@ -12,7 +12,7 @@ import net.minecraft.world.level.block.state.BlockState; public class CrashReportCategory { private final String title; private final List entries = Lists.newArrayList(); - private StackTraceElement[] stackTrace = new StackTraceElement[0]; + private StackTraceElement[] stackTrace = org.plazmamc.plazma.util.Constants.STACK_TRACE_ELEMENT; public CrashReportCategory(String title) { this.title = title; diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java index 4c90a6ee734451fe404b2255d21090b669da1aa1..ae8b26aa9ceff07a79b1dbfd310123ca61a97a3d 100644 --- a/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java @@ -400,7 +400,7 @@ public class Util { } else if (futures.size() == 1) { return futures.get(0).thenApply(List::of); } else { - CompletableFuture completableFuture = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0])); + CompletableFuture completableFuture = CompletableFuture.allOf(futures.toArray(org.plazmamc.plazma.util.Constants.COMPLETABLE_FUTURE)); return completableFuture.thenApply((void_) -> { return futures.stream().map(CompletableFuture::join).toList(); }); diff --git a/src/main/java/net/minecraft/advancements/AdvancementRewards.java b/src/main/java/net/minecraft/advancements/AdvancementRewards.java index 9e20a870a9c9c295b32cfa591eb52625125a5439..30473930bf3acf0ae74f3ff5e500f6e1374c11da 100644 --- a/src/main/java/net/minecraft/advancements/AdvancementRewards.java +++ b/src/main/java/net/minecraft/advancements/AdvancementRewards.java @@ -24,7 +24,7 @@ import net.minecraft.world.level.storage.loot.parameters.LootContextParamSets; import net.minecraft.world.level.storage.loot.parameters.LootContextParams; public class AdvancementRewards { - public static final AdvancementRewards EMPTY = new AdvancementRewards(0, new ResourceLocation[0], new ResourceLocation[0], CommandFunction.CacheableFunction.NONE); + public static final AdvancementRewards EMPTY = new AdvancementRewards(0, org.plazmamc.plazma.util.Constants.RESOURCE_LOCATION, org.plazmamc.plazma.util.Constants.RESOURCE_LOCATION, CommandFunction.CacheableFunction.NONE); private final int experience; private final ResourceLocation[] loot; private final ResourceLocation[] recipes; @@ -187,7 +187,7 @@ public class AdvancementRewards { } public AdvancementRewards build() { - return new AdvancementRewards(this.experience, this.loot.toArray(new ResourceLocation[0]), this.recipes.toArray(new ResourceLocation[0]), this.function == null ? CommandFunction.CacheableFunction.NONE : new CommandFunction.CacheableFunction(this.function)); + return new AdvancementRewards(this.experience, this.loot.toArray(org.plazmamc.plazma.util.Constants.RESOURCE_LOCATION), this.recipes.toArray(org.plazmamc.plazma.util.Constants.RESOURCE_LOCATION), this.function == null ? CommandFunction.CacheableFunction.NONE : new CommandFunction.CacheableFunction(this.function)); } } } diff --git a/src/main/java/net/minecraft/advancements/RequirementsStrategy.java b/src/main/java/net/minecraft/advancements/RequirementsStrategy.java index 051c1fb81d79c40be683edb86579bb975643bcb3..469c34c773e3257d0edfc807cb882b4cbfc3c53f 100644 --- a/src/main/java/net/minecraft/advancements/RequirementsStrategy.java +++ b/src/main/java/net/minecraft/advancements/RequirementsStrategy.java @@ -14,7 +14,7 @@ public interface RequirementsStrategy { return strings; }; RequirementsStrategy OR = (criteriaNames) -> { - return new String[][]{criteriaNames.toArray(new String[0])}; + return new String[][]{criteriaNames.toArray(org.plazmamc.plazma.util.Constants.EMPTY_STRING)}; }; String[][] createRequirements(Collection criteriaNames); diff --git a/src/main/java/net/minecraft/nbt/ByteArrayTag.java b/src/main/java/net/minecraft/nbt/ByteArrayTag.java index 163b1895bcbd16e93d36cd60d03e6b21df51cba7..4d47adb914399de94f725f53b938588051919ebe 100644 --- a/src/main/java/net/minecraft/nbt/ByteArrayTag.java +++ b/src/main/java/net/minecraft/nbt/ByteArrayTag.java @@ -175,7 +175,7 @@ public class ByteArrayTag extends CollectionTag { } public void clear() { - this.data = new byte[0]; + this.data = org.plazmamc.plazma.util.Constants.EMPTY_BYTE; } @Override diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java index 7e94ebe06fc62293e665d6db19e42d947e7eb30f..6f41b334efc4a540cd8efcc782f5d5c8862b7476 100644 --- a/src/main/java/net/minecraft/nbt/CompoundTag.java +++ b/src/main/java/net/minecraft/nbt/CompoundTag.java @@ -379,7 +379,7 @@ public class CompoundTag implements Tag { throw new ReportedException(this.createReport(key, ByteArrayTag.TYPE, var3)); } - return new byte[0]; + return org.plazmamc.plazma.util.Constants.EMPTY_BYTE; } public int[] getIntArray(String key) { @@ -391,7 +391,7 @@ public class CompoundTag implements Tag { throw new ReportedException(this.createReport(key, IntArrayTag.TYPE, var3)); } - return new int[0]; + return org.plazmamc.plazma.util.Constants.EMPTY_INT; } public long[] getLongArray(String key) { @@ -403,7 +403,7 @@ public class CompoundTag implements Tag { throw new ReportedException(this.createReport(key, LongArrayTag.TYPE, var3)); } - return new long[0]; + return org.plazmamc.plazma.util.Constants.EMPTY_LONG; } public CompoundTag getCompound(String key) { diff --git a/src/main/java/net/minecraft/nbt/IntArrayTag.java b/src/main/java/net/minecraft/nbt/IntArrayTag.java index 25ad2c6ff968f4a6b16b4dea3f67341a4261f2a4..4dec198d867b9d95572e6a93b219f6c46357f3cf 100644 --- a/src/main/java/net/minecraft/nbt/IntArrayTag.java +++ b/src/main/java/net/minecraft/nbt/IntArrayTag.java @@ -189,7 +189,7 @@ public class IntArrayTag extends CollectionTag { } public void clear() { - this.data = new int[0]; + this.data = org.plazmamc.plazma.util.Constants.EMPTY_INT; } @Override diff --git a/src/main/java/net/minecraft/nbt/ListTag.java b/src/main/java/net/minecraft/nbt/ListTag.java index 749d3e67a877d7d1ed47b5fef511a604ee6589b6..0529814353ba82d6083a88531f06e73377ab5aaf 100644 --- a/src/main/java/net/minecraft/nbt/ListTag.java +++ b/src/main/java/net/minecraft/nbt/ListTag.java @@ -230,7 +230,7 @@ public class ListTag extends CollectionTag { } } - return new int[0]; + return org.plazmamc.plazma.util.Constants.EMPTY_INT; } public long[] getLongArray(int index) { @@ -241,7 +241,7 @@ public class ListTag extends CollectionTag { } } - return new long[0]; + return org.plazmamc.plazma.util.Constants.EMPTY_LONG; } public double getDouble(int index) { diff --git a/src/main/java/net/minecraft/nbt/LongArrayTag.java b/src/main/java/net/minecraft/nbt/LongArrayTag.java index bdc0adc652228328ebe8fe2455c73c257a89d3c5..122d4b9391ddaae2631db213230f57a829d1c943 100644 --- a/src/main/java/net/minecraft/nbt/LongArrayTag.java +++ b/src/main/java/net/minecraft/nbt/LongArrayTag.java @@ -193,7 +193,7 @@ public class LongArrayTag extends CollectionTag { @Override public void clear() { - this.data = new long[0]; + this.data = org.plazmamc.plazma.util.Constants.EMPTY_LONG; } @Override diff --git a/src/main/java/net/minecraft/network/CipherBase.java b/src/main/java/net/minecraft/network/CipherBase.java index a2920b8a9eff77d9c5d1d7f70ad3abdacba8f0fa..c1c97cc8fa5e0d8349655f90392382a0a878c95f 100644 --- a/src/main/java/net/minecraft/network/CipherBase.java +++ b/src/main/java/net/minecraft/network/CipherBase.java @@ -7,8 +7,8 @@ import javax.crypto.ShortBufferException; public class CipherBase { private final Cipher cipher; - private byte[] heapIn = new byte[0]; - private byte[] heapOut = new byte[0]; + private byte[] heapIn = org.plazmamc.plazma.util.Constants.EMPTY_BYTE; + private byte[] heapOut = org.plazmamc.plazma.util.Constants.EMPTY_BYTE; protected CipherBase(Cipher cipher) { this.cipher = cipher; diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java index 323416311f14f5ad887f05183ad3b4921981aecd..7ef5055d7d6d7576cefdbc80ede4f4ce28e15c1b 100644 --- a/src/main/java/net/minecraft/network/Connection.java +++ b/src/main/java/net/minecraft/network/Connection.java @@ -318,7 +318,7 @@ public class Connection extends SimpleChannelInboundHandler> { } public void setListener(PacketListener listener) { - Validate.notNull(listener, "packetListener", new Object[0]); + Validate.notNull(listener, "packetListener", org.plazmamc.plazma.util.Constants.EMPTY_OBJECT); this.packetListener = listener; } // Paper start diff --git a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java b/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java index 8a68baf6bd46b59cf57c94ffe5651d47a7cae99c..c732299c908622e3b6262cd942a7397b3f34b8e9 100644 --- a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java +++ b/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java @@ -21,7 +21,7 @@ import net.minecraft.network.chat.Style; import net.minecraft.world.entity.Entity; public class TranslatableContents implements ComponentContents { - public static final Object[] NO_ARGS = new Object[0]; + public static final Object[] NO_ARGS = org.plazmamc.plazma.util.Constants.EMPTY_OBJECT; private static final FormattedText TEXT_PERCENT = FormattedText.of("%"); private static final FormattedText TEXT_NULL = FormattedText.of("null"); private final String key; diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java index 7c6a6693760638a07b7c7c330aaeffd9fa454845..d4a7157d2b2c5f25ed00b706d0adbf195e5e6977 100644 --- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java +++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java @@ -67,7 +67,7 @@ public class ClientboundSectionBlocksUpdatePacket implements Packet blockChanges, boolean suppressLightUpdates) { this.sectionPos = sectionPos; this.positions = blockChanges.keySet().toShortArray(); - this.states = blockChanges.values().toArray(new BlockState[0]); + this.states = blockChanges.values().toArray(org.plazmamc.plazma.util.Constants.BLOCK_STATE); this.suppressLightUpdates = suppressLightUpdates; } // Paper end diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java index 3c80e14392ee7a6bf5040d7cb81b7d894e162eff..a358a821e2ed71fdb2e85c71b75fda00fdad7f9b 100644 --- a/src/main/java/net/minecraft/server/MinecraftServer.java +++ b/src/main/java/net/minecraft/server/MinecraftServer.java @@ -1373,10 +1373,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop loadStatusIcon() { Optional optional = Optional.of(this.getFile("server-icon.png").toPath()).filter((path) -> { - return Files.isRegularFile(path, new LinkOption[0]); + return Files.isRegularFile(path, org.plazmamc.plazma.util.Constants.LINK_OPTION); }).or(() -> { return this.storageSource.getIconFile().filter((path) -> { - return Files.isRegularFile(path, new LinkOption[0]); + return Files.isRegularFile(path, org.plazmamc.plazma.util.Constants.LINK_OPTION); }); }); diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java index 3919d9c193abcfd8b97dfb0ceb38638440f60fbe..31129b7a4e325649830089a5422e3ccf9b5875a5 100644 --- a/src/main/java/net/minecraft/server/PlayerAdvancements.java +++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java @@ -124,7 +124,7 @@ public class PlayerAdvancements { } private void load(ServerAdvancementManager advancementLoader) { - if (Files.isRegularFile(this.playerSavePath, new LinkOption[0])) { + if (Files.isRegularFile(this.playerSavePath, org.plazmamc.plazma.util.Constants.LINK_OPTION)) { try { JsonReader jsonreader = new JsonReader(Files.newBufferedReader(this.playerSavePath, StandardCharsets.UTF_8)); diff --git a/src/main/java/net/minecraft/server/RunningOnDifferentThreadException.java b/src/main/java/net/minecraft/server/RunningOnDifferentThreadException.java index 0f52e8a61ca7e57e9f52473dceb9cc3464c0c86d..857c3609b3cd965e1c10caa8fc5682baae999820 100644 --- a/src/main/java/net/minecraft/server/RunningOnDifferentThreadException.java +++ b/src/main/java/net/minecraft/server/RunningOnDifferentThreadException.java @@ -4,12 +4,12 @@ public final class RunningOnDifferentThreadException extends RuntimeException { public static final RunningOnDifferentThreadException RUNNING_ON_DIFFERENT_THREAD = new RunningOnDifferentThreadException(); private RunningOnDifferentThreadException() { - this.setStackTrace(new StackTraceElement[0]); + this.setStackTrace(org.plazmamc.plazma.util.Constants.STACK_TRACE_ELEMENT); } @Override public synchronized Throwable fillInStackTrace() { - this.setStackTrace(new StackTraceElement[0]); + this.setStackTrace(org.plazmamc.plazma.util.Constants.STACK_TRACE_ELEMENT); return this; } } diff --git a/src/main/java/net/minecraft/server/ServerFunctionLibrary.java b/src/main/java/net/minecraft/server/ServerFunctionLibrary.java index 975422a57b83a31e63a600bb4ff9c4e2baaf6da7..64d8935c18f3e92ec35b3b160443700e350a72fa 100644 --- a/src/main/java/net/minecraft/server/ServerFunctionLibrary.java +++ b/src/main/java/net/minecraft/server/ServerFunctionLibrary.java @@ -81,7 +81,7 @@ public class ServerFunctionLibrary implements PreparableReloadListener { }, prepareExecutor)); } - CompletableFuture[] completableFutures = map.values().toArray(new CompletableFuture[0]); + CompletableFuture[] completableFutures = map.values().toArray(org.plazmamc.plazma.util.Constants.COMPLETABLE_FUTURE); return CompletableFuture.allOf(completableFutures).handle((unused, ex) -> { return map; }); diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java index 57fdef8b16e1ed9a4693356144b4685bbcea285c..d41086166c39fedf8da29ac9010c501ef5fe3131 100644 --- a/src/main/java/net/minecraft/server/level/ChunkMap.java +++ b/src/main/java/net/minecraft/server/level/ChunkMap.java @@ -1550,7 +1550,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider // stuff could have been removed, so we need to check the trackedPlayers set // for players that were removed - for (ServerPlayerConnection conn : this.seenBy.toArray(new ServerPlayerConnection[0])) { // avoid CME + for (ServerPlayerConnection conn : this.seenBy.toArray(org.plazmamc.plazma.util.Constants.SERVER_PLAYER_CONNECTION)) { // avoid CME if (newTrackerCandidates == null || !newTrackerCandidates.contains(conn.getPlayer())) { this.updatePlayer(conn.getPlayer()); } diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java index ebbf462835e5a14fe1413c724d4985635207a897..c2030d2e936fc5582e3fd1c753e1d0a40b905bab 100644 --- a/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java @@ -1250,7 +1250,7 @@ public class ServerLevel extends Level implements WorldGenLevel { public static List getCurrentlyTickingEntities() { Entity ticking = currentlyTickingEntity.get(); - List ret = java.util.Arrays.asList(ticking == null ? new Entity[0] : new Entity[] { ticking }); + List ret = java.util.Arrays.asList(ticking == null ? org.plazmamc.plazma.util.Constants.ENTITY : new Entity[] { ticking }); return ret; } diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java index b15de37a06c3efb1c4bc790ccb23ebff3c97d54d..d76bff083c0ecd49dfd82dd8ccffae86820308ce 100644 --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java @@ -434,7 +434,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic if (this.keepAlivePending) { if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info - this.disconnect(Component.translatable("disconnect.timeout", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause + this.disconnect(Component.translatable("disconnect.timeout", org.plazmamc.plazma.util.Constants.EMPTY_OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause } } else { if (elapsedTime >= 15000L) { // 15 seconds @@ -915,13 +915,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel()); // Paper - run this async // CraftBukkit start if (this.chatSpamTickCount.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.tabSpamLimit && !this.server.getPlayerList().isOp(this.player.getGameProfile())) { // Paper start - split and make configurable - server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause + server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", org.plazmamc.plazma.util.Constants.EMPTY_OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause return; } // Paper start String str = packet.getCommand(); int index = -1; if (str.length() > 64 && ((index = str.indexOf(' ')) == -1 || index >= 64)) { - server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause + server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", org.plazmamc.plazma.util.Constants.EMPTY_OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause return; } // Paper end @@ -3391,7 +3391,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic // Paper start if (!org.bukkit.Bukkit.isPrimaryThread()) { if (recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) { - server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause + server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", org.plazmamc.plazma.util.Constants.EMPTY_OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause return; } } diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java index 06ff5dd9e39e2be8dd8397a764813111019ceaed..6a17b2b1d2fc75b87b2683ffe033fdc111e5750c 100644 --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java @@ -238,8 +238,8 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @Override public void handleHello(ServerboundHelloPacket packet) { - Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", new Object[0]); - if (!org.plazmamc.plazma.configurations.GlobalConfiguration.get().player.allowAnyUsername) Validate.validState(ServerLoginPacketListenerImpl.isValidUsername(packet.name()), "Invalid characters in username", new Object[0]); // Plazma + Validate.validState(this.state == ServerLoginPacketListenerImpl.State.HELLO, "Unexpected hello packet", org.plazmamc.plazma.util.Constants.EMPTY_OBJECT); + if (!org.plazmamc.plazma.configurations.GlobalConfiguration.get().player.allowAnyUsername) Validate.validState(ServerLoginPacketListenerImpl.isValidUsername(packet.name()), "Invalid characters in username", org.plazmamc.plazma.util.Constants.EMPTY_OBJECT); // Plazma // Paper start - validate usernames if (io.papermc.paper.configuration.GlobalConfiguration.get().proxies.isProxyOnlineMode() && io.papermc.paper.configuration.GlobalConfiguration.get().unsupportedSettings.performUsernameValidation) { if (!this.iKnowThisMayNotBeTheBestIdeaButPleaseDisableUsernameValidation && !validateUsername(packet.name())) { @@ -298,7 +298,7 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener, @Override public void handleKey(ServerboundKeyPacket packet) { - Validate.validState(this.state == ServerLoginPacketListenerImpl.State.KEY, "Unexpected key packet", new Object[0]); + Validate.validState(this.state == ServerLoginPacketListenerImpl.State.KEY, "Unexpected key packet", org.plazmamc.plazma.util.Constants.EMPTY_OBJECT); final String s; diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java index 022da50912d357581b2132cf57e1a767e436022c..555472cad13c6453090b6f15133bbf2b90014a74 100644 --- a/src/main/java/net/minecraft/server/players/PlayerList.java +++ b/src/main/java/net/minecraft/server/players/PlayerList.java @@ -695,7 +695,7 @@ public abstract class PlayerList { while (iterator.hasNext()) { entityplayer = (ServerPlayer) iterator.next(); this.save(entityplayer); // CraftBukkit - Force the player's inventory to be saved - entityplayer.connection.disconnect(Component.translatable("multiplayer.disconnect.duplicate_login", new Object[0]), org.bukkit.event.player.PlayerKickEvent.Cause.DUPLICATE_LOGIN); // Paper - kick event cause + entityplayer.connection.disconnect(Component.translatable("multiplayer.disconnect.duplicate_login", org.plazmamc.plazma.util.Constants.EMPTY_OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.DUPLICATE_LOGIN); // Paper - kick event cause } // Instead of kicking then returning, we need to store the kick reason diff --git a/src/main/java/net/minecraft/server/players/StoredUserList.java b/src/main/java/net/minecraft/server/players/StoredUserList.java index 4fd709a550bf8da1e996894a1ca6b91206c31e9e..d676116150e5a741b2050e26c76c19bccc8a95dc 100644 --- a/src/main/java/net/minecraft/server/players/StoredUserList.java +++ b/src/main/java/net/minecraft/server/players/StoredUserList.java @@ -95,7 +95,7 @@ public abstract class StoredUserList> { } public String[] getUserList() { - return (String[]) this.map.keySet().toArray(new String[0]); + return (String[]) this.map.keySet().toArray(org.plazmamc.plazma.util.Constants.EMPTY_STRING); } // CraftBukkit start diff --git a/src/main/java/net/minecraft/util/MemoryReserve.java b/src/main/java/net/minecraft/util/MemoryReserve.java index 0ee04fe6ff6a4d09754f326526ae04fe7226bab2..0efc5682210e6cd3e0ee03a5e4340614869a8575 100644 --- a/src/main/java/net/minecraft/util/MemoryReserve.java +++ b/src/main/java/net/minecraft/util/MemoryReserve.java @@ -11,6 +11,6 @@ public class MemoryReserve { } public static void release() { - reserve = new byte[0]; + reserve = org.plazmamc.plazma.util.Constants.EMPTY_BYTE; } } diff --git a/src/main/java/net/minecraft/util/ZeroBitStorage.java b/src/main/java/net/minecraft/util/ZeroBitStorage.java index 5d8e9bdf5538b19681f21949368d862fab8a89ad..2d5aa26dc700d08caa856b6b287b35ed8b99a390 100644 --- a/src/main/java/net/minecraft/util/ZeroBitStorage.java +++ b/src/main/java/net/minecraft/util/ZeroBitStorage.java @@ -5,7 +5,7 @@ import java.util.function.IntConsumer; import org.apache.commons.lang3.Validate; public class ZeroBitStorage implements BitStorage { - public static final long[] RAW = new long[0]; + public static final long[] RAW = org.plazmamc.plazma.util.Constants.EMPTY_LONG; private final int size; public ZeroBitStorage(int size) { diff --git a/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java b/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java index 89d70a992e0bcc8e7292c4f736470eafd8747b24..a3f071101fbd10272373f99ebd2c76c0805d0d25 100644 --- a/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java +++ b/src/main/java/net/minecraft/util/datafix/fixes/LeavesFix.java @@ -70,7 +70,7 @@ public class LeavesFix extends DataFix { OpticFinder opticFinder3 = DSL.typeFinder(type3); return this.fixTypeEverywhereTyped("Leaves fix", type, (typed) -> { return typed.updateTyped(opticFinder, (typedx) -> { - int[] is = new int[]{0}; + int[] is = org.plazmamc.plazma.util.Constants.ZERO_INT; Typed typed2 = typedx.updateTyped(opticFinder2, (typed2x) -> { Int2ObjectMap int2ObjectMap = new Int2ObjectOpenHashMap<>(typed2x.getAllTyped(opticFinder3).stream().map((typedx2) -> { return new LeavesFix.LeavesSection(typedx2, this.getInputSchema()); diff --git a/src/main/java/net/minecraft/world/entity/animal/Bee.java b/src/main/java/net/minecraft/world/entity/animal/Bee.java index d47dc0c3fe8c2b80d7b7eb828a12af6eb32145e4..71d2649e4046323250a85f3b071e98f58a161302 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Bee.java +++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java @@ -267,7 +267,7 @@ public class Bee extends Animal implements NeutralMob, FlyingAnimal { this.goalSelector.addGoal(8, new Bee.BeeWanderGoal()); this.goalSelector.addGoal(9, new FloatGoal(this)); this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - this.targetSelector.addGoal(1, (new Bee.BeeHurtByOtherGoal(this)).setAlertOthers(new Class[0])); + this.targetSelector.addGoal(1, (new Bee.BeeHurtByOtherGoal(this)).setAlertOthers(org.plazmamc.plazma.util.Constants.EMPTY_CLASS)); this.targetSelector.addGoal(2, new Bee.BeeBecomeAngryTargetGoal(this)); this.targetSelector.addGoal(3, new ResetUniversalAngerTargetGoal<>(this, true)); } diff --git a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java index b5f445750a5ccbe7658396bdcc9648dc41f39ced..d8853726b9925c085e10d1e091cf275f708dd080 100644 --- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java +++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java @@ -125,7 +125,7 @@ public class IronGolem extends AbstractGolem implements NeutralMob { this.goalSelector.addGoal(8, new RandomLookAroundGoal(this)); this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur this.targetSelector.addGoal(1, new DefendVillageTargetGoal(this)); - this.targetSelector.addGoal(2, new HurtByTargetGoal(this, new Class[0])); + this.targetSelector.addGoal(2, new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Mob.class, 5, false, false, (entityliving) -> { return entityliving instanceof Enemy && !(entityliving instanceof Creeper); diff --git a/src/main/java/net/minecraft/world/entity/animal/Panda.java b/src/main/java/net/minecraft/world/entity/animal/Panda.java index d1e45052fc96b6f81a331c6c73cb68ff96238359..2bd536243eca0c93c787260848d8b8862de3c996 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Panda.java +++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java @@ -333,7 +333,7 @@ public class Panda extends Animal { this.goalSelector.addGoal(13, new FollowParentGoal(this, 1.25D)); this.goalSelector.addGoal(14, new WaterAvoidingRandomStrollGoal(this, 1.0D)); this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - this.targetSelector.addGoal(1, (new Panda.PandaHurtByTargetGoal(this, new Class[0])).setAlertOthers(new Class[0])); + this.targetSelector.addGoal(1, (new Panda.PandaHurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)).setAlertOthers(org.plazmamc.plazma.util.Constants.EMPTY_CLASS)); } public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java index 3395bc1d9140ab5496ad998343a963ae12f630d6..5933576c3f6cd8927fafa003fa30163137c25b20 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java +++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java @@ -457,7 +457,7 @@ public class Rabbit extends Animal implements VariantHolder { if (variant == Rabbit.Variant.EVIL) { this.getAttribute(Attributes.ARMOR).setBaseValue(8.0D); this.goalSelector.addGoal(4, new Rabbit.EvilRabbitAttackGoal(this)); - this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); + this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)).setAlertOthers()); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Wolf.class, true)); if (!this.hasCustomName()) { diff --git a/src/main/java/net/minecraft/world/entity/animal/Wolf.java b/src/main/java/net/minecraft/world/entity/animal/Wolf.java index e0ca657b0aea52ab6a91c256c1bfad1e5028f6e0..92ff2445dafdc5423e9da5941aee2c9d196e8202 100644 --- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java +++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java @@ -238,7 +238,7 @@ public class Wolf extends TamableAnimal implements NeutralMob { this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur this.targetSelector.addGoal(1, new OwnerHurtByTargetGoal(this)); this.targetSelector.addGoal(2, new OwnerHurtTargetGoal(this)); - this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); + this.targetSelector.addGoal(3, (new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)).setAlertOthers()); this.targetSelector.addGoal(4, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt)); // this.targetSelector.addGoal(5, new NonTameRandomTargetGoal<>(this, Animal.class, false, Wolf.PREY_SELECTOR)); // Purpur - moved to updatePathfinders() this.targetSelector.addGoal(6, new NonTameRandomTargetGoal<>(this, Turtle.class, false, Turtle.BABY_ON_LAND_SELECTOR)); diff --git a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java index 86c9b549e3e75adf9bd5562c4c8d303cf2080e45..d686cee5601280c3970c7c4e9df2aa2a3bb32a6f 100644 --- a/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java +++ b/src/main/java/net/minecraft/world/entity/animal/allay/Allay.java @@ -86,7 +86,7 @@ public class Allay extends PathfinderMob implements InventoryCarrier { private static final EntityDataAccessor DATA_DANCING = SynchedEntityData.defineId(Allay.class, EntityDataSerializers.BOOLEAN); private static final EntityDataAccessor DATA_CAN_DUPLICATE = SynchedEntityData.defineId(Allay.class, EntityDataSerializers.BOOLEAN); protected static final ImmutableList>> SENSOR_TYPES = ImmutableList.of(SensorType.NEAREST_LIVING_ENTITIES, SensorType.NEAREST_PLAYERS, SensorType.HURT_BY, SensorType.NEAREST_ITEMS); - protected static final ImmutableList> MEMORY_TYPES = ImmutableList.of(MemoryModuleType.PATH, MemoryModuleType.LOOK_TARGET, MemoryModuleType.NEAREST_VISIBLE_LIVING_ENTITIES, MemoryModuleType.WALK_TARGET, MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE, MemoryModuleType.HURT_BY, MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, MemoryModuleType.LIKED_PLAYER, MemoryModuleType.LIKED_NOTEBLOCK_POSITION, MemoryModuleType.LIKED_NOTEBLOCK_COOLDOWN_TICKS, MemoryModuleType.ITEM_PICKUP_COOLDOWN_TICKS, MemoryModuleType.IS_PANICKING, new MemoryModuleType[0]); + protected static final ImmutableList> MEMORY_TYPES = ImmutableList.of(MemoryModuleType.PATH, MemoryModuleType.LOOK_TARGET, MemoryModuleType.NEAREST_VISIBLE_LIVING_ENTITIES, MemoryModuleType.WALK_TARGET, MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE, MemoryModuleType.HURT_BY, MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, MemoryModuleType.LIKED_PLAYER, MemoryModuleType.LIKED_NOTEBLOCK_POSITION, MemoryModuleType.LIKED_NOTEBLOCK_COOLDOWN_TICKS, MemoryModuleType.ITEM_PICKUP_COOLDOWN_TICKS, MemoryModuleType.IS_PANICKING, org.plazmamc.plazma.util.Constants.MEMORY_MODULE_TYPE); public static final ImmutableList THROW_SOUND_PITCHES = ImmutableList.of(0.5625F, 0.625F, 0.75F, 0.9375F, 1.0F, 1.0F, 1.125F, 1.25F, 1.5F, 1.875F, 2.0F, 2.25F, new Float[]{2.5F, 3.0F, 3.75F, 4.0F}); private final DynamicGameEventListener dynamicVibrationListener; private final VibrationListener.VibrationListenerConfig vibrationListenerConfig; diff --git a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java index 4781bdd3b6c7d6b686f2fe6af530e82861385342..4bdf023ea780cfe6507d26a00332067194140de5 100644 --- a/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java +++ b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java @@ -265,7 +265,7 @@ public class WitherBoss extends Monster implements PowerableMob, RangedAttackMob this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 8.0F)); this.goalSelector.addGoal(7, new RandomLookAroundGoal(this)); this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - this.targetSelector.addGoal(1, new HurtByTargetGoal(this, new Class[0])); + this.targetSelector.addGoal(1, new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, LivingEntity.class, 0, false, false, WitherBoss.LIVING_ENTITY_SELECTOR)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java index 9c8713ef3aeb2ff203bd0328d15d80c2d78d09e9..e6169c6d1608f7765f3383dd6c2c8b40c2b690da 100644 --- a/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java +++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java @@ -79,7 +79,7 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 8.0F)); this.goalSelector.addGoal(6, new RandomLookAroundGoal(this)); this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - this.targetSelector.addGoal(1, new HurtByTargetGoal(this, new Class[0])); + this.targetSelector.addGoal(1, new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, IronGolem.class, true)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Turtle.class, 10, true, false, Turtle.BABY_ON_LAND_SELECTOR)); diff --git a/src/main/java/net/minecraft/world/entity/monster/Creeper.java b/src/main/java/net/minecraft/world/entity/monster/Creeper.java index c32eda28be3eb2c6a6933463d496ea7b6510f27e..75103823a200b242070d2634c2b2dbdc07aa53be 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java +++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java @@ -184,7 +184,7 @@ public class Creeper extends Monster implements PowerableMob { this.goalSelector.addGoal(6, new RandomLookAroundGoal(this)); this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur this.targetSelector.addGoal(1, new NearestAttackableTargetGoal<>(this, Player.class, true)); - this.targetSelector.addGoal(2, new HurtByTargetGoal(this, new Class[0])); + this.targetSelector.addGoal(2, new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)); } public static AttributeSupplier.Builder createAttributes() { diff --git a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java index 7c26e1979cdae52e2e94d24dd8c3164e815226ab..5faf3a1da09417236a65f13637d09de913207437 100644 --- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java +++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java @@ -132,7 +132,7 @@ public class EnderMan extends Monster implements NeutralMob { this.goalSelector.addGoal(11, new EnderMan.EndermanTakeBlockGoal(this)); this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur this.targetSelector.addGoal(1, new EnderMan.EndermanLookForPlayerGoal(this, this::isAngryAt)); - this.targetSelector.addGoal(2, new HurtByTargetGoal(this, new Class[0])); + this.targetSelector.addGoal(2, new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)); this.targetSelector.addGoal(3, new NearestAttackableTargetGoal<>(this, Endermite.class, 10, true, false, (entityliving) -> entityliving.level.purpurConfig.endermanAggroEndermites && entityliving instanceof Endermite endermite && (!entityliving.level.purpurConfig.endermanAggroEndermitesOnlyIfPlayerSpawned || endermite.isPlayerSpawned()))); // Purpur this.targetSelector.addGoal(4, new ResetUniversalAngerTargetGoal<>(this, false)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java index 202fe776c9275571138aabd230bec2fa0a985bb1..f95b46f6df814a9eb6b1d920ea9afa5782c2bfaf 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java +++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java @@ -84,7 +84,7 @@ public class Silverfish extends Monster { this.goalSelector.addGoal(4, new MeleeAttackGoal(this, 1.0D, false)); this.goalSelector.addGoal(5, new Silverfish.SilverfishMergeWithStoneGoal(this)); this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); + this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)).setAlertOthers()); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java index 8e071a0922164970e033029c12058db9e8da261a..0c7580f5f648713b781ff6288ec0000809c15dbf 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Spider.java +++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java @@ -93,7 +93,7 @@ public class Spider extends Monster { this.goalSelector.addGoal(6, new LookAtPlayerGoal(this, Player.class, 8.0F)); this.goalSelector.addGoal(6, new RandomLookAroundGoal(this)); this.targetSelector.addGoal(0, new org.purpurmc.purpur.entity.ai.HasRider(this)); // Purpur - this.targetSelector.addGoal(1, new HurtByTargetGoal(this, new Class[0])); + this.targetSelector.addGoal(1, new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)); this.targetSelector.addGoal(2, new Spider.SpiderTargetGoal<>(this, Player.class)); this.targetSelector.addGoal(3, new Spider.SpiderTargetGoal<>(this, IronGolem.class)); } diff --git a/src/main/java/net/minecraft/world/entity/monster/Zombie.java b/src/main/java/net/minecraft/world/entity/monster/Zombie.java index 36d37e544e342e1bc584374580dbb5c883523204..11a4a8462723b82367afdfd5776286a0896375d1 100644 --- a/src/main/java/net/minecraft/world/entity/monster/Zombie.java +++ b/src/main/java/net/minecraft/world/entity/monster/Zombie.java @@ -165,7 +165,7 @@ public class Zombie extends Monster { this.goalSelector.addGoal(2, new ZombieAttackGoal(this, 1.0D, false)); this.goalSelector.addGoal(6, new MoveThroughVillageGoal(this, 1.0D, true, 4, this::canBreakDoors)); this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 1.0D)); - this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, new Class[0])).setAlertOthers(ZombifiedPiglin.class)); + this.targetSelector.addGoal(1, (new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)).setAlertOthers(ZombifiedPiglin.class)); this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true)); // Purpur start if ( level.spigotConfig.zombieAggressiveTowardsVillager ) this.targetSelector.addGoal(3, new NearestAttackableTargetGoal(this, AbstractVillager.class, false) { // Spigot diff --git a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java index d3bcfa017967db0a20c18c65e27c2a0471d2214e..9da90fd6c828fe5fe3a153cd1fda93ce6e54e482 100644 --- a/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java +++ b/src/main/java/net/minecraft/world/entity/monster/ZombifiedPiglin.java @@ -124,7 +124,7 @@ public class ZombifiedPiglin extends Zombie implements NeutralMob { protected void addBehaviourGoals() { this.goalSelector.addGoal(2, new ZombieAttackGoal(this, 1.0D, false)); this.goalSelector.addGoal(7, new WaterAvoidingRandomStrollGoal(this, 1.0D)); - this.targetSelector.addGoal(1, pathfinderGoalHurtByTarget = (new HurtByTargetGoal(this, new Class[0])).setAlertOthers()); // Paper - assign field + this.targetSelector.addGoal(1, pathfinderGoalHurtByTarget = (new HurtByTargetGoal(this, org.plazmamc.plazma.util.Constants.EMPTY_CLASS)).setAlertOthers()); // Paper - assign field this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, 10, true, false, this::isAngryAt)); this.targetSelector.addGoal(3, new ResetUniversalAngerTargetGoal<>(this, true)); } diff --git a/src/main/java/net/minecraft/world/item/crafting/ShapedRecipe.java b/src/main/java/net/minecraft/world/item/crafting/ShapedRecipe.java index 117a376f99b1d26c5ffa64c8551ac1e666b15888..62edc084153bdf0c7e4d43a9ab2bb8069a8a60e9 100644 --- a/src/main/java/net/minecraft/world/item/crafting/ShapedRecipe.java +++ b/src/main/java/net/minecraft/world/item/crafting/ShapedRecipe.java @@ -262,7 +262,7 @@ public class ShapedRecipe implements CraftingRecipe { } if (pattern.length == l) { - return new String[0]; + return org.plazmamc.plazma.util.Constants.EMPTY_STRING; } else { String[] astring1 = new String[pattern.length - l - k]; diff --git a/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java b/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java index 8da06f8bea0239c5206d5d4f4ff48bdeb0a89f9d..0f612bb7ed955ee966ec9f779a075bdc8d5fcbc8 100644 --- a/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java +++ b/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java @@ -89,7 +89,7 @@ public class ShapelessRecipe implements CraftingRecipe { public boolean matches(CraftingContainer inventory, Level world) { // Pufferfish start if (!this.isBukkit) { - java.util.List ingredients = com.google.common.collect.Lists.newArrayList(this.ingredients.toArray(new Ingredient[0])); + java.util.List ingredients = com.google.common.collect.Lists.newArrayList(this.ingredients.toArray(org.plazmamc.plazma.util.Constants.INGREDIENT)); inventory: for (int index = 0; index < inventory.getContainerSize(); index++) { ItemStack itemStack = inventory.getItem(index); diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java index cf0ad841267cac84ed058dee6cdd62a835325feb..24756bb1913eb1f00dc367dd9c9741a3805ef3b4 100644 --- a/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java @@ -1654,7 +1654,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { public org.bukkit.entity.Entity[] getChunkEntities(int chunkX, int chunkZ) { io.papermc.paper.world.ChunkEntitySlices slices = ((ServerLevel)this).getEntityLookup().getChunk(chunkX, chunkZ); if (slices == null) { - return new org.bukkit.entity.Entity[0]; + return org.plazmamc.plazma.util.Constants.BUKKIT_ENTITY; } return slices.getChunkEntities(); } diff --git a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java index 4f7b21caa123ea7896788fd25133d8de3ab1ccaf..3683eb2d249fecdd0df781e4cdfd2df5d09843b0 100644 --- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java +++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java @@ -442,7 +442,7 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { @Override public int[] getSlotsForFace(Direction side) { - return side == Direction.DOWN ? new int[]{0} : new int[0]; + return side == Direction.DOWN ? org.plazmamc.plazma.util.Constants.ZERO_INT : org.plazmamc.plazma.util.Constants.EMPTY_INT; } @Override @@ -491,7 +491,7 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { @Override public int[] getSlotsForFace(Direction side) { - return side == Direction.UP ? new int[]{0} : new int[0]; + return side == Direction.UP ? org.plazmamc.plazma.util.Constants.ZERO_INT : org.plazmamc.plazma.util.Constants.EMPTY_INT; } @Override @@ -533,7 +533,7 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder { @Override public int[] getSlotsForFace(Direction side) { - return new int[0]; + return org.plazmamc.plazma.util.Constants.EMPTY_INT; } @Override diff --git a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java index 5cd7b4e7065070bf9fcc34b621dba2ccba99a573..082129fc5febd78063f1b6de5f13671b429d5865 100644 --- a/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java +++ b/src/main/java/net/minecraft/world/level/block/entity/AbstractFurnaceBlockEntity.java @@ -66,7 +66,7 @@ public abstract class AbstractFurnaceBlockEntity extends BaseContainerBlockEntit protected static final int SLOT_FUEL = 1; protected static final int SLOT_RESULT = 2; public static final int DATA_LIT_TIME = 0; - private static final int[] SLOTS_FOR_UP = new int[]{0}; + private static final int[] SLOTS_FOR_UP = org.plazmamc.plazma.util.Constants.ZERO_INT; private static final int[] SLOTS_FOR_DOWN = new int[]{2, 1}; private static final int[] SLOTS_FOR_SIDES = new int[]{1}; public static final int DATA_LIT_DURATION = 1; diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkStatus.java b/src/main/java/net/minecraft/world/level/chunk/ChunkStatus.java index 71df7c590e31932f2b8fc26a2afaaa54f52674ac..071847225a94697a26eacb34f22aac0dca436af9 100644 --- a/src/main/java/net/minecraft/world/level/chunk/ChunkStatus.java +++ b/src/main/java/net/minecraft/world/level/chunk/ChunkStatus.java @@ -195,7 +195,7 @@ public class ChunkStatus { }, (chunkstatus, worldserver, structuretemplatemanager, lightenginethreaded, function, ichunkaccess) -> { return (CompletableFuture) function.apply(ichunkaccess); }); - private static final List STATUS_BY_RANGE = ImmutableList.of(ChunkStatus.FULL, ChunkStatus.FEATURES, ChunkStatus.LIQUID_CARVERS, ChunkStatus.BIOMES, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, new ChunkStatus[0]); + private static final List STATUS_BY_RANGE = ImmutableList.of(ChunkStatus.FULL, ChunkStatus.FEATURES, ChunkStatus.LIQUID_CARVERS, ChunkStatus.BIOMES, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, ChunkStatus.STRUCTURE_STARTS, org.plazmamc.plazma.util.Constants.CHUNK_STATUS); private static final IntList RANGE_BY_STATUS = (IntList) Util.make(new IntArrayList(ChunkStatus.getStatusList().size()), (intarraylist) -> { int i = 0; diff --git a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java index dcfe090c269d4cbcc2eb1b6f85392848bb34656c..d1b3863df59115899494b9d662ba6beba2f15353 100644 --- a/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java +++ b/src/main/java/net/minecraft/world/level/chunk/storage/RegionFile.java @@ -445,7 +445,7 @@ public class RegionFile implements AutoCloseable { initOversizedState(); // Paper this.usedSectors = new RegionBitmap(); this.version = outputChunkStreamVersion; - if (!Files.isDirectory(directory, new LinkOption[0])) { + if (!Files.isDirectory(directory, org.plazmamc.plazma.util.Constants.LINK_OPTION)) { throw new IllegalArgumentException("Expected directory, got " + directory.toAbsolutePath()); } else { this.externalFileDir = directory; @@ -701,7 +701,7 @@ public class RegionFile implements AutoCloseable { private DataInputStream createExternalChunkInputStream(ChunkPos pos, byte flags) throws IOException { Path path = this.getExternalChunkPath(pos); - if (!Files.isRegularFile(path, new LinkOption[0])) { + if (!Files.isRegularFile(path, org.plazmamc.plazma.util.Constants.LINK_OPTION)) { RegionFile.LOGGER.error("External chunk path {} is not file", path); return null; } else { @@ -753,7 +753,7 @@ public class RegionFile implements AutoCloseable { return false; } - if (!Files.isRegularFile(this.getExternalChunkPath(pos), new LinkOption[0])) { + if (!Files.isRegularFile(this.getExternalChunkPath(pos), org.plazmamc.plazma.util.Constants.LINK_OPTION)) { return false; } } else { diff --git a/src/main/java/net/minecraft/world/level/levelgen/DebugLevelSource.java b/src/main/java/net/minecraft/world/level/levelgen/DebugLevelSource.java index c68736b023127c7b395835f4fa82d9062110697b..bd88f27db229d1e34b69bcd9e975bec502d8226b 100644 --- a/src/main/java/net/minecraft/world/level/levelgen/DebugLevelSource.java +++ b/src/main/java/net/minecraft/world/level/levelgen/DebugLevelSource.java @@ -88,7 +88,7 @@ public class DebugLevelSource extends ChunkGenerator { @Override public NoiseColumn getBaseColumn(int x, int z, LevelHeightAccessor world, RandomState noiseConfig) { - return new NoiseColumn(0, new BlockState[0]); + return new NoiseColumn(0, org.plazmamc.plazma.util.Constants.BLOCK_STATE); } @Override diff --git a/src/main/java/net/minecraft/world/level/pathfinder/Path.java b/src/main/java/net/minecraft/world/level/pathfinder/Path.java index 2a335f277bd0e4b8ad0f60d8226eb8aaa80a871f..c5597c9b902857ed83b54fd74fcd9463749e3dbc 100644 --- a/src/main/java/net/minecraft/world/level/pathfinder/Path.java +++ b/src/main/java/net/minecraft/world/level/pathfinder/Path.java @@ -13,8 +13,8 @@ import net.minecraft.world.phys.Vec3; public class Path { public final List nodes; - private Node[] openSet = new Node[0]; - private Node[] closedSet = new Node[0]; + private Node[] openSet = org.plazmamc.plazma.util.Constants.EMPTY_NODE; + private Node[] closedSet = org.plazmamc.plazma.util.Constants.EMPTY_NODE; @Nullable private Set targetNodes; private int nextNodeIndex; diff --git a/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java b/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java index f212a78d9d32e9b59f16f03e07d2dd4789ad8080..cd894e9ba08efed114efd76126a888cf3c4f9327 100644 --- a/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java +++ b/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java @@ -125,14 +125,14 @@ public class LevelStorageSource { } public LevelStorageSource.LevelCandidates findLevelCandidates() throws LevelStorageException { - if (!Files.isDirectory(this.baseDir, new LinkOption[0])) { + if (!Files.isDirectory(this.baseDir, org.plazmamc.plazma.util.Constants.LINK_OPTION)) { throw new LevelStorageException(Component.translatable("selectWorld.load_folder_access")); } else { try { List list = Files.list(this.baseDir).filter((path) -> { - return Files.isDirectory(path, new LinkOption[0]); + return Files.isDirectory(path, org.plazmamc.plazma.util.Constants.LINK_OPTION); }).map(LevelStorageSource.LevelDirectory::new).filter((convertable_b) -> { - return Files.isRegularFile(convertable_b.dataFile(), new LinkOption[0]) || Files.isRegularFile(convertable_b.oldDataFile(), new LinkOption[0]); + return Files.isRegularFile(convertable_b.dataFile(), org.plazmamc.plazma.util.Constants.LINK_OPTION) || Files.isRegularFile(convertable_b.oldDataFile(), org.plazmamc.plazma.util.Constants.LINK_OPTION); }).toList(); return new LevelStorageSource.LevelCandidates(list); @@ -187,12 +187,12 @@ public class LevelStorageSource { @Nullable T readLevelData(LevelStorageSource.LevelDirectory levelSave, BiFunction levelDataParser) { - if (!Files.exists(levelSave.path(), new LinkOption[0])) { + if (!Files.exists(levelSave.path(), org.plazmamc.plazma.util.Constants.LINK_OPTION)) { return null; } else { Path path = levelSave.dataFile(); - if (Files.exists(path, new LinkOption[0])) { + if (Files.exists(path, org.plazmamc.plazma.util.Constants.LINK_OPTION)) { T t0 = levelDataParser.apply(path, this.fixerUpper); if (t0 != null) { @@ -201,7 +201,7 @@ public class LevelStorageSource { } path = levelSave.oldDataFile(); - return Files.exists(path, new LinkOption[0]) ? levelDataParser.apply(path, this.fixerUpper) : null; + return Files.exists(path, org.plazmamc.plazma.util.Constants.LINK_OPTION) ? levelDataParser.apply(path, this.fixerUpper) : null; } } @@ -322,7 +322,7 @@ public class LevelStorageSource { } public boolean levelExists(String name) { - return Files.isDirectory(this.baseDir.resolve(name), new LinkOption[0]); + return Files.isDirectory(this.baseDir.resolve(name), org.plazmamc.plazma.util.Constants.LINK_OPTION); } public Path getBaseDir() { @@ -546,7 +546,7 @@ public class LevelStorageSource { this.checkLock(); Path path = this.levelDirectory.dataFile(); - if (Files.exists(path, new LinkOption[0])) { + if (Files.exists(path, org.plazmamc.plazma.util.Constants.LINK_OPTION)) { CompoundTag nbttagcompound = NbtIo.readCompressed(path.toFile()); CompoundTag nbttagcompound1 = nbttagcompound.getCompound("Data"); diff --git a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java index 039c952f0c157cba6e79fa9b976958bd1763a922..e9db2ee5819f6b81973472ea74bc0708612e30be 100644 --- a/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java +++ b/src/main/java/net/minecraft/world/level/storage/PlayerDataStorage.java @@ -120,7 +120,7 @@ public class PlayerDataStorage { String[] astring = this.playerDir.list(); if (astring == null) { - astring = new String[0]; + astring = org.plazmamc.plazma.util.Constants.EMPTY_STRING; } for (int i = 0; i < astring.length; ++i) { diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootPool.java b/src/main/java/net/minecraft/world/level/storage/loot/LootPool.java index fad524f8b032174cee0c68da7c68e020ee3cd619..92fe0ca7c16134701f72ea263d9aa933185978d3 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/LootPool.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/LootPool.java @@ -160,7 +160,7 @@ public class LootPool { if (this.rolls == null) { throw new IllegalArgumentException("Rolls not set"); } else { - return new LootPool(this.entries.toArray(new LootPoolEntryContainer[0]), this.conditions.toArray(new LootItemCondition[0]), this.functions.toArray(new LootItemFunction[0]), this.rolls, this.bonusRolls); + return new LootPool(this.entries.toArray(new LootPoolEntryContainer[0]), this.conditions.toArray(new LootItemCondition[0]), this.functions.toArray(org.plazmamc.plazma.util.Constants.LOOT_ITEM_FUNCTION), this.rolls, this.bonusRolls); } } } @@ -171,7 +171,7 @@ public class LootPool { JsonObject jsonObject = GsonHelper.convertToJsonObject(jsonElement, "loot pool"); LootPoolEntryContainer[] lootPoolEntryContainers = GsonHelper.getAsObject(jsonObject, "entries", jsonDeserializationContext, LootPoolEntryContainer[].class); LootItemCondition[] lootItemConditions = GsonHelper.getAsObject(jsonObject, "conditions", new LootItemCondition[0], jsonDeserializationContext, LootItemCondition[].class); - LootItemFunction[] lootItemFunctions = GsonHelper.getAsObject(jsonObject, "functions", new LootItemFunction[0], jsonDeserializationContext, LootItemFunction[].class); + LootItemFunction[] lootItemFunctions = GsonHelper.getAsObject(jsonObject, "functions", org.plazmamc.plazma.util.Constants.LOOT_ITEM_FUNCTION, jsonDeserializationContext, LootItemFunction[].class); NumberProvider numberProvider = GsonHelper.getAsObject(jsonObject, "rolls", jsonDeserializationContext, NumberProvider.class); NumberProvider numberProvider2 = GsonHelper.getAsObject(jsonObject, "bonus_rolls", ConstantValue.exactly(0.0F), jsonDeserializationContext, NumberProvider.class); return new LootPool(lootPoolEntryContainers, lootItemConditions, lootItemFunctions, numberProvider, numberProvider2); diff --git a/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java b/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java index 3bc13092873609af9c6f412190dd989d39f1df23..10654d926a60510e7449903e3ab864bc1e289b4c 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/LootTable.java @@ -42,7 +42,7 @@ import org.bukkit.event.world.LootGenerateEvent; public class LootTable { static final Logger LOGGER = LogUtils.getLogger(); - public static final LootTable EMPTY = new LootTable(LootContextParamSets.EMPTY, new LootPool[0], new LootItemFunction[0]); + public static final LootTable EMPTY = new LootTable(LootContextParamSets.EMPTY, org.plazmamc.plazma.util.Constants.LOOT_POOL, org.plazmamc.plazma.util.Constants.LOOT_ITEM_FUNCTION); public static final LootContextParamSet DEFAULT_PARAM_SET = LootContextParamSets.ALL_PARAMS; final LootContextParamSet paramSet; final LootPool[] pools; @@ -257,7 +257,7 @@ public class LootTable { } public LootTable build() { - return new LootTable(this.paramSet, (LootPool[]) this.pools.toArray(new LootPool[0]), (LootItemFunction[]) this.functions.toArray(new LootItemFunction[0])); + return new LootTable(this.paramSet, (LootPool[]) this.pools.toArray(org.plazmamc.plazma.util.Constants.LOOT_POOL), (LootItemFunction[]) this.functions.toArray(org.plazmamc.plazma.util.Constants.LOOT_ITEM_FUNCTION)); } } @@ -267,7 +267,7 @@ public class LootTable { public LootTable deserialize(JsonElement jsonelement, Type type, JsonDeserializationContext jsondeserializationcontext) throws JsonParseException { JsonObject jsonobject = GsonHelper.convertToJsonObject(jsonelement, "loot table"); - LootPool[] alootselector = (LootPool[]) GsonHelper.getAsObject(jsonobject, "pools", new LootPool[0], jsondeserializationcontext, LootPool[].class); + LootPool[] alootselector = (LootPool[]) GsonHelper.getAsObject(jsonobject, "pools", org.plazmamc.plazma.util.Constants.LOOT_POOL, jsondeserializationcontext, LootPool[].class); LootContextParamSet lootcontextparameterset = null; if (jsonobject.has("type")) { @@ -276,7 +276,7 @@ public class LootTable { lootcontextparameterset = LootContextParamSets.get(new ResourceLocation(s)); } - LootItemFunction[] alootitemfunction = (LootItemFunction[]) GsonHelper.getAsObject(jsonobject, "functions", new LootItemFunction[0], jsondeserializationcontext, LootItemFunction[].class); + LootItemFunction[] alootitemfunction = (LootItemFunction[]) GsonHelper.getAsObject(jsonobject, "functions", org.plazmamc.plazma.util.Constants.LOOT_ITEM_FUNCTION, jsondeserializationcontext, LootItemFunction[].class); return new LootTable(lootcontextparameterset != null ? lootcontextparameterset : LootContextParamSets.ALL_PARAMS, alootselector, alootitemfunction); } diff --git a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java index d125b5a470be0f4c56c2c1f229fc5c83fc4d2f3b..ebb598eab6ae185b7a4e126cc59637b0cf878fee 100644 --- a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java +++ b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolSingletonContainer.java @@ -78,7 +78,7 @@ public abstract class LootPoolSingletonContainer extends LootPoolEntryContainer } protected LootItemFunction[] getFunctions() { - return this.functions.toArray(new LootItemFunction[0]); + return this.functions.toArray(org.plazmamc.plazma.util.Constants.LOOT_ITEM_FUNCTION); } public T setWeight(int weight) { @@ -169,7 +169,7 @@ public abstract class LootPoolSingletonContainer extends LootPoolEntryContainer public final T deserializeCustom(JsonObject jsonObject, JsonDeserializationContext jsonDeserializationContext, LootItemCondition[] lootItemConditions) { int i = GsonHelper.getAsInt(jsonObject, "weight", 1); int j = GsonHelper.getAsInt(jsonObject, "quality", 0); - LootItemFunction[] lootItemFunctions = GsonHelper.getAsObject(jsonObject, "functions", new LootItemFunction[0], jsonDeserializationContext, LootItemFunction[].class); + LootItemFunction[] lootItemFunctions = GsonHelper.getAsObject(jsonObject, "functions", org.plazmamc.plazma.util.Constants.LOOT_ITEM_FUNCTION, jsonDeserializationContext, LootItemFunction[].class); return this.deserialize(jsonObject, jsonDeserializationContext, i, j, lootItemConditions, lootItemFunctions); } diff --git a/src/main/java/net/minecraft/world/scores/Team.java b/src/main/java/net/minecraft/world/scores/Team.java index 16d2aa4556bc9f32a2def7f9ca282aa3fa23fb87..c9b266246a83e3d7f5ce61306f291ceff902079d 100644 --- a/src/main/java/net/minecraft/world/scores/Team.java +++ b/src/main/java/net/minecraft/world/scores/Team.java @@ -80,7 +80,7 @@ public abstract class Team { public final int id; public static String[] getAllNames() { - return BY_NAME.keySet().toArray(new String[0]); + return BY_NAME.keySet().toArray(org.plazmamc.plazma.util.Constants.EMPTY_STRING); } @Nullable diff --git a/src/main/java/org/bukkit/craftbukkit/bootstrap/Main.java b/src/main/java/org/bukkit/craftbukkit/bootstrap/Main.java index 9a2ec50be757dfa3780a49ec96942fed89ed530c..d5b904a36d7c0a9d0f8787eccc770fd47a03430f 100644 --- a/src/main/java/org/bukkit/craftbukkit/bootstrap/Main.java +++ b/src/main/java/org/bukkit/craftbukkit/bootstrap/Main.java @@ -50,7 +50,7 @@ public class Main { System.exit(0); } - URLClassLoader classLoader = new URLClassLoader(extractedUrls.toArray(new URL[0])); + URLClassLoader classLoader = new URLClassLoader(extractedUrls.toArray(org.plazmamc.plazma.util.Constants.URL)); System.out.println("Starting server"); Thread runThread = new Thread(() -> { diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java index e363891e8ab872ed24c557e3f94110f36c6fb277..409d2e1d936932177caebdb1e12278bdd58db3b2 100644 --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java @@ -472,7 +472,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { public void sendTitle(Title title) { Preconditions.checkNotNull(title, "Title is null"); setTitleTimes(title.getFadeIn(), title.getStay(), title.getFadeOut()); - setSubtitle(title.getSubtitle() == null ? new BaseComponent[0] : title.getSubtitle()); + setSubtitle(title.getSubtitle() == null ? org.plazmamc.plazma.util.Constants.BASE_COMPONENT : title.getSubtitle()); showTitle(title.getTitle()); } diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java index a5d7fae348b0b262a0a8a5e8e76f1bc75ca52a16..8b9b267e226ab1645fd8c57e1f8196276008345e 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaBook.java @@ -609,7 +609,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta { throw new IllegalArgumentException("Invalid page number " + page + "/" + CraftMetaBook.this.getPageCount()); } - BaseComponent[] newText = text == null ? new BaseComponent[0] : text; + BaseComponent[] newText = text == null ? org.plazmamc.plazma.util.Constants.BASE_COMPONENT : text; CraftMetaBook.this.pages.set(page - 1, this.componentsToPage(newText)); } @@ -622,7 +622,7 @@ public class CraftMetaBook extends CraftMetaItem implements BookMeta { public void addPage(final BaseComponent[]... pages) { for (BaseComponent[] page : pages) { if (page == null) { - page = new BaseComponent[0]; + page = org.plazmamc.plazma.util.Constants.BASE_COMPONENT; } CraftMetaBook.this.internalAddPage(this.componentsToPage(page)); diff --git a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java index 936f8babf74b2be6240e5dbc2d0a84f8badada2e..ab9f71a45a4f2a9781ad1a12f8dda4ac9179c72f 100644 --- a/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java +++ b/src/main/java/org/bukkit/craftbukkit/inventory/CraftMetaItem.java @@ -880,7 +880,7 @@ class CraftMetaItem implements ItemMeta, Damageable, Repairable, BlockDataMeta { // Paper start @Override public net.md_5.bungee.api.chat.BaseComponent[] getDisplayNameComponent() { - return displayName == null ? new net.md_5.bungee.api.chat.BaseComponent[0] : net.md_5.bungee.chat.ComponentSerializer.parse(displayName); + return displayName == null ? org.plazmamc.plazma.util.Constants.BASE_COMPONENT : net.md_5.bungee.chat.ComponentSerializer.parse(displayName); } // Paper end @Override diff --git a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java index 049d750d3af991dd14ac8cf644330404e74b2151..c2d41e133bbbaf1b445388829769e898b0ae67da 100644 --- a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java +++ b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java @@ -166,7 +166,7 @@ public final class WeakCollection implements Collection { @Override public Object[] toArray() { - return this.toArray(new Object[0]); + return this.toArray(org.plazmamc.plazma.util.Constants.EMPTY_OBJECT); } @Override diff --git a/src/main/java/org/plazmamc/plazma/commands/subcommands/VersionCommand.java b/src/main/java/org/plazmamc/plazma/commands/subcommands/VersionCommand.java index 85002144e0b350c4ae044e1a4a4c1734cc27c059..d4f5a0e49eebd2e02790a10a87166836ee6c3c09 100644 --- a/src/main/java/org/plazmamc/plazma/commands/subcommands/VersionCommand.java +++ b/src/main/java/org/plazmamc/plazma/commands/subcommands/VersionCommand.java @@ -9,7 +9,7 @@ public class VersionCommand implements PlazmaSubCommand { @Override public boolean execute(CommandSender sender, String subCommand, String[] args) { final @Nullable Command ver = MinecraftServer.getServer().server.getCommandMap().getCommand("version"); - if (ver != null) ver.execute(sender, "plazma", new String[0]); + if (ver != null) ver.execute(sender, "plazma", org.plazmamc.plazma.util.Constants.EMPTY_STRING); return true; } } diff --git a/src/main/java/org/plazmamc/plazma/util/Constants.java b/src/main/java/org/plazmamc/plazma/util/Constants.java new file mode 100644 index 0000000000000000000000000000000000000000..be3d3a62b966b1d09ca417c4339757fb8c2bb710 --- /dev/null +++ b/src/main/java/org/plazmamc/plazma/util/Constants.java @@ -0,0 +1,40 @@ +package org.plazmamc.plazma.util; + +public final class Constants { + + public static final Object[] EMPTY_OBJECT = new Object[0]; + public static final byte[] EMPTY_BYTE = new byte[0]; + public static final int[] EMPTY_INT = new int[0]; + public static final int[] ZERO_INT = new int[]{0}; + public static final long[] EMPTY_LONG = new long[0]; + public static final String[] EMPTY_STRING = new String[0]; + public static final StackTraceElement[] STACK_TRACE_ELEMENT = new StackTraceElement[0]; + public static final Class[] EMPTY_CLASS = new Class[0]; + + public static final java.util.concurrent.CompletableFuture[] COMPLETABLE_FUTURE = new java.util.concurrent.CompletableFuture[0]; + public static final java.nio.file.LinkOption[] LINK_OPTION = new java.nio.file.LinkOption[0]; + public static final java.net.URL[] URL = new java.net.URL[0]; + + public static final com.mojang.authlib.GameProfile[] GAME_PROFILE = new com.mojang.authlib.GameProfile[0]; + + public static final net.minecraft.world.entity.Entity[] ENTITY = new net.minecraft.world.entity.Entity[0]; + public static final net.minecraft.world.level.block.state.BlockState[] BLOCK_STATE = new net.minecraft.world.level.block.state.BlockState[0]; + public static final net.minecraft.world.level.chunk.LevelChunk[] LEVEL_CHUNK = new net.minecraft.world.level.chunk.LevelChunk[0]; + public static final net.minecraft.resources.ResourceLocation[] RESOURCE_LOCATION = new net.minecraft.resources.ResourceLocation[0]; + public static final net.minecraft.server.network.ServerPlayerConnection[] SERVER_PLAYER_CONNECTION = new net.minecraft.server.network.ServerPlayerConnection[0]; + public static final net.minecraft.world.entity.ai.memory.MemoryModuleType[] MEMORY_MODULE_TYPE = new net.minecraft.world.entity.ai.memory.MemoryModuleType[0]; + public static final net.minecraft.world.item.crafting.Ingredient[] INGREDIENT = new net.minecraft.world.item.crafting.Ingredient[0]; + public static final net.minecraft.world.level.chunk.ChunkStatus[] CHUNK_STATUS = new net.minecraft.world.level.chunk.ChunkStatus[0]; + public static final net.minecraft.world.level.pathfinder.Node[] EMPTY_NODE = new net.minecraft.world.level.pathfinder.Node[0]; + public static final net.minecraft.world.level.storage.loot.LootPool[] LOOT_POOL = new net.minecraft.world.level.storage.loot.LootPool[0]; + public static final net.minecraft.world.level.storage.loot.functions.LootItemFunction[] LOOT_ITEM_FUNCTION = new net.minecraft.world.level.storage.loot.functions.LootItemFunction[0]; + + public static final net.md_5.bungee.api.chat.BaseComponent[] BASE_COMPONENT = new net.md_5.bungee.api.chat.BaseComponent[0]; + + public static final io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.ChunkInfo[] CHUNK_INFO = new io.papermc.paper.chunk.system.scheduling.ChunkTaskScheduler.ChunkInfo[0]; + + public static final ca.spottedleaf.starlight.common.light.StarLightEngine.AxisDirection[] STARLIGHT_AXIS_DIRECTION = new ca.spottedleaf.starlight.common.light.StarLightEngine.AxisDirection[0]; + + public static final org.bukkit.entity.Entity[] BUKKIT_ENTITY = new org.bukkit.entity.Entity[0]; + +} \ No newline at end of file diff --git a/src/main/java/org/purpurmc/purpur/command/PurpurCommand.java b/src/main/java/org/purpurmc/purpur/command/PurpurCommand.java index 2621e54879e9ab0029a875f1d09eee67878b90d5..6fdb80b1b3cbc0b4f8e50ccbf5f5104496860100 100644 --- a/src/main/java/org/purpurmc/purpur/command/PurpurCommand.java +++ b/src/main/java/org/purpurmc/purpur/command/PurpurCommand.java @@ -57,7 +57,7 @@ public class PurpurCommand extends Command { } else if (args[0].equalsIgnoreCase("version")) { Command verCmd = org.bukkit.Bukkit.getServer().getCommandMap().getCommand("version"); if (verCmd != null) { - return verCmd.execute(sender, commandLabel, new String[0]); + return verCmd.execute(sender, commandLabel, org.plazmamc.plazma.util.Constants.EMPTY_STRING); } }