1384 lines
95 KiB
Diff
1384 lines
95 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: AlphaKR93 <alphakr93@outlook.com>
|
|
Date: Thu, 6 Jul 2023 23:56:45 +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 ad1eeebe6de219143492b94da309cb54ae9e0a5b..9c5cd176f9e7c525877c9fd219a4b8d3e2e6231d 100644
|
|
--- a/src/main/java/ca/spottedleaf/starlight/common/light/StarLightEngine.java
|
|
+++ b/src/main/java/ca/spottedleaf/starlight/common/light/StarLightEngine.java
|
|
@@ -1088,13 +1088,14 @@ public abstract class StarLightEngine {
|
|
|
|
protected static final AxisDirection[][] OLD_CHECK_DIRECTIONS = new AxisDirection[1 << 6][];
|
|
protected static final int ALL_DIRECTIONS_BITSET = (1 << 6) - 1;
|
|
+ private static final AxisDirection[] EMPTY_DIRECTION = new AxisDirection[0]; // Plazma
|
|
static {
|
|
for (int i = 0; i < OLD_CHECK_DIRECTIONS.length; ++i) {
|
|
final List<AxisDirection> directions = new ArrayList<>();
|
|
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(EMPTY_DIRECTION); // Plazma
|
|
}
|
|
}
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java b/src/main/java/com/destroystokyo/paper/antixray/ChunkPacketBlockControllerAntiXray.java
|
|
index 42fdce97d99618a53f2e9c51804ff2205b574f69..20ad001e6418606d0d33f9a1148cbec86f0d4a3a 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<BlockState> presetBlockStateSet = new LinkedHashSet<>();
|
|
// Therefore addAll(Collection<? extends E>) 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.EmptyConstants.BLOCK_STATE); // Plazma
|
|
+ presetBlockStatesFull = presetBlockStateSet.isEmpty() ? new BlockState[]{Blocks.DIAMOND_ORE.defaultBlockState()} : presetBlockStateList.toArray(org.plazmamc.plazma.EmptyConstants.BLOCK_STATE); // Plazma
|
|
presetBlockStatesStone = null;
|
|
presetBlockStatesDeepslate = null;
|
|
presetBlockStatesNetherrack = null;
|
|
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..628e8e7c982d498b1a8297bebbe35ea1879fe5b8 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/util/maplist/EntityList.java
|
|
@@ -17,9 +17,9 @@ public final class EntityList implements Iterable<Entity> {
|
|
this.entityToIndex.defaultReturnValue(Integer.MIN_VALUE);
|
|
}
|
|
|
|
- protected static final Entity[] EMPTY_LIST = new Entity[0];
|
|
+ //protected static final Entity[] EMPTY_LIST = new Entity[0]; // Plazma
|
|
|
|
- protected Entity[] entities = EMPTY_LIST;
|
|
+ protected Entity[] entities = org.plazmamc.plazma.EmptyConstants.ENTITY; // Plazma
|
|
protected int count;
|
|
|
|
public int size() {
|
|
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..8656dfe589cdfc80207f42cef09684ba637f1700 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/util/maplist/IBlockDataList.java
|
|
@@ -20,9 +20,9 @@ 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 = new long[0]; // Plazma
|
|
|
|
- private long[] byIndex = EMPTY_LIST;
|
|
+ private long[] byIndex = org.plazmamc.plazma.EmptyConstants.LONG; // Plazma
|
|
private int size;
|
|
|
|
public static int getLocationKey(final int x, final int y, final int z) {
|
|
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..98a3a2ab266e88f2d21664f4d0f4b33a2247d6f7 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/util/maplist/ReferenceList.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/util/maplist/ReferenceList.java
|
|
@@ -15,9 +15,9 @@ public final class ReferenceList<E> implements Iterable<E> {
|
|
this.referenceToIndex.defaultReturnValue(Integer.MIN_VALUE);
|
|
}
|
|
|
|
- protected static final Object[] EMPTY_LIST = new Object[0];
|
|
+ //protected static final Object[] EMPTY_LIST = new Object[0]; // Plazma
|
|
|
|
- protected Object[] references = EMPTY_LIST;
|
|
+ protected Object[] references = org.plazmamc.plazma.EmptyConstants.OBJECT; // Plazma
|
|
protected int count;
|
|
|
|
public int size() {
|
|
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 f975cb93716e137d973ff2f9011acdbef58859a2..7b0ac438d00de2c7a27ec8aefc1d280e9c2aef8b 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
|
|
@@ -849,9 +849,10 @@ public final class ChunkTaskScheduler {
|
|
}
|
|
}
|
|
|
|
+ private static final ChunkInfo[] EMPTY_CHUNK_INFO = new ChunkInfo[0]; // Plazma
|
|
public static ChunkInfo[] getChunkInfos() {
|
|
synchronized (WAITING_CHUNKS) {
|
|
- return WAITING_CHUNKS.toArray(new ChunkInfo[0]);
|
|
+ return WAITING_CHUNKS.toArray(EMPTY_CHUNK_INFO); // Plazma
|
|
}
|
|
}
|
|
|
|
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..e955582b928085af032170467be015a3e857ec28 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.EmptyConstants.STRING); // Plazma
|
|
}
|
|
return true;
|
|
}
|
|
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
|
|
index 9c7552968b8c017c71a7a77557a66a03ed89f125..38d31c03db38235a47400c99dbc08b2d03f20532 100644
|
|
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
|
|
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperPluginInstanceManager.java
|
|
@@ -67,8 +67,9 @@ class PaperPluginInstanceManager {
|
|
return this.lookupNames.get(name.replace(' ', '_').toLowerCase(java.util.Locale.ENGLISH)); // Paper
|
|
}
|
|
|
|
+ private static final Plugin[] EMPTY_PLUGIN = new Plugin[0]; // Plazma
|
|
public @NotNull Plugin[] getPlugins() {
|
|
- return this.plugins.toArray(new Plugin[0]);
|
|
+ return this.plugins.toArray(EMPTY_PLUGIN); // Plazma
|
|
}
|
|
|
|
public boolean isPluginEnabled(@NotNull String name) {
|
|
@@ -125,6 +126,7 @@ class PaperPluginInstanceManager {
|
|
}
|
|
|
|
// The behavior of this is that all errors are logged instead of being thrown
|
|
+ private static final JavaPlugin[] EMPTY_JAVA_PLUGIN = new JavaPlugin[0]; // Plazma
|
|
public @NotNull Plugin[] loadPlugins(@NotNull Path directory) {
|
|
Preconditions.checkArgument(Files.isDirectory(directory), "Directory must be a directory"); // Avoid creating a directory if it doesn't exist
|
|
|
|
@@ -137,7 +139,7 @@ class PaperPluginInstanceManager {
|
|
this.server.getLogger().log(Level.SEVERE, "Unknown error occurred while loading plugins through PluginManager.", e);
|
|
}
|
|
|
|
- return runtimePluginEntrypointHandler.getPluginProviderStorage().getLoaded().toArray(new JavaPlugin[0]);
|
|
+ return runtimePluginEntrypointHandler.getPluginProviderStorage().getLoaded().toArray(EMPTY_JAVA_PLUGIN); // Plazma
|
|
}
|
|
|
|
// Plugins are disabled in order like this inorder to "rougly" prevent
|
|
diff --git a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
|
index 7e8dc9e8f381abfdcce2746edc93122d623622d1..9c2ccf975c476db4bf71298d08ffce2c323d43e0 100644
|
|
--- a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
|
+++ b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
|
@@ -303,7 +303,7 @@ public final class ChunkEntitySlices {
|
|
|
|
protected static final class BasicEntityList<E extends Entity> {
|
|
|
|
- protected static final Entity[] EMPTY = new Entity[0];
|
|
+ protected static final Entity[] EMPTY = org.plazmamc.plazma.EmptyConstants.ENTITY; // Plazma
|
|
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..52dd6bf580f22081a530aee1277276e64270c91b 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<CrashReportCategory> details = Lists.newArrayList();
|
|
private File saveFile;
|
|
private boolean trackingStackTrace = true;
|
|
- private StackTraceElement[] uncategorizedStackTrace = new StackTraceElement[0];
|
|
+ private StackTraceElement[] uncategorizedStackTrace = org.plazmamc.plazma.EmptyConstants.STACK_TRACE_ELEMENT; // Plazma
|
|
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..a49ce64ea944f5cab83ba1bee5ab4c749950af9e 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<CrashReportCategory.Entry> entries = Lists.newArrayList();
|
|
- private StackTraceElement[] stackTrace = new StackTraceElement[0];
|
|
+ private StackTraceElement[] stackTrace = org.plazmamc.plazma.EmptyConstants.STACK_TRACE_ELEMENT; // Plazma
|
|
|
|
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 c60c73d9f998260f3abe6fe445255c6e7c38b0c3..cf0d0b75b3e5833406d84aaa7b432d80314970d4 100644
|
|
--- a/src/main/java/net/minecraft/Util.java
|
|
+++ b/src/main/java/net/minecraft/Util.java
|
|
@@ -401,7 +401,7 @@ public class Util {
|
|
} else if (futures.size() == 1) {
|
|
return futures.get(0).thenApply(List::of);
|
|
} else {
|
|
- CompletableFuture<Void> completableFuture = CompletableFuture.allOf(futures.toArray(new CompletableFuture[0]));
|
|
+ CompletableFuture<Void> completableFuture = CompletableFuture.allOf(futures.toArray(org.plazmamc.plazma.EmptyConstants.COMPLETABLE_FUTURES)); // Plazma
|
|
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 1cf85f7920023331c325822046edb33f310acd20..1f937dab74d368a0f75687ba696c9a9424163051 100644
|
|
--- a/src/main/java/net/minecraft/advancements/AdvancementRewards.java
|
|
+++ b/src/main/java/net/minecraft/advancements/AdvancementRewards.java
|
|
@@ -24,7 +24,8 @@ 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);
|
|
+ private static final ResourceLocation[] EMPTY_LOCATION = new ResourceLocation[0]; // Plazma
|
|
+ public static final AdvancementRewards EMPTY = new AdvancementRewards(0, EMPTY_LOCATION, EMPTY_LOCATION, CommandFunction.CacheableFunction.NONE); // Plazma
|
|
private final int experience;
|
|
private final ResourceLocation[] loot;
|
|
private final ResourceLocation[] recipes;
|
|
diff --git a/src/main/java/net/minecraft/advancements/RequirementsStrategy.java b/src/main/java/net/minecraft/advancements/RequirementsStrategy.java
|
|
index 051c1fb81d79c40be683edb86579bb975643bcb3..f22dec61e0cc1db80ad435d168b8e877bba3695d 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.EmptyConstants.STRING)}; // Plazma
|
|
};
|
|
|
|
String[][] createRequirements(Collection<String> criteriaNames);
|
|
diff --git a/src/main/java/net/minecraft/advancements/critereon/ContextAwarePredicate.java b/src/main/java/net/minecraft/advancements/critereon/ContextAwarePredicate.java
|
|
index bb1f97878f1fbf192207576cc515981f696294c3..2a89d13bd21bc549e498ea718cc8c88ab7460885 100644
|
|
--- a/src/main/java/net/minecraft/advancements/critereon/ContextAwarePredicate.java
|
|
+++ b/src/main/java/net/minecraft/advancements/critereon/ContextAwarePredicate.java
|
|
@@ -11,7 +11,7 @@ import net.minecraft.world.level.storage.loot.predicates.LootItemCondition;
|
|
import net.minecraft.world.level.storage.loot.predicates.LootItemConditions;
|
|
|
|
public class ContextAwarePredicate {
|
|
- public static final ContextAwarePredicate ANY = new ContextAwarePredicate(new LootItemCondition[0]);
|
|
+ public static final ContextAwarePredicate ANY = new ContextAwarePredicate(org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_CONDITIONS); // Plazma
|
|
private final LootItemCondition[] conditions;
|
|
private final Predicate<LootContext> compositePredicates;
|
|
|
|
diff --git a/src/main/java/net/minecraft/advancements/critereon/EntityPredicate.java b/src/main/java/net/minecraft/advancements/critereon/EntityPredicate.java
|
|
index 9304f85ac41a89b39db59ef4b6e363d0f46cdbec..a2bf13d895456566bc0938b6931fb61a9606f129 100644
|
|
--- a/src/main/java/net/minecraft/advancements/critereon/EntityPredicate.java
|
|
+++ b/src/main/java/net/minecraft/advancements/critereon/EntityPredicate.java
|
|
@@ -88,7 +88,7 @@ public class EntityPredicate {
|
|
|
|
return contextAwarePredicates;
|
|
} else {
|
|
- return new ContextAwarePredicate[0];
|
|
+ return org.plazmamc.plazma.EmptyConstants.CONTEXT_AWARE_PREDICATES; // Plazma
|
|
}
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/advancements/critereon/ItemPredicate.java b/src/main/java/net/minecraft/advancements/critereon/ItemPredicate.java
|
|
index e6960637aafdcd8ad9fa20991d57f9c9c4998036..79145d941c2750b799c3bf5eff3010a426a58153 100644
|
|
--- a/src/main/java/net/minecraft/advancements/critereon/ItemPredicate.java
|
|
+++ b/src/main/java/net/minecraft/advancements/critereon/ItemPredicate.java
|
|
@@ -213,7 +213,7 @@ public class ItemPredicate {
|
|
|
|
return itemPredicates;
|
|
} else {
|
|
- return new ItemPredicate[0];
|
|
+ return org.plazmamc.plazma.EmptyConstants.ITEM_PREDICATES; // Plazma
|
|
}
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/advancements/critereon/KilledByCrossbowTrigger.java b/src/main/java/net/minecraft/advancements/critereon/KilledByCrossbowTrigger.java
|
|
index 818fd4b06c804e9640e3efb63f1e1b34dd73c636..318a7a0a161c0f73c4565e593ee1d66fbadab041 100644
|
|
--- a/src/main/java/net/minecraft/advancements/critereon/KilledByCrossbowTrigger.java
|
|
+++ b/src/main/java/net/minecraft/advancements/critereon/KilledByCrossbowTrigger.java
|
|
@@ -64,7 +64,7 @@ public class KilledByCrossbowTrigger extends SimpleCriterionTrigger<KilledByCros
|
|
}
|
|
|
|
public static KilledByCrossbowTrigger.TriggerInstance crossbowKilled(MinMaxBounds.Ints uniqueEntityTypes) {
|
|
- ContextAwarePredicate[] contextAwarePredicates = new ContextAwarePredicate[0];
|
|
+ ContextAwarePredicate[] contextAwarePredicates = org.plazmamc.plazma.EmptyConstants.CONTEXT_AWARE_PREDICATES; // Plazma
|
|
return new KilledByCrossbowTrigger.TriggerInstance(ContextAwarePredicate.ANY, contextAwarePredicates, uniqueEntityTypes);
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/data/recipes/packs/VanillaRecipeProvider.java b/src/main/java/net/minecraft/data/recipes/packs/VanillaRecipeProvider.java
|
|
index f3299a85fcfbbb10efad116a3cc9cc3a7dddf42c..0ae919020878361ad047bf0fa8f45555c7a5aeaa 100644
|
|
--- a/src/main/java/net/minecraft/data/recipes/packs/VanillaRecipeProvider.java
|
|
+++ b/src/main/java/net/minecraft/data/recipes/packs/VanillaRecipeProvider.java
|
|
@@ -281,7 +281,7 @@ public class VanillaRecipeProvider extends RecipeProvider {
|
|
ShapedRecipeBuilder.shaped(RecipeCategory.TRANSPORTATION, Items.WARPED_FUNGUS_ON_A_STICK).define('#', Items.FISHING_ROD).define('X', Items.WARPED_FUNGUS).pattern("# ").pattern(" X").unlockedBy("has_warped_fungus", has(Items.WARPED_FUNGUS)).save(exporter);
|
|
ShapedRecipeBuilder.shaped(RecipeCategory.BREWING, Blocks.CAULDRON).define('#', Items.IRON_INGOT).pattern("# #").pattern("# #").pattern("###").unlockedBy("has_water_bucket", has(Items.WATER_BUCKET)).save(exporter);
|
|
ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, Blocks.COMPOSTER).define('#', ItemTags.WOODEN_SLABS).pattern("# #").pattern("# #").pattern("###").unlockedBy("has_wood_slab", has(ItemTags.WOODEN_SLABS)).save(exporter);
|
|
- ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, Blocks.CHEST).define('#', ItemTags.PLANKS).pattern("###").pattern("# #").pattern("###").unlockedBy("has_lots_of_items", new InventoryChangeTrigger.TriggerInstance(ContextAwarePredicate.ANY, MinMaxBounds.Ints.atLeast(10), MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY, new ItemPredicate[0])).save(exporter);
|
|
+ ShapedRecipeBuilder.shaped(RecipeCategory.DECORATIONS, Blocks.CHEST).define('#', ItemTags.PLANKS).pattern("###").pattern("# #").pattern("###").unlockedBy("has_lots_of_items", new InventoryChangeTrigger.TriggerInstance(ContextAwarePredicate.ANY, MinMaxBounds.Ints.atLeast(10), MinMaxBounds.Ints.ANY, MinMaxBounds.Ints.ANY, org.plazmamc.plazma.EmptyConstants.ITEM_PREDICATES)).save(exporter); // Plazma
|
|
ShapelessRecipeBuilder.shapeless(RecipeCategory.TRANSPORTATION, Items.CHEST_MINECART).requires(Blocks.CHEST).requires(Items.MINECART).unlockedBy("has_minecart", has(Items.MINECART)).save(exporter);
|
|
chestBoat(exporter, Items.ACACIA_CHEST_BOAT, Items.ACACIA_BOAT);
|
|
chestBoat(exporter, Items.BIRCH_CHEST_BOAT, Items.BIRCH_BOAT);
|
|
diff --git a/src/main/java/net/minecraft/nbt/ByteArrayTag.java b/src/main/java/net/minecraft/nbt/ByteArrayTag.java
|
|
index 163b1895bcbd16e93d36cd60d03e6b21df51cba7..b64ece4f24d034f66cf77306848c19024b13c778 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<ByteTag> {
|
|
}
|
|
|
|
public void clear() {
|
|
- this.data = new byte[0];
|
|
+ this.data = org.plazmamc.plazma.EmptyConstants.BYTE; // Plazma
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/nbt/CompoundTag.java b/src/main/java/net/minecraft/nbt/CompoundTag.java
|
|
index 7e94ebe06fc62293e665d6db19e42d947e7eb30f..bfe9fcc1f1ccc663672f6220aeb2d9244164cd8f 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.EmptyConstants.BYTE; // Plazma
|
|
}
|
|
|
|
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.EmptyConstants.INT; // Plazma
|
|
}
|
|
|
|
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.EmptyConstants.LONG; // Plazma
|
|
}
|
|
|
|
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..435bdec39b9f744eb8a7ad327c7facf40c08d612 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<IntTag> {
|
|
}
|
|
|
|
public void clear() {
|
|
- this.data = new int[0];
|
|
+ this.data = org.plazmamc.plazma.EmptyConstants.INT; // Plazma
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/nbt/ListTag.java b/src/main/java/net/minecraft/nbt/ListTag.java
|
|
index b74b77ec2fd45c7a44e4f2696c4f57075c3d4080..f55dd4d1e094b0ccda307d83e9c3b5f180236547 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<Tag> {
|
|
}
|
|
}
|
|
|
|
- return new int[0];
|
|
+ return org.plazmamc.plazma.EmptyConstants.INT; // Plazma
|
|
}
|
|
|
|
public long[] getLongArray(int index) {
|
|
@@ -241,7 +241,7 @@ public class ListTag extends CollectionTag<Tag> {
|
|
}
|
|
}
|
|
|
|
- return new long[0];
|
|
+ return org.plazmamc.plazma.EmptyConstants.LONG; // Plazma
|
|
}
|
|
|
|
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..22f5b4ddde241436962aef4abe013541c7184493 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<LongTag> {
|
|
|
|
@Override
|
|
public void clear() {
|
|
- this.data = new long[0];
|
|
+ this.data = org.plazmamc.plazma.EmptyConstants.LONG; // Plazma
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/network/CipherBase.java b/src/main/java/net/minecraft/network/CipherBase.java
|
|
index a2920b8a9eff77d9c5d1d7f70ad3abdacba8f0fa..50d620fc893ca010b7ecb43b7a4617d67510d03f 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.EmptyConstants.BYTE; // Plazma
|
|
+ private byte[] heapOut = org.plazmamc.plazma.EmptyConstants.BYTE; // Plazma
|
|
|
|
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 13144ea01bc27db95a13b267d39529b012a4c9c4..9a6d6f947f33481e8a7aa09469955218d31e194a 100644
|
|
--- a/src/main/java/net/minecraft/network/Connection.java
|
|
+++ b/src/main/java/net/minecraft/network/Connection.java
|
|
@@ -325,7 +325,7 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
|
}
|
|
|
|
public void setListener(PacketListener listener) {
|
|
- Validate.notNull(listener, "packetListener", new Object[0]);
|
|
+ Validate.notNull(listener, "packetListener", org.plazmamc.plazma.EmptyConstants.OBJECT); // Plazma
|
|
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..6a979d584b1f27d6838332318488814d3db89a47 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.EmptyConstants.OBJECT; // Plazma
|
|
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 e3f355c85eb7cc8c1683e3009502c10a5ed32daa..50bc08280120ceaa321e30482358b3f4dbe8b3bd 100644
|
|
--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java
|
|
+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java
|
|
@@ -63,7 +63,7 @@ public class ClientboundSectionBlocksUpdatePacket implements Packet<ClientGamePa
|
|
public ClientboundSectionBlocksUpdatePacket(SectionPos sectionPos, it.unimi.dsi.fastutil.shorts.Short2ObjectMap<BlockState> blockChanges) {
|
|
this.sectionPos = sectionPos;
|
|
this.positions = blockChanges.keySet().toShortArray();
|
|
- this.states = blockChanges.values().toArray(new BlockState[0]);
|
|
+ this.states = blockChanges.values().toArray(org.plazmamc.plazma.EmptyConstants.BLOCK_STATE); // Plazma
|
|
}
|
|
// Paper end
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
index 93ff3ef401d4212cede5290990528988c7ca3a0c..6e13d11d685930acad1c3a80571b73258a6f6f9d 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -1369,10 +1369,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
private Optional<ServerStatus.Favicon> loadStatusIcon() {
|
|
Optional<Path> 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.EmptyConstants.LINK_OPTION); // Plazma
|
|
}).or(() -> {
|
|
return this.storageSource.getIconFile().filter((path) -> {
|
|
- return Files.isRegularFile(path, new LinkOption[0]);
|
|
+ return Files.isRegularFile(path, org.plazmamc.plazma.EmptyConstants.LINK_OPTION); // Plazma
|
|
});
|
|
});
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
|
index 69d349613f01ab0ac1890734657da52984704f29..1c5ba90fcd291b68fbdf9cecc5c3b1f39e266305 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.EmptyConstants.LINK_OPTION)) { // Plazma
|
|
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..9ee75ed89b2034d1654680f32ec05948c0bfac41 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.EmptyConstants.STACK_TRACE_ELEMENT); // Plazma
|
|
}
|
|
|
|
@Override
|
|
public synchronized Throwable fillInStackTrace() {
|
|
- this.setStackTrace(new StackTraceElement[0]);
|
|
+ this.setStackTrace(org.plazmamc.plazma.EmptyConstants.STACK_TRACE_ELEMENT); // Plazma
|
|
return this;
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/ServerFunctionLibrary.java b/src/main/java/net/minecraft/server/ServerFunctionLibrary.java
|
|
index 975422a57b83a31e63a600bb4ff9c4e2baaf6da7..b80dff95660314e4dd27e2ada94aa31598883b4e 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.EmptyConstants.COMPLETABLE_FUTURES); // Plazma
|
|
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 3a7c694ff0e248df3f4d168a5e2e883c0e3cb167..e139d15eda25c47292da549e2d4603a5056788bd 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
|
@@ -1454,6 +1454,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
|
private final int range;
|
|
SectionPos lastSectionPos;
|
|
public final Set<ServerPlayerConnection> seenBy = new ReferenceOpenHashSet<>(); // Paper - optimise map impl
|
|
+ private static final ServerPlayerConnection[] EMPTY_CONNECTION = new ServerPlayerConnection[0]; // Plazma
|
|
|
|
public TrackedEntity(Entity entity, int i, int j, boolean flag) {
|
|
this.serverEntity = new ServerEntity(ChunkMap.this.level, entity, j, flag, this::broadcast, this.seenBy); // CraftBukkit
|
|
@@ -1490,7 +1491,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(EMPTY_CONNECTION)) { // avoid CME // Plazma
|
|
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 e009dba395779e2c89a36fe4524e5d40474a29e6..c4cafcc1fb0f3b6bc17b7907ee7c6c034d4bf005 100644
|
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
@@ -1392,7 +1392,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
|
|
|
public static List<Entity> getCurrentlyTickingEntities() {
|
|
Entity ticking = currentlyTickingEntity.get();
|
|
- List<Entity> ret = java.util.Arrays.asList(ticking == null ? new Entity[0] : new Entity[] { ticking });
|
|
+ List<Entity> ret = java.util.Arrays.asList(ticking == null ? org.plazmamc.plazma.EmptyConstants.ENTITY : new Entity[] { ticking }); // Plazma
|
|
|
|
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 93666cc703b349cbd7752c8c59c980da11e5d34c..2314b39ad62c6d8332ddec6c902dba5aacebfa76 100644
|
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
|
@@ -436,7 +436,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.EmptyConstants.OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.TIMEOUT); // Paper - kick event cause // Plazma
|
|
}
|
|
} else {
|
|
if (elapsedTime >= 15000L) { // 15 seconds
|
|
@@ -924,13 +924,13 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
|
// PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel()); // 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.EmptyConstants.OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause // Plazma
|
|
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
|
|
+ server.scheduleOnMain(() -> this.disconnect(Component.translatable("disconnect.spam", org.plazmamc.plazma.EmptyConstants.OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper // Plazma
|
|
return;
|
|
}
|
|
// Paper end
|
|
@@ -3434,7 +3434,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
|
// Paper start
|
|
if (!org.bukkit.Bukkit.isPrimaryThread()) {
|
|
if (this.recipeSpamPackets.addAndGet(io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamIncrement) > io.papermc.paper.configuration.GlobalConfiguration.get().spamLimiter.recipeSpamLimit) {
|
|
- this.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
|
|
+ this.server.scheduleOnMain(() -> this.disconnect(net.minecraft.network.chat.Component.translatable("disconnect.spam", org.plazmamc.plazma.EmptyConstants.OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.SPAM)); // Paper - kick event cause // Plazma
|
|
return;
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
|
index 0f1ebdc20460da22c1ff2fee2ff6428654139969..85b8007f0da3b7d77d1caff64000e4fc174f73bf 100644
|
|
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
|
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
|
|
@@ -239,8 +239,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.EmptyConstants.OBJECT); // Plazma
|
|
+ if (!org.plazmamc.plazma.configurations.GlobalConfiguration.get().player.allowAnyUsername) Validate.validState(ServerLoginPacketListenerImpl.isValidUsername(packet.name()), "Invalid characters in username", org.plazmamc.plazma.EmptyConstants.OBJECT); // Plazma // Plazma - again
|
|
// 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())) {
|
|
@@ -299,7 +299,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.EmptyConstants.OBJECT); // Plazma
|
|
|
|
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 b711efca8a834adaf0db902fab34c3c80c9cbad6..4c793f4f7b79e35c4c42d330bb63d29c0ef32124 100644
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
@@ -710,7 +710,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.EmptyConstants.OBJECT), org.bukkit.event.player.PlayerKickEvent.Cause.DUPLICATE_LOGIN); // Paper - kick event cause // Plazma
|
|
}
|
|
|
|
// 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 9e8112fbc40a1d89c0f73ea4452e0fa1bb459bf4..5a9fc24037c92fb17ba4baec79e4f344e16a4128 100644
|
|
--- a/src/main/java/net/minecraft/server/players/StoredUserList.java
|
|
+++ b/src/main/java/net/minecraft/server/players/StoredUserList.java
|
|
@@ -96,7 +96,7 @@ public abstract class StoredUserList<K, V extends StoredUserEntry<K>> {
|
|
}
|
|
|
|
public String[] getUserList() {
|
|
- return (String[]) this.map.keySet().toArray(new String[0]);
|
|
+ return (String[]) this.map.keySet().toArray(org.plazmamc.plazma.EmptyConstants.STRING); // Plazma
|
|
}
|
|
|
|
public boolean isEmpty() {
|
|
diff --git a/src/main/java/net/minecraft/util/MemoryReserve.java b/src/main/java/net/minecraft/util/MemoryReserve.java
|
|
index 0ee04fe6ff6a4d09754f326526ae04fe7226bab2..79046f2d1803eb346d1f184004e6cb09d2a91a36 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.EmptyConstants.BYTE; // Plazma
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/util/ZeroBitStorage.java b/src/main/java/net/minecraft/util/ZeroBitStorage.java
|
|
index 311625277a26c9c187025a1036978229241b965f..04a1b316cd6d612a0948d845d7851d3622e4c2af 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 = new long[0]; // Plazma
|
|
private final int size;
|
|
|
|
public ZeroBitStorage(int size) {
|
|
@@ -33,7 +33,7 @@ public class ZeroBitStorage implements BitStorage {
|
|
|
|
@Override
|
|
public long[] getRaw() {
|
|
- return RAW;
|
|
+ return org.plazmamc.plazma.EmptyConstants.LONG; // Plazma
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/util/monitoring/jmx/MinecraftServerStatistics.java b/src/main/java/net/minecraft/util/monitoring/jmx/MinecraftServerStatistics.java
|
|
index 8d227c8a1e7e8fa21a8d673e8c9acc38104c6fb0..71dc96d2dacde1dc958f8547fc44df8c1a91853c 100644
|
|
--- a/src/main/java/net/minecraft/util/monitoring/jmx/MinecraftServerStatistics.java
|
|
+++ b/src/main/java/net/minecraft/util/monitoring/jmx/MinecraftServerStatistics.java
|
|
@@ -35,12 +35,13 @@ public final class MinecraftServerStatistics implements DynamicMBean {
|
|
return entry.name;
|
|
}, Function.identity()));
|
|
|
|
+ private static final MBeanNotificationInfo[] EMPTY_INFO = new MBeanNotificationInfo[0]; // Plazma
|
|
private MinecraftServerStatistics(MinecraftServer server) {
|
|
this.server = server;
|
|
MBeanAttributeInfo[] mBeanAttributeInfos = this.attributeDescriptionByName.values().stream().map(MinecraftServerStatistics.AttributeDescription::asMBeanAttributeInfo).toArray((i) -> {
|
|
return new MBeanAttributeInfo[i];
|
|
});
|
|
- this.mBeanInfo = new MBeanInfo(MinecraftServerStatistics.class.getSimpleName(), "metrics for dedicated server", mBeanAttributeInfos, (MBeanConstructorInfo[])null, (MBeanOperationInfo[])null, new MBeanNotificationInfo[0]);
|
|
+ this.mBeanInfo = new MBeanInfo(MinecraftServerStatistics.class.getSimpleName(), "metrics for dedicated server", mBeanAttributeInfos, (MBeanConstructorInfo[])null, (MBeanOperationInfo[])null, EMPTY_INFO); // Plazma
|
|
}
|
|
|
|
public static void registerJmxMonitoring(MinecraftServer server) {
|
|
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 6c04c8e7776b2830ac368229da834532e8ce163e..e0200f84270068612e67671cb027cc0c5145bdf9 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Bee.java
|
|
@@ -251,7 +251,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.EmptyConstants.CLASS)); // Plazma
|
|
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 64aba511e615983988cdb6a0fd45b7d9d4f2f16d..bb6d976bfc942d42b0ebb672246b795c9f6fce98 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/IronGolem.java
|
|
@@ -122,7 +122,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.EmptyConstants.CLASS)); // Plazma
|
|
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 bd7c5f6768a54a3d8ffd585d91414e65936991da..82464cba4f582596252e2b18a09b860e9c3b330c 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Panda.java
|
|
@@ -336,7 +336,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.EmptyConstants.CLASS)).setAlertOthers(org.plazmamc.plazma.EmptyConstants.CLASS)); // Plazma
|
|
}
|
|
|
|
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 81a33954aedffd18fcfa96babeaf6388715ab3f3..a85da190d9c51303296f4bbf16f26eb2e454e211 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Rabbit.java
|
|
@@ -460,7 +460,7 @@ public class Rabbit extends Animal implements VariantHolder<Rabbit.Variant> {
|
|
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.EmptyConstants.CLASS)).setAlertOthers()); // Plazma
|
|
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 64bceae4d06b35fcbecb0daca2496ba30e39d995..805d2027fcb6c06537b3357fe104742a05391224 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Wolf.java
|
|
@@ -239,7 +239,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.EmptyConstants.CLASS)).setAlertOthers()); // Plazma
|
|
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/boss/wither/WitherBoss.java b/src/main/java/net/minecraft/world/entity/boss/wither/WitherBoss.java
|
|
index c94a1b75593ad01e7f79fdc84818ea8ec269e124..b45c1d611ccd80c3b1405aaef153c37bd046f083 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
|
|
@@ -254,7 +254,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.EmptyConstants.CLASS)); // Plazma
|
|
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 917648c2cc52790f40123b27b1cafa3fc3ba4b3f..c765ee642c4b77bfb3f21163c9e7a24b366e0a70 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.EmptyConstants.CLASS)); // Plazma
|
|
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 304ea7fdcd410a7c88ec61143364e14de8db0b0c..3eea42997caa1b66ac4d9d8da65e3bfe2f67cd0f 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Creeper.java
|
|
@@ -153,7 +153,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.EmptyConstants.CLASS)); // Plazma
|
|
}
|
|
|
|
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 44331be61edffd5afadf3e637dd181bff1133d4f..ff6d4b73cd84c44908315080714d57fef1b5614c 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
|
@@ -136,7 +136,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.EmptyConstants.CLASS)); // Plazma
|
|
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 83641c7cf51453e98809900e23f44a68018555ff..b03d42939d55607c74b747ce6704d2fbcf780834 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Silverfish.java
|
|
@@ -87,7 +87,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.EmptyConstants.CLASS)).setAlertOthers()); // Plazma
|
|
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 b3ab0f8cdbd678970e39e89c2062772374466b67..0e7a4ef59b01b5cc6ba89ff4f986604ba9aebe45 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.EmptyConstants.CLASS)); // Plazma
|
|
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 7c5efb5582f43d9f333f926ad7dba1ed9920333a..3780f752ec2df3a43746dd3f0107ab37cbd226de 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.EmptyConstants.CLASS)).setAlertOthers(ZombifiedPiglin.class)); // Plazma
|
|
this.targetSelector.addGoal(2, new NearestAttackableTargetGoal<>(this, Player.class, true));
|
|
// Purpur start
|
|
if ( this.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 7bb99d7fd8e05805e0cac7bec0b2771990057f58..393de8e7abc323f922bfc968fe3fe7a991a2ecd4 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.EmptyConstants.CLASS)).setAlertOthers()); // Paper - assign field // Plazma
|
|
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 6693dd51440da3f0fc338c4e2cb67d3222eed182..a7849d3d669929ea9a25d688ea6247a6299b0bdf 100644
|
|
--- a/src/main/java/net/minecraft/world/item/crafting/ShapedRecipe.java
|
|
+++ b/src/main/java/net/minecraft/world/item/crafting/ShapedRecipe.java
|
|
@@ -263,7 +263,7 @@ public class ShapedRecipe extends io.papermc.paper.inventory.recipe.RecipeBookEx
|
|
}
|
|
|
|
if (pattern.length == l) {
|
|
- return new String[0];
|
|
+ return org.plazmamc.plazma.EmptyConstants.STRING; // Plazma
|
|
} 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 565318c2afaa1661ed9963453a6354dff499f47a..abd5df5a47d6cc5de0018ad7207232be5bd01d53 100644
|
|
--- a/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java
|
|
+++ b/src/main/java/net/minecraft/world/item/crafting/ShapelessRecipe.java
|
|
@@ -87,10 +87,11 @@ public class ShapelessRecipe extends io.papermc.paper.inventory.recipe.RecipeBoo
|
|
return this.ingredients;
|
|
}
|
|
|
|
+ private static final Ingredient[] EMPTY_INGREDIENT = new Ingredient[0]; // Plazma
|
|
public boolean matches(CraftingContainer inventory, Level world) {
|
|
// Pufferfish start
|
|
if (!this.isBukkit) {
|
|
- java.util.List<Ingredient> ingredients = com.google.common.collect.Lists.newArrayList(this.ingredients.toArray(new Ingredient[0]));
|
|
+ java.util.List<Ingredient> ingredients = com.google.common.collect.Lists.newArrayList(this.ingredients.toArray(EMPTY_INGREDIENT)); // Plazma
|
|
|
|
inventory: for (int index = 0; index < inventory.getContainerSize(); index++) {
|
|
ItemStack itemStack = inventory.getItem(index);
|
|
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 596b77306f690a2298835f0f0fea1abee2a7c85d..e781b38bd0925f0250a93222c729a1754ee780bc 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/ComposterBlock.java
|
|
@@ -443,7 +443,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.EmptyConstants.ZERO_INT : org.plazmamc.plazma.EmptyConstants.INT; // Plazma
|
|
}
|
|
|
|
@Override
|
|
@@ -492,7 +492,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.EmptyConstants.ZERO_INT : org.plazmamc.plazma.EmptyConstants.INT; // Plazma
|
|
}
|
|
|
|
@Override
|
|
@@ -534,7 +534,7 @@ public class ComposterBlock extends Block implements WorldlyContainerHolder {
|
|
|
|
@Override
|
|
public int[] getSlotsForFace(Direction side) {
|
|
- return new int[0];
|
|
+ return org.plazmamc.plazma.EmptyConstants.INT; // Plazma
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
|
index f03608a133338b0f5522a07239e06fd2245db1e5..31f2f322e7018a264719cc916f70fc8c28e91811 100644
|
|
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
|
@@ -758,7 +758,7 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
|
|
|
|
// Paper start - optimize hopper item suck in
|
|
static final AABB HOPPER_ITEM_SUCK_OVERALL = Hopper.SUCK.bounds();
|
|
- static final AABB[] HOPPER_ITEM_SUCK_INDIVIDUAL = Hopper.SUCK.toAabbs().toArray(new AABB[0]);
|
|
+ static final AABB[] HOPPER_ITEM_SUCK_INDIVIDUAL = Hopper.SUCK.toAabbs().toArray(new AABB[0]); // Plazma
|
|
// Paper end - optimize hopper item suck in
|
|
|
|
public static List<ItemEntity> getItemsAtAndAbove(Level world, Hopper hopper) {
|
|
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 0c5ac12b1f395bba8b7fc50baf8e825ba6488f6c..ea60ec1bfb4f709921b9328d2f4fa21bec1723b3 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.EmptyConstants.LINK_OPTION)) { // Plazma
|
|
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.EmptyConstants.LINK_OPTION)) { // Plazma
|
|
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.EmptyConstants.LINK_OPTION)) { // Plazma
|
|
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..bee65f019e35dd44e6754755c99ff113849176da 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.EmptyConstants.BLOCK_STATE); // Plazma
|
|
}
|
|
|
|
@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..c4395df154e8c7066d213316f300d62db9231e5c 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,11 @@ import net.minecraft.world.phys.Vec3;
|
|
|
|
public class Path {
|
|
public final List<Node> nodes;
|
|
- private Node[] openSet = new Node[0];
|
|
- private Node[] closedSet = new Node[0];
|
|
+ // Plazma start
|
|
+ private static final Node[] EMPTY_NODE = new Node[0];
|
|
+ private Node[] openSet = EMPTY_NODE;
|
|
+ private Node[] closedSet = EMPTY_NODE;
|
|
+ // Plazma end
|
|
@Nullable
|
|
private Set<Target> 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 ef8b794d1a017f02f90368a48cec2ea7bb57f218..52bf65c0ec0651a24fc3ee187d99451ef640f996 100644
|
|
--- a/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java
|
|
+++ b/src/main/java/net/minecraft/world/level/storage/LevelStorageSource.java
|
|
@@ -101,7 +101,7 @@ public class LevelStorageSource {
|
|
}
|
|
|
|
public static DirectoryValidator parseValidator(Path allowedSymlinksFile) {
|
|
- if (Files.exists(allowedSymlinksFile, new LinkOption[0])) {
|
|
+ if (Files.exists(allowedSymlinksFile, org.plazmamc.plazma.EmptyConstants.LINK_OPTION)) { // Plazma
|
|
try {
|
|
BufferedReader bufferedreader = Files.newBufferedReader(allowedSymlinksFile);
|
|
|
|
@@ -171,7 +171,7 @@ 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.EmptyConstants.LINK_OPTION)) { // Plazma
|
|
throw new LevelStorageException(Component.translatable("selectWorld.load_folder_access"));
|
|
} else {
|
|
try {
|
|
@@ -181,9 +181,9 @@ public class LevelStorageSource {
|
|
|
|
try {
|
|
List<LevelStorageSource.LevelDirectory> list = stream.filter((path) -> {
|
|
- return Files.isDirectory(path, new LinkOption[0]);
|
|
+ return Files.isDirectory(path, org.plazmamc.plazma.EmptyConstants.LINK_OPTION); // Plazma
|
|
}).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.EmptyConstants.LINK_OPTION) || Files.isRegularFile(convertable_b.oldDataFile(), org.plazmamc.plazma.EmptyConstants.LINK_OPTION); // Plazma
|
|
}).toList();
|
|
|
|
convertable_a = new LevelStorageSource.LevelCandidates(list);
|
|
@@ -255,12 +255,12 @@ public class LevelStorageSource {
|
|
|
|
@Nullable
|
|
<T> T readLevelData(LevelStorageSource.LevelDirectory levelSave, BiFunction<Path, DataFixer, T> levelDataParser) {
|
|
- if (!Files.exists(levelSave.path(), new LinkOption[0])) {
|
|
+ if (!Files.exists(levelSave.path(), org.plazmamc.plazma.EmptyConstants.LINK_OPTION)) { // Plazma
|
|
return null;
|
|
} else {
|
|
Path path = levelSave.dataFile();
|
|
|
|
- if (Files.exists(path, new LinkOption[0])) {
|
|
+ if (Files.exists(path, org.plazmamc.plazma.EmptyConstants.LINK_OPTION)) { // Plazma
|
|
T t0 = levelDataParser.apply(path, this.fixerUpper);
|
|
|
|
if (t0 != null) {
|
|
@@ -269,7 +269,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.EmptyConstants.LINK_OPTION) ? levelDataParser.apply(path, this.fixerUpper) : null; // Plazma
|
|
}
|
|
}
|
|
|
|
@@ -400,7 +400,7 @@ public class LevelStorageSource {
|
|
}
|
|
|
|
public boolean levelExists(String name) {
|
|
- return Files.isDirectory(this.getLevelPath(name), new LinkOption[0]);
|
|
+ return Files.isDirectory(this.getLevelPath(name), org.plazmamc.plazma.EmptyConstants.LINK_OPTION); // Plazma
|
|
}
|
|
|
|
private Path getLevelPath(String name) {
|
|
@@ -645,7 +645,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.EmptyConstants.LINK_OPTION)) { // Plazma
|
|
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..1899e5a1421ef98cc27199490e3c946e03c75f9f 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.EmptyConstants.STRING; // Plazma
|
|
}
|
|
|
|
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..6175eee025d98f4a7ab78042afef32fb45586045 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(org.plazmamc.plazma.EmptyConstants.LOOT_POOL_ENTRY_CONTAINERS), this.conditions.toArray(org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_CONDITIONS), this.functions.toArray(org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_FUNCTION), this.rolls, this.bonusRolls); // Plazma
|
|
}
|
|
}
|
|
}
|
|
@@ -170,8 +170,8 @@ public class LootPool {
|
|
public LootPool deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
|
|
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);
|
|
+ LootItemCondition[] lootItemConditions = GsonHelper.getAsObject(jsonObject, "conditions", org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_CONDITIONS, jsonDeserializationContext, LootItemCondition[].class); // Plazma
|
|
+ LootItemFunction[] lootItemFunctions = GsonHelper.getAsObject(jsonObject, "functions", org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_FUNCTION, jsonDeserializationContext, LootItemFunction[].class); // Plazma
|
|
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 e46a0afa45ee771a0114703acc314d7cf8e8ffed..687a7de03846bceeee4e1db2459d6c9cafb5f3b6 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
|
|
@@ -44,7 +44,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, (ResourceLocation) null, new LootPool[0], new LootItemFunction[0]);
|
|
+ public static final LootTable EMPTY = new LootTable(LootContextParamSets.EMPTY, (ResourceLocation) null, org.plazmamc.plazma.EmptyConstants.LOOT_POOL, org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_FUNCTION); // Plazma
|
|
public static final LootContextParamSet DEFAULT_PARAM_SET = LootContextParamSets.ALL_PARAMS;
|
|
final LootContextParamSet paramSet;
|
|
@Nullable
|
|
@@ -285,7 +285,7 @@ public class LootTable {
|
|
}
|
|
|
|
public LootTable build() {
|
|
- return new LootTable(this.paramSet, this.randomSequence, (LootPool[]) this.pools.toArray(new LootPool[0]), (LootItemFunction[]) this.functions.toArray(new LootItemFunction[0]));
|
|
+ return new LootTable(this.paramSet, this.randomSequence, (LootPool[]) this.pools.toArray(org.plazmamc.plazma.EmptyConstants.LOOT_POOL), (LootItemFunction[]) this.functions.toArray(org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_FUNCTION)); // Plazma
|
|
}
|
|
}
|
|
|
|
@@ -295,7 +295,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.EmptyConstants.LOOT_POOL, jsondeserializationcontext, LootPool[].class); // Plazma
|
|
LootContextParamSet lootcontextparameterset = null;
|
|
|
|
if (jsonobject.has("type")) {
|
|
@@ -314,7 +314,7 @@ public class LootTable {
|
|
minecraftkey = null;
|
|
}
|
|
|
|
- LootItemFunction[] alootitemfunction = (LootItemFunction[]) GsonHelper.getAsObject(jsonobject, "functions", new LootItemFunction[0], jsondeserializationcontext, LootItemFunction[].class);
|
|
+ LootItemFunction[] alootitemfunction = (LootItemFunction[]) GsonHelper.getAsObject(jsonobject, "functions", org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_FUNCTION, jsondeserializationcontext, LootItemFunction[].class); // Plazma
|
|
|
|
return new LootTable(lootcontextparameterset != null ? lootcontextparameterset : LootContextParamSets.ALL_PARAMS, minecraftkey, alootselector, alootitemfunction);
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/entries/AlternativesEntry.java b/src/main/java/net/minecraft/world/level/storage/loot/entries/AlternativesEntry.java
|
|
index d63d8323290625bb0246a6965fc06f29a800750c..b0b104de5d378b6618b392dcc032fe1f5083fa9d 100644
|
|
--- a/src/main/java/net/minecraft/world/level/storage/loot/entries/AlternativesEntry.java
|
|
+++ b/src/main/java/net/minecraft/world/level/storage/loot/entries/AlternativesEntry.java
|
|
@@ -85,7 +85,7 @@ public class AlternativesEntry extends CompositeEntryBase {
|
|
|
|
@Override
|
|
public LootPoolEntryContainer build() {
|
|
- return new AlternativesEntry(this.entries.toArray(new LootPoolEntryContainer[0]), this.getConditions());
|
|
+ return new AlternativesEntry(this.entries.toArray(org.plazmamc.plazma.EmptyConstants.LOOT_POOL_ENTRY_CONTAINERS), this.getConditions()); // Plazma
|
|
}
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/entries/EntryGroup.java b/src/main/java/net/minecraft/world/level/storage/loot/entries/EntryGroup.java
|
|
index da1b5c6b68f14969b85472826d3d36ca673a0e5a..0af74b3442ed73ce2157e9003ce9f1eacf4431c0 100644
|
|
--- a/src/main/java/net/minecraft/world/level/storage/loot/entries/EntryGroup.java
|
|
+++ b/src/main/java/net/minecraft/world/level/storage/loot/entries/EntryGroup.java
|
|
@@ -67,7 +67,7 @@ public class EntryGroup extends CompositeEntryBase {
|
|
|
|
@Override
|
|
public LootPoolEntryContainer build() {
|
|
- return new EntryGroup(this.entries.toArray(new LootPoolEntryContainer[0]), this.getConditions());
|
|
+ return new EntryGroup(this.entries.toArray(org.plazmamc.plazma.EmptyConstants.LOOT_POOL_ENTRY_CONTAINERS), this.getConditions()); // Plazma
|
|
}
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer.java b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer.java
|
|
index 3bea85eab6f0a3b460b060579c73e90b83be7de4..6233448b253f02b1e3f82984960c027bca5ca150 100644
|
|
--- a/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer.java
|
|
+++ b/src/main/java/net/minecraft/world/level/storage/loot/entries/LootPoolEntryContainer.java
|
|
@@ -53,7 +53,7 @@ public abstract class LootPoolEntryContainer implements ComposableEntryContainer
|
|
}
|
|
|
|
protected LootItemCondition[] getConditions() {
|
|
- return this.conditions.toArray(new LootItemCondition[0]);
|
|
+ return this.conditions.toArray(org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_CONDITIONS); // Plazma
|
|
}
|
|
|
|
public AlternativesEntry.Builder otherwise(LootPoolEntryContainer.Builder<?> builder) {
|
|
@@ -83,7 +83,7 @@ public abstract class LootPoolEntryContainer implements ComposableEntryContainer
|
|
|
|
@Override
|
|
public final T deserialize(JsonObject jsonObject, JsonDeserializationContext jsonDeserializationContext) {
|
|
- LootItemCondition[] lootItemConditions = GsonHelper.getAsObject(jsonObject, "conditions", new LootItemCondition[0], jsonDeserializationContext, LootItemCondition[].class);
|
|
+ LootItemCondition[] lootItemConditions = GsonHelper.getAsObject(jsonObject, "conditions", org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_CONDITIONS, jsonDeserializationContext, LootItemCondition[].class); // Plazma
|
|
return this.deserializeCustom(jsonObject, jsonDeserializationContext, lootItemConditions);
|
|
}
|
|
|
|
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..63ae04cbdd556788675d1a0db4c3309b3c84c0fa 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.EmptyConstants.LOOT_ITEM_FUNCTION); // Plazma
|
|
}
|
|
|
|
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.EmptyConstants.LOOT_ITEM_FUNCTION, jsonDeserializationContext, LootItemFunction[].class); // Plazma
|
|
return this.deserialize(jsonObject, jsonDeserializationContext, i, j, lootItemConditions, lootItemFunctions);
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/entries/SequentialEntry.java b/src/main/java/net/minecraft/world/level/storage/loot/entries/SequentialEntry.java
|
|
index 28ee59e7745ef0c98b13ae3e32f52dc7defe0bcd..d43f00901bac86cbb6e210cca223c8663b440847 100644
|
|
--- a/src/main/java/net/minecraft/world/level/storage/loot/entries/SequentialEntry.java
|
|
+++ b/src/main/java/net/minecraft/world/level/storage/loot/entries/SequentialEntry.java
|
|
@@ -63,7 +63,7 @@ public class SequentialEntry extends CompositeEntryBase {
|
|
|
|
@Override
|
|
public LootPoolEntryContainer build() {
|
|
- return new SequentialEntry(this.entries.toArray(new LootPoolEntryContainer[0]), this.getConditions());
|
|
+ return new SequentialEntry(this.entries.toArray(org.plazmamc.plazma.EmptyConstants.LOOT_POOL_ENTRY_CONTAINERS), this.getConditions()); // Plazma
|
|
}
|
|
}
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootItemConditionalFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/LootItemConditionalFunction.java
|
|
index 5c67ae93a18f246d2bffd2c0b92f9ad82294b81e..31f365f26f008ef67b0dbe47743163a420c59b91 100644
|
|
--- a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootItemConditionalFunction.java
|
|
+++ b/src/main/java/net/minecraft/world/level/storage/loot/functions/LootItemConditionalFunction.java
|
|
@@ -63,7 +63,7 @@ public abstract class LootItemConditionalFunction implements LootItemFunction {
|
|
protected abstract T getThis();
|
|
|
|
protected LootItemCondition[] getConditions() {
|
|
- return this.conditions.toArray(new LootItemCondition[0]);
|
|
+ return this.conditions.toArray(org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_CONDITIONS); // Plazma
|
|
}
|
|
}
|
|
|
|
@@ -96,7 +96,7 @@ public abstract class LootItemConditionalFunction implements LootItemFunction {
|
|
|
|
@Override
|
|
public final T deserialize(JsonObject jsonObject, JsonDeserializationContext jsonDeserializationContext) {
|
|
- LootItemCondition[] lootItemConditions = GsonHelper.getAsObject(jsonObject, "conditions", new LootItemCondition[0], jsonDeserializationContext, LootItemCondition[].class);
|
|
+ LootItemCondition[] lootItemConditions = GsonHelper.getAsObject(jsonObject, "conditions", org.plazmamc.plazma.EmptyConstants.LOOT_ITEM_CONDITIONS, jsonDeserializationContext, LootItemCondition[].class); // Plazma
|
|
return this.deserialize(jsonObject, jsonDeserializationContext, lootItemConditions);
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/SetAttributesFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/SetAttributesFunction.java
|
|
index c5e7caf78049d8a6d18676f19dedf0b688802eab..375665a588c19cfa470fb20b5e502eea8ebb55f0 100644
|
|
--- a/src/main/java/net/minecraft/world/level/storage/loot/functions/SetAttributesFunction.java
|
|
+++ b/src/main/java/net/minecraft/world/level/storage/loot/functions/SetAttributesFunction.java
|
|
@@ -216,6 +216,7 @@ public class SetAttributesFunction extends LootItemConditionalFunction {
|
|
@Nullable
|
|
private UUID id;
|
|
private final Set<EquipmentSlot> slots = EnumSet.noneOf(EquipmentSlot.class);
|
|
+ private static final EquipmentSlot[] EMPTY_SLOT = new EquipmentSlot[0]; // Plazma
|
|
|
|
public ModifierBuilder(String name, Attribute attribute, AttributeModifier.Operation operation, NumberProvider amount) {
|
|
this.name = name;
|
|
@@ -235,7 +236,7 @@ public class SetAttributesFunction extends LootItemConditionalFunction {
|
|
}
|
|
|
|
public SetAttributesFunction.Modifier build() {
|
|
- return new SetAttributesFunction.Modifier(this.name, this.attribute, this.operation, this.amount, this.slots.toArray(new EquipmentSlot[0]), this.id);
|
|
+ return new SetAttributesFunction.Modifier(this.name, this.attribute, this.operation, this.amount, this.slots.toArray(EMPTY_SLOT), this.id); // Plazma
|
|
}
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/scores/Team.java b/src/main/java/net/minecraft/world/scores/Team.java
|
|
index 16d2aa4556bc9f32a2def7f9ca282aa3fa23fb87..4886624aea43c1af7ed02da336cc0d25d38cdb8d 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.EmptyConstants.STRING); // Plazma
|
|
}
|
|
|
|
@Nullable
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
index 720a81da72a8002ff02cc39e5fca42354519c742..e10e07c89c1c79c22d82af6b76b948a4a5955a87 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -455,7 +455,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.EmptyConstants.BASE_COMPONENT : title.getSubtitle()); // Plazma
|
|
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 88c899e323eb554febe191ac7df678bbdfde08dc..a7ce24d3fce8490a8cd4e7cf28eb6be6138f4bd8 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.EmptyConstants.BASE_COMPONENT : text; // Plazma
|
|
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.EmptyConstants.BASE_COMPONENT; // Plazma
|
|
}
|
|
|
|
CraftMetaBook.this.internalAddPage(this.componentsToPage(page));
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java
|
|
index bbacf58740f3faea0d555e4012fe2b15fb46ed50..032ec7a2e8afcbf70c86ced7c591bba555ffa17e 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/WeakCollection.java
|
|
@@ -164,7 +164,7 @@ public final class WeakCollection<T> implements Collection<T> {
|
|
|
|
@Override
|
|
public Object[] toArray() {
|
|
- return this.toArray(new Object[0]);
|
|
+ return this.toArray(org.plazmamc.plazma.EmptyConstants.OBJECT); // Plazma
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/org/plazmamc/plazma/EmptyConstants.java b/src/main/java/org/plazmamc/plazma/EmptyConstants.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..11602bcc9ea39130138bff67bf52b4f01c0b6c88
|
|
--- /dev/null
|
|
+++ b/src/main/java/org/plazmamc/plazma/EmptyConstants.java
|
|
@@ -0,0 +1,29 @@
|
|
+package org.plazmamc.plazma;
|
|
+
|
|
+public class EmptyConstants {
|
|
+
|
|
+ public static final byte[] BYTE = new byte[0];
|
|
+ public static final int[] INT = new int[0];
|
|
+ public static final int[] ZERO_INT = new int[]{0};
|
|
+ public static final long[] LONG = new long[0];
|
|
+
|
|
+ public static final Class[] CLASS = new Class[0];
|
|
+ public static final Object[] OBJECT = new Object[0];
|
|
+ public static final StackTraceElement[] STACK_TRACE_ELEMENT = new StackTraceElement[0];
|
|
+ public static final String[] STRING = new String[0];
|
|
+
|
|
+ public static final java.nio.file.LinkOption[] LINK_OPTION = new java.nio.file.LinkOption[0];
|
|
+ public static final java.util.concurrent.CompletableFuture[] COMPLETABLE_FUTURES = new java.util.concurrent.CompletableFuture[0];
|
|
+
|
|
+ public static final net.minecraft.advancements.critereon.ContextAwarePredicate[] CONTEXT_AWARE_PREDICATES = new net.minecraft.advancements.critereon.ContextAwarePredicate[0];
|
|
+ public static final net.minecraft.advancements.critereon.ItemPredicate[] ITEM_PREDICATES = new net.minecraft.advancements.critereon.ItemPredicate[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.storage.loot.LootPool[] LOOT_POOL = new net.minecraft.world.level.storage.loot.LootPool[0];
|
|
+ public static final net.minecraft.world.level.storage.loot.entries.LootPoolEntryContainer[] LOOT_POOL_ENTRY_CONTAINERS = new net.minecraft.world.level.storage.loot.entries.LootPoolEntryContainer[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.minecraft.world.level.storage.loot.predicates.LootItemCondition[] LOOT_ITEM_CONDITIONS = new net.minecraft.world.level.storage.loot.predicates.LootItemCondition[0];
|
|
+
|
|
+ public static final net.md_5.bungee.api.chat.BaseComponent[] BASE_COMPONENT = new net.md_5.bungee.api.chat.BaseComponent[0];
|
|
+
|
|
+}
|
|
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..776e5b5676749a05d29138afb070c9243cbe920c 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.EmptyConstants.STRING); // Plazma
|
|
return true;
|
|
}
|
|
}
|
|
diff --git a/src/main/java/org/purpurmc/purpur/command/PurpurCommand.java b/src/main/java/org/purpurmc/purpur/command/PurpurCommand.java
|
|
index 2621e54879e9ab0029a875f1d09eee67878b90d5..5ebcdcec49d5c54a31d8ca516fa16bba7fc574c7 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.EmptyConstants.STRING); // Plazma
|
|
}
|
|
}
|
|
|