mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2025-02-11 18:02:33 +01:00
This update had major internal changes, which took us 8 hours to figure out and resolve all things untill we have a successful build. YatopiaMC members wish you happy playing using Yatopia for your server software MAKE A BACKUP OF YOUR WORLD BEFORE RUNNING IT ON YOUR SERVER. YOU HAVE BEEN WARNED. People have reported to paper that after upgrading villagers are gone. There could be even more issues we are unknown of. MAKE A BACKUP OF YOUR WORLD BEFORE RUNNING IT ON YOUR SERVER. YOU HAVE BEEN WARNED. Co-authored-by: Ovydux <68059159+Ovydux@users.noreply.github.com> Co-authored-by: Simon Gardling <Titaniumtown@gmail.com> Co-authored-by: budgidiere <sgidiere@gmail.com>
2578 lines
143 KiB
Diff
2578 lines
143 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Bud Gidiere <sgidiere@gmail.com>
|
|
Date: Thu, 6 Aug 2020 19:47:50 -0500
|
|
Subject: [PATCH] Yatopia-Server-Fixes
|
|
|
|
|
|
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
|
|
index 5dfa0658838c4801cdf260eae8b98163f729e5af..b67f05f290db653cf75a89e85bd3decb5044a1e0 100644
|
|
--- a/src/main/java/co/aikar/timings/TimingsExport.java
|
|
+++ b/src/main/java/co/aikar/timings/TimingsExport.java
|
|
@@ -231,6 +231,7 @@ public class TimingsExport extends Thread {
|
|
pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)),
|
|
pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), // Tuinity - add config to timings report
|
|
pair("tuinity", mapAsJSON(Bukkit.spigot().getTuinityConfig(), null)) // Tuinity - add config to timings report
|
|
+ , pair("purpur", mapAsJSON(Bukkit.spigot().getPurpurConfig(), null)) // Purpur - add config to timings report
|
|
));
|
|
|
|
new TimingsExport(listeners, parent, history).start();
|
|
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java.rej b/src/main/java/co/aikar/timings/TimingsExport.java.rej
|
|
deleted file mode 100644
|
|
index 572780ca665c0fb254cc7431af3dd7759a94f26c..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/co/aikar/timings/TimingsExport.java.rej
|
|
+++ /dev/null
|
|
@@ -1,9 +0,0 @@
|
|
-diff a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java (rejected hunks)
|
|
-@@ -230,6 +230,7 @@ public class TimingsExport extends Thread {
|
|
- pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)),
|
|
- pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)),
|
|
- pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null))
|
|
-+ , pair("rainforest", mapAsJSON(Bukkit.spigot().getRainforestConfig(), null)) // Rainforest
|
|
- ));
|
|
-
|
|
- new TimingsExport(listeners, parent, history).start();
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java.rej b/src/main/java/com/destroystokyo/paper/PaperCommand.java.rej
|
|
deleted file mode 100644
|
|
index 8f31dba6a29514aad6e74e265bf000014cd1e3c3..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java.rej
|
|
+++ /dev/null
|
|
@@ -1,26 +0,0 @@
|
|
-diff a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java (rejected hunks)
|
|
-@@ -429,18 +439,18 @@ public class PaperCommand extends Command {
|
|
- ChunkProviderServer chunkProviderServer = world.getChunkProvider();
|
|
-
|
|
- Collection<Entity> entities = world.entitiesById.values();
|
|
-- entities.forEach(e -> {
|
|
-- MinecraftKey key = e.getMinecraftKey();
|
|
-- if (e.shouldBeRemoved) return; // Paper
|
|
-+ for (Entity entity : entities) {
|
|
-+ MinecraftKey key = entity.getMinecraftKey();
|
|
-+ if (entity.shouldBeRemoved) continue;
|
|
-
|
|
- MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap()));
|
|
-- ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ());
|
|
-+ ChunkCoordIntPair chunk = new ChunkCoordIntPair(entity.getChunkX(), entity.getChunkZ());
|
|
- info.left++;
|
|
- info.right.put(chunk, info.right.getOrDefault(chunk, 0) + 1);
|
|
-- if (!chunkProviderServer.isInEntityTickingChunk(e)) {
|
|
-+ if (!chunkProviderServer.isInEntityTickingChunk(entity)) {
|
|
- nonEntityTicking.merge(key, Integer.valueOf(1), Integer::sum);
|
|
- }
|
|
-- });
|
|
-+ }
|
|
-
|
|
- if (names.size() == 1) {
|
|
- MinecraftKey name = names.iterator().next();
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
index 60f03502a7fd622d2de3b2da9fe8014b289f3d31..cac599c1e90b261b673acecad7517d91ccd0516a 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
|
@@ -446,4 +446,9 @@ public class PaperConfig {
|
|
maxPlayerAutoSavePerTick = (playerAutoSaveRate == -1 || playerAutoSaveRate > 100) ? 10 : 20;
|
|
}
|
|
}
|
|
+
|
|
+ public static boolean asyncAdvancements;
|
|
+ private static void asyncAdvancements() {
|
|
+ asyncAdvancements = getBoolean("settings.async-advancements", asyncAdvancements);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java.rej b/src/main/java/com/destroystokyo/paper/PaperConfig.java.rej
|
|
deleted file mode 100644
|
|
index 3a518ca973dbef44126497057c52fc248aa2ebc1..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java.rej
|
|
+++ /dev/null
|
|
@@ -1,11 +0,0 @@
|
|
-diff a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java (rejected hunks)
|
|
-@@ -435,4 +435,9 @@ public class PaperConfig {
|
|
- allowPistonDuplication = getBoolean("settings.unsupported-settings.allow-piston-duplication", config.getBoolean("settings.unsupported-settings.allow-tnt-duplication", false));
|
|
- set("settings.unsupported-settings.allow-tnt-duplication", null);
|
|
- }
|
|
-+
|
|
-+ public static boolean asyncAdvancements;
|
|
-+ private static void asyncAdvancements() {
|
|
-+ asyncAdvancements = getBoolean("settings.async-advancements", asyncAdvancements);
|
|
-+ }
|
|
- }
|
|
diff --git a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java
|
|
index dee9655b89d061ec8218ea2c54660c6003e8548f..253b73cfc597d4c7106d969be7b18c68166128ae 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java
|
|
@@ -295,7 +295,7 @@ public final class PaperTickList<T> extends TickListServer<T> { // extend to avo
|
|
this.shortScheduledIndex = getNextIndex(this.shortScheduledIndex, SHORT_SCHEDULE_TICK_THRESHOLD);
|
|
|
|
this.timingCleanup.stopTiming();
|
|
- this.world.getMethodProfiler().exitEnter("ticking");
|
|
+ //this.world.getMethodProfiler().exitEnter("ticking"); // Akarin - remove caller
|
|
this.timingTicking.startTiming();
|
|
|
|
for (final NextTickListEntry<T> toTick : this.toTickThisTick) {
|
|
diff --git a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java.rej b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java.rej
|
|
deleted file mode 100644
|
|
index c9fa39c5b4b013b56720e339463ffcb5fd3c13f9..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java.rej
|
|
+++ /dev/null
|
|
@@ -1,10 +0,0 @@
|
|
-diff a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java (rejected hunks)
|
|
-@@ -283,7 +283,7 @@ public final class PaperTickList<T> extends TickListServer<T> { // extend to avo
|
|
- this.nextTick = this.world.getTime() + 1;
|
|
-
|
|
- this.timingCleanup.stopTiming();
|
|
-- this.world.getMethodProfiler().exitEnter("ticking");
|
|
-+ //this.world.getMethodProfiler().exitEnter("ticking"); // Akarin - remove caller
|
|
- this.timingTicking.startTiming();
|
|
-
|
|
- for (final NextTickListEntry<T> toTick : this.toTickThisTick) {
|
|
diff --git a/src/main/java/de/minebench/origami/OrigamiConfig.java b/src/main/java/de/minebench/origami/OrigamiConfig.java
|
|
index fe7330fabe386966c2d203a190a00a785ea21be0..be8daf986eb9c83bd5974eca78a00f717e4f5061 100644
|
|
--- a/src/main/java/de/minebench/origami/OrigamiConfig.java
|
|
+++ b/src/main/java/de/minebench/origami/OrigamiConfig.java
|
|
@@ -16,7 +16,7 @@ public final class OrigamiConfig {
|
|
private static final Object[] EMPTY = new Object[0];
|
|
|
|
private static File configFile;
|
|
- private static YamlConfiguration config;
|
|
+ public static YamlConfiguration config; // Yatopia
|
|
private static int configVersion;
|
|
|
|
public static void init(final File file) {
|
|
@@ -112,6 +112,20 @@ public final class OrigamiConfig {
|
|
config.addDefault("worlds.default." + path, Double.valueOf(dfl));
|
|
return config.getDouble("worlds." + worldName + "." + path, config.getDouble("worlds.default." + path, dfl));
|
|
}
|
|
+
|
|
+ // Yatopia start
|
|
+ public boolean tickEmptyHoppers = true;
|
|
+ public int fullHopperCooldown = 128;
|
|
+ private void hopperOptimizations() {
|
|
+ tickEmptyHoppers = getBoolean("tick-empty-hoppers", tickEmptyHoppers);
|
|
+ fullHopperCooldown = getInt("ticks-per.full-hopper-cooldown", fullHopperCooldown);
|
|
+ }
|
|
+
|
|
+ public boolean fastFeatureSearchDontLoad = false;
|
|
+ private void fastFeatureSearchDontLoad() {
|
|
+ fastFeatureSearchDontLoad = getBoolean("fast-feature-search-dont-load", false);
|
|
+ }
|
|
+ // Yatopia end
|
|
}
|
|
|
|
}
|
|
\ No newline at end of file
|
|
diff --git a/src/main/java/de/minebench/origami/OrigamiConfig.java.rej b/src/main/java/de/minebench/origami/OrigamiConfig.java.rej
|
|
deleted file mode 100644
|
|
index 8428d4bd05075e86b281312fa38106882c54735b..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/de/minebench/origami/OrigamiConfig.java.rej
|
|
+++ /dev/null
|
|
@@ -1,14 +0,0 @@
|
|
-diff a/src/main/java/de/minebench/origami/OrigamiConfig.java b/src/main/java/de/minebench/origami/OrigamiConfig.java (rejected hunks)
|
|
-@@ -169,6 +169,12 @@ public final class OrigamiConfig {
|
|
- Bukkit.getLogger().info("Farm detection radius: " + pigmenFarmsRadius + ", count: " + pigmenFarmsCount);
|
|
- }
|
|
- }
|
|
-+ public boolean tickEmptyHoppers = false;
|
|
-+ public int fullHopperCooldown = 128;
|
|
-+ private void hopperOptimizations() {
|
|
-+ tickEmptyHoppers = getBoolean("tick-empty-hoppers", tickEmptyHoppers);
|
|
-+ fullHopperCooldown = getInt("ticks-per.full-hopper-cooldown", fullHopperCooldown);
|
|
-+ }
|
|
- }
|
|
-
|
|
- public static boolean teleportingOfVehiclesWithPassenger = true;
|
|
diff --git a/src/main/java/net/minecraft/server/BehaviorInteractDoor.java b/src/main/java/net/minecraft/server/BehaviorInteractDoor.java
|
|
index 685351f11497a33ef4ba99055fa7da3a8de18af2..f65449b147c856522cc196e18ead2c8b8ad5dea0 100644
|
|
--- a/src/main/java/net/minecraft/server/BehaviorInteractDoor.java
|
|
+++ b/src/main/java/net/minecraft/server/BehaviorInteractDoor.java
|
|
@@ -127,13 +127,23 @@ public class BehaviorInteractDoor extends Behavior<EntityLiving> {
|
|
private static boolean a(WorldServer worldserver, EntityLiving entityliving, BlockPosition blockposition) {
|
|
BehaviorController<?> behaviorcontroller = entityliving.getBehaviorController();
|
|
|
|
- return !behaviorcontroller.hasMemory(MemoryModuleType.MOBS) ? false : (behaviorcontroller.getMemory(MemoryModuleType.MOBS).get()).stream().filter((entityliving1) -> { // CraftBukkit - decompile error
|
|
- return entityliving1.getEntityType() == entityliving.getEntityType();
|
|
- }).filter((entityliving1) -> {
|
|
- return blockposition.a((IPosition) entityliving1.getPositionVector(), 2.0D);
|
|
- }).anyMatch((entityliving1) -> {
|
|
- return b(worldserver, entityliving1, blockposition);
|
|
- });
|
|
+ // Yatopia start - replaced logic
|
|
+ if (!behaviorcontroller.hasMemory(MemoryModuleType.MOBS)) {
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ boolean match = false;
|
|
+ for (EntityLiving entityliving1 : behaviorcontroller.getMemory(MemoryModuleType.MOBS).get()) {
|
|
+ if (entityliving1.getEntityType() == entityliving.getEntityType() && blockposition.a((IPosition) entityliving1.getPositionVector(), 2.0D)) {
|
|
+ match = b(worldserver, entityliving1, blockposition);
|
|
+ if (match) {
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+
|
|
+ return match;
|
|
+ // Yatopia end
|
|
}
|
|
|
|
private static boolean b(WorldServer worldserver, EntityLiving entityliving, BlockPosition blockposition) {
|
|
diff --git a/src/main/java/net/minecraft/server/BehaviorInteractDoor.java.rej b/src/main/java/net/minecraft/server/BehaviorInteractDoor.java.rej
|
|
deleted file mode 100644
|
|
index 738aa0c089e2d1f1d8ecb983d3d6351a1d4f690c..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/BehaviorInteractDoor.java.rej
|
|
+++ /dev/null
|
|
@@ -1,59 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/BehaviorInteractDoor.java b/src/main/java/net/minecraft/server/BehaviorInteractDoor.java (rejected hunks)
|
|
-@@ -2,6 +2,10 @@ package net.minecraft.server;
|
|
-
|
|
- import com.google.common.collect.ImmutableMap;
|
|
- import com.google.common.collect.Sets;
|
|
-+import org.bukkit.craftbukkit.block.CraftBlock;
|
|
-+import org.bukkit.event.entity.EntityInteractEvent;
|
|
-+
|
|
-+import java.util.ArrayList;
|
|
- import java.util.Iterator;
|
|
- import java.util.List;
|
|
- import java.util.Set;
|
|
-@@ -19,9 +23,12 @@ public class BehaviorInteractDoor extends Behavior<EntityLiving> {
|
|
- BehaviorController<?> behaviorcontroller = entityliving.getBehaviorController();
|
|
- PathEntity pathentity = (PathEntity) behaviorcontroller.getMemory(MemoryModuleType.PATH).get();
|
|
- List<GlobalPos> list = (List) behaviorcontroller.getMemory(MemoryModuleType.INTERACTABLE_DOORS).get();
|
|
-- List<BlockPosition> list1 = (List) pathentity.d().stream().map((pathpoint) -> {
|
|
-- return new BlockPosition(pathpoint.a, pathpoint.b, pathpoint.c);
|
|
-- }).collect(Collectors.toList());
|
|
-+ List<BlockPosition> result = new ArrayList<>();
|
|
-+ for (PathPoint pathpoint : pathentity.d()) {
|
|
-+ BlockPosition blockPosition = new BlockPosition(pathpoint.a, pathpoint.b, pathpoint.c);
|
|
-+ result.add(blockPosition);
|
|
-+ }
|
|
-+ List<BlockPosition> list1 = (List) result;
|
|
- Set<BlockPosition> set = this.a(worldserver, list, list1);
|
|
- int j = pathentity.f() - 1;
|
|
-
|
|
-@@ -38,7 +45,7 @@ public class BehaviorInteractDoor extends Behavior<EntityLiving> {
|
|
- }
|
|
-
|
|
- private void a(WorldServer worldserver, List<BlockPosition> list, Set<BlockPosition> set, int i, EntityLiving entityliving, BehaviorController<?> behaviorcontroller) {
|
|
-- set.forEach((blockposition) -> {
|
|
-+ for (BlockPosition blockposition : set) {
|
|
- int j = list.indexOf(blockposition);
|
|
- IBlockData iblockdata = worldserver.getType(blockposition);
|
|
- Block block = iblockdata.getBlock();
|
|
-@@ -47,10 +54,10 @@ public class BehaviorInteractDoor extends Behavior<EntityLiving> {
|
|
- boolean flag = j >= i;
|
|
-
|
|
- // CraftBukkit start - entities opening doors
|
|
-- org.bukkit.event.entity.EntityInteractEvent event = new org.bukkit.event.entity.EntityInteractEvent(entityliving.getBukkitEntity(), org.bukkit.craftbukkit.block.CraftBlock.at(entityliving.world, blockposition));
|
|
-+ EntityInteractEvent event = new EntityInteractEvent(entityliving.getBukkitEntity(), CraftBlock.at(entityliving.world, blockposition));
|
|
- entityliving.world.getServer().getPluginManager().callEvent(event);
|
|
- if (event.isCancelled()) {
|
|
-- return;
|
|
-+ continue;
|
|
- }
|
|
- // CaftBukkit end
|
|
- ((BlockDoor) block).setDoor(worldserver, blockposition, flag);
|
|
-@@ -70,7 +77,7 @@ public class BehaviorInteractDoor extends Behavior<EntityLiving> {
|
|
- }
|
|
- }
|
|
-
|
|
-- });
|
|
-+ }
|
|
- a(worldserver, list, i, entityliving, behaviorcontroller);
|
|
- }
|
|
-
|
|
diff --git a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java
|
|
index bdbb716a91cd320dd9ab39ed6b7442388c92d074..bfae77f129859fba5e0f53723ba62a1626773b7c 100644
|
|
--- a/src/main/java/net/minecraft/server/BiomeBase.java
|
|
+++ b/src/main/java/net/minecraft/server/BiomeBase.java
|
|
@@ -516,13 +516,13 @@ public final class BiomeBase {
|
|
private static final Map<String, BiomeBase.Precipitation> e;
|
|
|
|
static {
|
|
- Map<String, Precipitation> map = new HashMap<>();
|
|
+ Map<String, Precipitation> map = new java.util.HashMap<>();
|
|
for (Precipitation biomebase_precipitation : values()) {
|
|
if (map.put(biomebase_precipitation.b(), biomebase_precipitation) != null) {
|
|
throw new IllegalStateException("Duplicate key");
|
|
}
|
|
}
|
|
- e = (Map) map;
|
|
+ e = map;
|
|
}
|
|
|
|
private final String f;
|
|
@@ -553,13 +553,13 @@ public final class BiomeBase {
|
|
private static final Map<String, BiomeBase.Geography> s;
|
|
|
|
static {
|
|
- Map<String, Geography> map = new HashMap<>();
|
|
+ Map<String, Geography> map = new java.util.HashMap<>();
|
|
for (Geography biomebase_geography : values()) {
|
|
if (map.put(biomebase_geography.b(), biomebase_geography) != null) {
|
|
throw new IllegalStateException("Duplicate key");
|
|
}
|
|
}
|
|
- s = (Map) map;
|
|
+ s = map;
|
|
}
|
|
|
|
private final String t;
|
|
diff --git a/src/main/java/net/minecraft/server/BiomeBase.java.rej b/src/main/java/net/minecraft/server/BiomeBase.java.rej
|
|
deleted file mode 100644
|
|
index 96bedf79efa73874a67a7ac6c7672497f3f94f67..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/BiomeBase.java.rej
|
|
+++ /dev/null
|
|
@@ -1,74 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/BiomeBase.java b/src/main/java/net/minecraft/server/BiomeBase.java (rejected hunks)
|
|
-@@ -7,15 +7,8 @@ import com.google.common.collect.Sets;
|
|
- import com.mojang.serialization.Codec;
|
|
- import com.mojang.serialization.codecs.RecordCodecBuilder;
|
|
- import it.unimi.dsi.fastutil.longs.Long2FloatLinkedOpenHashMap;
|
|
--import java.util.Arrays;
|
|
--import java.util.Collection;
|
|
--import java.util.Comparator;
|
|
--import java.util.Iterator;
|
|
--import java.util.List;
|
|
--import java.util.Map;
|
|
--import java.util.Optional;
|
|
--import java.util.Random;
|
|
--import java.util.Set;
|
|
-+
|
|
-+import java.util.*;
|
|
- import java.util.function.Function;
|
|
- import java.util.stream.Collectors;
|
|
- import java.util.stream.Stream;
|
|
-@@ -41,7 +34,14 @@ public class BiomeBase {
|
|
- WorldGenSurfaceComposite.a.fieldOf("surface_builder").forGetter(biome -> biome.m),
|
|
- Codec.simpleMap(WorldGenStage.Features.c, WorldGenCarverWrapper.a.listOf().promotePartial(SystemUtils.a("Carver: ", LOGGER::error)), INamable.a(WorldGenStage.Features.values())).fieldOf("carvers").forGetter(biome -> biome.q),
|
|
- Codec.simpleMap((Codec<WorldGenStage.Decoration>) k1, WorldGenFeatureConfigured.b.listOf().promotePartial(SystemUtils.a("Feature: ", LOGGER::error)), INamable.a(WorldGenStage.Decoration.values())).fieldOf("features").forGetter(biome -> biome.r),
|
|
-- StructureFeature.a.listOf().promotePartial(SystemUtils.a("Structure start: ", LOGGER::error)).fieldOf("starts").forGetter(biome -> biome.u.values().stream().sorted(Comparator.comparing(cf -> IRegistry.STRUCTURE_FEATURE.getKey(cf.b))).collect(Collectors.toList())),
|
|
-+ StructureFeature.a.listOf().promotePartial(SystemUtils.a("Structure start: ", LOGGER::error)).fieldOf("starts").forGetter(biome -> {
|
|
-+ List<StructureFeature<?, ?>> list = new ArrayList<>();
|
|
-+ for (StructureFeature<?, ?> structureFeature : biome.u.values()) {
|
|
-+ list.add(structureFeature);
|
|
-+ }
|
|
-+ list.sort(Comparator.comparing(cf -> IRegistry.STRUCTURE_FEATURE.getKey(cf.b)));
|
|
-+ return list;
|
|
-+ }),
|
|
- Codec.simpleMap(EnumCreatureType.g, BiomeMeta.b.listOf().promotePartial(SystemUtils.a("Spawn data: ", LOGGER::error)), INamable.a(EnumCreatureType.values())).fieldOf("spawners").forGetter(biome -> biome.v),
|
|
- d.a.listOf().fieldOf("climate_parameters").forGetter(biome -> biome.x),
|
|
- Codec.STRING.optionalFieldOf("parent").forGetter(biome -> Optional.ofNullable(biome.l))
|
|
-@@ -159,9 +159,13 @@ public class BiomeBase {
|
|
- this.m = worldgensurfacecomposite;
|
|
- this.q = map;
|
|
- this.r = map1;
|
|
-- this.u = (Map) list.stream().collect(Collectors.toMap((structurefeature) -> {
|
|
-- return structurefeature.b;
|
|
-- }, Function.identity()));
|
|
-+ Map<StructureGenerator<?>, StructureFeature<?, ?>> result = new HashMap<>();
|
|
-+ for (StructureFeature<?, ?> structurefeature : list) {
|
|
-+ if (result.put(structurefeature.b, structurefeature) != null) {
|
|
-+ throw new IllegalStateException("Duplicate key");
|
|
-+ }
|
|
-+ }
|
|
-+ this.u = (Map) result;
|
|
- this.v = Maps.newEnumMap(EnumCreatureType.class); this.v.putAll(map2); // Paper
|
|
- this.x = list1;
|
|
- this.l = (String) optional.orElse(null); // Paper - decompile fix
|
|
-@@ -727,9 +749,18 @@ public class BiomeBase {
|
|
-
|
|
- OCEAN("ocean"), COLD("cold"), MEDIUM("medium"), WARM("warm");
|
|
-
|
|
-- private static final Map<String, BiomeBase.EnumTemperature> e = (Map) Arrays.stream(values()).collect(Collectors.toMap(BiomeBase.EnumTemperature::a, (biomebase_enumtemperature) -> {
|
|
-- return biomebase_enumtemperature;
|
|
-- }));
|
|
-+ private static final Map<String, BiomeBase.EnumTemperature> e;
|
|
-+
|
|
-+ static {
|
|
-+ Map<String, EnumTemperature> map = new HashMap<>();
|
|
-+ for (EnumTemperature biomebase_enumtemperature : values()) {
|
|
-+ if (map.put(biomebase_enumtemperature.a(), biomebase_enumtemperature) != null) {
|
|
-+ throw new IllegalStateException("Duplicate key");
|
|
-+ }
|
|
-+ }
|
|
-+ e = (Map) map;
|
|
-+ }
|
|
-+
|
|
- private final String f;
|
|
-
|
|
- private EnumTemperature(String s) {
|
|
diff --git a/src/main/java/net/minecraft/server/Block.java.rej b/src/main/java/net/minecraft/server/Block.java.rej
|
|
deleted file mode 100644
|
|
index 4cc30faacb1ee173cbc546cc57ff4ce032024587..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/Block.java.rej
|
|
+++ /dev/null
|
|
@@ -1,37 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/Block.java b/src/main/java/net/minecraft/server/Block.java (rejected hunks)
|
|
-@@ -198,9 +198,9 @@ public class Block extends BlockBase implements IMaterial {
|
|
-
|
|
- public static void c(IBlockData iblockdata, World world, BlockPosition blockposition) {
|
|
- if (world instanceof WorldServer) {
|
|
-- a(iblockdata, (WorldServer) world, blockposition, (TileEntity) null).forEach((itemstack) -> {
|
|
-+ for (ItemStack itemstack : a(iblockdata, (WorldServer) world, blockposition, (TileEntity) null)) {
|
|
- a(world, blockposition, itemstack);
|
|
-- });
|
|
-+ }
|
|
- }
|
|
-
|
|
- iblockdata.dropNaturally(world, blockposition, ItemStack.b);
|
|
-@@ -208,9 +208,9 @@ public class Block extends BlockBase implements IMaterial {
|
|
- public static void dropNaturally(IBlockData iblockdata, World world, BlockPosition blockposition, @Nullable TileEntity tileentity) { a(iblockdata, world, blockposition, tileentity); }
|
|
- public static void a(IBlockData iblockdata, World world, BlockPosition blockposition, @Nullable TileEntity tileentity) {
|
|
- if (world instanceof WorldServer) {
|
|
-- a(iblockdata, (WorldServer) world, blockposition, tileentity).forEach((itemstack) -> {
|
|
-+ for (ItemStack itemstack : a(iblockdata, (WorldServer) world, blockposition, tileentity)) {
|
|
- a(world, blockposition, itemstack);
|
|
-- });
|
|
-+ }
|
|
- }
|
|
-
|
|
- iblockdata.dropNaturally(world, blockposition, ItemStack.b);
|
|
-@@ -218,9 +218,9 @@ public class Block extends BlockBase implements IMaterial {
|
|
-
|
|
- public static void dropItems(IBlockData iblockdata, World world, BlockPosition blockposition, @Nullable TileEntity tileentity, Entity entity, ItemStack itemstack) {
|
|
- if (world instanceof WorldServer) {
|
|
-- getDrops(iblockdata, (WorldServer) world, blockposition, tileentity, entity, itemstack).forEach((itemstack1) -> {
|
|
-+ for (ItemStack itemstack1 : getDrops(iblockdata, (WorldServer) world, blockposition, tileentity, entity, itemstack)) {
|
|
- a(world, blockposition, itemstack1);
|
|
-- });
|
|
-+ }
|
|
- }
|
|
-
|
|
- iblockdata.dropNaturally(world, blockposition, itemstack);
|
|
diff --git a/src/main/java/net/minecraft/server/BlockBase.java b/src/main/java/net/minecraft/server/BlockBase.java
|
|
index da37a0207571c3eeb324c7f07daf2af90bb870c8..0396bbc0a5e1315e2a6d09f72690f103163e2bc6 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockBase.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockBase.java
|
|
@@ -713,9 +713,14 @@ public abstract class BlockBase {
|
|
}
|
|
|
|
this.b = block.c(iblockdata, BlockAccessAir.INSTANCE, BlockPosition.ZERO, VoxelShapeCollision.a());
|
|
- this.c = Arrays.stream(EnumDirection.EnumAxis.values()).anyMatch((enumdirection_enumaxis) -> {
|
|
- return this.b.b(enumdirection_enumaxis) < 0.0D || this.b.c(enumdirection_enumaxis) > 1.0D;
|
|
- });
|
|
+ boolean result = false;
|
|
+ for (EnumDirection.EnumAxis enumdirection_enumaxis : EnumDirection.EnumAxis.values()) {
|
|
+ if (this.b.b(enumdirection_enumaxis) < 1.0D || this.b.c(enumdirection_enumaxis) > 1.0D) {
|
|
+ result = true;
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ this.c = result;
|
|
this.j = new boolean[BlockBase.BlockData.Cache.e.length * BlockBase.BlockData.Cache.f];
|
|
EnumDirection[] aenumdirection1 = BlockBase.BlockData.Cache.e;
|
|
int k = aenumdirection1.length;
|
|
diff --git a/src/main/java/net/minecraft/server/BlockBase.java.rej b/src/main/java/net/minecraft/server/BlockBase.java.rej
|
|
deleted file mode 100644
|
|
index 4e6f3d695d5c1a888fe73ea81e936642f3667f48..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/BlockBase.java.rej
|
|
+++ /dev/null
|
|
@@ -1,19 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/BlockBase.java b/src/main/java/net/minecraft/server/BlockBase.java (rejected hunks)
|
|
-@@ -700,9 +700,14 @@ public abstract class BlockBase {
|
|
- }
|
|
-
|
|
- this.b = block.c(iblockdata, BlockAccessAir.INSTANCE, BlockPosition.ZERO, VoxelShapeCollision.a());
|
|
-- this.c = Arrays.stream(EnumDirection.EnumAxis.values()).anyMatch((enumdirection_enumaxis) -> {
|
|
-- return this.b.b(enumdirection_enumaxis) < 0.0D || this.b.c(enumdirection_enumaxis) > 1.0D;
|
|
-- });
|
|
-+ boolean result = false;
|
|
-+ for (EnumDirection.EnumAxis enumdirection_enumaxis : EnumDirection.EnumAxis.values()) {
|
|
-+ if (this.b.b(enumdirection_enumaxis) < 0.0D || this.b.c(enumdirection_enumaxis) > 1.0D) {
|
|
-+ result = true;
|
|
-+ break;
|
|
-+ }
|
|
-+ }
|
|
-+ this.c = result;
|
|
- this.d = new boolean[6];
|
|
- EnumDirection[] aenumdirection1 = f;
|
|
- int k = aenumdirection1.length;
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
index dde38e0222e658b5a841a32af3fc5153ecb02392..5af513cb052382c34e157110265f80a1a2efef15 100644
|
|
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
+++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java
|
|
@@ -739,11 +739,11 @@ public class ChunkProviderServer extends IChunkProvider {
|
|
if (this.a(playerchunk, l)) {
|
|
GameProfilerFiller gameprofilerfiller = this.world.getMethodProfiler();
|
|
|
|
- gameprofilerfiller.enter("chunkLoad");
|
|
+ //gameprofilerfiller.enter("chunkLoad"); // Akarin - remove caller
|
|
chunkMapDistance.delayDistanceManagerTick = false; // Paper - ensure this is never false
|
|
this.tickDistanceManager();
|
|
playerchunk = this.getChunk(k);
|
|
- gameprofilerfiller.exit();
|
|
+ //gameprofilerfiller.exit(); // Akarin - remove caller
|
|
if (this.a(playerchunk, l)) {
|
|
this.chunkMapDistance.removeTicketAtLevel(TicketType.REQUIRED_LOAD, chunkcoordintpair, l, identifier); // Tuinity
|
|
throw (IllegalStateException) SystemUtils.c((Throwable) (new IllegalStateException("No chunk holder after ticket has been added")));
|
|
@@ -981,11 +981,11 @@ public class ChunkProviderServer extends IChunkProvider {
|
|
player.playerNaturallySpawnedEvent = event;
|
|
}
|
|
// Paper end - optimize isOutisdeRange
|
|
- this.world.getMethodProfiler().enter("pollingChunks");
|
|
+ //this.world.getMethodProfiler().enter("pollingChunks"); // Akarin - remove caller
|
|
int k = this.world.getGameRules().getInt(GameRules.RANDOM_TICK_SPEED);
|
|
boolean flag2 = world.ticksPerAnimalSpawns != 0L && worlddata.getTime() % world.ticksPerAnimalSpawns == 0L; // CraftBukkit
|
|
|
|
- this.world.getMethodProfiler().enter("naturalSpawnCount");
|
|
+ //this.world.getMethodProfiler().enter("naturalSpawnCount"); // Akarin - remove caller
|
|
this.world.timings.countNaturalMobs.startTiming(); // Paper - timings
|
|
int l = this.chunkMapDistance.b();
|
|
// Paper start - per player mob spawning
|
|
diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java.rej b/src/main/java/net/minecraft/server/ChunkProviderServer.java.rej
|
|
deleted file mode 100644
|
|
index 7dd44fa8dc734862bf87691f1d7f4a5dae53b152..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java.rej
|
|
+++ /dev/null
|
|
@@ -1,29 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java (rejected hunks)
|
|
-@@ -732,11 +732,11 @@ public class ChunkProviderServer extends IChunkProvider {
|
|
- if (this.a(playerchunk, l)) {
|
|
- GameProfilerFiller gameprofilerfiller = this.world.getMethodProfiler();
|
|
-
|
|
-- gameprofilerfiller.enter("chunkLoad");
|
|
-+ //gameprofilerfiller.enter("chunkLoad"); // Akarin - remove caller
|
|
- chunkMapDistance.delayDistanceManagerTick = false; // Paper - ensure this is never false
|
|
- this.tickDistanceManager();
|
|
- playerchunk = this.getChunk(k);
|
|
-- gameprofilerfiller.exit();
|
|
-+ //gameprofilerfiller.exit(); // Akarin - remove caller
|
|
- if (this.a(playerchunk, l)) {
|
|
- this.chunkMapDistance.removeTicketAtLevel(TicketType.REQUIRED_LOAD, chunkcoordintpair, l, identifier); // Tuinity
|
|
- throw (IllegalStateException) SystemUtils.c(new IllegalStateException("No chunk holder after ticket has been added"));
|
|
-@@ -971,11 +971,11 @@ public class ChunkProviderServer extends IChunkProvider {
|
|
- player.lastEntitySpawnRadiusSquared = (double)((range << 4) * (range << 4)); // used in isOutsideRange
|
|
- }
|
|
- // Paper end - optimize isOutisdeRange
|
|
-- this.world.getMethodProfiler().enter("pollingChunks");
|
|
-+ //this.world.getMethodProfiler().enter("pollingChunks"); // Akarin - remove caller
|
|
- int k = this.world.getGameRules().getInt(GameRules.RANDOM_TICK_SPEED);
|
|
- boolean flag2 = world.ticksPerAnimalSpawns != 0L && worlddata.getTime() % world.ticksPerAnimalSpawns == 0L; // CraftBukkit
|
|
-
|
|
-- this.world.getMethodProfiler().enter("naturalSpawnCount");
|
|
-+ //this.world.getMethodProfiler().enter("naturalSpawnCount"); // Akarin - remove caller
|
|
- this.world.timings.countNaturalMobs.startTiming(); // Paper - timings
|
|
- int l = this.chunkMapDistance.b();
|
|
- // Paper start - per player mob spawning
|
|
diff --git a/src/main/java/net/minecraft/server/ContainerSmithing.java b/src/main/java/net/minecraft/server/ContainerSmithing.java
|
|
index a575dddb262021fd68b4db1435e67a1f0768c633..35e4182282064f49f35d42776edf4b38cd4dd6ea 100644
|
|
--- a/src/main/java/net/minecraft/server/ContainerSmithing.java
|
|
+++ b/src/main/java/net/minecraft/server/ContainerSmithing.java
|
|
@@ -73,9 +73,12 @@ public class ContainerSmithing extends ContainerAnvilAbstract {
|
|
|
|
@Override
|
|
protected boolean a(ItemStack itemstack) {
|
|
- return this.i.stream().anyMatch((recipesmithing) -> {
|
|
- return recipesmithing.a(itemstack);
|
|
- });
|
|
+ for (RecipeSmithing recipesmithing : this.i) {
|
|
+ if (recipesmithing.a(itemstack)) {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+ return false;
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/ContainerSmithing.java.rej b/src/main/java/net/minecraft/server/ContainerSmithing.java.rej
|
|
deleted file mode 100644
|
|
index 2317638f225d0ccba97020c4e739d7dea99b78db..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/ContainerSmithing.java.rej
|
|
+++ /dev/null
|
|
@@ -1,17 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/ContainerSmithing.java b/src/main/java/net/minecraft/server/ContainerSmithing.java (rejected hunks)
|
|
-@@ -70,9 +70,12 @@ public class ContainerSmithing extends ContainerAnvilAbstract {
|
|
-
|
|
- @Override
|
|
- protected boolean a(ItemStack itemstack) {
|
|
-- return this.i.stream().anyMatch((recipesmithing) -> {
|
|
-- return recipesmithing.a(itemstack);
|
|
-- });
|
|
-+ for (RecipeSmithing recipesmithing : this.i) {
|
|
-+ if (recipesmithing.a(itemstack)) {
|
|
-+ return true;
|
|
-+ }
|
|
-+ }
|
|
-+ return false;
|
|
- }
|
|
-
|
|
- // CraftBukkit start
|
|
diff --git a/src/main/java/net/minecraft/server/CraftingManager.java b/src/main/java/net/minecraft/server/CraftingManager.java
|
|
index b0b49904e9590b91743ebafb7983a392a6c95083..66586a0799d669ed860880862173c6ebd0fa76ef 100644
|
|
--- a/src/main/java/net/minecraft/server/CraftingManager.java
|
|
+++ b/src/main/java/net/minecraft/server/CraftingManager.java
|
|
@@ -124,15 +124,24 @@ public class CraftingManager extends ResourceDataJson {
|
|
}
|
|
|
|
public Optional<? extends IRecipe<?>> getRecipe(MinecraftKey minecraftkey) {
|
|
- return this.recipes.values().stream().map((map) -> {
|
|
- return map.get(minecraftkey); // CraftBukkit - decompile error
|
|
- }).filter(Objects::nonNull).findFirst();
|
|
+ // CraftBukkit - decompile error
|
|
+ for (Object2ObjectLinkedOpenHashMap<MinecraftKey, IRecipe<?>> map : this.recipes.values()) {
|
|
+ IRecipe<?> iRecipe = map.get(minecraftkey);
|
|
+ if (iRecipe != null) {
|
|
+ return Optional.<IRecipe<?>>of(iRecipe);
|
|
+ }
|
|
+ }
|
|
+ return Optional.empty();
|
|
}
|
|
|
|
public Collection<IRecipe<?>> b() {
|
|
- return (Collection) this.recipes.values().stream().flatMap((map) -> {
|
|
- return map.values().stream();
|
|
- }).collect(Collectors.toSet());
|
|
+ Set<IRecipe<?>> set = new HashSet<>();
|
|
+ for (Object2ObjectLinkedOpenHashMap<MinecraftKey, IRecipe<?>> map : this.recipes.values()) {
|
|
+ for (IRecipe<?> iRecipe : map.values()) {
|
|
+ set.add(iRecipe);
|
|
+ }
|
|
+ }
|
|
+ return set;
|
|
}
|
|
|
|
public Stream<MinecraftKey> d() {
|
|
diff --git a/src/main/java/net/minecraft/server/CraftingManager.java.rej b/src/main/java/net/minecraft/server/CraftingManager.java.rej
|
|
deleted file mode 100644
|
|
index adeca862cc3a3d1001c9d515fa2083acef0520e2..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/CraftingManager.java.rej
|
|
+++ /dev/null
|
|
@@ -1,32 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/CraftingManager.java b/src/main/java/net/minecraft/server/CraftingManager.java (rejected hunks)
|
|
-@@ -127,15 +124,24 @@ public class CraftingManager extends ResourceDataJson {
|
|
- }
|
|
-
|
|
- public Optional<? extends IRecipe<?>> a(MinecraftKey minecraftkey) {
|
|
-- return this.recipes.values().stream().map((map) -> {
|
|
-- return map.get(minecraftkey); // CraftBukkit - decompile error
|
|
-- }).filter(Objects::nonNull).findFirst();
|
|
-+ // CraftBukkit - decompile error
|
|
-+ for (Object2ObjectLinkedOpenHashMap<MinecraftKey, IRecipe<?>> map : this.recipes.values()) {
|
|
-+ IRecipe<?> iRecipe = map.get(minecraftkey);
|
|
-+ if (iRecipe != null) {
|
|
-+ return Optional.<IRecipe<?>>of(iRecipe);
|
|
-+ }
|
|
-+ }
|
|
-+ return Optional.empty();
|
|
- }
|
|
-
|
|
- public Collection<IRecipe<?>> b() {
|
|
-- return (Collection) this.recipes.values().stream().flatMap((map) -> {
|
|
-- return map.values().stream();
|
|
-- }).collect(Collectors.toSet());
|
|
-+ Set<IRecipe<?>> set = new HashSet<>();
|
|
-+ for (Object2ObjectLinkedOpenHashMap<MinecraftKey, IRecipe<?>> map : this.recipes.values()) {
|
|
-+ for (IRecipe<?> iRecipe : map.values()) {
|
|
-+ set.add(iRecipe);
|
|
-+ }
|
|
-+ }
|
|
-+ return (Collection) set;
|
|
- }
|
|
-
|
|
- public Stream<MinecraftKey> d() {
|
|
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java.rej b/src/main/java/net/minecraft/server/DedicatedServer.java.rej
|
|
deleted file mode 100644
|
|
index 4c2d5b3e080c925d687733ec40d4fb4b22552c96..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/DedicatedServer.java.rej
|
|
+++ /dev/null
|
|
@@ -1,9 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java (rejected hunks)
|
|
-@@ -170,6 +170,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
|
- com.destroystokyo.paper.PaperConfig.registerCommands();
|
|
- com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
|
|
- // Paper end
|
|
-+ com.proximyst.rainforest.RainforestConfig.init((java.io.File) options.valueOf("rainforest-settings")); // Rainforest
|
|
-
|
|
- this.setPVP(dedicatedserverproperties.pvp);
|
|
- this.setAllowFlight(dedicatedserverproperties.allowFlight);
|
|
diff --git a/src/main/java/net/minecraft/server/DispenserRegistry.java.rej b/src/main/java/net/minecraft/server/DispenserRegistry.java.rej
|
|
deleted file mode 100644
|
|
index 8347faf8a7ee62d27cf5eb9f285695fddadfa624..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/DispenserRegistry.java.rej
|
|
+++ /dev/null
|
|
@@ -1,13 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/DispenserRegistry.java b/src/main/java/net/minecraft/server/DispenserRegistry.java (rejected hunks)
|
|
-@@ -156,9 +156,9 @@ public class DispenserRegistry {
|
|
- throw new IllegalArgumentException("Not bootstrapped");
|
|
- } else {
|
|
- if (SharedConstants.d) {
|
|
-- b().forEach((s) -> {
|
|
-+ for (String s : b()) {
|
|
- DispenserRegistry.LOGGER.error("Missing translations: " + s);
|
|
-- });
|
|
-+ }
|
|
- }
|
|
-
|
|
- AttributeDefaults.a();
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
|
index 18ef21d7f78c5106105e0f210c3dca612b430136..6f24467f5d790cbc5726e8ccabe7b0197f7beb21 100644
|
|
--- a/src/main/java/net/minecraft/server/Entity.java
|
|
+++ b/src/main/java/net/minecraft/server/Entity.java
|
|
@@ -440,7 +440,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
public void setPosition(double d0, double d1, double d2) {
|
|
this.setPositionRaw(d0, d1, d2);
|
|
//this.a(this.size.a(d0, d1, d2)); // Paper - move into setPositionRaw
|
|
- if (valid) ((WorldServer) world).chunkCheck(this); // CraftBukkit
|
|
+ if (valid && !dead) ((WorldServer) world).chunkCheck(this); // CraftBukkit // Purpur
|
|
}
|
|
|
|
protected void ae() {
|
|
@@ -3025,7 +3025,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
entity.a(entity1, Entity::teleportAndSync);
|
|
}
|
|
|
|
- }
|
|
+ });
|
|
}
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/Entity.java.rej b/src/main/java/net/minecraft/server/Entity.java.rej
|
|
deleted file mode 100644
|
|
index a1c69628be83c464c4f0da80fb80cc4c4a7e8514..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/Entity.java.rej
|
|
+++ /dev/null
|
|
@@ -1,10 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java (rejected hunks)
|
|
-@@ -1523,7 +1523,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
|
- this.pitch = MathHelper.a(f1, -90.0F, 90.0F) % 360.0F;
|
|
- this.lastYaw = this.yaw;
|
|
- this.lastPitch = this.pitch;
|
|
-- if (valid) world.getChunkAt((int) Math.floor(this.locX()) >> 4, (int) Math.floor(this.locZ()) >> 4); // CraftBukkit // Paper
|
|
-+ if (valid && !dead) world.getChunkAt((int) Math.floor(this.locX()) >> 4, (int) Math.floor(this.locZ()) >> 4); // CraftBukkit // Paper // Purpur
|
|
- }
|
|
-
|
|
- public void c(Vec3D vec3d) {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityEnderDragon.java.rej b/src/main/java/net/minecraft/server/EntityEnderDragon.java.rej
|
|
deleted file mode 100644
|
|
index 39583978bd58994a70718fd009ae8e57f7c60af8..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityEnderDragon.java.rej
|
|
+++ /dev/null
|
|
@@ -1,13 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityEnderDragon.java b/src/main/java/net/minecraft/server/EntityEnderDragon.java (rejected hunks)
|
|
-@@ -462,9 +462,9 @@ public class EntityEnderDragon extends EntityInsentient implements IMonster {
|
|
- TileEntity tileentity = nmsBlock.isTileEntity() ? this.world.getTileEntity(blockposition) : null;
|
|
- LootTableInfo.Builder loottableinfo_builder = (new LootTableInfo.Builder((WorldServer) this.world)).a(this.world.random).set(LootContextParameters.POSITION, blockposition).set(LootContextParameters.TOOL, ItemStack.b).set(LootContextParameters.EXPLOSION_RADIUS, 1.0F / event.getYield()).setOptional(LootContextParameters.BLOCK_ENTITY, tileentity);
|
|
-
|
|
-- craftBlock.getNMS().a(loottableinfo_builder).forEach((itemstack) -> {
|
|
-+ for (ItemStack itemstack : craftBlock.getNMS().a(loottableinfo_builder)) {
|
|
- Block.a(world, blockposition, itemstack);
|
|
-- });
|
|
-+ }
|
|
- craftBlock.getNMS().dropNaturally(world, blockposition, ItemStack.b);
|
|
- }
|
|
- // Paper start - TNTPrimeEvent
|
|
diff --git a/src/main/java/net/minecraft/server/EntityFox.java.rej b/src/main/java/net/minecraft/server/EntityFox.java.rej
|
|
deleted file mode 100644
|
|
index c3c7738570d3670b50f144f145b61dcc2d35bb85..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityFox.java.rej
|
|
+++ /dev/null
|
|
@@ -1,37 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityFox.java b/src/main/java/net/minecraft/server/EntityFox.java (rejected hunks)
|
|
-@@ -1404,12 +1398,29 @@ public class EntityFox extends EntityAnimal {
|
|
-
|
|
- RED(0, "red", new BiomeBase[]{Biomes.TAIGA, Biomes.TAIGA_HILLS, Biomes.TAIGA_MOUNTAINS, Biomes.GIANT_TREE_TAIGA, Biomes.GIANT_SPRUCE_TAIGA, Biomes.GIANT_TREE_TAIGA_HILLS, Biomes.GIANT_SPRUCE_TAIGA_HILLS}), SNOW(1, "snow", new BiomeBase[]{Biomes.SNOWY_TAIGA, Biomes.SNOWY_TAIGA_HILLS, Biomes.SNOWY_TAIGA_MOUNTAINS});
|
|
-
|
|
-- private static final EntityFox.Type[] c = (EntityFox.Type[]) Arrays.stream(values()).sorted(Comparator.comparingInt(EntityFox.Type::c)).toArray((i) -> {
|
|
-- return new EntityFox.Type[i];
|
|
-- });
|
|
-- private static final Map<String, EntityFox.Type> d = (Map) Arrays.stream(values()).collect(Collectors.toMap(EntityFox.Type::a, (entityfox_type) -> {
|
|
-- return entityfox_type;
|
|
-- }));
|
|
-+ private static final EntityFox.Type[] c;
|
|
-+
|
|
-+ static {
|
|
-+ List<Type> list = new ArrayList<>();
|
|
-+ for (Type type : values()) {
|
|
-+ list.add(type);
|
|
-+ }
|
|
-+ list.sort(Comparator.comparingInt(Type::c));
|
|
-+ c = (Type[]) list.toArray(new Type[0]);
|
|
-+ }
|
|
-+
|
|
-+ private static final Map<String, EntityFox.Type> d;
|
|
-+
|
|
-+ static {
|
|
-+ Map<String, Type> map = new HashMap<>();
|
|
-+ for (Type entityfox_type : values()) {
|
|
-+ if (map.put(entityfox_type.a(), entityfox_type) != null) {
|
|
-+ throw new IllegalStateException("Duplicate key");
|
|
-+ }
|
|
-+ }
|
|
-+ d = (Map) map;
|
|
-+ }
|
|
-+
|
|
- private final int e;
|
|
- private final String f;
|
|
- private final List<BiomeBase> g;
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHoglin.java b/src/main/java/net/minecraft/server/EntityHoglin.java
|
|
index cf64c8ca2c5348782bf65a13f210564856b69311..77e4fa44201782b64ad8ca1662835be5abadfa9d 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityHoglin.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityHoglin.java
|
|
@@ -13,7 +13,7 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin {
|
|
public int conversionTicks = 0;
|
|
public boolean cannotBeHunted = false;
|
|
protected static final ImmutableList<? extends SensorType<? extends Sensor<? super EntityHoglin>>> bo = ImmutableList.of(SensorType.c, SensorType.d, SensorType.n, SensorType.m);
|
|
- protected static final ImmutableList<? extends MemoryModuleType<?>> bp = ImmutableList.of(MemoryModuleType.BREED_TARGET, MemoryModuleType.MOBS, MemoryModuleType.VISIBLE_MOBS, MemoryModuleType.NEAREST_VISIBLE_PLAYER, MemoryModuleType.NEAREST_VISIBLE_TARGETABLE_PLAYER, MemoryModuleType.LOOK_TARGET, MemoryModuleType.WALK_TARGET, MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE, MemoryModuleType.PATH, MemoryModuleType.ATTACK_TARGET, MemoryModuleType.ATTACK_COOLING_DOWN, MemoryModuleType.NEAREST_VISIBLE_ADULT_PIGLIN, new MemoryModuleType[]{MemoryModuleType.AVOID_TARGET, MemoryModuleType.VISIBLE_ADULT_PIGLIN_COUNT, MemoryModuleType.VISIBLE_ADULT_HOGLIN_COUNT, MemoryModuleType.NEAREST_VISIBLE_ADULT_HOGLINS, MemoryModuleType.NEAREST_VISIBLE_ADULY, MemoryModuleType.NEAREST_REPELLENT, MemoryModuleType.PACIFIED});
|
|
+ protected static final ImmutableList<MemoryModuleType<?>> bp = ImmutableList.of(MemoryModuleType.BREED_TARGET, MemoryModuleType.MOBS, MemoryModuleType.VISIBLE_MOBS, MemoryModuleType.NEAREST_VISIBLE_PLAYER, MemoryModuleType.NEAREST_VISIBLE_TARGETABLE_PLAYER, MemoryModuleType.LOOK_TARGET, MemoryModuleType.WALK_TARGET, MemoryModuleType.CANT_REACH_WALK_TARGET_SINCE, MemoryModuleType.PATH, MemoryModuleType.ATTACK_TARGET, MemoryModuleType.ATTACK_COOLING_DOWN, MemoryModuleType.NEAREST_VISIBLE_ADULT_PIGLIN, new MemoryModuleType[]{MemoryModuleType.AVOID_TARGET, MemoryModuleType.VISIBLE_ADULT_PIGLIN_COUNT, MemoryModuleType.VISIBLE_ADULT_HOGLIN_COUNT, MemoryModuleType.NEAREST_VISIBLE_ADULT_HOGLINS, MemoryModuleType.NEAREST_VISIBLE_ADULY, MemoryModuleType.NEAREST_REPELLENT, MemoryModuleType.PACIFIED}); // Yatopia - decompile fix
|
|
|
|
public EntityHoglin(EntityTypes<? extends EntityHoglin> entitytypes, World world) {
|
|
super(entitytypes, world);
|
|
@@ -77,14 +77,14 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin {
|
|
|
|
@Override
|
|
public BehaviorController<EntityHoglin> getBehaviorController() {
|
|
- return super.getBehaviorController();
|
|
+ return (BehaviorController<EntityHoglin>) super.getBehaviorController(); // Yatopia - decompile fix
|
|
}
|
|
|
|
@Override
|
|
protected void mobTick() {
|
|
- this.world.getMethodProfiler().enter("hoglinBrain");
|
|
- this.getBehaviorController().a((WorldServer) this.world, (EntityLiving) this);
|
|
- this.world.getMethodProfiler().exit();
|
|
+ //this.world.getMethodProfiler().enter("hoglinBrain"); // Akarin - remove caller
|
|
+ this.getBehaviorController().a((WorldServer) this.world, this); // Yatopia - decompile fix
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
HoglinAI.a(this);
|
|
if (this.isConverting()) {
|
|
++this.conversionTicks;
|
|
@@ -259,7 +259,7 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin {
|
|
|
|
@Override
|
|
protected SoundEffect getSoundAmbient() {
|
|
- return this.world.isClientSide ? null : (SoundEffect) HoglinAI.b(this).orElse((Object) null);
|
|
+ return this.world.isClientSide ? null : (SoundEffect) HoglinAI.b(this).orElse(null);
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityHoglin.java.rej b/src/main/java/net/minecraft/server/EntityHoglin.java.rej
|
|
deleted file mode 100644
|
|
index be7a4b07540f6cc29c9ed76668bc1eaf9850013c..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityHoglin.java.rej
|
|
+++ /dev/null
|
|
@@ -1,13 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityHoglin.java b/src/main/java/net/minecraft/server/EntityHoglin.java (rejected hunks)
|
|
-@@ -83,9 +83,9 @@ public class EntityHoglin extends EntityAnimal implements IMonster, IOglin {
|
|
-
|
|
- @Override
|
|
- protected void mobTick() {
|
|
-- this.world.getMethodProfiler().enter("hoglinBrain");
|
|
-+ //this.world.getMethodProfiler().enter("hoglinBrain"); // Akarin - remove caller
|
|
- this.getBehaviorController().a((WorldServer) this.world, this); // CraftBukkit - decompile error
|
|
-- this.world.getMethodProfiler().exit();
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
- HoglinAI.a(this);
|
|
- if (this.eO()) {
|
|
- ++this.bz;
|
|
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
index 13e7c170413cb7cc0ac9e65c65b9e530efb60a8f..a49e5ece5df3c56f24f04b880e35d3a961a09e0c 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
|
@@ -241,13 +241,13 @@ public abstract class EntityInsentient extends EntityLiving {
|
|
@Override
|
|
public void entityBaseTick() {
|
|
super.entityBaseTick();
|
|
- this.world.getMethodProfiler().enter("mobBaseTick");
|
|
+ //this.world.getMethodProfiler().enter("mobBaseTick"); // Akarin - remove caller
|
|
if (this.isAlive() && this.random.nextInt(1000) < this.e++) {
|
|
this.m();
|
|
this.F();
|
|
}
|
|
|
|
- this.world.getMethodProfiler().exit();
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
}
|
|
|
|
@Override
|
|
@@ -747,30 +747,30 @@ public abstract class EntityInsentient extends EntityLiving {
|
|
return;
|
|
}
|
|
// Paper end
|
|
- this.world.getMethodProfiler().enter("sensing");
|
|
+ //this.world.getMethodProfiler().enter("sensing"); // Akarin - remove caller
|
|
this.bo.a();
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().enter("targetSelector");
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("targetSelector"); // Akarin - remove caller
|
|
this.targetSelector.doTick();
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().enter("goalSelector");
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("goalSelector"); // Akarin - remove caller
|
|
this.goalSelector.doTick();
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().enter("navigation");
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("navigation"); // Akarin - remove caller
|
|
this.navigation.c();
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().enter("mob tick");
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("mob tick"); // Akarin - remove caller
|
|
this.mobTick();
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().enter("controls");
|
|
- this.world.getMethodProfiler().enter("move");
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("controls"); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("move"); // Akarin - remove caller
|
|
this.moveController.a();
|
|
- this.world.getMethodProfiler().exitEnter("look");
|
|
+ //this.world.getMethodProfiler().exitEnter("look"); // Akarin - remove caller
|
|
this.lookController.a();
|
|
- this.world.getMethodProfiler().exitEnter("jump");
|
|
+ //this.world.getMethodProfiler().exitEnter("jump"); // Akarin - remove caller
|
|
this.bi.b();
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().exit();
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
this.M();
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java.rej b/src/main/java/net/minecraft/server/EntityInsentient.java.rej
|
|
deleted file mode 100644
|
|
index bccb7cd89241ca30549f5442a4ef9847cfdb67a9..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityInsentient.java.rej
|
|
+++ /dev/null
|
|
@@ -1,64 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java (rejected hunks)
|
|
-@@ -241,13 +241,13 @@ public abstract class EntityInsentient extends EntityLiving {
|
|
- @Override
|
|
- public void entityBaseTick() {
|
|
- super.entityBaseTick();
|
|
-- this.world.getMethodProfiler().enter("mobBaseTick");
|
|
-+ //this.world.getMethodProfiler().enter("mobBaseTick"); // Akarin - remove caller
|
|
- if (this.isAlive() && this.random.nextInt(1000) < this.e++) {
|
|
- this.eJ();
|
|
- this.F();
|
|
- }
|
|
-
|
|
-- this.world.getMethodProfiler().exit();
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
- }
|
|
-
|
|
- @Override
|
|
-@@ -747,30 +747,30 @@ public abstract class EntityInsentient extends EntityLiving {
|
|
- return;
|
|
- }
|
|
- // Paper end
|
|
-- this.world.getMethodProfiler().enter("sensing");
|
|
-+ //this.world.getMethodProfiler().enter("sensing"); // Akarin - remove caller
|
|
- this.bv.a();
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().enter("targetSelector");
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("targetSelector"); // Akarin - remove caller
|
|
- this.targetSelector.doTick();
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().enter("goalSelector");
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("goalSelector"); // Akarin - remove caller
|
|
- this.goalSelector.doTick();
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().enter("navigation");
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("navigation"); // Akarin - remove caller
|
|
- this.navigation.c();
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().enter("mob tick");
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("mob tick"); // Akarin - remove caller
|
|
- this.mobTick();
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().enter("controls");
|
|
-- this.world.getMethodProfiler().enter("move");
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("controls"); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("move"); // Akarin - remove caller
|
|
- this.moveController.a();
|
|
-- this.world.getMethodProfiler().exitEnter("look");
|
|
-+ //this.world.getMethodProfiler().exitEnter("look"); // Akarin - remove caller
|
|
- this.lookController.a();
|
|
-- this.world.getMethodProfiler().exitEnter("jump");
|
|
-+ //this.world.getMethodProfiler().exitEnter("jump"); // Akarin - remove caller
|
|
- this.bp.b();
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().exit();
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
- this.M();
|
|
- }
|
|
-
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
index 1621a248e881e2fb4c3fc05e2fd4ee5d4169f534..730a0262f400a9974f89ecdf8b208e54cf7952f6 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
@@ -2503,10 +2503,10 @@ public abstract class EntityLiving extends Entity {
|
|
}
|
|
|
|
this.aK += (f3 - this.aK) * 0.3F;
|
|
- this.world.getMethodProfiler().enter("headTurn");
|
|
+ //this.world.getMethodProfiler().enter("headTurn"); // Akarin - remove caller
|
|
f2 = this.f(f1, f2);
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().enter("rangeChecks");
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("rangeChecks"); // Akarin - remove caller
|
|
|
|
while (this.yaw - this.lastYaw < -180.0F) {
|
|
this.lastYaw -= 360.0F;
|
|
@@ -2741,19 +2741,19 @@ public abstract class EntityLiving extends Entity {
|
|
}
|
|
|
|
this.setMot(d4, d5, d6);
|
|
- this.world.getMethodProfiler().enter("ai");
|
|
+ //this.world.getMethodProfiler().enter("ai"); // Akarin - remove caller
|
|
if (this.isFrozen()) {
|
|
this.jumping = false;
|
|
this.aR = 0.0F;
|
|
this.aT = 0.0F;
|
|
} else if (this.doAITick()) {
|
|
- this.world.getMethodProfiler().enter("newAi");
|
|
+ //this.world.getMethodProfiler().enter("newAi"); // Akarin - remove caller
|
|
this.doTick();
|
|
- this.world.getMethodProfiler().exit();
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
}
|
|
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().enter("jump");
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("jump"); // Akarin - remove caller
|
|
if (this.jumping && this.cS()) {
|
|
double d7;
|
|
|
|
@@ -2780,8 +2780,8 @@ public abstract class EntityLiving extends Entity {
|
|
this.jumpTicks = 0;
|
|
}
|
|
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().enter("travel");
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("travel"); // Akarin - remove caller
|
|
this.aR *= 0.98F;
|
|
this.aT *= 0.98F;
|
|
this.r();
|
|
@@ -2790,15 +2790,15 @@ public abstract class EntityLiving extends Entity {
|
|
// SpigotTimings.timerEntityAIMove.startTiming(); // Spigot // Paper
|
|
this.g(new Vec3D((double) this.aR, (double) this.aS, (double) this.aT));
|
|
// SpigotTimings.timerEntityAIMove.stopTiming(); // Spigot // Paper
|
|
- this.world.getMethodProfiler().exit();
|
|
- this.world.getMethodProfiler().enter("push");
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
+ //this.world.getMethodProfiler().enter("push"); // Akarin - remove caller
|
|
if (this.bf > 0) {
|
|
--this.bf;
|
|
this.a(axisalignedbb, this.getBoundingBox());
|
|
}
|
|
|
|
this.collideNearby();
|
|
- this.world.getMethodProfiler().exit();
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
if (!this.world.isClientSide && this.dN() && this.aF()) {
|
|
this.damageEntity(DamageSource.DROWN, 1.0F);
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java.rej b/src/main/java/net/minecraft/server/EntityLiving.java.rej
|
|
deleted file mode 100644
|
|
index 947d12a17358d209be65c828e9dd297c54af91ac..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java.rej
|
|
+++ /dev/null
|
|
@@ -1,87 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java (rejected hunks)
|
|
-@@ -365,7 +365,7 @@ public abstract class EntityLiving extends Entity {
|
|
- this.aK = this.aJ;
|
|
- this.lastYaw = this.yaw;
|
|
- this.lastPitch = this.pitch;
|
|
-- this.world.getMethodProfiler().exit();
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
- }
|
|
-
|
|
- public boolean cM() {
|
|
-@@ -2497,10 +2497,10 @@ public abstract class EntityLiving extends Entity {
|
|
- }
|
|
-
|
|
- this.aR += (f3 - this.aR) * 0.3F;
|
|
-- this.world.getMethodProfiler().enter("headTurn");
|
|
-+ //this.world.getMethodProfiler().enter("headTurn"); // Akarin - remove caller
|
|
- f2 = this.f(f1, f2);
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().enter("rangeChecks");
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("rangeChecks"); // Akarin - remove caller
|
|
-
|
|
- while (this.yaw - this.lastYaw < -180.0F) {
|
|
- this.lastYaw -= 360.0F;
|
|
-@@ -2534,7 +2534,7 @@ public abstract class EntityLiving extends Entity {
|
|
- this.aK += 360.0F;
|
|
- }
|
|
-
|
|
-- this.world.getMethodProfiler().exit();
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
- this.aS += f2;
|
|
- if (this.isGliding()) {
|
|
- ++this.bl;
|
|
-@@ -2733,19 +2733,19 @@ public abstract class EntityLiving extends Entity {
|
|
- }
|
|
-
|
|
- this.setMot(d4, d5, d6);
|
|
-- this.world.getMethodProfiler().enter("ai");
|
|
-+ //this.world.getMethodProfiler().enter("ai"); // Akarin - remove caller
|
|
- if (this.isFrozen()) {
|
|
- this.jumping = false;
|
|
- this.aY = 0.0F;
|
|
- this.ba = 0.0F;
|
|
- } else if (this.doAITick()) {
|
|
-- this.world.getMethodProfiler().enter("newAi");
|
|
-+ //this.world.getMethodProfiler().enter("newAi"); // Akarin - remove caller
|
|
- this.doTick();
|
|
-- this.world.getMethodProfiler().exit();
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
- }
|
|
-
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().enter("jump");
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("jump"); // Akarin - remove caller
|
|
- if (this.jumping && this.cS()) {
|
|
- double d7;
|
|
-
|
|
-@@ -2772,23 +2772,23 @@ public abstract class EntityLiving extends Entity {
|
|
- this.jumpTicks = 0;
|
|
- }
|
|
-
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().enter("travel");
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("travel"); // Akarin - remove caller
|
|
- this.aY *= 0.98F;
|
|
- this.ba *= 0.98F;
|
|
- this.t();
|
|
- AxisAlignedBB axisalignedbb = this.getBoundingBox();
|
|
-
|
|
- this.f(new Vec3D((double) this.aY, (double) this.aZ, (double) this.ba));
|
|
-- this.world.getMethodProfiler().exit();
|
|
-- this.world.getMethodProfiler().enter("push");
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
-+ //this.world.getMethodProfiler().enter("push"); // Akarin - remove caller
|
|
- if (this.bm > 0) {
|
|
- --this.bm;
|
|
- this.a(axisalignedbb, this.getBoundingBox());
|
|
- }
|
|
-
|
|
- this.collideNearby();
|
|
-- this.world.getMethodProfiler().exit();
|
|
-+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
- if (!this.world.isClientSide && this.dN() && this.aC()) {
|
|
- this.damageEntity(DamageSource.DROWN, 1.0F);
|
|
- }
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java
|
|
index 13a2af03fc5a511f13a9be28a813e7275448d09d..cf52e4a350968095e67e704c4a65e01594619165 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPigZombie.java
|
|
@@ -103,15 +103,16 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
|
|
double d0 = this.b(GenericAttributes.FOLLOW_RANGE);
|
|
AxisAlignedBB axisalignedbb = AxisAlignedBB.a(this.getPositionVector()).grow(d0, 10.0D, d0);
|
|
|
|
- this.world.b(EntityPigZombie.class, axisalignedbb).stream().filter((entitypigzombie) -> {
|
|
- return entitypigzombie != this;
|
|
- }).filter((entitypigzombie) -> {
|
|
- return entitypigzombie.getGoalTarget() == null;
|
|
- }).filter((entitypigzombie) -> {
|
|
- return !entitypigzombie.r(this.getGoalTarget());
|
|
- }).forEach((entitypigzombie) -> {
|
|
- entitypigzombie.setGoalTarget(this.getGoalTarget(), org.bukkit.event.entity.EntityTargetEvent.TargetReason.TARGET_ATTACKED_NEARBY_ENTITY, true); // CraftBukkit
|
|
- });
|
|
+ // CraftBukkit
|
|
+ for (EntityPigZombie entitypigzombie : this.world.b(EntityPigZombie.class, axisalignedbb)) {
|
|
+ if (entitypigzombie != this) {
|
|
+ if (entitypigzombie.getGoalTarget() == null) {
|
|
+ if (!entitypigzombie.r(this.getGoalTarget())) {
|
|
+ entitypigzombie.setGoalTarget(this.getGoalTarget(), EntityTargetEvent.TargetReason.TARGET_ATTACKED_NEARBY_ENTITY, true);
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ }
|
|
}
|
|
|
|
private void fa() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPigZombie.java.rej b/src/main/java/net/minecraft/server/EntityPigZombie.java.rej
|
|
deleted file mode 100644
|
|
index 39ea87798a00d40a1512c337b74d10c41330cc99..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityPigZombie.java.rej
|
|
+++ /dev/null
|
|
@@ -1,27 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityPigZombie.java b/src/main/java/net/minecraft/server/EntityPigZombie.java (rejected hunks)
|
|
-@@ -101,15 +103,16 @@ public class EntityPigZombie extends EntityZombie implements IEntityAngerable {
|
|
- double d0 = this.b(GenericAttributes.FOLLOW_RANGE);
|
|
- AxisAlignedBB axisalignedbb = AxisAlignedBB.a(this.getPositionVector()).grow(d0, 10.0D, d0);
|
|
-
|
|
-- this.world.b(EntityPigZombie.class, axisalignedbb).stream().filter((entitypigzombie) -> {
|
|
-- return entitypigzombie != this;
|
|
-- }).filter((entitypigzombie) -> {
|
|
-- return entitypigzombie.getGoalTarget() == null;
|
|
-- }).filter((entitypigzombie) -> {
|
|
-- return !entitypigzombie.r(this.getGoalTarget());
|
|
-- }).forEach((entitypigzombie) -> {
|
|
-- entitypigzombie.setGoalTarget(this.getGoalTarget(), org.bukkit.event.entity.EntityTargetEvent.TargetReason.TARGET_ATTACKED_NEARBY_ENTITY, true); // CraftBukkit
|
|
-- });
|
|
-+ // CraftBukkit
|
|
-+ for (EntityPigZombie entitypigzombie : this.world.b(EntityPigZombie.class, axisalignedbb)) {
|
|
-+ if (entitypigzombie != this) {
|
|
-+ if (entitypigzombie.getGoalTarget() == null) {
|
|
-+ if (!entitypigzombie.r(this.getGoalTarget())) {
|
|
-+ entitypigzombie.setGoalTarget(this.getGoalTarget(), EntityTargetEvent.TargetReason.TARGET_ATTACKED_NEARBY_ENTITY, true);
|
|
-+ }
|
|
-+ }
|
|
-+ }
|
|
-+ }
|
|
- }
|
|
-
|
|
- private void fb() {
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPiglin.java b/src/main/java/net/minecraft/server/EntityPiglin.java
|
|
index e1b4330074cf3c3de31dbfcd9e1b99feb7baf669..34407b03e527891a877c2f138520200f3396631e 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPiglin.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPiglin.java
|
|
@@ -143,7 +143,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow {
|
|
|
|
@Override
|
|
public BehaviorController<EntityPiglin> getBehaviorController() {
|
|
- return super.getBehaviorController();
|
|
+ return (BehaviorController<EntityPiglin>) super.getBehaviorController(); // Yatopia - decompile fix
|
|
}
|
|
|
|
@Override
|
|
@@ -202,7 +202,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow {
|
|
@Override
|
|
protected void mobTick() {
|
|
this.world.getMethodProfiler().enter("piglinBrain");
|
|
- this.getBehaviorController().a((WorldServer) this.world, (EntityLiving) this);
|
|
+ this.getBehaviorController().a((WorldServer) this.world, this); // Yatopia - decompile fix
|
|
this.world.getMethodProfiler().exit();
|
|
PiglinAI.b(this);
|
|
super.mobTick();
|
|
@@ -341,7 +341,7 @@ public class EntityPiglin extends EntityPiglinAbstract implements ICrossbow {
|
|
|
|
@Override
|
|
protected SoundEffect getSoundAmbient() {
|
|
- return this.world.isClientSide ? null : (SoundEffect) PiglinAI.d(this).orElse((Object) null);
|
|
+ return this.world.isClientSide ? null : (SoundEffect) PiglinAI.d(this).orElse(null); // Yatopia - decompile fix
|
|
}
|
|
|
|
@Override
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPiglin.java.rej b/src/main/java/net/minecraft/server/EntityPiglin.java.rej
|
|
deleted file mode 100644
|
|
index d1016d22fbb2dd15042fd6ccdf2ee7848351e518..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityPiglin.java.rej
|
|
+++ /dev/null
|
|
@@ -1,23 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityPiglin.java b/src/main/java/net/minecraft/server/EntityPiglin.java (rejected hunks)
|
|
-@@ -63,7 +63,9 @@ public class EntityPiglin extends EntityMonster implements ICrossbow {
|
|
- @Override
|
|
- protected void dropDeathLoot(DamageSource damagesource, int i, boolean flag) {
|
|
- super.dropDeathLoot(damagesource, i, flag);
|
|
-- this.bB.f().forEach(this::a);
|
|
-+ for (ItemStack itemStack : this.bB.f()) {
|
|
-+ a(itemStack);
|
|
-+ }
|
|
- }
|
|
-
|
|
- protected ItemStack k(ItemStack itemstack) {
|
|
-@@ -259,7 +261,9 @@ public class EntityPiglin extends EntityMonster implements ICrossbow {
|
|
-
|
|
- private void b(WorldServer worldserver) {
|
|
- PiglinAI.c(this);
|
|
-- this.bB.f().forEach(this::a);
|
|
-+ for (ItemStack itemStack : this.bB.f()) {
|
|
-+ a(itemStack);
|
|
-+ }
|
|
- EntityPigZombie entitypigzombie = (EntityPigZombie) this.b(EntityTypes.ZOMBIFIED_PIGLIN);
|
|
-
|
|
- entitypigzombie.addEffect(new MobEffect(MobEffects.CONFUSION, 200, 0));
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
index 034216d0c576239f6a5cae373ea9f765ae8b90a9..e022f9bd100db916f0c32278d6669375c239ee52 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityPlayer.java
|
|
@@ -135,7 +135,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
this.playerInteractManager = playerinteractmanager;
|
|
this.server = minecraftserver;
|
|
this.serverStatisticManager = minecraftserver.getPlayerList().getStatisticManager(this);
|
|
- this.advancementDataPlayer = minecraftserver.getPlayerList().f(this);
|
|
+ this.advancementDataPlayerCompletableFuture = minecraftserver.getPlayerList().loadAdvancementDataPlayerAsync(this); // Paper - async advancements
|
|
this.G = 1.0F;
|
|
//this.c(worldserver); // Paper - don't move to spawn on login, only first join
|
|
|
|
@@ -501,6 +501,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
CriterionTriggers.u.a(this, this.cf, this.ticksLived - this.cg);
|
|
}
|
|
|
|
+ if (areAdvancementsLoaded()) // Paper - async advancements: don't tick advancements until they're loaded
|
|
this.advancementDataPlayer.b(this);
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityPlayer.java.rej b/src/main/java/net/minecraft/server/EntityPlayer.java.rej
|
|
deleted file mode 100644
|
|
index aecfc8a44a764aed92b4eead845c21dfb88651fe..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityPlayer.java.rej
|
|
+++ /dev/null
|
|
@@ -1,18 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityPlayer.java b/src/main/java/net/minecraft/server/EntityPlayer.java (rejected hunks)
|
|
-@@ -130,7 +132,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
- this.playerInteractManager = playerinteractmanager;
|
|
- this.server = minecraftserver;
|
|
- this.serverStatisticManager = minecraftserver.getPlayerList().getStatisticManager(this);
|
|
-- this.advancementDataPlayer = minecraftserver.getPlayerList().f(this);
|
|
-+ this.advancementDataPlayerCompletableFuture = minecraftserver.getPlayerList().loadAdvancementDataPlayerAsync(this); // Paper - async advancements
|
|
- this.G = 1.0F;
|
|
- //this.b(worldserver); // Paper - don't move to spawn on login, only first join
|
|
-
|
|
-@@ -494,6 +496,7 @@ public class EntityPlayer extends EntityHuman implements ICrafting {
|
|
- CriterionTriggers.u.a(this, this.cm, this.ticksLived - this.cn);
|
|
- }
|
|
-
|
|
-+ if (areAdvancementsLoaded()) // Paper - async advancements: don't tick advancements until they're loaded
|
|
- this.advancementDataPlayer.b(this);
|
|
- }
|
|
-
|
|
diff --git a/src/main/java/net/minecraft/server/EntitySheep.java.rej b/src/main/java/net/minecraft/server/EntitySheep.java.rej
|
|
deleted file mode 100644
|
|
index 1137eb4819b638cd04d630ec1692b67ec40c740f..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntitySheep.java.rej
|
|
+++ /dev/null
|
|
@@ -1,23 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntitySheep.java b/src/main/java/net/minecraft/server/EntitySheep.java (rejected hunks)
|
|
-@@ -35,9 +33,18 @@ public class EntitySheep extends EntityAnimal implements IShearable {
|
|
- enummap.put(EnumColor.RED, Blocks.RED_WOOL);
|
|
- enummap.put(EnumColor.BLACK, Blocks.BLACK_WOOL);
|
|
- });
|
|
-- private static final Map<EnumColor, float[]> bx = Maps.newEnumMap((Map) Arrays.stream(EnumColor.values()).collect(Collectors.toMap((enumcolor) -> {
|
|
-- return enumcolor;
|
|
-- }, EntitySheep::c)));
|
|
-+ private static final Map<EnumColor, float[]> bx;
|
|
-+
|
|
-+ static {
|
|
-+ Map<EnumColor, float[]> map = new HashMap<>();
|
|
-+ for (EnumColor enumcolor : EnumColor.values()) {
|
|
-+ if (map.put(enumcolor, c(enumcolor)) != null) {
|
|
-+ throw new IllegalStateException("Duplicate key");
|
|
-+ }
|
|
-+ }
|
|
-+ bx = Maps.newEnumMap((Map) map);
|
|
-+ }
|
|
-+
|
|
- private int by;
|
|
- private PathfinderGoalEatTile bz;
|
|
-
|
|
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
|
|
index 516fa58b4f0aab1df6f9dd7f33cad7f62f7a93d7..1b2e395cc141bf700e1f7c24fe8ee7dc68b25513 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityVillager.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
|
|
@@ -163,9 +163,13 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
|
@Override
|
|
protected void mobTick() { mobTick(false); }
|
|
protected void mobTick(boolean inactive) {
|
|
- this.world.getMethodProfiler().enter("villagerBrain");
|
|
+ //this.world.getMethodProfiler().enter("villagerBrain"); // Akarin - remove caller
|
|
+ // Purpur start
|
|
+ boolean tick = (world.getTime() + brainTickOffset) % world.purpurConfig.villagerBrainTicks == 0;
|
|
+ if (world.getMinecraftServer().lagging ? tick : world.purpurConfig.villagerUseBrainTicksOnlyWhenLagging || tick)
|
|
+ // Purpur end
|
|
if (!inactive) this.getBehaviorController().a((WorldServer) this.world, this); // CraftBukkit - decompile error // Paper
|
|
- this.world.getMethodProfiler().exit();
|
|
+ //this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
|
if (this.bF) {
|
|
this.bF = false;
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java.rej b/src/main/java/net/minecraft/server/EntityVillager.java.rej
|
|
deleted file mode 100644
|
|
index 68f0fc0230a4148ab9fc4181736ce93297c7e1b9..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/EntityVillager.java.rej
|
|
+++ /dev/null
|
|
@@ -1,12 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java (rejected hunks)
|
|
-@@ -166,6 +168,10 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
|
|
- protected void mobTick() { mobTick(false); }
|
|
- protected void mobTick(boolean inactive) {
|
|
- this.world.getMethodProfiler().enter("villagerBrain");
|
|
-+ // Purpur start
|
|
-+ boolean tick = (world.getTime() + brainTickOffset) % world.purpurConfig.villagerBrainTicks == 0;
|
|
-+ if (((WorldServer) world).getMinecraftServer().lagging ? tick : world.purpurConfig.villagerUseBrainTicksOnlyWhenLagging || tick)
|
|
-+ // Purpur end
|
|
- if (!inactive) this.getBehaviorController().a((WorldServer) this.world, this); // CraftBukkit - decompile error // Paper
|
|
- if (this.bM) {
|
|
- this.bM = false;
|
|
diff --git a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java
|
|
index 193932e990ac25b3820bb7438c56a75a43cfdb25..20848d73efdf3e214ee7875398f1931f822614fd 100644
|
|
--- a/src/main/java/net/minecraft/server/Explosion.java
|
|
+++ b/src/main/java/net/minecraft/server/Explosion.java
|
|
@@ -105,7 +105,7 @@ public class Explosion {
|
|
int i;
|
|
int j;
|
|
|
|
- if (this.a || this.b != Effect.NONE) { // EMC - don't run block processing if neither flag is set
|
|
+ if (this.b || this.c != Effect.NONE) { // EMC - don't run block processing if neither flag is set
|
|
for (int k = 0; k < 16; ++k) {
|
|
for (i = 0; i < 16; ++i) {
|
|
for (j = 0; j < 16; ++j) {
|
|
@@ -218,7 +218,7 @@ public class Explosion {
|
|
boolean flag1 = this.c != Explosion.Effect.NONE;
|
|
|
|
if (flag) {
|
|
- if (this.size >= 2.0F && flag1) {
|
|
+ if (this.size >= 2.0F/* && flag1*/) { // EMC - don't care about block breaks flag for animation
|
|
this.world.addParticle(Particles.EXPLOSION_EMITTER, this.posX, this.posY, this.posZ, 1.0D, 0.0D, 0.0D);
|
|
} else {
|
|
this.world.addParticle(Particles.EXPLOSION, this.posX, this.posY, this.posZ, 1.0D, 0.0D, 0.0D);
|
|
diff --git a/src/main/java/net/minecraft/server/Explosion.java.rej b/src/main/java/net/minecraft/server/Explosion.java.rej
|
|
deleted file mode 100644
|
|
index 8d0039b05a5d20762707857770927e2f7e30b7ff..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/Explosion.java.rej
|
|
+++ /dev/null
|
|
@@ -1,10 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/Explosion.java b/src/main/java/net/minecraft/server/Explosion.java (rejected hunks)
|
|
-@@ -215,7 +217,7 @@ public class Explosion {
|
|
- boolean flag1 = this.b != Explosion.Effect.NONE;
|
|
-
|
|
- if (flag) {
|
|
-- if (this.size >= 2.0F && flag1) {
|
|
-+ if (this.size >= 2.0F/* && flag1*/) { // EMC - don't care about block breaks flag for animation
|
|
- this.world.addParticle(Particles.EXPLOSION_EMITTER, this.posX, this.posY, this.posZ, 1.0D, 0.0D, 0.0D);
|
|
- } else {
|
|
- this.world.addParticle(Particles.EXPLOSION, this.posX, this.posY, this.posZ, 1.0D, 0.0D, 0.0D);
|
|
diff --git a/src/main/java/net/minecraft/server/LightEngineThreaded.java.rej b/src/main/java/net/minecraft/server/LightEngineThreaded.java.rej
|
|
deleted file mode 100644
|
|
index 74d10212e547adf96762155adb03c0158df00a16..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/LightEngineThreaded.java.rej
|
|
+++ /dev/null
|
|
@@ -1,18 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/LightEngineThreaded.java b/src/main/java/net/minecraft/server/LightEngineThreaded.java (rejected hunks)
|
|
-@@ -288,10 +288,14 @@ public class LightEngineThreaded extends LightEngine implements AutoCloseable {
|
|
- int i = Math.min(queue.size(), 4);
|
|
- boolean ran = false;
|
|
- while (i-- > 0 && queue.poll(pre, post)) {
|
|
-- pre.forEach(Runnable::run);
|
|
-+ for (Runnable runnable1 : pre) {
|
|
-+ runnable1.run();
|
|
-+ }
|
|
- pre.clear();
|
|
- super.a(Integer.MAX_VALUE, true, true);
|
|
-- post.forEach(Runnable::run);
|
|
-+ for (Runnable runnable : post) {
|
|
-+ runnable.run();
|
|
-+ }
|
|
- post.clear();
|
|
- ran = true;
|
|
- }
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
index 916053321ab4ec0065e954aca1537b4a5e5dfa6c..fb5d581fa1ded44fb87fad8fcb4994955c2e4a94 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -999,7 +999,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
|
this.a(this::canSleepForTick);
|
|
//this.methodProfiler.exitEnter("nextTickWait"); // Akarin - remove caller
|
|
this.X = true;
|
|
- this.W = Math.max(SystemUtils.getMonotonicMillis() + 50L, this.nextTick);
|
|
+ // Purpur start - tps catchup
|
|
+ if (net.pl3x.purpur.PurpurConfig.tpsCatchup) {
|
|
+ this.W = Math.max(SystemUtils.getMonotonicMillis() + 50L, this.nextTick);
|
|
+ } else {
|
|
+ this.W = this.nextTick = curTime / 1000000L + 50L;
|
|
+ }
|
|
+ // Purpur end - tps catchup
|
|
this.sleepForTick();
|
|
//this.methodProfiler.exit(); // Akarin - remove caller
|
|
//this.methodProfiler.b(); // Akarin - remove caller
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java.rej b/src/main/java/net/minecraft/server/MinecraftServer.java.rej
|
|
deleted file mode 100644
|
|
index b005dd817e9ecffcf2172b4a807b0ecc632570b0..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java.rej
|
|
+++ /dev/null
|
|
@@ -1,16 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java (rejected hunks)
|
|
-@@ -1003,7 +1003,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
|
- this.a(this::canSleepForTick);
|
|
- this.methodProfiler.exitEnter("nextTickWait");
|
|
- this.X = true;
|
|
-- this.W = Math.max(SystemUtils.getMonotonicMillis() + 50L, this.nextTick);
|
|
-+ // Purpur start - tps catchup
|
|
-+ if (net.pl3x.purpur.PurpurConfig.tpsCatchup) {
|
|
-+ this.W = Math.max(SystemUtils.getMonotonicMillis() + 50L, this.nextTick);
|
|
-+ } else {
|
|
-+ this.W = this.nextTick = curTime / 1000000L + 50L;
|
|
-+ }
|
|
-+ // Purpur end - tps catchup
|
|
- this.sleepForTick();
|
|
- this.methodProfiler.exit();
|
|
- this.methodProfiler.b();
|
|
diff --git a/src/main/java/net/minecraft/server/PiglinAI.java b/src/main/java/net/minecraft/server/PiglinAI.java
|
|
index 0407fa1751d89a037da8cb01f5ceef9b9833dd18..9a87894f851ecebb6772b9c87948730d17787be8 100644
|
|
--- a/src/main/java/net/minecraft/server/PiglinAI.java
|
|
+++ b/src/main/java/net/minecraft/server/PiglinAI.java
|
|
@@ -12,7 +12,7 @@ import java.util.Set;
|
|
|
|
public class PiglinAI {
|
|
|
|
- public static final Item a = Items.GOLD_INGOT;
|
|
+ public static final Item a = net.minecraft.server.Items.GOLD_INGOT;
|
|
private static final IntRange b = TimeRange.a(30, 120);
|
|
private static final IntRange c = TimeRange.a(10, 40);
|
|
private static final IntRange d = TimeRange.a(10, 30);
|
|
@@ -134,7 +134,7 @@ public class PiglinAI {
|
|
ItemStack itemstack;
|
|
|
|
// CraftBukkit start
|
|
- if (entityitem.getItemStack().getItem() == Items.GOLD_NUGGET && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(entitypiglin, entityitem, 0, false).isCancelled()) {
|
|
+ if (entityitem.getItemStack().getItem() == net.minecraft.server.Items.GOLD_NUGGET && !org.bukkit.craftbukkit.event.CraftEventFactory.callEntityPickupItemEvent(entitypiglin, entityitem, 0, false).isCancelled()) {
|
|
entitypiglin.receive(entityitem, entityitem.getItemStack().getCount());
|
|
itemstack = entityitem.getItemStack();
|
|
entityitem.die();
|
|
@@ -288,7 +288,7 @@ public class PiglinAI {
|
|
} else {
|
|
boolean flag = entitypiglin.l(itemstack);
|
|
|
|
- return item == Items.GOLD_NUGGET ? flag : (c(item) ? !u(entitypiglin) && flag : (!a(item) ? entitypiglin.o(itemstack) : z(entitypiglin) && flag));
|
|
+ return item == net.minecraft.server.Items.GOLD_NUGGET ? flag : (c(item) ? !u(entitypiglin) && flag : (!a(item) ? entitypiglin.o(itemstack) : z(entitypiglin) && flag));
|
|
}
|
|
}
|
|
|
|
@@ -359,16 +359,17 @@ public class PiglinAI {
|
|
public static void a(EntityHuman entityhuman, boolean flag) {
|
|
List<EntityPiglinAbstract> list = entityhuman.world.a(EntityPiglin.class, entityhuman.getBoundingBox().g(16.0D)); // CraftBukkit - decompile error
|
|
|
|
- list.stream().filter(PiglinAI::d).filter((entitypiglin) -> {
|
|
- return !flag || BehaviorUtil.c(entitypiglin, entityhuman);
|
|
- }).forEach((entitypiglin) -> {
|
|
- if (entitypiglin.world.getGameRules().getBoolean(GameRules.UNIVERSAL_ANGER)) {
|
|
- d((EntityPiglinAbstract) entitypiglin, (EntityLiving) entityhuman);
|
|
- } else {
|
|
- c((EntityPiglinAbstract) entitypiglin, (EntityLiving) entityhuman);
|
|
+ for (EntityPiglinAbstract entitypiglin : list) {
|
|
+ if (d(entitypiglin)) {
|
|
+ if (!flag || BehaviorUtil.c(entitypiglin, entityhuman)) {
|
|
+ if (entitypiglin.world.getGameRules().getBoolean(GameRules.UNIVERSAL_ANGER)) {
|
|
+ d(entitypiglin, entityhuman);
|
|
+ } else {
|
|
+ c(entitypiglin, entityhuman);
|
|
+ }
|
|
+ }
|
|
}
|
|
-
|
|
- });
|
|
+ }
|
|
}
|
|
|
|
public static EnumInteractionResult a(EntityPiglin entitypiglin, EntityHuman entityhuman, EnumHand enumhand) {
|
|
@@ -460,9 +461,13 @@ public class PiglinAI {
|
|
}
|
|
|
|
protected static boolean e(EntityPiglin entitypiglin) {
|
|
- return entitypiglin.getBehaviorController().hasMemory(MemoryModuleType.HUNTED_RECENTLY) || m(entitypiglin).stream().anyMatch((entitypiglinabstract) -> {
|
|
- return entitypiglinabstract.getBehaviorController().hasMemory(MemoryModuleType.HUNTED_RECENTLY);
|
|
- });
|
|
+ if (entitypiglin.getBehaviorController().hasMemory(MemoryModuleType.HUNTED_RECENTLY)) return true;
|
|
+ for (EntityPiglinAbstract entitypiglin1 : m(entitypiglin)) {
|
|
+ if (entitypiglin1.getBehaviorController().hasMemory(MemoryModuleType.HUNTED_RECENTLY)) {
|
|
+ return true;
|
|
+ }
|
|
+ }
|
|
+ return false;
|
|
}
|
|
|
|
private static List<EntityPiglinAbstract> m(EntityPiglin entitypiglin) {
|
|
diff --git a/src/main/java/net/minecraft/server/PiglinAI.java.rej b/src/main/java/net/minecraft/server/PiglinAI.java.rej
|
|
deleted file mode 100644
|
|
index c15111ef7bbb8f71d1b5e5ce812f4526746a3651..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/PiglinAI.java.rej
|
|
+++ /dev/null
|
|
@@ -1,90 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/PiglinAI.java b/src/main/java/net/minecraft/server/PiglinAI.java (rejected hunks)
|
|
-@@ -358,16 +358,18 @@ public class PiglinAI {
|
|
- public static void a(EntityHuman entityhuman, boolean flag) {
|
|
- List<EntityPiglin> list = entityhuman.world.a(EntityPiglin.class, entityhuman.getBoundingBox().g(16.0D));
|
|
-
|
|
-- list.stream().filter(PiglinAI::k).filter((entitypiglin) -> {
|
|
-- return !flag || BehaviorUtil.c(entitypiglin, entityhuman);
|
|
-- }).forEach((entitypiglin) -> {
|
|
-- if (entitypiglin.world.getGameRules().getBoolean(GameRules.UNIVERSAL_ANGER)) {
|
|
-- f(entitypiglin, entityhuman);
|
|
-- } else {
|
|
-- c(entitypiglin, (EntityLiving) entityhuman);
|
|
-- }
|
|
-+ for (EntityPiglin entitypiglin : list) {
|
|
-+ if (k(entitypiglin)) {
|
|
-+ if (!flag || BehaviorUtil.c(entitypiglin, entityhuman)) {
|
|
-+ if (entitypiglin.world.getGameRules().getBoolean(GameRules.UNIVERSAL_ANGER)) {
|
|
-+ f(entitypiglin, entityhuman);
|
|
-+ } else {
|
|
-+ c(entitypiglin, entityhuman);
|
|
-+ }
|
|
-
|
|
-- });
|
|
-+ }
|
|
-+ }
|
|
-+ }
|
|
- }
|
|
-
|
|
- public static EnumInteractionResult a(EntityPiglin entitypiglin, EntityHuman entityhuman, EnumHand enumhand) {
|
|
-@@ -459,9 +461,13 @@ public class PiglinAI {
|
|
- }
|
|
-
|
|
- protected static boolean e(EntityPiglin entitypiglin) {
|
|
-- return entitypiglin.getBehaviorController().hasMemory(MemoryModuleType.HUNTED_RECENTLY) || q(entitypiglin).stream().anyMatch((entitypiglin1) -> {
|
|
-- return entitypiglin1.getBehaviorController().hasMemory(MemoryModuleType.HUNTED_RECENTLY);
|
|
-- });
|
|
-+ if (entitypiglin.getBehaviorController().hasMemory(MemoryModuleType.HUNTED_RECENTLY)) return true;
|
|
-+ for (EntityPiglin entitypiglin1 : q(entitypiglin)) {
|
|
-+ if (entitypiglin1.getBehaviorController().hasMemory(MemoryModuleType.HUNTED_RECENTLY)) {
|
|
-+ return true;
|
|
-+ }
|
|
-+ }
|
|
-+ return false;
|
|
- }
|
|
-
|
|
- private static List<EntityPiglin> q(EntityPiglin entitypiglin) {
|
|
-@@ -501,23 +507,25 @@ public class PiglinAI {
|
|
- }
|
|
-
|
|
- protected static void b(EntityPiglin entitypiglin, EntityLiving entityliving) {
|
|
-- r(entitypiglin).forEach((entitypiglin1) -> {
|
|
-+ for (EntityPiglin entitypiglin1 : r(entitypiglin)) {
|
|
- if (entityliving.getEntityType() != EntityTypes.HOGLIN || entitypiglin1.eN() && ((EntityHoglin) entityliving).eP()) {
|
|
- g(entitypiglin1, entityliving);
|
|
- }
|
|
-- });
|
|
-+ }
|
|
- }
|
|
-
|
|
- protected static void f(EntityPiglin entitypiglin) {
|
|
-- r(entitypiglin).forEach((entitypiglin1) -> {
|
|
-+ for (EntityPiglin entitypiglin1 : r(entitypiglin)) {
|
|
- i(entitypiglin1).ifPresent((entityhuman) -> {
|
|
-- c(entitypiglin1, (EntityLiving) entityhuman);
|
|
-+ c(entitypiglin1, entityhuman);
|
|
- });
|
|
-- });
|
|
-+ }
|
|
- }
|
|
-
|
|
- protected static void g(EntityPiglin entitypiglin) {
|
|
-- q(entitypiglin).forEach(PiglinAI::j);
|
|
-+ for (EntityPiglin entityPiglin : q(entitypiglin)) {
|
|
-+ j(entityPiglin);
|
|
-+ }
|
|
- }
|
|
-
|
|
- protected static void c(EntityPiglin entitypiglin, EntityLiving entityliving) {
|
|
-@@ -568,9 +576,9 @@ public class PiglinAI {
|
|
- }
|
|
-
|
|
- private static void h(EntityPiglin entitypiglin, EntityLiving entityliving) {
|
|
-- q(entitypiglin).forEach((entitypiglin1) -> {
|
|
-+ for (EntityPiglin entitypiglin1 : q(entitypiglin)) {
|
|
- i(entitypiglin1, entityliving);
|
|
-- });
|
|
-+ }
|
|
- }
|
|
-
|
|
- private static void i(EntityPiglin entitypiglin, EntityLiving entityliving) {
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerChunk.java.rej b/src/main/java/net/minecraft/server/PlayerChunk.java.rej
|
|
deleted file mode 100644
|
|
index fce02f5fcef5179e63997c0b06277601c911ecb7..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/PlayerChunk.java.rej
|
|
+++ /dev/null
|
|
@@ -1,22 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/PlayerChunk.java b/src/main/java/net/minecraft/server/PlayerChunk.java (rejected hunks)
|
|
-@@ -2,6 +2,7 @@ package net.minecraft.server;
|
|
-
|
|
- import com.mojang.datafixers.util.Either;
|
|
- import java.util.List;
|
|
-+import java.util.Map;
|
|
- import java.util.Optional;
|
|
- import java.util.concurrent.CompletableFuture;
|
|
- import java.util.concurrent.atomic.AtomicReferenceArray;
|
|
-@@ -745,7 +746,11 @@ public class PlayerChunk {
|
|
- if (getCurrentPriority() != priority) {
|
|
- this.v.a(this.location, this::getCurrentPriority, priority, this::setPriority); // use preferred priority
|
|
- int neighborsPriority = getNeighborsPriority();
|
|
-- this.neighbors.forEach((neighbor, neighborDesired) -> neighbor.setNeighborPriority(this, neighborsPriority));
|
|
-+ for (Map.Entry<PlayerChunk, ChunkStatus> entry : this.neighbors.entrySet()) {
|
|
-+ PlayerChunk neighbor = entry.getKey();
|
|
-+ ChunkStatus neighborDesired = entry.getValue();
|
|
-+ neighbor.setNeighborPriority(this, neighborsPriority);
|
|
-+ }
|
|
- }
|
|
- // Paper end
|
|
- this.oldTicketLevel = this.ticketLevel;
|
|
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java.rej b/src/main/java/net/minecraft/server/PlayerChunkMap.java.rej
|
|
deleted file mode 100644
|
|
index 759862aba781ec6f1ae0c9a76c4ab6352d603a4c..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java.rej
|
|
+++ /dev/null
|
|
@@ -1,84 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java (rejected hunks)
|
|
-@@ -480,53 +471,53 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
|
- double playerChunkZ = MathHelper.floor(player.locZ()) >> 4;
|
|
- pos.setValues(player.locX(), 0, player.locZ());
|
|
- double twoThirdModifier = 2D / 3D;
|
|
-- MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance)).forEach(coord -> {
|
|
-- if (shouldSkipPrioritization(coord)) return;
|
|
-+ for (ChunkCoordIntPair coordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance))) {
|
|
-+ if (shouldSkipPrioritization(coordIntPair)) continue;
|
|
-
|
|
-- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
|
-+ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coordIntPair.x, 0, coordIntPair.z);
|
|
- // Prioritize immediate
|
|
- if (dist <= 4 * 4) {
|
|
-- updateChunkPriorityMap(priorities, coord.pair(), (int) (27 - Math.sqrt(dist)));
|
|
-- return;
|
|
-+ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (27 - Math.sqrt(dist)));
|
|
-+ continue;
|
|
- }
|
|
-
|
|
- // Prioritize nearby chunks
|
|
-- updateChunkPriorityMap(priorities, coord.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier));
|
|
-- });
|
|
-+ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier));
|
|
-+ }
|
|
-
|
|
- // Prioritize Frustum near 3
|
|
- ChunkCoordIntPair front3 = player.getChunkInFront(3);
|
|
- pos.setValues(front3.x << 4, 0, front3.z << 4);
|
|
-- MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance)).forEach(coord -> {
|
|
-- if (shouldSkipPrioritization(coord)) return;
|
|
-+ for (ChunkCoordIntPair chunkCoordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance))) {
|
|
-+ if (shouldSkipPrioritization(chunkCoordIntPair)) continue;
|
|
-
|
|
-- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
|
-- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
|
-- });
|
|
-+ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, chunkCoordIntPair.x, 0, chunkCoordIntPair.z);
|
|
-+ updateChunkPriorityMap(priorities, chunkCoordIntPair.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
|
-+ }
|
|
-
|
|
- // Prioritize Frustum near 5
|
|
- if (viewDistance > 4) {
|
|
- ChunkCoordIntPair front5 = player.getChunkInFront(5);
|
|
- pos.setValues(front5.x << 4, 0, front5.z << 4);
|
|
-- MCUtil.getSpiralOutChunks(pos, 4).forEach(coord -> {
|
|
-- if (shouldSkipPrioritization(coord)) return;
|
|
-+ for (ChunkCoordIntPair coord : MCUtil.getSpiralOutChunks(pos, 4)) {
|
|
-+ if (shouldSkipPrioritization(coord)) continue;
|
|
-
|
|
- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
|
- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
|
-- });
|
|
-+ }
|
|
- }
|
|
-
|
|
- // Prioritize Frustum far 7
|
|
- if (viewDistance > 6) {
|
|
- ChunkCoordIntPair front7 = player.getChunkInFront(7);
|
|
- pos.setValues(front7.x << 4, 0, front7.z << 4);
|
|
-- MCUtil.getSpiralOutChunks(pos, 3).forEach(coord -> {
|
|
-+ for (ChunkCoordIntPair coord : MCUtil.getSpiralOutChunks(pos, 3)) {
|
|
- if (shouldSkipPrioritization(coord)) {
|
|
-- return;
|
|
-+ continue;
|
|
- }
|
|
- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
|
- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
|
-- });
|
|
-+ }
|
|
- }
|
|
-
|
|
- pos.close();
|
|
-@@ -1122,7 +1131,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
|
- if (ioThrowable != null) {
|
|
- com.destroystokyo.paper.util.SneakyThrow.sneaky(ioThrowable);
|
|
- }
|
|
-- chunkHolder.tasks.forEach(Runnable::run);
|
|
-+ for (Runnable task : chunkHolder.tasks) {
|
|
-+ task.run();
|
|
-+ }
|
|
- // Paper end
|
|
-
|
|
- if (chunkHolder.protoChunk != null) {try (Timing ignored2 = this.world.timings.chunkLoadLevelTimer.startTimingIfSync()) { // Paper start - timings // Paper - chunk is created async
|
|
diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java
|
|
index 62edfda9cc326a428cd267227054f03d94d22dce..934ac7fdfa040f1e00fb78b525b801ed525dae7e 100644
|
|
--- a/src/main/java/net/minecraft/server/PortalTravelAgent.java
|
|
+++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java
|
|
@@ -23,15 +23,21 @@ public class PortalTravelAgent {
|
|
// CraftBukkit end
|
|
|
|
villageplace.a(this.world, blockposition, i);
|
|
- Optional<VillagePlaceRecord> optional = villageplace.b((villageplacetype) -> {
|
|
- return villageplacetype == VillagePlaceType.v;
|
|
- }, blockposition, i, VillagePlace.Occupancy.ANY).sorted(Comparator.comparingDouble((VillagePlaceRecord villageplacerecord) -> { // CraftBukkit - decompile error
|
|
+ boolean seen = false;
|
|
+ VillagePlaceRecord best = null;
|
|
+ Comparator<VillagePlaceRecord> comparator = Comparator.<VillagePlaceRecord>comparingDouble((villageplacerecord) -> { // CraftBukkit - decompile error
|
|
return villageplacerecord.f().j(blockposition);
|
|
}).thenComparingInt((villageplacerecord) -> {
|
|
return villageplacerecord.f().getY();
|
|
- })).filter((villageplacerecord) -> {
|
|
- return this.world.getType(villageplacerecord.f()).b(BlockProperties.E);
|
|
- }).findFirst();
|
|
+ });
|
|
+ List<VillagePlaceRecord> list = villageplace.b(type -> type == VillagePlaceType.v, blockposition, i, VillagePlace.Occupancy.ANY);
|
|
+ for (VillagePlaceRecord villagePlaceRecord : list) {
|
|
+ if (!seen || comparator.compare(villagePlaceRecord, best) < 0) {
|
|
+ seen = true;
|
|
+ best = villagePlaceRecord;
|
|
+ }
|
|
+ }
|
|
+ Optional<VillagePlaceRecord> optional = seen ? Optional.of(best) : Optional.empty();
|
|
|
|
return optional.map((villageplacerecord) -> {
|
|
BlockPosition blockposition1 = villageplacerecord.f();
|
|
diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java.rej b/src/main/java/net/minecraft/server/PortalTravelAgent.java.rej
|
|
deleted file mode 100644
|
|
index e8002e718bce73e4cfedcab7636a85a773dfb099..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/PortalTravelAgent.java.rej
|
|
+++ /dev/null
|
|
@@ -1,24 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java (rejected hunks)
|
|
-@@ -57,11 +57,20 @@ public class PortalTravelAgent {
|
|
- List<VillagePlaceRecord> list = (List) villageplace.b((villageplacetype) -> {
|
|
- return villageplacetype == VillagePlaceType.v;
|
|
- }, blockposition, searchRadius, VillagePlace.Occupancy.ANY).collect(Collectors.toList()); // CraftBukkit - searchRadius
|
|
-- Optional<VillagePlaceRecord> optional = list.stream().min(Comparator.<VillagePlaceRecord>comparingDouble((villageplacerecord) -> { // CraftBukkit - decompile error
|
|
-+ boolean seen = false;
|
|
-+ VillagePlaceRecord best = null;
|
|
-+ Comparator<VillagePlaceRecord> comparator = Comparator.<VillagePlaceRecord>comparingDouble((villageplacerecord) -> { // CraftBukkit - decompile error
|
|
- return villageplacerecord.f().j(blockposition);
|
|
- }).thenComparingInt((villageplacerecord) -> {
|
|
- return villageplacerecord.f().getY();
|
|
-- }));
|
|
-+ });
|
|
-+ for (VillagePlaceRecord villagePlaceRecord : list) {
|
|
-+ if (!seen || comparator.compare(villagePlaceRecord, best) < 0) {
|
|
-+ seen = true;
|
|
-+ best = villagePlaceRecord;
|
|
-+ }
|
|
-+ }
|
|
-+ Optional<VillagePlaceRecord> optional = seen ? Optional.of(best) : Optional.empty();
|
|
-
|
|
- return (ShapeDetector.Shape) optional.map((villageplacerecord) -> {
|
|
- BlockPosition blockposition1 = villageplacerecord.f();
|
|
diff --git a/src/main/java/net/minecraft/server/RegistryMaterials.java.rej b/src/main/java/net/minecraft/server/RegistryMaterials.java.rej
|
|
deleted file mode 100644
|
|
index c29a9979eb97870b2b13c4b5fa68395aa40e8059..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/RegistryMaterials.java.rej
|
|
+++ /dev/null
|
|
@@ -1,29 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/RegistryMaterials.java b/src/main/java/net/minecraft/server/RegistryMaterials.java (rejected hunks)
|
|
-@@ -181,17 +181,22 @@ public class RegistryMaterials<T> extends IRegistryWritable<T> {
|
|
- return Codec.unboundedMap(MinecraftKey.a.xmap(ResourceKey.a(resourcekey), ResourceKey::a), mapcodec.codec()).xmap((map) -> {
|
|
- RegistryMaterials<T> registrymaterials = new RegistryMaterials<>(resourcekey, lifecycle);
|
|
-
|
|
-- map.forEach((resourcekey1, object) -> {
|
|
-+ for (Entry<ResourceKey<T>, T> entry : map.entrySet()) {
|
|
-+ ResourceKey<T> resourcekey1 = entry.getKey();
|
|
-+ T object = entry.getValue();
|
|
- registrymaterials.a(registrymaterials.bd, resourcekey1, object);
|
|
- registrymaterials.d(resourcekey1);
|
|
-- });
|
|
-+ }
|
|
- return registrymaterials;
|
|
- }, (registrymaterials) -> {
|
|
- com.google.common.collect.ImmutableMap.Builder<ResourceKey<T>, T> com_google_common_collect_immutablemap_builder = ImmutableMap.builder();
|
|
-
|
|
-- registrymaterials.bb.entrySet().stream().filter((entry) -> {
|
|
-- return registrymaterials.c((ResourceKey) entry.getKey());
|
|
-- }).forEach(entry1 -> com_google_common_collect_immutablemap_builder.put((java.util.Map.Entry<? extends net.minecraft.server.ResourceKey<T>,? extends T>) entry1)); // Paper - compiler fix (expand method reference + add cast)
|
|
-+ // Paper - compiler fix (expand method reference + add cast)
|
|
-+ for (Entry<ResourceKey<T>, T> entry : registrymaterials.bb.entrySet()) {
|
|
-+ if (registrymaterials.c(entry.getKey())) {
|
|
-+ com_google_common_collect_immutablemap_builder.put(entry);
|
|
-+ }
|
|
-+ }
|
|
- return com_google_common_collect_immutablemap_builder.build();
|
|
- });
|
|
- }
|
|
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java
|
|
index c3bd58069d8dbdf36f70f1dafd7c24000f31708b..f915cb4e1110e39178527903ae93508f9459d7ca 100644
|
|
--- a/src/main/java/net/minecraft/server/StructureGenerator.java
|
|
+++ b/src/main/java/net/minecraft/server/StructureGenerator.java
|
|
@@ -143,6 +143,11 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
|
|
int j2 = i1 + k * l1;
|
|
ChunkCoordIntPair chunkcoordintpair = this.a(structuresettingsfeature, j, seededrandom, i2, j2);
|
|
if (!iworldreader.getWorldBorder().isChunkInBounds(chunkcoordintpair.x, chunkcoordintpair.z)) { continue; } // Paper
|
|
+ // Origami start - seed based feature search doesn't load
|
|
+ if (iworldreader instanceof World && ((World) iworldreader).origamiConfig.fastFeatureSearchDontLoad) {
|
|
+ return chunkcoordintpair.l();
|
|
+ }
|
|
+ // Origami end
|
|
IChunkAccess ichunkaccess = iworldreader.getChunkAt(chunkcoordintpair.x, chunkcoordintpair.z, ChunkStatus.STRUCTURE_STARTS);
|
|
StructureStart<?> structurestart = structuremanager.a(SectionPosition.a(ichunkaccess.getPos(), 0), this, ichunkaccess);
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/StructureGenerator.java.rej b/src/main/java/net/minecraft/server/StructureGenerator.java.rej
|
|
deleted file mode 100644
|
|
index 8b5d001fb8ecb4a5b96bda6532cf8d5900816290..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/StructureGenerator.java.rej
|
|
+++ /dev/null
|
|
@@ -1,13 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/StructureGenerator.java b/src/main/java/net/minecraft/server/StructureGenerator.java (rejected hunks)
|
|
-@@ -139,6 +139,11 @@ public abstract class StructureGenerator<C extends WorldGenFeatureConfiguration>
|
|
- int j2 = i1 + k * l1;
|
|
- ChunkCoordIntPair chunkcoordintpair = this.a(structuresettingsfeature, j, seededrandom, i2, j2);
|
|
- if (!iworldreader.getWorldBorder().isChunkInBounds(chunkcoordintpair.x, chunkcoordintpair.z)) { continue; } // Paper
|
|
-+ // Origami start - seed based feature search doesn't load
|
|
-+ if (iworldreader instanceof World && ((World) iworldreader).origamiConfig.fastFeatureSearchDontLoad) {
|
|
-+ return chunkcoordintpair.l();
|
|
-+ }
|
|
-+ // Origami end
|
|
- // Origami start - option to only find generated features to not generate new chunks
|
|
- IChunkAccess ichunkaccess = iworldreader.getChunkAt(chunkcoordintpair.x, chunkcoordintpair.z, ChunkStatus.STRUCTURE_STARTS, !(iworldreader instanceof World) || !((World) iworldreader).origamiConfig.onlyFindGeneratedFeatures);
|
|
- if (ichunkaccess == null) {
|
|
diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java
|
|
index 299196ad134593a2979a867b86d44532a23a40f2..95bede605c6401af10f18b641cd12c9d8ec2f207 100644
|
|
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java
|
|
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
|
|
@@ -508,6 +508,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
|
entityitem = (EntityItem) iterator.next();
|
|
} while (!a((IInventory) ihopper, entityitem));
|
|
|
|
+ if (ihopper instanceof TileEntityHopper) ((TileEntityHopper) ihopper).shouldTick = true; // Origami - don't tick empty hoppers
|
|
return true;
|
|
}
|
|
return false; // EMC
|
|
@@ -765,6 +766,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
|
BlockPosition blockposition = this.getPosition();
|
|
|
|
if (VoxelShapes.c(VoxelShapes.a(entity.getBoundingBox().d((double) (-blockposition.getX()), (double) (-blockposition.getY()), (double) (-blockposition.getZ()))), this.aa_(), OperatorBoolean.AND)) {
|
|
+ enableTicking(this, 0); // Origami - don't tick empty hoppers
|
|
this.a(() -> {
|
|
return a((IInventory) this, (EntityItem) entity);
|
|
});
|
|
diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java.rej b/src/main/java/net/minecraft/server/TileEntityHopper.java.rej
|
|
deleted file mode 100644
|
|
index 3f481f57d8e0b156b7d632085265e3acfb2f4fa8..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java.rej
|
|
+++ /dev/null
|
|
@@ -1,17 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java (rejected hunks)
|
|
-@@ -466,6 +497,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
|
- entityitem = (EntityItem) iterator.next();
|
|
- } while (!a((IInventory) ihopper, entityitem));
|
|
-
|
|
-+ if (ihopper instanceof TileEntityHopper) ((TileEntityHopper) ihopper).shouldTick = true; // Origami - don't tick empty hoppers
|
|
- return true;
|
|
- }
|
|
- }
|
|
-@@ -722,6 +754,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
|
- BlockPosition blockposition = this.getPosition();
|
|
-
|
|
- if (VoxelShapes.c(VoxelShapes.a(entity.getBoundingBox().d((double) (-blockposition.getX()), (double) (-blockposition.getY()), (double) (-blockposition.getZ()))), this.ac_(), OperatorBoolean.AND)) {
|
|
-+ enableTicking(this, 0); // Origami - don't tick empty hoppers
|
|
- this.a(() -> {
|
|
- return a((IInventory) this, (EntityItem) entity);
|
|
- });
|
|
diff --git a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej b/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej
|
|
deleted file mode 100644
|
|
index bada470cba41cce9beb9eb04227b42c1d489d731..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej
|
|
+++ /dev/null
|
|
@@ -1,22 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java b/src/main/java/net/minecraft/server/TileEntityShulkerBox.java (rejected hunks)
|
|
-@@ -10,7 +11,19 @@ import org.bukkit.entity.HumanEntity;
|
|
-
|
|
- public class TileEntityShulkerBox extends TileEntityLootable implements IWorldInventory, ITickable {
|
|
-
|
|
-- private static final int[] a = IntStream.range(0, 27).toArray();
|
|
-+ private static final int[] a;
|
|
-+
|
|
-+ static {
|
|
-+ int[] arr = new int[10];
|
|
-+ int count = 0;
|
|
-+ for (int i1 = 0; i1 < 27; i1++) {
|
|
-+ if (arr.length == count) arr = Arrays.copyOf(arr, count * 2);
|
|
-+ arr[count++] = i1;
|
|
-+ }
|
|
-+ arr = Arrays.copyOfRange(arr, 0, count);
|
|
-+ a = arr;
|
|
-+ }
|
|
-+
|
|
- private NonNullList<ItemStack> contents;
|
|
- private int c;
|
|
- private TileEntityShulkerBox.AnimationPhase i;
|
|
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
|
index 4ccd7c6b7973d97bd3a2feea279953f307f7a9b4..5c67881cb9258b839e713b8bb0b4b380691d3fdd 100644
|
|
--- a/src/main/java/net/minecraft/server/World.java
|
|
+++ b/src/main/java/net/minecraft/server/World.java
|
|
@@ -97,6 +97,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
|
|
public final com.tuinity.tuinity.config.TuinityConfig.WorldConfig tuinityConfig; // Tuinity - Server Config
|
|
public final net.pl3x.purpur.PurpurWorldConfig purpurConfig; // Purpur
|
|
+ public final de.minebench.origami.OrigamiConfig.WorldConfig origamiConfig; // Origami - World config
|
|
+ public final RainforestWorldConfig rainforestConfig; // Rainforest
|
|
|
|
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
|
public static BlockPosition lastPhysicsProblem; // Spigot
|
|
@@ -130,6 +132,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig((((WorldDataServer)worlddatamutable).getName()), this.spigotConfig); // Paper
|
|
this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
|
|
this.tuinityConfig = new com.tuinity.tuinity.config.TuinityConfig.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Tuinity - Server Config
|
|
+ this.purpurConfig = new net.pl3x.purpur.PurpurWorldConfig(((WorldDataServer)worlddatamutable).getName()); // Purpur - world config
|
|
+ this.origamiConfig = new de.minebench.origami.OrigamiConfig.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Origami
|
|
+ this.rainforestConfig = new RainforestWorldConfig(((WorldDataServer)worlddatamutable).getName(), paperConfig); // Rainforest
|
|
this.generator = gen;
|
|
this.world = new CraftWorld((WorldServer) this, gen, env);
|
|
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
|
|
@@ -614,6 +619,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
|
|
}
|
|
|
|
+ public final void neighborChanged(BlockPosition pos, Block blockIn, BlockPosition fromPos) { a(pos, blockIn, fromPos); } // Paper - OBFHELPER
|
|
public void a(BlockPosition blockposition, Block block, BlockPosition blockposition1) {
|
|
if (!this.isClientSide) {
|
|
IBlockData iblockdata = this.getTypeIfLoaded(blockposition); // EMC
|
|
diff --git a/src/main/java/net/minecraft/server/World.java.rej b/src/main/java/net/minecraft/server/World.java.rej
|
|
deleted file mode 100644
|
|
index c632cd030e36d8abfd92a14948e4893d885823ad..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/World.java.rej
|
|
+++ /dev/null
|
|
@@ -1,9 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java (rejected hunks)
|
|
-@@ -646,6 +646,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
|
-
|
|
- }
|
|
-
|
|
-+ public void neighborChanged(BlockPosition pos, Block blockIn, BlockPosition fromPos) { a(pos, blockIn, fromPos); } // Paper - OBFHELPER
|
|
- public void a(BlockPosition blockposition, Block block, BlockPosition blockposition1) {
|
|
- if (!this.isClientSide) {
|
|
- IBlockData iblockdata = this.getType(blockposition);
|
|
diff --git a/src/main/java/net/minecraft/server/WorldDataServer.java b/src/main/java/net/minecraft/server/WorldDataServer.java
|
|
index a7e623044aece1f46e2d039cd2dcf710120ac267..e9da64d5745b12bc1144b1f55dc45b6125083b8f 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldDataServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldDataServer.java
|
|
@@ -122,7 +122,10 @@ public class WorldDataServer implements IWorldDataServer, SaveData {
|
|
private void a(IRegistryCustom iregistrycustom, NBTTagCompound nbttagcompound, @Nullable NBTTagCompound nbttagcompound1) {
|
|
NBTTagList nbttaglist = new NBTTagList();
|
|
|
|
- this.C.stream().map(NBTTagString::a).forEach(nbttaglist::add);
|
|
+ for (String s : this.C) {
|
|
+ NBTTagString a = NBTTagString.a(s);
|
|
+ nbttaglist.add(a);
|
|
+ }
|
|
nbttagcompound.set("ServerBrands", nbttaglist);
|
|
nbttagcompound.setBoolean("WasModded", this.D);
|
|
NBTTagCompound nbttagcompound2 = new NBTTagCompound();
|
|
diff --git a/src/main/java/net/minecraft/server/WorldDataServer.java.rej b/src/main/java/net/minecraft/server/WorldDataServer.java.rej
|
|
deleted file mode 100644
|
|
index ce6a0e3807550ef3652d4e1ab8695f7afe9fc8f8..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/WorldDataServer.java.rej
|
|
+++ /dev/null
|
|
@@ -1,13 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/WorldDataServer.java b/src/main/java/net/minecraft/server/WorldDataServer.java (rejected hunks)
|
|
-@@ -120,7 +120,10 @@ public class WorldDataServer implements IWorldDataServer, SaveData {
|
|
- private void a(IRegistryCustom iregistrycustom, NBTTagCompound nbttagcompound, @Nullable NBTTagCompound nbttagcompound1) {
|
|
- NBTTagList nbttaglist = new NBTTagList();
|
|
-
|
|
-- this.B.stream().map(NBTTagString::a).forEach(nbttaglist::add);
|
|
-+ for (String s : this.B) {
|
|
-+ NBTTagString a = NBTTagString.a(s);
|
|
-+ nbttaglist.add(a);
|
|
-+ }
|
|
- nbttagcompound.set("ServerBrands", nbttaglist);
|
|
- nbttagcompound.setBoolean("WasModded", this.C);
|
|
- NBTTagCompound nbttagcompound2 = new NBTTagCompound();
|
|
diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java
|
|
index d627a25830646d8808950238f451fa0adbab4ec6..a959672f5857b987001252c3fd7ace9e83e07c9b 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldNBTStorage.java
|
|
@@ -61,7 +61,7 @@ public class WorldNBTStorage {
|
|
}
|
|
// Spigot End
|
|
|
|
- if (file.exists() && file.isFile()) {
|
|
+ if (normalFile) { // Akarin - avoid double I/O operation
|
|
nbttagcompound = NBTCompressedStreamTools.a(file);
|
|
}
|
|
// Spigot Start
|
|
diff --git a/src/main/java/net/minecraft/server/WorldNBTStorage.java.rej b/src/main/java/net/minecraft/server/WorldNBTStorage.java.rej
|
|
deleted file mode 100644
|
|
index 3a35169eaf680c45fe42922eb5f0014fa422c31c..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/WorldNBTStorage.java.rej
|
|
+++ /dev/null
|
|
@@ -1,10 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/WorldNBTStorage.java b/src/main/java/net/minecraft/server/WorldNBTStorage.java (rejected hunks)
|
|
-@@ -62,7 +63,7 @@ public class WorldNBTStorage {
|
|
- }
|
|
- // Spigot End
|
|
-
|
|
-- if (file.exists() && file.isFile()) {
|
|
-+ if (normalFile) { // Akarin - avoid double I/O operation
|
|
- nbttagcompound = NBTCompressedStreamTools.a((InputStream) (new FileInputStream(file)));
|
|
- }
|
|
- // Spigot Start
|
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
|
index 698072f1b97a5a4489472b24140939be46ad0d36..11ac68333a97c21607bd4ce6dd936a69003f2bea 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
@@ -869,11 +869,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
|
|
this.P();
|
|
this.b();
|
|
- gameprofilerfiller.exitEnter("chunkSource");
|
|
+ //gameprofilerfiller.exitEnter("chunkSource"); // Akarin - remove caller
|
|
this.timings.chunkProviderTick.startTiming(); // Paper - timings
|
|
this.getChunkProvider().tick(booleansupplier);
|
|
this.timings.chunkProviderTick.stopTiming(); // Paper - timings
|
|
- gameprofilerfiller.exitEnter("tickPending");
|
|
+ //gameprofilerfiller.exitEnter("tickPending"); // Akarin - remove caller
|
|
timings.scheduledBlocks.startTiming(); // Paper
|
|
if (!this.isDebugWorld()) {
|
|
this.nextTickListBlock.b();
|
|
@@ -882,17 +882,17 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
timings.scheduledBlocks.stopTiming(); // Paper
|
|
|
|
// Tuinity - replace logic
|
|
- gameprofilerfiller.exitEnter("raid");
|
|
+ //gameprofilerfiller.exitEnter("raid"); // Akarin - remove caller
|
|
this.timings.raids.startTiming(); // Paper - timings
|
|
this.persistentRaid.a();
|
|
this.timings.raids.stopTiming(); // Paper - timings
|
|
- gameprofilerfiller.exitEnter("blockEvents");
|
|
+ //gameprofilerfiller.exitEnter("blockEvents"); // Akarin - remove caller
|
|
timings.doSounds.startTiming(); // Spigot
|
|
this.aj();
|
|
timings.doSounds.stopTiming(); // Spigot
|
|
// Tuinity - replace logic
|
|
this.ticking = false;
|
|
- gameprofilerfiller.exitEnter("entities");
|
|
+ //gameprofilerfiller.exitEnter("entities"); // Akarin - remove caller
|
|
boolean flag3 = true || !this.players.isEmpty() || !this.getForceLoadedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
|
|
|
|
if (flag3) {
|
|
@@ -924,7 +924,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
}
|
|
// CraftBukkit end */
|
|
|
|
- gameprofilerfiller.enter("checkDespawn");
|
|
+ //gameprofilerfiller.enter("checkDespawn"); // Akarin - remove caller
|
|
if (!entity.dead) {
|
|
entity.checkDespawn();
|
|
// Tuinity start - optimise notify()
|
|
@@ -936,7 +936,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
// Tuinity end - optimise notify()
|
|
}
|
|
|
|
- gameprofilerfiller.exit();
|
|
+ //gameprofilerfiller.exit(); // Akarin - remove caller
|
|
if (entity1 != null) {
|
|
if (!entity1.dead && entity1.w(entity)) {
|
|
continue;
|
|
@@ -945,13 +945,13 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
entity.stopRiding();
|
|
}
|
|
|
|
- gameprofilerfiller.enter("tick");
|
|
+ //gameprofilerfiller.enter("tick"); // Akarin - remove caller
|
|
if (!entity.dead && !(entity instanceof EntityComplexPart)) {
|
|
this.a(this::entityJoinedWorld, entity);
|
|
}
|
|
|
|
- gameprofilerfiller.exit();
|
|
- gameprofilerfiller.enter("remove");
|
|
+ //gameprofilerfiller.exit(); // Akarin - remove caller
|
|
+ //gameprofilerfiller.enter("remove"); // Akarin - remove caller
|
|
if (entity.dead) {
|
|
this.removeEntityFromChunk(entity);
|
|
this.entitiesById.remove(entity.getId()); // Tuinity
|
|
@@ -963,7 +963,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
}
|
|
// Tuinity end - optimise notify()
|
|
|
|
- gameprofilerfiller.exit();
|
|
+ //gameprofilerfiller.exit(); // Akarin - remove caller
|
|
}
|
|
timings.entityTick.stopTiming(); // Spigot
|
|
|
|
@@ -1050,7 +1050,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
int k = chunkcoordintpair.e();
|
|
GameProfilerFiller gameprofilerfiller = this.getMethodProfiler();
|
|
|
|
- gameprofilerfiller.enter("thunder");
|
|
+ //gameprofilerfiller.enter("thunder"); // Akarin - remove caller
|
|
final BlockPosition.MutableBlockPosition blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
|
|
|
|
if (!this.paperConfig.disableThunder && flag && this.V() && this.random.nextInt(100000) == 0) { // Paper - Disable thunder
|
|
@@ -1395,7 +1395,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
// Tuinity end
|
|
}
|
|
|
|
- this.getMethodProfiler().exit();
|
|
+ //this.getMethodProfiler().exit(); // Akarin - remove caller
|
|
}
|
|
}
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java.rej b/src/main/java/net/minecraft/server/WorldServer.java.rej
|
|
deleted file mode 100644
|
|
index 6b024f18ebc32034d1d81ef98f7117944bc0cd0a..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java.rej
|
|
+++ /dev/null
|
|
@@ -1,94 +0,0 @@
|
|
-diff a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java (rejected hunks)
|
|
-@@ -887,11 +887,11 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
-
|
|
- this.N();
|
|
- this.b();
|
|
-- gameprofilerfiller.exitEnter("chunkSource");
|
|
-+ //gameprofilerfiller.exitEnter("chunkSource"); // Akarin - remove caller
|
|
- this.timings.chunkProviderTick.startTiming(); // Paper - timings
|
|
- this.getChunkProvider().tick(booleansupplier);
|
|
- this.timings.chunkProviderTick.stopTiming(); // Paper - timings
|
|
-- gameprofilerfiller.exitEnter("tickPending");
|
|
-+ //gameprofilerfiller.exitEnter("tickPending"); // Akarin - remove caller
|
|
- timings.scheduledBlocks.startTiming(); // Paper
|
|
- if (!this.isDebugWorld()) {
|
|
- this.nextTickListBlock.b();
|
|
-@@ -900,17 +900,17 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
- timings.scheduledBlocks.stopTiming(); // Paper
|
|
-
|
|
- // Tuinity - replace logic
|
|
-- gameprofilerfiller.exitEnter("raid");
|
|
-+ //gameprofilerfiller.exitEnter("raid"); // Akarin - remove caller
|
|
- this.timings.raids.startTiming(); // Paper - timings
|
|
- this.persistentRaid.a();
|
|
- this.timings.raids.stopTiming(); // Paper - timings
|
|
-- gameprofilerfiller.exitEnter("blockEvents");
|
|
-+ //gameprofilerfiller.exitEnter("blockEvents"); // Akarin - remove caller
|
|
- timings.doSounds.startTiming(); // Spigot
|
|
- this.ah();
|
|
- timings.doSounds.stopTiming(); // Spigot
|
|
- // Tuinity - replace logic
|
|
- this.ticking = false;
|
|
-- gameprofilerfiller.exitEnter("entities");
|
|
-+ //gameprofilerfiller.exitEnter("entities"); // Akarin - remove caller
|
|
- boolean flag3 = true || !this.players.isEmpty() || !this.getForceLoadedChunks().isEmpty(); // CraftBukkit - this prevents entity cleanup, other issues on servers with no players
|
|
-
|
|
- if (flag3) {
|
|
-@@ -943,12 +943,12 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
- }
|
|
- // CraftBukkit end */
|
|
-
|
|
-- gameprofilerfiller.enter("checkDespawn");
|
|
-+ //gameprofilerfiller.enter("checkDespawn"); // Akarin - remove caller
|
|
- if (!entity.dead) {
|
|
- entity.checkDespawn();
|
|
- }
|
|
-
|
|
-- gameprofilerfiller.exit();
|
|
-+ //gameprofilerfiller.exit(); // Akarin - remove caller
|
|
- if (entity1 != null) {
|
|
- if (!entity1.dead && entity1.w(entity)) {
|
|
- continue;
|
|
-@@ -957,20 +957,20 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
- entity.stopRiding();
|
|
- }
|
|
-
|
|
-- gameprofilerfiller.enter("tick");
|
|
-+ //gameprofilerfiller.enter("tick"); // Akarin - remove caller
|
|
- if (!entity.dead && !(entity instanceof EntityComplexPart)) {
|
|
- this.a(this::entityJoinedWorld, entity);
|
|
- }
|
|
-
|
|
-- gameprofilerfiller.exit();
|
|
-- gameprofilerfiller.enter("remove");
|
|
-+ //gameprofilerfiller.exit(); // Akarin - remove caller
|
|
-+ //gameprofilerfiller.enter("remove"); // Akarin - remove caller
|
|
- if (entity.dead) {
|
|
- this.removeEntityFromChunk(entity);
|
|
- this.entitiesById.remove(entity.getId()); // Tuinity
|
|
- this.unregisterEntity(entity);
|
|
- }
|
|
-
|
|
-- gameprofilerfiller.exit();
|
|
-+ //gameprofilerfiller.exit(); // Akarin - remove caller
|
|
- }
|
|
- timings.entityTick.stopTiming(); // Spigot
|
|
-
|
|
-@@ -1049,7 +1049,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
- int k = chunkcoordintpair.e();
|
|
- GameProfilerFiller gameprofilerfiller = this.getMethodProfiler();
|
|
-
|
|
-- gameprofilerfiller.enter("thunder");
|
|
-+ //gameprofilerfiller.enter("thunder"); // Akarin - remove caller
|
|
- final BlockPosition.MutableBlockPosition blockposition = this.chunkTickMutablePosition; // Paper - use mutable to reduce allocation rate, final to force compile fail on change
|
|
-
|
|
- if (!this.paperConfig.disableThunder && flag && this.T() && this.random.nextInt(100000) == 0) { // Paper - Disable thunder
|
|
-@@ -1377,7 +1377,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
- }
|
|
- }
|
|
-
|
|
-- this.getMethodProfiler().exit();
|
|
-+ //this.getMethodProfiler().exit(); // Akarin - remove caller
|
|
- }
|
|
- }
|
|
-
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
index 1d00832bffc2b6bcc6153b9065a92035ba974138..4a24e95f293b9ba0748fdf0bf695be340d449861 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurConfig.java
|
|
@@ -127,4 +127,24 @@ public class PurpurConfig {
|
|
config.addDefault(path, def);
|
|
return config.getString(path, config.getString(path));
|
|
}
|
|
+
|
|
+ public static double laggingThreshold = 19.0D;
|
|
+ private static void tickLoopSettings() {
|
|
+ laggingThreshold = getDouble("settings.lagging-threshold", laggingThreshold);
|
|
+ }
|
|
+
|
|
+ public static boolean useAlternateKeepAlive = false;
|
|
+ private static void useAlternateKeepAlive() {
|
|
+ useAlternateKeepAlive = getBoolean("settings.use-alternate-keepalive", useAlternateKeepAlive);
|
|
+ }
|
|
+
|
|
+ public static boolean dontSendUselessEntityPackets = false;
|
|
+ private static void dontSendUselessEntityPackets() {
|
|
+ dontSendUselessEntityPackets = getBoolean("settings.dont-send-useless-entity-packets", dontSendUselessEntityPackets);
|
|
+ }
|
|
+
|
|
+ public static boolean tpsCatchup = true;
|
|
+ private static void tpsCatchup() {
|
|
+ tpsCatchup = getBoolean("settings.tps-catchup", tpsCatchup);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurConfig.java.rej b/src/main/java/net/pl3x/purpur/PurpurConfig.java.rej
|
|
deleted file mode 100644
|
|
index ff05ff6aef1e0f61eb4437253020632745ee2bd2..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurConfig.java.rej
|
|
+++ /dev/null
|
|
@@ -1,11 +0,0 @@
|
|
-diff a/src/main/java/net/pl3x/purpur/PurpurConfig.java b/src/main/java/net/pl3x/purpur/PurpurConfig.java (rejected hunks)
|
|
-@@ -194,4 +194,9 @@ public class PurpurConfig {
|
|
- loggerSuppressInitLegacyMaterialError = getBoolean("settings.logger.suppress-init-legacy-material-errors", loggerSuppressInitLegacyMaterialError);
|
|
- loggerSuppressIgnoredAdvancementWarnings = getBoolean("settings.logger.suppress-ignored-advancement-warnings", loggerSuppressIgnoredAdvancementWarnings);
|
|
- }
|
|
-+
|
|
-+ public static boolean tpsCatchup = true;
|
|
-+ private static void tpsCatchup() {
|
|
-+ tpsCatchup = getBoolean("settings.tps-catchup", tpsCatchup);
|
|
-+ }
|
|
- }
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
index 361f7857e461578e90cb71e15027dadaf794cb69..7cde55ae407012b3445f11b07a0ebc9d00e031e3 100644
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
+++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java
|
|
@@ -56,4 +56,16 @@ public class PurpurWorldConfig {
|
|
PurpurConfig.config.addDefault("world-settings.default." + path, def);
|
|
return PurpurConfig.config.getString("world-settings." + worldName + "." + path, PurpurConfig.config.getString("world-settings.default." + path));
|
|
}
|
|
+
|
|
+ public int villagerBrainTicks = 1;
|
|
+ public boolean villagerUseBrainTicksOnlyWhenLagging = true;
|
|
+ private void villagerSettings() {
|
|
+ villagerBrainTicks = getInt("mobs.villager.brain-ticks", villagerBrainTicks);
|
|
+ villagerUseBrainTicksOnlyWhenLagging = getBoolean("mobs.villager.use-brain-ticks-only-when-lagging", villagerUseBrainTicksOnlyWhenLagging);
|
|
+ }
|
|
+
|
|
+ public boolean saveProjectilesToDisk = true;
|
|
+ private void miscGameplayMechanicsSettings() {
|
|
+ saveProjectilesToDisk = getBoolean("gameplay-mechanics.save-projectiles-to-disk", saveProjectilesToDisk);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java.rej b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java.rej
|
|
deleted file mode 100644
|
|
index 120d0df27e76c9beef9f09e6cdc0972454fdd4ca..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java.rej
|
|
+++ /dev/null
|
|
@@ -1,15 +0,0 @@
|
|
-diff a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java (rejected hunks)
|
|
-@@ -113,11 +113,13 @@ public class PurpurWorldConfig {
|
|
- public boolean disableDropsOnCrammingDeath = false;
|
|
- public boolean entitiesPickUpLootBypassMobGriefing = false;
|
|
- public boolean milkCuresBadOmen = true;
|
|
-+ public boolean saveProjectilesToDisk = true;
|
|
- public double tridentLoyaltyVoidReturnHeight = 0.0D;
|
|
- private void miscGameplayMechanicsSettings() {
|
|
- disableDropsOnCrammingDeath = getBoolean("gameplay-mechanics.disable-drops-on-cramming-death", disableDropsOnCrammingDeath);
|
|
- entitiesPickUpLootBypassMobGriefing = getBoolean("gameplay-mechanics.entities-pick-up-loot-bypass-mob-griefing", entitiesPickUpLootBypassMobGriefing);
|
|
- milkCuresBadOmen = getBoolean("gameplay-mechanics.milk-cures-bad-omen", milkCuresBadOmen);
|
|
-+ saveProjectilesToDisk = getBoolean("gameplay-mechanics.save-projectiles-to-disk", saveProjectilesToDisk);
|
|
- tridentLoyaltyVoidReturnHeight = getDouble("gameplay-mechanics.trident-loyalty-void-return-height", tridentLoyaltyVoidReturnHeight);
|
|
- }
|
|
-
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
index 624dd7632b9fcc1f60174b0dd82ed42dcf345bd1..2b664724a46a7b7221f93da62c6d87b9cac199f5 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
|
@@ -835,6 +835,8 @@ public final class CraftServer implements Server {
|
|
com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
|
|
com.tuinity.tuinity.config.TuinityConfig.init((File) console.options.valueOf("tuinity-settings")); // Tuinity - Server Config
|
|
net.pl3x.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur
|
|
+ de.minebench.origami.OrigamiConfig.init((File) console.options.valueOf("origami-settings")); // Origami - Server Config
|
|
+ com.proximyst.rainforest.RainforestConfig.init((File) console.options.valueOf("rainforest-settings")); // Rainforest
|
|
for (WorldServer world : console.getWorlds()) {
|
|
world.worldDataServer.setDifficulty(config.difficulty);
|
|
world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals);
|
|
@@ -871,6 +873,8 @@ public final class CraftServer implements Server {
|
|
world.paperConfig.init(); // Paper
|
|
world.tuinityConfig.init(); // Tuinity - Server Config
|
|
world.purpurConfig.init(); // Purpur
|
|
+ world.origamiConfig.init(); // Origami - World Config
|
|
+ world.rainforestConfig.init(); // Rainforest
|
|
}
|
|
|
|
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
|
@@ -2249,6 +2253,20 @@ public final class CraftServer implements Server {
|
|
}
|
|
// Purpur end
|
|
|
|
+ // Rainforest start
|
|
+ @Override
|
|
+ public YamlConfiguration getRainforestConfig() {
|
|
+ return com.proximyst.rainforest.RainforestConfig.config;
|
|
+ }
|
|
+ // Rainforest end
|
|
+
|
|
+ // Origami start
|
|
+ @Override
|
|
+ public YamlConfiguration getOrigamiConfig() {
|
|
+ return de.minebench.origami.OrigamiConfig.config;
|
|
+ }
|
|
+ // Origami end
|
|
+
|
|
@Override
|
|
public void restart() {
|
|
org.spigotmc.RestartCommand.restart();
|
|
@@ -2388,4 +2406,11 @@ public final class CraftServer implements Server {
|
|
return mobGoals;
|
|
}
|
|
// Paper end
|
|
+
|
|
+ // Purpur start
|
|
+ @Override
|
|
+ public boolean isLagging() {
|
|
+ return getServer().lagging;
|
|
+ }
|
|
+ // Purpur end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java.rej b/src/main/java/org/bukkit/craftbukkit/CraftServer.java.rej
|
|
deleted file mode 100644
|
|
index a3c8dfd94f78b49341e5f5aba1735651096c9d70..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java.rej
|
|
+++ /dev/null
|
|
@@ -1,31 +0,0 @@
|
|
-diff a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java (rejected hunks)
|
|
-@@ -848,6 +848,7 @@ public final class CraftServer implements Server {
|
|
-
|
|
- org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
|
|
- com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
|
|
-+ com.proximyst.rainforest.RainforestConfig.init((File) console.options.valueOf("rainforest-settings")); // Rainforest
|
|
- for (WorldServer world : console.getWorlds()) {
|
|
- world.worldDataServer.setDifficulty(config.difficulty);
|
|
- world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals);
|
|
-@@ -882,6 +883,7 @@ public final class CraftServer implements Server {
|
|
- }
|
|
- world.spigotConfig.init(); // Spigot
|
|
- world.paperConfig.init(); // Paper
|
|
-+ world.rainforestConfig.init(); // Rainforest
|
|
- }
|
|
-
|
|
- Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
|
-@@ -2238,6 +2240,13 @@ public final class CraftServer implements Server {
|
|
- return com.destroystokyo.paper.PaperConfig.config;
|
|
- }
|
|
-
|
|
-+ // Rainforest start
|
|
-+ @Override
|
|
-+ public YamlConfiguration getRainforestConfig() {
|
|
-+ return com.proximyst.rainforest.RainforestConfig.config;
|
|
-+ }
|
|
-+ // Rainforest end
|
|
-+
|
|
- @Override
|
|
- public void restart() {
|
|
- org.spigotmc.RestartCommand.restart();
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
index 25f12589ccf3458576b8653a637b6f83eb633630..d6c82bd0afa43a4afcbc7029622c3915fa39bcc9 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
@@ -154,6 +154,22 @@ public class Main {
|
|
.describedAs("Yml file");
|
|
// Purpur end
|
|
|
|
+ // Origami start - Server Config
|
|
+ acceptsAll(asList("origami", "origami-settings"), "File for origami settings")
|
|
+ .withRequiredArg()
|
|
+ .ofType(File.class)
|
|
+ .defaultsTo(new File("origami.yml"))
|
|
+ .describedAs("Yml file");
|
|
+ // Origami end - Server Config
|
|
+
|
|
+ // Rainforest start
|
|
+ acceptsAll(asList("rainforest", "rainforest-settings"), "File for rainforest settings")
|
|
+ .withRequiredArg()
|
|
+ .ofType(File.class)
|
|
+ .defaultsTo(new File("rainforest.yml"))
|
|
+ .describedAs("Yml file");
|
|
+ // Rainforest end
|
|
+
|
|
// Paper start
|
|
acceptsAll(asList("server-name"), "Name of the server")
|
|
.withRequiredArg()
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java.rej b/src/main/java/org/bukkit/craftbukkit/Main.java.rej
|
|
deleted file mode 100644
|
|
index 916603085d652444027e4513b77293ece84a6c4f..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java.rej
|
|
+++ /dev/null
|
|
@@ -1,16 +0,0 @@
|
|
-diff a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java (rejected hunks)
|
|
-@@ -139,6 +139,14 @@ public class Main {
|
|
- .describedAs("Yml file");
|
|
- // Paper end
|
|
-
|
|
-+ // Rainforest start
|
|
-+ acceptsAll(asList("rainforest", "rainforest-settings"), "File for rainforest settings")
|
|
-+ .withRequiredArg()
|
|
-+ .ofType(File.class)
|
|
-+ .defaultsTo(new File("rainforest.yml"))
|
|
-+ .describedAs("Yml file");
|
|
-+ // Rainforest end
|
|
-+
|
|
- // Paper start
|
|
- acceptsAll(asList("server-name"), "Name of the server")
|
|
- .withRequiredArg()
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
index 744b2a00fa0743598cabb46c539ae65238cdc736..0677ff98d530da5d4ae2194ebd0c229298d594a6 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
@@ -670,8 +670,12 @@ public class CraftBlock implements Block {
|
|
|
|
// Modelled off EntityHuman#hasBlock
|
|
if (item == null || !iblockdata.isRequiresSpecialTool() || nms.canDestroySpecialBlock(iblockdata)) {
|
|
- return net.minecraft.server.Block.getDrops(iblockdata, (WorldServer) world.getMinecraftWorld(), position, world.getTileEntity(position), entity == null ? null : ((CraftEntity) entity).getHandle(), nms)
|
|
- .stream().map(CraftItemStack::asBukkitCopy).collect(Collectors.toList());
|
|
+ List<ItemStack> list = new ArrayList<>();
|
|
+ for (net.minecraft.server.ItemStack itemStack : net.minecraft.server.Block.getDrops(iblockdata, (WorldServer) world.getMinecraftWorld(), position, world.getTileEntity(position), entity == null ? null : ((CraftEntity) entity).getHandle(), nms)) {
|
|
+ ItemStack stack = CraftItemStack.asBukkitCopy(itemStack);
|
|
+ list.add(stack);
|
|
+ }
|
|
+ return list;
|
|
} else {
|
|
return Collections.emptyList();
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java.rej b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java.rej
|
|
deleted file mode 100644
|
|
index a0c4f6c35175538d82f4019f306aeca122522e20..0000000000000000000000000000000000000000
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java.rej
|
|
+++ /dev/null
|
|
@@ -1,16 +0,0 @@
|
|
-diff a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java (rejected hunks)
|
|
-@@ -675,8 +677,12 @@ public class CraftBlock implements Block {
|
|
-
|
|
- // Modelled off EntityHuman#hasBlock
|
|
- if (item == null || !iblockdata.isAlwaysDestroyable() || nms.canDestroySpecialBlock(iblockdata)) {
|
|
-- return net.minecraft.server.Block.getDrops(iblockdata, (WorldServer) world.getMinecraftWorld(), position, world.getTileEntity(position), entity == null ? null : ((CraftEntity) entity).getHandle(), nms)
|
|
-- .stream().map(CraftItemStack::asBukkitCopy).collect(Collectors.toList());
|
|
-+ List<ItemStack> list = new ArrayList<>();
|
|
-+ for (net.minecraft.server.ItemStack itemStack : net.minecraft.server.Block.getDrops(iblockdata, (WorldServer) world.getMinecraftWorld(), position, world.getTileEntity(position), entity == null ? null : ((CraftEntity) entity).getHandle(), nms)) {
|
|
-+ ItemStack stack = CraftItemStack.asBukkitCopy(itemStack);
|
|
-+ list.add(stack);
|
|
-+ }
|
|
-+ return list;
|
|
- } else {
|
|
- return Collections.emptyList();
|
|
- }
|