|
|
|
|
@@ -4,193 +4,6 @@ Date: Sun, 12 May 2024 20:58:42 +0300
|
|
|
|
|
Subject: [PATCH] Delete Timings
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/co/aikar/timings/MinecraftTimings.java b/src/main/java/co/aikar/timings/MinecraftTimings.java
|
|
|
|
|
deleted file mode 100644
|
|
|
|
|
index 4b467f1af93452d13829f756d55dee18b8889d40..0000000000000000000000000000000000000000
|
|
|
|
|
--- a/src/main/java/co/aikar/timings/MinecraftTimings.java
|
|
|
|
|
+++ /dev/null
|
|
|
|
|
@@ -1,181 +0,0 @@
|
|
|
|
|
-package co.aikar.timings;
|
|
|
|
|
-
|
|
|
|
|
-import com.google.common.collect.MapMaker;
|
|
|
|
|
-import io.papermc.paper.configuration.GlobalConfiguration;
|
|
|
|
|
-import net.minecraft.commands.functions.CommandFunction;
|
|
|
|
|
-import net.minecraft.network.protocol.Packet;
|
|
|
|
|
-import net.minecraft.world.level.block.Block;
|
|
|
|
|
-import net.minecraft.world.level.block.entity.BlockEntity;
|
|
|
|
|
-import org.bukkit.plugin.Plugin;
|
|
|
|
|
-import org.bukkit.scheduler.BukkitTask;
|
|
|
|
|
-
|
|
|
|
|
-import org.bukkit.craftbukkit.scheduler.CraftTask;
|
|
|
|
|
-
|
|
|
|
|
-import java.util.Map;
|
|
|
|
|
-
|
|
|
|
|
-// TODO: Re-implement missing timers
|
|
|
|
|
-@Deprecated(forRemoval = true)
|
|
|
|
|
-public final class MinecraftTimings {
|
|
|
|
|
-
|
|
|
|
|
- public static final Timing serverOversleep = Timings.ofSafe("Server Oversleep");
|
|
|
|
|
- public static final Timing playerListTimer = Timings.ofSafe("Player List");
|
|
|
|
|
- public static final Timing commandFunctionsTimer = Timings.ofSafe("Command Functions");
|
|
|
|
|
- public static final Timing connectionTimer = Timings.ofSafe("Connection Handler");
|
|
|
|
|
- public static final Timing tickablesTimer = Timings.ofSafe("Tickables");
|
|
|
|
|
- public static final Timing minecraftSchedulerTimer = Timings.ofSafe("Minecraft Scheduler");
|
|
|
|
|
- public static final Timing bukkitSchedulerTimer = Timings.ofSafe("Bukkit Scheduler");
|
|
|
|
|
- public static final Timing bukkitSchedulerPendingTimer = Timings.ofSafe("Bukkit Scheduler - Pending");
|
|
|
|
|
- public static final Timing bukkitSchedulerFinishTimer = Timings.ofSafe("Bukkit Scheduler - Finishing");
|
|
|
|
|
- public static final Timing chunkIOTickTimer = Timings.ofSafe("ChunkIOTick");
|
|
|
|
|
- public static final Timing timeUpdateTimer = Timings.ofSafe("Time Update");
|
|
|
|
|
- public static final Timing serverCommandTimer = Timings.ofSafe("Server Command");
|
|
|
|
|
- public static final Timing savePlayers = Timings.ofSafe("Save Players");
|
|
|
|
|
-
|
|
|
|
|
- public static final Timing tickEntityTimer = Timings.ofSafe("## tickEntity");
|
|
|
|
|
- public static final Timing tickTileEntityTimer = Timings.ofSafe("## tickTileEntity");
|
|
|
|
|
- public static final Timing packetProcessTimer = Timings.ofSafe("## Packet Processing");
|
|
|
|
|
- public static final Timing scheduledBlocksTimer = Timings.ofSafe("## Scheduled Blocks");
|
|
|
|
|
- public static final Timing structureGenerationTimer = Timings.ofSafe("Structure Generation");
|
|
|
|
|
-
|
|
|
|
|
- public static final Timing processQueueTimer = Timings.ofSafe("processQueue");
|
|
|
|
|
- public static final Timing processTasksTimer = Timings.ofSafe("processTasks");
|
|
|
|
|
-
|
|
|
|
|
- public static final Timing playerCommandTimer = Timings.ofSafe("playerCommand");
|
|
|
|
|
-
|
|
|
|
|
- public static final Timing entityActivationCheckTimer = Timings.ofSafe("entityActivationCheck");
|
|
|
|
|
-
|
|
|
|
|
- public static final Timing antiXrayUpdateTimer = Timings.ofSafe("anti-xray - update");
|
|
|
|
|
- public static final Timing antiXrayObfuscateTimer = Timings.ofSafe("anti-xray - obfuscate");
|
|
|
|
|
- public static final Timing scoreboardScoreSearch = Timings.ofSafe("Scoreboard score search"); // Paper - add timings for scoreboard search
|
|
|
|
|
- public static final Timing distanceManagerTick = Timings.ofSafe("Distance Manager Tick"); // Paper - add timings for distance manager
|
|
|
|
|
-
|
|
|
|
|
- public static final Timing midTickChunkTasks = Timings.ofSafe("Mid Tick Chunk Tasks");
|
|
|
|
|
-
|
|
|
|
|
- private static final Map<Class<?>, String> taskNameCache = new MapMaker().weakKeys().makeMap();
|
|
|
|
|
-
|
|
|
|
|
- private MinecraftTimings() {}
|
|
|
|
|
-
|
|
|
|
|
- public static Timing getInternalTaskName(String taskName) {
|
|
|
|
|
- return Timings.ofSafe(taskName);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * Gets a timer associated with a plugins tasks.
|
|
|
|
|
- * @param bukkitTask
|
|
|
|
|
- * @param period
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static Timing getPluginTaskTimings(BukkitTask bukkitTask, long period) {
|
|
|
|
|
- if (!bukkitTask.isSync()) {
|
|
|
|
|
- return NullTimingHandler.NULL;
|
|
|
|
|
- }
|
|
|
|
|
- Plugin plugin;
|
|
|
|
|
-
|
|
|
|
|
- CraftTask craftTask = (CraftTask) bukkitTask;
|
|
|
|
|
-
|
|
|
|
|
- final Class<?> taskClass = craftTask.getTaskClass();
|
|
|
|
|
- if (bukkitTask.getOwner() != null) {
|
|
|
|
|
- plugin = bukkitTask.getOwner();
|
|
|
|
|
- } else {
|
|
|
|
|
- plugin = TimingsManager.getPluginByClassloader(taskClass);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- final String taskname = taskNameCache.computeIfAbsent(taskClass, clazz -> {
|
|
|
|
|
- try {
|
|
|
|
|
- String clsName = !clazz.isMemberClass()
|
|
|
|
|
- ? clazz.getName()
|
|
|
|
|
- : clazz.getCanonicalName();
|
|
|
|
|
- if (clsName != null && clsName.contains("$Lambda$")) {
|
|
|
|
|
- clsName = clsName.replaceAll("(Lambda\\$.*?)/.*", "$1");
|
|
|
|
|
- }
|
|
|
|
|
- return clsName != null ? clsName : "UnknownTask";
|
|
|
|
|
- } catch (Throwable ex) {
|
|
|
|
|
- new Exception("Error occurred detecting class name", ex).printStackTrace();
|
|
|
|
|
- return "MangledClassFile";
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
-
|
|
|
|
|
- StringBuilder name = new StringBuilder(64);
|
|
|
|
|
- name.append("Task: ").append(taskname);
|
|
|
|
|
- if (period > 0) {
|
|
|
|
|
- name.append(" (interval:").append(period).append(")");
|
|
|
|
|
- } else {
|
|
|
|
|
- name.append(" (Single)");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (plugin == null) {
|
|
|
|
|
- return Timings.ofSafe(null, name.toString());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- return Timings.ofSafe(plugin, name.toString());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * Get a named timer for the specified entity type to track type specific timings.
|
|
|
|
|
- * @param entityType
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static Timing getEntityTimings(String entityType, String type) {
|
|
|
|
|
- return Timings.ofSafe("Minecraft", "## tickEntity - " + entityType + " - " + type, tickEntityTimer);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static Timing getBehaviorTimings(String type) {
|
|
|
|
|
- return Timings.ofSafe("## Behavior - " + type);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static Timing getSensorTimings(String type, int rate) {
|
|
|
|
|
- return Timings.ofSafe("## Sensor - " + type + " (Default rate: " + rate + ")");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- /**
|
|
|
|
|
- * Get a named timer for the specified tile entity type to track type specific timings.
|
|
|
|
|
- * @param entity
|
|
|
|
|
- * @return
|
|
|
|
|
- */
|
|
|
|
|
- public static Timing getTileEntityTimings(BlockEntity entity) {
|
|
|
|
|
- String entityType = entity.getClass().getName();
|
|
|
|
|
- return Timings.ofSafe("Minecraft", "## tickTileEntity - " + entityType, tickTileEntityTimer);
|
|
|
|
|
- }
|
|
|
|
|
- public static Timing getCancelTasksTimer() {
|
|
|
|
|
- return Timings.ofSafe("Cancel Tasks");
|
|
|
|
|
- }
|
|
|
|
|
- public static Timing getCancelTasksTimer(Plugin plugin) {
|
|
|
|
|
- return Timings.ofSafe(plugin, "Cancel Tasks");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static void stopServer() {
|
|
|
|
|
- TimingsManager.stopServer();
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static Timing getBlockTiming(Block block) {
|
|
|
|
|
- return Timings.ofSafe("## Scheduled Block: " + block.toString(), scheduledBlocksTimer);
|
|
|
|
|
- }
|
|
|
|
|
-/*
|
|
|
|
|
- public static Timing getStructureTiming(StructureGenerator structureGenerator) {
|
|
|
|
|
- return Timings.ofSafe("Structure Generator - " + structureGenerator.getName(), structureGenerationTimer);
|
|
|
|
|
- }*/
|
|
|
|
|
-
|
|
|
|
|
- public static Timing getPacketTiming(Packet packet) {
|
|
|
|
|
- return Timings.ofSafe("## Packet - " + packet.getClass().getName(), packetProcessTimer);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static Timing getCommandFunctionTiming(CommandFunction<?> function) {
|
|
|
|
|
- return Timings.ofSafe("Command Function - " + function.id());
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static void processConfig(GlobalConfiguration.Timings config) {
|
|
|
|
|
- TimingsManager.url = config.url;
|
|
|
|
|
- if (!TimingsManager.url.endsWith("/")) {
|
|
|
|
|
- TimingsManager.url += "/";
|
|
|
|
|
- }
|
|
|
|
|
- TimingsManager.privacy = config.serverNamePrivacy;
|
|
|
|
|
- if (!config.hiddenConfigEntries.contains("proxies.velocity.secret")) {
|
|
|
|
|
- config.hiddenConfigEntries.add("proxies.velocity.secret");
|
|
|
|
|
- }
|
|
|
|
|
- TimingsManager.hiddenConfigs.addAll(config.hiddenConfigEntries);
|
|
|
|
|
- co.aikar.timings.Timings.setVerboseTimingsEnabled(config.verbose);
|
|
|
|
|
- co.aikar.timings.Timings.setTimingsEnabled(config.enabled);
|
|
|
|
|
- co.aikar.timings.Timings.setHistoryInterval(config.historyInterval * 20);
|
|
|
|
|
- co.aikar.timings.Timings.setHistoryLength(config.historyLength * 20);
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
|
|
|
|
|
deleted file mode 100644
|
|
|
|
|
index 7620c72a4c243cbeea245203ce03a97cbfa7d922..0000000000000000000000000000000000000000
|
|
|
|
|
@@ -585,166 +398,6 @@ index 7620c72a4c243cbeea245203ce03a97cbfa7d922..00000000000000000000000000000000
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
diff --git a/src/main/java/co/aikar/timings/WorldTimingsHandler.java b/src/main/java/co/aikar/timings/WorldTimingsHandler.java
|
|
|
|
|
deleted file mode 100644
|
|
|
|
|
index 22687667ec69a954261e55e59261286ac1b8b8cd..0000000000000000000000000000000000000000
|
|
|
|
|
--- a/src/main/java/co/aikar/timings/WorldTimingsHandler.java
|
|
|
|
|
+++ /dev/null
|
|
|
|
|
@@ -1,140 +0,0 @@
|
|
|
|
|
-package co.aikar.timings;
|
|
|
|
|
-
|
|
|
|
|
-import net.minecraft.server.level.ServerLevel;
|
|
|
|
|
-import net.minecraft.world.level.Level;
|
|
|
|
|
-import net.minecraft.world.level.storage.PrimaryLevelData;
|
|
|
|
|
-
|
|
|
|
|
-/**
|
|
|
|
|
- * Set of timers per world, to track world specific timings.
|
|
|
|
|
- */
|
|
|
|
|
-// TODO: Re-implement missing timers
|
|
|
|
|
-@Deprecated(forRemoval = true)
|
|
|
|
|
-public class WorldTimingsHandler {
|
|
|
|
|
- public final Timing mobSpawn;
|
|
|
|
|
- public final Timing doChunkUnload;
|
|
|
|
|
- public final Timing doPortalForcer;
|
|
|
|
|
- public final Timing scheduledBlocks;
|
|
|
|
|
- public final Timing scheduledBlocksCleanup;
|
|
|
|
|
- public final Timing scheduledBlocksTicking;
|
|
|
|
|
- public final Timing chunkTicks;
|
|
|
|
|
- public final Timing lightChunk;
|
|
|
|
|
- public final Timing chunkTicksBlocks;
|
|
|
|
|
- public final Timing doVillages;
|
|
|
|
|
- public final Timing doChunkMap;
|
|
|
|
|
- public final Timing doChunkMapUpdate;
|
|
|
|
|
- public final Timing doChunkMapToUpdate;
|
|
|
|
|
- public final Timing doChunkMapSortMissing;
|
|
|
|
|
- public final Timing doChunkMapSortSendToPlayers;
|
|
|
|
|
- public final Timing doChunkMapPlayersNeedingChunks;
|
|
|
|
|
- public final Timing doChunkMapPendingSendToPlayers;
|
|
|
|
|
- public final Timing doChunkMapUnloadChunks;
|
|
|
|
|
- public final Timing doChunkGC;
|
|
|
|
|
- public final Timing doSounds;
|
|
|
|
|
- public final Timing entityRemoval;
|
|
|
|
|
- public final Timing entityTick;
|
|
|
|
|
- public final Timing tileEntityTick;
|
|
|
|
|
- public final Timing tileEntityPending;
|
|
|
|
|
- public final Timing tracker1;
|
|
|
|
|
- public final Timing tracker2;
|
|
|
|
|
- public final Timing doTick;
|
|
|
|
|
- public final Timing tickEntities;
|
|
|
|
|
- public final Timing chunks;
|
|
|
|
|
- public final Timing newEntities;
|
|
|
|
|
- public final Timing raids;
|
|
|
|
|
- public final Timing chunkProviderTick;
|
|
|
|
|
- public final Timing broadcastChunkUpdates;
|
|
|
|
|
- public final Timing countNaturalMobs;
|
|
|
|
|
-
|
|
|
|
|
- public final Timing chunkLoad;
|
|
|
|
|
- public final Timing chunkLoadPopulate;
|
|
|
|
|
- public final Timing syncChunkLoad;
|
|
|
|
|
- public final Timing chunkLoadLevelTimer;
|
|
|
|
|
- public final Timing chunkIO;
|
|
|
|
|
- public final Timing chunkPostLoad;
|
|
|
|
|
- public final Timing worldSave;
|
|
|
|
|
- public final Timing worldSaveChunks;
|
|
|
|
|
- public final Timing worldSaveLevel;
|
|
|
|
|
- public final Timing chunkSaveData;
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- public final Timing miscMobSpawning;
|
|
|
|
|
-
|
|
|
|
|
- public final Timing poiUnload;
|
|
|
|
|
- public final Timing chunkUnload;
|
|
|
|
|
- public final Timing poiSaveDataSerialization;
|
|
|
|
|
- public final Timing chunkSave;
|
|
|
|
|
- public final Timing chunkSaveDataSerialization;
|
|
|
|
|
- public final Timing chunkSaveIOWait;
|
|
|
|
|
- public final Timing chunkUnloadPrepareSave;
|
|
|
|
|
- public final Timing chunkUnloadPOISerialization;
|
|
|
|
|
- public final Timing chunkUnloadDataSave;
|
|
|
|
|
-
|
|
|
|
|
- public WorldTimingsHandler(Level server) {
|
|
|
|
|
- String name = ((PrimaryLevelData) server.getLevelData()).getLevelName() + " - ";
|
|
|
|
|
-
|
|
|
|
|
- mobSpawn = Timings.ofSafe(name + "mobSpawn");
|
|
|
|
|
- doChunkUnload = Timings.ofSafe(name + "doChunkUnload");
|
|
|
|
|
- scheduledBlocks = Timings.ofSafe(name + "Scheduled Blocks");
|
|
|
|
|
- scheduledBlocksCleanup = Timings.ofSafe(name + "Scheduled Blocks - Cleanup");
|
|
|
|
|
- scheduledBlocksTicking = Timings.ofSafe(name + "Scheduled Blocks - Ticking");
|
|
|
|
|
- chunkTicks = Timings.ofSafe(name + "Chunk Ticks");
|
|
|
|
|
- lightChunk = Timings.ofSafe(name + "Light Chunk");
|
|
|
|
|
- chunkTicksBlocks = Timings.ofSafe(name + "Chunk Ticks - Blocks");
|
|
|
|
|
- doVillages = Timings.ofSafe(name + "doVillages");
|
|
|
|
|
- doChunkMap = Timings.ofSafe(name + "doChunkMap");
|
|
|
|
|
- doChunkMapUpdate = Timings.ofSafe(name + "doChunkMap - Update");
|
|
|
|
|
- doChunkMapToUpdate = Timings.ofSafe(name + "doChunkMap - To Update");
|
|
|
|
|
- doChunkMapSortMissing = Timings.ofSafe(name + "doChunkMap - Sort Missing");
|
|
|
|
|
- doChunkMapSortSendToPlayers = Timings.ofSafe(name + "doChunkMap - Sort Send To Players");
|
|
|
|
|
- doChunkMapPlayersNeedingChunks = Timings.ofSafe(name + "doChunkMap - Players Needing Chunks");
|
|
|
|
|
- doChunkMapPendingSendToPlayers = Timings.ofSafe(name + "doChunkMap - Pending Send To Players");
|
|
|
|
|
- doChunkMapUnloadChunks = Timings.ofSafe(name + "doChunkMap - Unload Chunks");
|
|
|
|
|
- doSounds = Timings.ofSafe(name + "doSounds");
|
|
|
|
|
- doChunkGC = Timings.ofSafe(name + "doChunkGC");
|
|
|
|
|
- doPortalForcer = Timings.ofSafe(name + "doPortalForcer");
|
|
|
|
|
- entityTick = Timings.ofSafe(name + "entityTick");
|
|
|
|
|
- entityRemoval = Timings.ofSafe(name + "entityRemoval");
|
|
|
|
|
- tileEntityTick = Timings.ofSafe(name + "tileEntityTick");
|
|
|
|
|
- tileEntityPending = Timings.ofSafe(name + "tileEntityPending");
|
|
|
|
|
-
|
|
|
|
|
- chunkLoad = Timings.ofSafe(name + "Chunk Load");
|
|
|
|
|
- chunkLoadPopulate = Timings.ofSafe(name + "Chunk Load - Populate");
|
|
|
|
|
- syncChunkLoad = Timings.ofSafe(name + "Sync Chunk Load");
|
|
|
|
|
- chunkLoadLevelTimer = Timings.ofSafe(name + "Chunk Load - Load Level");
|
|
|
|
|
- chunkIO = Timings.ofSafe(name + "Chunk Load - DiskIO");
|
|
|
|
|
- chunkPostLoad = Timings.ofSafe(name + "Chunk Load - Post Load");
|
|
|
|
|
- worldSave = Timings.ofSafe(name + "World Save");
|
|
|
|
|
- worldSaveLevel = Timings.ofSafe(name + "World Save - Level");
|
|
|
|
|
- worldSaveChunks = Timings.ofSafe(name + "World Save - Chunks");
|
|
|
|
|
- chunkSaveData = Timings.ofSafe(name + "Chunk Save - Data");
|
|
|
|
|
-
|
|
|
|
|
- tracker1 = Timings.ofSafe(name + "tracker stage 1");
|
|
|
|
|
- tracker2 = Timings.ofSafe(name + "tracker stage 2");
|
|
|
|
|
- doTick = Timings.ofSafe(name + "doTick");
|
|
|
|
|
- tickEntities = Timings.ofSafe(name + "tickEntities");
|
|
|
|
|
-
|
|
|
|
|
- chunks = Timings.ofSafe(name + "Chunks");
|
|
|
|
|
- newEntities = Timings.ofSafe(name + "New entity registration");
|
|
|
|
|
- raids = Timings.ofSafe(name + "Raids");
|
|
|
|
|
- chunkProviderTick = Timings.ofSafe(name + "Chunk provider tick");
|
|
|
|
|
- broadcastChunkUpdates = Timings.ofSafe(name + "Broadcast chunk updates");
|
|
|
|
|
- countNaturalMobs = Timings.ofSafe(name + "Count natural mobs");
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
- miscMobSpawning = Timings.ofSafe(name + "Mob spawning - Misc");
|
|
|
|
|
-
|
|
|
|
|
- poiUnload = Timings.ofSafe(name + "Chunk unload - POI");
|
|
|
|
|
- chunkUnload = Timings.ofSafe(name + "Chunk unload - Chunk");
|
|
|
|
|
- poiSaveDataSerialization = Timings.ofSafe(name + "Chunk save - POI Data serialization");
|
|
|
|
|
- chunkSave = Timings.ofSafe(name + "Chunk save - Chunk");
|
|
|
|
|
- chunkSaveDataSerialization = Timings.ofSafe(name + "Chunk save - Chunk Data serialization");
|
|
|
|
|
- chunkSaveIOWait = Timings.ofSafe(name + "Chunk save - Chunk IO Wait");
|
|
|
|
|
- chunkUnloadPrepareSave = Timings.ofSafe(name + "Chunk unload - Async Save Prepare");
|
|
|
|
|
- chunkUnloadPOISerialization = Timings.ofSafe(name + "Chunk unload - POI Data Serialization");
|
|
|
|
|
- chunkUnloadDataSave = Timings.ofSafe(name + "Chunk unload - Data Serialization");
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public static Timing getTickList(ServerLevel worldserver, String timingsType) {
|
|
|
|
|
- return Timings.ofSafe(((PrimaryLevelData) worldserver.getLevelData()).getLevelName() + " - Scheduled " + timingsType);
|
|
|
|
|
- }
|
|
|
|
|
-}
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
|
|
|
|
|
index e1ffd62f4ebceecb9bc5471df3da406cffea0483..5b446e6ac151f99f64f0c442d0b40b5e251bc4c4 100644
|
|
|
|
|
--- a/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
|
|
|
|
|
+++ b/src/main/java/io/papermc/paper/chunk/system/scheduling/ChunkHolderManager.java
|
|
|
|
|
@@ -1316,9 +1316,7 @@ public final class ChunkHolderManager {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public boolean processTicketUpdates() {
|
|
|
|
|
- //co.aikar.timings.MinecraftTimings.distanceManagerTick.startTiming(); try { // Paper - add timings for distance manager // Purpur
|
|
|
|
|
return this.processTicketUpdates(true, true, null);
|
|
|
|
|
- //} finally { co.aikar.timings.MinecraftTimings.distanceManagerTick.stopTiming(); } // Paper - add timings for distance manager // Purpur
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static final ThreadLocal<List<ChunkProgressionTask>> CURRENT_TICKET_UPDATE_SCHEDULING = new ThreadLocal<>();
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java b/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java
|
|
|
|
|
index 24121a43aeb5e9bce013f30c92dddd15f99736c6..791cb04a13597eee4dbd28fabe2835ab41eb13f9 100644
|
|
|
|
|
--- a/src/main/java/io/papermc/paper/command/brigadier/bukkit/BukkitCommandNode.java
|
|
|
|
|
@@ -767,7 +420,7 @@ index 24121a43aeb5e9bce013f30c92dddd15f99736c6..791cb04a13597eee4dbd28fabe2835ab
|
|
|
|
|
String content = context.getRange().get(context.getInput());
|
|
|
|
|
String[] args = org.apache.commons.lang3.StringUtils.split(content, ' '); // fix adjacent spaces (from console/plugins) causing empty array elements
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
|
|
|
|
index 17961dd8fbe306dfcb721db2830f0156db453a62..5dfb0c95642ab2e16501b9f95d96e02354643f34 100644
|
|
|
|
|
index 69fbb3ff023db00fb82a1c0235c05afdacb47abd..9d7f21cbd3ecaf5a4da3dceb43b223ff086b245b 100644
|
|
|
|
|
--- a/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
|
|
|
|
+++ b/src/main/java/io/papermc/paper/configuration/GlobalConfiguration.java
|
|
|
|
|
@@ -1,6 +1,5 @@
|
|
|
|
|
@@ -849,11 +502,11 @@ index 097500a59336db1bbfffcd1aa4cff7a8586e46ec..35b00c139864dd7925d46a2d6a317d7e
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/network/protocol/PacketUtils.java b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
|
|
|
|
|
index 8c134a642ccaf3530022f2e675a858d726e1dda4..d6daa27a8d7aca00b181e90d789f4249e8437d29 100644
|
|
|
|
|
index 0c8fe5b2500480c3a9e9ab3285ad22e0e599d953..f7197f1347251a37dd0f6d9ffa2f09bc3a4e1233 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/network/protocol/PacketUtils.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/network/protocol/PacketUtils.java
|
|
|
|
|
@@ -50,8 +50,7 @@ public class PacketUtils {
|
|
|
|
|
try { // Paper - detailed watchdog information
|
|
|
|
|
@@ -31,8 +31,7 @@ public class PacketUtils {
|
|
|
|
|
engine.executeIfPossible(() -> {
|
|
|
|
|
if (listener instanceof ServerCommonPacketListenerImpl serverCommonPacketListener && serverCommonPacketListener.processedDisconnect) return; // CraftBukkit - Don't handle sync packets for kicked players
|
|
|
|
|
if (listener.shouldHandleMessage(packet)) {
|
|
|
|
|
- co.aikar.timings.Timing timing = co.aikar.timings.MinecraftTimings.getPacketTiming(packet); // Paper - timings
|
|
|
|
|
@@ -863,7 +516,7 @@ index 8c134a642ccaf3530022f2e675a858d726e1dda4..d6daa27a8d7aca00b181e90d789f4249
|
|
|
|
|
} catch (Exception exception) {
|
|
|
|
|
if (exception instanceof ReportedException) {
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
|
index 105497ecdc207021febc3ba3156d2f9253f906f9..d3ee7a004d17d47b778e85dd655aff931f0f980d 100644
|
|
|
|
|
index 40a4273275822a8b3013807a9dd0716a0c93eaf0..2593d6c62ef8f45d35437cbfdfc938c4fbb4bbaf 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
|
|
|
@@ -3,7 +3,6 @@ package net.minecraft.server;
|
|
|
|
|
@@ -874,16 +527,16 @@ index 105497ecdc207021febc3ba3156d2f9253f906f9..d3ee7a004d17d47b778e85dd655aff93
|
|
|
|
|
import com.destroystokyo.paper.event.server.PaperServerListPingEvent;
|
|
|
|
|
import com.google.common.base.Stopwatch;
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
@@ -190,8 +189,6 @@ import org.bukkit.craftbukkit.CraftRegistry;
|
|
|
|
|
@@ -196,8 +195,6 @@ import org.bukkit.craftbukkit.CraftRegistry;
|
|
|
|
|
import org.bukkit.event.server.ServerLoadEvent;
|
|
|
|
|
// CraftBukkit end
|
|
|
|
|
|
|
|
|
|
-import co.aikar.timings.MinecraftTimings; // Paper
|
|
|
|
|
-
|
|
|
|
|
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, CommandSource, AutoCloseable {
|
|
|
|
|
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, ChunkIOErrorReporter, CommandSource, AutoCloseable, ca.spottedleaf.moonrise.patches.chunk_system.server.ChunkSystemMinecraftServer { // Paper - rewrite chunk system
|
|
|
|
|
|
|
|
|
|
private static MinecraftServer SERVER; // Paper
|
|
|
|
|
@@ -975,7 +972,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
|
@@ -968,7 +965,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
|
|
|
|
|
|
MinecraftServer.LOGGER.info("Stopping server");
|
|
|
|
|
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
|
|
|
|
|
@@ -891,61 +544,7 @@ index 105497ecdc207021febc3ba3156d2f9253f906f9..d3ee7a004d17d47b778e85dd655aff93
|
|
|
|
|
// Purpur start
|
|
|
|
|
if (upnp) {
|
|
|
|
|
if (dev.omega24.upnp4j.UPnP4J.close(this.getPort(), dev.omega24.upnp4j.util.Protocol.TCP)) {
|
|
|
|
|
@@ -1487,34 +1483,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
- // co.aikar.timings.MinecraftTimings.midTickChunkTasks.startTiming(); // Purpur
|
|
|
|
|
- try {
|
|
|
|
|
- for (;;) {
|
|
|
|
|
- boolean moreTasks = this.tickMidTickTasks();
|
|
|
|
|
- long currTime = System.nanoTime();
|
|
|
|
|
- long diff = currTime - startTime;
|
|
|
|
|
-
|
|
|
|
|
- if (!moreTasks || diff >= MAX_CHUNK_EXEC_TIME) {
|
|
|
|
|
- if (!moreTasks) {
|
|
|
|
|
- lastMidTickExecuteFailure = currTime;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- // note: negative values reduce the time
|
|
|
|
|
- long overuse = diff - MAX_CHUNK_EXEC_TIME;
|
|
|
|
|
- if (overuse >= (10L * 1000L * 1000L)) { // 10ms
|
|
|
|
|
- // make sure something like a GC or dumb plugin doesn't screw us over...
|
|
|
|
|
- overuse = 10L * 1000L * 1000L; // 10ms
|
|
|
|
|
- }
|
|
|
|
|
+ for (;;) {
|
|
|
|
|
+ boolean moreTasks = this.tickMidTickTasks();
|
|
|
|
|
+ long currTime = System.nanoTime();
|
|
|
|
|
+ long diff = currTime - startTime;
|
|
|
|
|
|
|
|
|
|
- double overuseCount = (double)overuse/(double)MAX_CHUNK_EXEC_TIME;
|
|
|
|
|
- long extraSleep = (long)Math.round(overuseCount*CHUNK_TASK_QUEUE_BACKOFF_MIN_TIME);
|
|
|
|
|
+ if (!moreTasks || diff >= MAX_CHUNK_EXEC_TIME) {
|
|
|
|
|
+ if (!moreTasks) {
|
|
|
|
|
+ lastMidTickExecuteFailure = currTime;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
- lastMidTickExecute = currTime + extraSleep;
|
|
|
|
|
- return;
|
|
|
|
|
+ // note: negative values reduce the time
|
|
|
|
|
+ long overuse = diff - MAX_CHUNK_EXEC_TIME;
|
|
|
|
|
+ if (overuse >= (10L * 1000L * 1000L)) { // 10ms
|
|
|
|
|
+ // make sure something like a GC or dumb plugin doesn't screw us over...
|
|
|
|
|
+ overuse = 10L * 1000L * 1000L; // 10ms
|
|
|
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ double overuseCount = (double)overuse/(double)MAX_CHUNK_EXEC_TIME;
|
|
|
|
|
+ long extraSleep = (long)Math.round(overuseCount*CHUNK_TASK_QUEUE_BACKOFF_MIN_TIME);
|
|
|
|
|
+
|
|
|
|
|
+ lastMidTickExecute = currTime + extraSleep;
|
|
|
|
|
+ return;
|
|
|
|
|
}
|
|
|
|
|
- } finally {
|
|
|
|
|
- // co.aikar.timings.MinecraftTimings.midTickChunkTasks.stopTiming(); // Purpur
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// Paper end - execute chunk tasks mid tick
|
|
|
|
|
@@ -1589,15 +1580,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
|
@@ -1504,15 +1500,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void tickServer(BooleanSupplier shouldKeepTicking) {
|
|
|
|
|
@@ -963,8 +562,8 @@ index 105497ecdc207021febc3ba3156d2f9253f906f9..d3ee7a004d17d47b778e85dd655aff93
|
|
|
|
|
// Paper end
|
|
|
|
|
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
|
|
|
|
|
|
|
|
|
|
@@ -1634,9 +1624,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
|
// Paper end - Incremental chunk and player saving
|
|
|
|
|
@@ -1537,9 +1532,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
|
}
|
|
|
|
|
io.papermc.paper.util.CachedLists.reset(); // Paper
|
|
|
|
|
// Paper start - move executeAll() into full server tick timing
|
|
|
|
|
- //try (co.aikar.timings.Timing ignored = MinecraftTimings.processTasksTimer.startTiming()) { // Purpur
|
|
|
|
|
@@ -974,7 +573,7 @@ index 105497ecdc207021febc3ba3156d2f9253f906f9..d3ee7a004d17d47b778e85dd655aff93
|
|
|
|
|
// Paper end
|
|
|
|
|
// Paper start - Server Tick Events
|
|
|
|
|
long endTime = System.nanoTime();
|
|
|
|
|
@@ -1659,7 +1647,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
|
@@ -1562,7 +1555,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
|
|
|
|
this.logTickMethodTime(i);
|
|
|
|
|
//this.profiler.pop(); // Purpur
|
|
|
|
|
org.spigotmc.WatchdogThread.tick(); // Spigot
|
|
|
|
|
@@ -983,10 +582,10 @@ index 105497ecdc207021febc3ba3156d2f9253f906f9..d3ee7a004d17d47b778e85dd655aff93
|
|
|
|
|
|
|
|
|
|
private void logTickMethodTime(long tickStartTime) {
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
|
|
|
index 1e74d2e2840dbe17c67e81683fdf451e2de8cd6f..7140adf3dcace6f082540663e2cfdf4773a9c0e5 100644
|
|
|
|
|
index d11f052f5432b75f25aefd967ebff936a72df4e1..5961b224aa0cb95f7e0a3838dfd6be91f12cd9fa 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
|
|
|
|
@@ -64,9 +64,6 @@ import org.apache.logging.log4j.Level;
|
|
|
|
|
@@ -66,9 +66,6 @@ import org.apache.logging.log4j.Level;
|
|
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
|
|
|
import org.apache.logging.log4j.io.IoBuilder;
|
|
|
|
|
import org.bukkit.command.CommandSender;
|
|
|
|
|
@@ -996,7 +595,7 @@ index 1e74d2e2840dbe17c67e81683fdf451e2de8cd6f..7140adf3dcace6f082540663e2cfdf47
|
|
|
|
|
import org.bukkit.event.server.ServerCommandEvent;
|
|
|
|
|
import org.bukkit.craftbukkit.util.Waitable; // Paper
|
|
|
|
|
import org.bukkit.event.server.RemoteServerCommandEvent;
|
|
|
|
|
@@ -843,21 +840,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
|
|
|
|
@@ -819,21 +816,9 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
|
|
|
|
}
|
|
|
|
|
// Paper start
|
|
|
|
|
command.set(event.getCommand());
|
|
|
|
|
@@ -1019,7 +618,7 @@ index 1e74d2e2840dbe17c67e81683fdf451e2de8cd6f..7140adf3dcace6f082540663e2cfdf47
|
|
|
|
|
// Paper start
|
|
|
|
|
if (waitableArray[0] != null) {
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
|
|
|
|
index 97545fd84b9b1716e9847cac9e233742ea7f9252..22d0b075512279f43a261877e524f2b50c33b863 100644
|
|
|
|
|
index da56e8d58f8b0391689f697807a4873fc759a26b..323c4d36b21e2312b626870df69748cd3fff13bf 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
|
|
|
|
@@ -1,6 +1,5 @@
|
|
|
|
|
@@ -1030,7 +629,7 @@ index 97545fd84b9b1716e9847cac9e233742ea7f9252..22d0b075512279f43a261877e524f2b5
|
|
|
|
|
import com.google.common.collect.ImmutableList.Builder;
|
|
|
|
|
import com.google.common.collect.Iterables;
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
|
|
|
index 7924e3c597164f71056cd58dd167ee8b1d41b9c3..90aa52efeb8ae92bf981a973415d1c11c46386d1 100644
|
|
|
|
|
index 500a735113f9f16f9d336c2bb1cad1447e5d64c4..d4a4905372a06011a60e0b1a400e41902576ce7b 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
|
|
|
|
@@ -1,7 +1,6 @@
|
|
|
|
|
@@ -1041,17 +640,18 @@ index 7924e3c597164f71056cd58dd167ee8b1d41b9c3..90aa52efeb8ae92bf981a973415d1c11
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
import com.mojang.datafixers.DataFixer;
|
|
|
|
|
import com.mojang.datafixers.util.Pair;
|
|
|
|
|
@@ -1453,9 +1452,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
|
|
|
|
currentlyTickingEntity.lazySet(entity);
|
|
|
|
|
}
|
|
|
|
|
// Paper end - log detailed entity tick information
|
|
|
|
|
@@ -1228,9 +1227,8 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void tickNonPassenger(Entity entity) {
|
|
|
|
|
- ++TimingHistory.entityTicks; // Paper - timings
|
|
|
|
|
+ //++TimingHistory.entityTicks; // Paper - timings // DivineMC - Delete Timings
|
|
|
|
|
// Spigot start
|
|
|
|
|
- co.aikar.timings.Timing timer; // Paper
|
|
|
|
|
/*if (!org.spigotmc.ActivationRange.checkIfActive(entity)) { // Paper - comment out - EAR 2, reimplement below
|
|
|
|
|
entity.tickCount++;
|
|
|
|
|
timer = entity.getType().inactiveTickTimer.startTiming(); try { // Paper - timings
|
|
|
|
|
@@ -1478,7 +1475,6 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
|
|
|
|
@@ -1253,7 +1251,6 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
|
|
|
|
|
});*/ // Purpur
|
|
|
|
|
//gameprofilerfiller.incrementCounter("tickNonPassenger"); // Purpur
|
|
|
|
|
if (isActive) { // Paper - EAR 2
|
|
|
|
|
@@ -1060,7 +660,7 @@ index 7924e3c597164f71056cd58dd167ee8b1d41b9c3..90aa52efeb8ae92bf981a973415d1c11
|
|
|
|
|
entity.postTick(); // CraftBukkit
|
|
|
|
|
} else { entity.inactiveTick(); } // Paper - EAR 2
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
|
|
|
index a8cd8e8b952ea41167156f07ac2d5dcca3325060..d2fba246a563aa1cff639129e3953439b985986a 100644
|
|
|
|
|
index 51cb32a67f81422fd59ef072633c3de523ff7405..df0471ca95bec71c9682e382d4c9bb7c91d14ed5 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
|
|
|
@@ -1,6 +1,5 @@
|
|
|
|
|
@@ -1070,24 +670,8 @@ index a8cd8e8b952ea41167156f07ac2d5dcca3325060..d2fba246a563aa1cff639129e3953439
|
|
|
|
|
import com.google.common.collect.Lists;
|
|
|
|
|
import com.google.common.collect.Maps;
|
|
|
|
|
import com.google.common.collect.Sets;
|
|
|
|
|
@@ -1273,7 +1272,6 @@ public abstract class PlayerList {
|
|
|
|
|
|
|
|
|
|
public void saveAll(int interval) {
|
|
|
|
|
io.papermc.paper.util.MCUtil.ensureMain("Save Players" , () -> { // Paper - Ensure main
|
|
|
|
|
- //MinecraftTimings.savePlayers.startTiming(); // Paper // Purpur
|
|
|
|
|
int numSaved = 0;
|
|
|
|
|
long now = MinecraftServer.currentTick;
|
|
|
|
|
for (int i = 0; i < this.players.size(); ++i) {
|
|
|
|
|
@@ -1284,7 +1282,6 @@ public abstract class PlayerList {
|
|
|
|
|
}
|
|
|
|
|
// Paper end - Incremental chunk and player saving
|
|
|
|
|
}
|
|
|
|
|
- //MinecraftTimings.savePlayers.stopTiming(); // Paper // Purpur
|
|
|
|
|
return null; }); // Paper - ensure main
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/EntityType.java b/src/main/java/net/minecraft/world/entity/EntityType.java
|
|
|
|
|
index 8120f39a9689dae1233b243b74825e9ff110eac3..4203dae9628b0576cc0b9a9160dca985b5fb0ef2 100644
|
|
|
|
|
index b4f4addfd35a1961a237fc0ab83e6285a0faeaee..bdb70ffc77e763d449f4f550701900b06bd28f39 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/world/entity/EntityType.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/EntityType.java
|
|
|
|
|
@@ -354,10 +354,6 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
|
|
|
|
@@ -1115,10 +699,10 @@ index 8120f39a9689dae1233b243b74825e9ff110eac3..4203dae9628b0576cc0b9a9160dca985
|
|
|
|
|
return this != EntityType.PLAYER && this != EntityType.LLAMA_SPIT && this != EntityType.WITHER && this != EntityType.BAT && this != EntityType.ITEM_FRAME && this != EntityType.GLOW_ITEM_FRAME && this != EntityType.LEASH_KNOT && this != EntityType.PAINTING && this != EntityType.END_CRYSTAL && this != EntityType.EVOKER_FANGS;
|
|
|
|
|
}
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
|
|
|
index def38ac6896ccdd7bab344cec13c76d74817e001..e79bab8808b113c36b3e89c977d067877b2bdd4f 100644
|
|
|
|
|
index 6aaee520213e576f131db430bd4d6df1b34ba197..a16ebe81ade583ff45c605e07a11d820557c3e77 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
|
|
|
@@ -150,8 +150,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
|
|
|
|
|
@@ -157,8 +157,6 @@ import org.bukkit.event.entity.EntityTeleportEvent;
|
|
|
|
|
import org.bukkit.event.player.PlayerItemConsumeEvent;
|
|
|
|
|
// CraftBukkit end
|
|
|
|
|
|
|
|
|
|
@@ -1168,10 +752,10 @@ index 09a7b418ddf564c0be13297f7c216db2e7ae1578..1e26b1099139d76e49fce14ee72061e1
|
|
|
|
|
this.scanRate = senseInterval;
|
|
|
|
|
this.timeToTick = (long)RANDOM.nextInt(senseInterval);
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
|
|
|
|
index 0d2cc738559e8b241539b49a35195291e78a54f2..d58e039f11670a0c1e6e999c1738020e752f434a 100644
|
|
|
|
|
index 975cd21cfe3199a3cf29439443c85d3f4ac5140e..6cd892728effd3454df6799c34fb8820c980934d 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/world/level/Level.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
|
|
|
|
@@ -174,7 +174,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
|
|
|
|
@@ -175,7 +175,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
|
|
|
|
public final com.destroystokyo.paper.antixray.ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
|
|
|
|
|
public final org.purpurmc.purpur.PurpurWorldConfig purpurConfig; // Purpur
|
|
|
|
|
public final DivineWorldConfig divinemcConfig; // DivineMC
|
|
|
|
|
@@ -1179,15 +763,15 @@ index 0d2cc738559e8b241539b49a35195291e78a54f2..d58e039f11670a0c1e6e999c1738020e
|
|
|
|
|
public static BlockPos lastPhysicsProblem; // Spigot
|
|
|
|
|
private int tileTickPosition;
|
|
|
|
|
public final Map<Explosion.CacheKey, Float> explosionDensityCache = new HashMap<>(); // Paper - Optimize explosions
|
|
|
|
|
@@ -331,7 +330,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
|
|
|
|
@@ -384,7 +383,6 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
|
|
|
|
public void onBorderSetDamageSafeZOne(WorldBorder border, double safeZoneRadius) {}
|
|
|
|
|
});
|
|
|
|
|
// CraftBukkit end
|
|
|
|
|
- this.timings = new co.aikar.timings.WorldTimingsHandler(this); // Paper - code below can generate new world and access timings
|
|
|
|
|
this.entityLookup = new ca.spottedleaf.moonrise.patches.chunk_system.level.entity.dfl.DefaultEntityLookup(this); // Paper - rewrite chunk system
|
|
|
|
|
this.chunkPacketBlockController = this.paperConfig().anticheat.antiXray.enabled ? new com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray(this, executor) : com.destroystokyo.paper.antixray.ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
|
|
|
|
|
// Paper start - optimise collisions
|
|
|
|
|
this.minSection = io.papermc.paper.util.WorldUtil.getMinSection(this);
|
|
|
|
|
@@ -1334,9 +1332,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
|
|
|
|
}
|
|
|
|
|
@@ -1018,9 +1016,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
|
|
|
|
|
}
|
|
|
|
|
this.blockEntityTickers.removeAll(toRemove); // Paper - Fix MC-117075
|
|
|
|
|
|
|
|
|
|
@@ -1198,10 +782,10 @@ index 0d2cc738559e8b241539b49a35195291e78a54f2..d58e039f11670a0c1e6e999c1738020e
|
|
|
|
|
this.spigotConfig.currentPrimedTnt = 0; // Spigot
|
|
|
|
|
}
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/level/block/Block.java b/src/main/java/net/minecraft/world/level/block/Block.java
|
|
|
|
|
index 5ae3decf100d21f7d4a471c155eaf5e00e996580..22d38bd7a8434685f2af084f1c608f48e9e6c0c2 100644
|
|
|
|
|
index daad0d67428bb49d7f0b37bec430ceb0d30564cf..df17fcc62049c2527ab31afbb14e582009f486c8 100644
|
|
|
|
|
--- a/src/main/java/net/minecraft/world/level/block/Block.java
|
|
|
|
|
+++ b/src/main/java/net/minecraft/world/level/block/Block.java
|
|
|
|
|
@@ -107,13 +107,6 @@ public class Block extends BlockBehaviour implements ItemLike {
|
|
|
|
|
@@ -106,13 +106,6 @@ public class Block extends BlockBehaviour implements ItemLike {
|
|
|
|
|
this != Blocks.STRUCTURE_BLOCK &&
|
|
|
|
|
this != Blocks.JIGSAW;
|
|
|
|
|
}
|
|
|
|
|
@@ -1234,32 +818,6 @@ index cd0e43f4c53a746dd6183a8406269f9b11ad3571..54657ac895fb2fa9c58910d5421f0082
|
|
|
|
|
// CraftBukkit start - data containers
|
|
|
|
|
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
|
|
|
|
|
public CraftPersistentDataContainer persistentDataContainer;
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
|
|
|
index 6aff380ee0224a438b36fa83cfbede4b57996d06..e8fa33e0c8a8d9847218a45e9aceba3b88aee4f1 100644
|
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
|
|
|
|
@@ -362,8 +362,10 @@ public class Main {
|
|
|
|
|
tryPreloadClass("org.jline.terminal.impl.MouseSupport");
|
|
|
|
|
tryPreloadClass("org.jline.terminal.impl.MouseSupport$1");
|
|
|
|
|
tryPreloadClass("org.jline.terminal.Terminal$MouseTracking");
|
|
|
|
|
- tryPreloadClass("co.aikar.timings.TimingHistory");
|
|
|
|
|
- tryPreloadClass("co.aikar.timings.TimingHistory$MinuteReport");
|
|
|
|
|
+ // DivineMC start - Delete Timings
|
|
|
|
|
+ // tryPreloadClass("co.aikar.timings.TimingHistory");
|
|
|
|
|
+ // tryPreloadClass("co.aikar.timings.TimingHistory$MinuteReport");
|
|
|
|
|
+ // DivineMC end
|
|
|
|
|
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext");
|
|
|
|
|
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$11");
|
|
|
|
|
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$12");
|
|
|
|
|
@@ -376,7 +378,7 @@ public class Main {
|
|
|
|
|
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$1");
|
|
|
|
|
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$2");
|
|
|
|
|
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$3");
|
|
|
|
|
- tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$4");
|
|
|
|
|
+ // tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$4"); // DivineMC - Delete Timings
|
|
|
|
|
tryPreloadClass("org.slf4j.helpers.MessageFormatter");
|
|
|
|
|
tryPreloadClass("org.slf4j.helpers.FormattingTuple");
|
|
|
|
|
tryPreloadClass("org.slf4j.helpers.BasicMarker");
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java b/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
|
|
|
|
index e68e13ac375a6418ad0785bc1c0f20af72bf6cf5..e51a9ec41054750c38f95b06881980842c2c57f3 100644
|
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/scheduler/CraftScheduler.java
|
|
|
|
|
@@ -1355,7 +913,7 @@ index d3ec817e95628f1fc8be4a29c9a0f13c7d5fd552..e9798517b9211c50a20ea5c69603aab3
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
|
|
|
index e29826bdfcdde938c1e1ea4092efccda13f52218..a59e3de2e82ac6feecb34babb60c4192596e7ef7 100644
|
|
|
|
|
index dcf90f04aec8e703d34357db569141aa3ccae35a..ff5cf90fe4ff572aa4ee3b4abc97d93828737fe4 100644
|
|
|
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
|
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
|
|
|
@@ -220,7 +220,7 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
|
|
|
|
@@ -1377,7 +935,7 @@ index e29826bdfcdde938c1e1ea4092efccda13f52218..a59e3de2e82ac6feecb34babb60c4192
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
diff --git a/src/main/java/org/spigotmc/ActivationRange.java b/src/main/java/org/spigotmc/ActivationRange.java
|
|
|
|
|
index f7644c5045b1accae4c0aaf44df26286c6cc5125..57d424d69c4fa761e673b649ce7777b6f86634e5 100644
|
|
|
|
|
index 1e8100be8d443d43e99e0c5f777e20872f6e1a7f..fd8e534a790b622d83aeac8e198d06a374a6a1c2 100644
|
|
|
|
|
--- a/src/main/java/org/spigotmc/ActivationRange.java
|
|
|
|
|
+++ b/src/main/java/org/spigotmc/ActivationRange.java
|
|
|
|
|
@@ -34,7 +34,6 @@ import net.minecraft.world.entity.projectile.FireworkRocketEntity;
|