Expand opt patches & Fix chat message signatures
This commit is contained in:
@@ -13,12 +13,13 @@
|
||||
|
||||
- **Fork of [Pufferfish](https://github.com/pufferfish-gg/Pufferfish)** for the best performance.
|
||||
- **Contains [Lithium](https://github.com/CaffeineMC/lithium-fabric) patches** which respect Vanilla parity.
|
||||
- **Efficient redstone** relying on [Alternate Current](https://github.com/SpaceWalkerRS/alternate-current), up to 4 times faster than Paper's algorithm.
|
||||
- **Efficient redstone** relying on [Alternate Current](https://github.com/SpaceWalkerRS/alternate-current), up to 4 times faster than Eigencraft's algorithm.
|
||||
- **(WIP) Implements [C2ME](https://github.com/RelativityMC/C2ME-fabric)** to improve chunk generation speed, I/O and loading.
|
||||
- **Async Pathfinding and Multithreaded Entity Tracker** from [Petal](https://github.com/Bloom-host/Petal) which drastically reduce entity load.
|
||||
- **Configurable chat report system** to disallow players from reporting others' messages to Mojang.
|
||||
- **Reduced bandwidth consumption and CPU usage** from avoiding sending useless packets in certain situations.
|
||||
- **Pre-tweaked** configuration files to reach optimal performance with minimal impact on normal behaviors.
|
||||
- **Login location** hiding feature, which adds another security layer in the logs for admins.
|
||||
- **Toggleable metrics**, no one can collect data, not even us.
|
||||
- **Bugfixes** for several Minecraft issues.
|
||||
- **Faster process** for Vanilla methods.
|
||||
- **Plugin compatibility** with Spigot & Paper plugins.
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
# To import classes from the vanilla Minecraft jar use `minecraft` as the artifactId:
|
||||
# minecraft net.minecraft.world.level.entity.LevelEntityGetterAdapter
|
||||
# minecraft net/minecraft/world/level/entity/LevelEntityGetter.java
|
||||
minecraft net/minecraft/stats/ServerRecipeBook.java
|
||||
@@ -1,257 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: ishland <ishlandmc@yeah.net>
|
||||
Date: Fri, 29 Jan 2021 09:57:47 +0800
|
||||
Subject: [PATCH] Suspected plugins report
|
||||
|
||||
Added "Suspected Plugins" to Watchdog, crash reports and exception messages
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/plugin/SimplePluginManager.java b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||
index b29143e6a49f004c74a72768b2ba40455b3165c8..6fc4cc09e2d2a7408957e971e24846a1a907958f 100644
|
||||
--- a/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||
+++ b/src/main/java/org/bukkit/plugin/SimplePluginManager.java
|
||||
@@ -624,7 +624,11 @@ public final class SimplePluginManager implements PluginManager {
|
||||
// Paper start
|
||||
private void handlePluginException(String msg, Throwable ex, Plugin plugin) {
|
||||
gg.pufferfish.pufferfish.sentry.SentryContext.setPluginContext(plugin); // Pufferfish
|
||||
- server.getLogger().log(Level.SEVERE, msg, ex);
|
||||
+ // Yatopia start - detailed report
|
||||
+ server.getLogger().log(Level.SEVERE, msg);
|
||||
+ org.yatopiamc.yatopia.api.internal.StackTraceUtils.print(ex, _msg -> server.getLogger().log(Level.SEVERE, _msg));
|
||||
+ server.getLogger().log(Level.SEVERE, org.yatopiamc.yatopia.api.internal.StackTraceUtils.EXCEPTION_DETAILS_BELOW, ex);
|
||||
+ // Yatopia end
|
||||
gg.pufferfish.pufferfish.sentry.SentryContext.removePluginContext(); // Pufferfish
|
||||
callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerPluginEnableDisableException(msg, ex, plugin)));
|
||||
}
|
||||
@@ -698,7 +702,11 @@ public final class SimplePluginManager implements PluginManager {
|
||||
gg.pufferfish.pufferfish.sentry.SentryContext.setEventContext(event, registration); // Pufferfish
|
||||
// Paper start - error reporting
|
||||
String msg = "Could not pass event " + event.getEventName() + " to " + registration.getPlugin().getDescription().getFullName();
|
||||
- server.getLogger().log(Level.SEVERE, msg, ex);
|
||||
+ // Yatopia start - detailed report
|
||||
+ server.getLogger().log(Level.SEVERE, msg);
|
||||
+ org.yatopiamc.yatopia.api.internal.StackTraceUtils.print(ex, _msg -> server.getLogger().log(Level.SEVERE, _msg));
|
||||
+ server.getLogger().log(Level.SEVERE, org.yatopiamc.yatopia.api.internal.StackTraceUtils.EXCEPTION_DETAILS_BELOW, ex);
|
||||
+ // Yatopia end
|
||||
gg.pufferfish.pufferfish.sentry.SentryContext.removeEventContext(); // Pufferfish
|
||||
if (!(event instanceof com.destroystokyo.paper.event.server.ServerExceptionEvent)) { // We don't want to cause an endless event loop
|
||||
callEvent(new com.destroystokyo.paper.event.server.ServerExceptionEvent(new com.destroystokyo.paper.exception.ServerEventException(msg, ex, registration.getPlugin(), registration.getListener(), event)));
|
||||
@@ -989,4 +997,10 @@ public final class SimplePluginManager implements PluginManager {
|
||||
}
|
||||
// Paper end
|
||||
|
||||
+ // Yatopia start - Accessor
|
||||
+ @NotNull
|
||||
+ public Collection<PluginLoader> getPluginLoaders() {
|
||||
+ return new HashSet<>(fileAssociations.values());
|
||||
+ }
|
||||
+ // Yatopia end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPlugin.java b/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
|
||||
index 3bea5dd67ad0393160ccede4ac99a3c7baa1803b..65f1aa94652d0efacb0184bf41b519adc26bef50 100644
|
||||
--- a/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
|
||||
+++ b/src/main/java/org/bukkit/plugin/java/JavaPlugin.java
|
||||
@@ -112,7 +112,7 @@ public abstract class JavaPlugin extends PluginBase {
|
||||
* @return File containing this plugin
|
||||
*/
|
||||
@NotNull
|
||||
- protected File getFile() {
|
||||
+ public File getFile() { // Yatopia
|
||||
return file;
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
||||
index a16c841751bc44e46d27fc4efbfc2ab23cc7b0d7..d1ba0d556edf6675952cb74dd31254704a9588cb 100644
|
||||
--- a/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
||||
+++ b/src/main/java/org/bukkit/plugin/java/JavaPluginLoader.java
|
||||
@@ -370,7 +370,11 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
jPlugin.setEnabled(true);
|
||||
} catch (Throwable ex) {
|
||||
gg.pufferfish.pufferfish.sentry.SentryContext.setPluginContext(plugin); // Pufferfish
|
||||
- server.getLogger().log(Level.SEVERE, "Error occurred while enabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
|
||||
+ // Yatopia start - detailed report
|
||||
+ server.getLogger().log(Level.SEVERE, "Error occurred while enabling " + plugin.getDescription().getFullName() + " (Is it up to date?)");
|
||||
+ org.yatopiamc.yatopia.api.internal.StackTraceUtils.print(ex, _msg -> server.getLogger().log(Level.SEVERE, _msg));
|
||||
+ server.getLogger().log(Level.SEVERE, org.yatopiamc.yatopia.api.internal.StackTraceUtils.EXCEPTION_DETAILS_BELOW, ex);
|
||||
+ // Yatopia end
|
||||
gg.pufferfish.pufferfish.sentry.SentryContext.removePluginContext(); // Pufferfish
|
||||
// Paper start - Disable plugins that fail to load
|
||||
this.server.getPluginManager().disablePlugin(jPlugin);
|
||||
@@ -401,7 +405,11 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
jPlugin.setEnabled(false);
|
||||
} catch (Throwable ex) {
|
||||
gg.pufferfish.pufferfish.sentry.SentryContext.setPluginContext(plugin); // Pufferfish
|
||||
- server.getLogger().log(Level.SEVERE, "Error occurred while disabling " + plugin.getDescription().getFullName() + " (Is it up to date?)", ex);
|
||||
+ // Yatopia start - detailed report
|
||||
+ server.getLogger().log(Level.SEVERE, "Error occurred while disabling " + plugin.getDescription().getFullName() + " (Is it up to date?)");
|
||||
+ org.yatopiamc.yatopia.api.internal.StackTraceUtils.print(ex, _msg -> server.getLogger().log(Level.SEVERE, _msg));
|
||||
+ server.getLogger().log(Level.SEVERE, org.yatopiamc.yatopia.api.internal.StackTraceUtils.EXCEPTION_DETAILS_BELOW, ex);
|
||||
+ // Yatopia end
|
||||
gg.pufferfish.pufferfish.sentry.SentryContext.removePluginContext(); // Pufferfish
|
||||
}
|
||||
|
||||
@@ -418,10 +426,18 @@ public final class JavaPluginLoader implements PluginLoader {
|
||||
try {
|
||||
loader.close();
|
||||
} catch (IOException ex) {
|
||||
- //
|
||||
+ // Yatopia start - detailed report
|
||||
this.server.getLogger().log(Level.WARNING, "Error closing the PluginClassLoader for '" + plugin.getDescription().getFullName() + "'", ex); // Paper - log exception
|
||||
+ org.yatopiamc.yatopia.api.internal.StackTraceUtils.print(ex, _msg -> server.getLogger().log(Level.WARNING, _msg));
|
||||
+ server.getLogger().log(Level.WARNING, org.yatopiamc.yatopia.api.internal.StackTraceUtils.EXCEPTION_DETAILS_BELOW, ex);
|
||||
+ // Yatopia end
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+ // Yatopia start - Accessor
|
||||
+ public List<PluginClassLoader> getClassLoaders() {
|
||||
+ return java.util.Collections.unmodifiableList(loaders);
|
||||
+ }
|
||||
+ // Yatopia end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||
index 4f736a267eb4c8a3bedb2d02fb30468484b991d5..c6102c9b40a05eb8ddaef40ce1c9bb8e14371389 100644
|
||||
--- a/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||
+++ b/src/main/java/org/bukkit/plugin/java/PluginClassLoader.java
|
||||
@@ -251,4 +251,13 @@ public final class PluginClassLoader extends URLClassLoader { // Spigot
|
||||
'}';
|
||||
}
|
||||
// Paper end
|
||||
+
|
||||
+ // Yatopia start - Accessor
|
||||
+ public java.util.Collection<Class<?>> getLoadedClasses() {
|
||||
+ return java.util.Collections.unmodifiableCollection(
|
||||
+ new java.util.HashSet<>(classes.values()).stream()
|
||||
+ .filter(clazz -> clazz.getClassLoader() == this).collect(java.util.stream.Collectors.toSet())
|
||||
+ );
|
||||
+ }
|
||||
+ // Yatopia end
|
||||
}
|
||||
diff --git a/src/main/java/org/yatopiamc/yatopia/api/internal/StackTraceUtils.java b/src/main/java/org/yatopiamc/yatopia/api/internal/StackTraceUtils.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..0aa9bc6ad0a85d469b29201b9da29165bafb874c
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/org/yatopiamc/yatopia/api/internal/StackTraceUtils.java
|
||||
@@ -0,0 +1,105 @@
|
||||
+package org.yatopiamc.yatopia.api.internal;
|
||||
+
|
||||
+import com.google.common.base.Suppliers;
|
||||
+import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
||||
+import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
|
||||
+import org.bukkit.Bukkit;
|
||||
+import org.bukkit.plugin.Plugin;
|
||||
+import org.bukkit.plugin.PluginLoader;
|
||||
+import org.bukkit.plugin.SimplePluginManager;
|
||||
+import org.bukkit.plugin.java.JavaPlugin;
|
||||
+import org.bukkit.plugin.java.JavaPluginLoader;
|
||||
+import org.bukkit.plugin.java.PluginClassLoader;
|
||||
+
|
||||
+import java.util.Arrays;
|
||||
+import java.util.Collection;
|
||||
+import java.util.Collections;
|
||||
+import java.util.HashSet;
|
||||
+import java.util.List;
|
||||
+import java.util.Map;
|
||||
+import java.util.Set;
|
||||
+import java.util.concurrent.TimeUnit;
|
||||
+import java.util.function.Consumer;
|
||||
+import java.util.function.Supplier;
|
||||
+import java.util.stream.Collectors;
|
||||
+
|
||||
+public class StackTraceUtils {
|
||||
+
|
||||
+ public static final String EXCEPTION_DETAILS_BELOW = "Exception details below: ";
|
||||
+
|
||||
+ private static final Supplier<Map<Plugin, Set<Class<?>>>> loadedClassesSupplier = Suppliers.memoizeWithExpiration(StackTraceUtils::scanForPluginClasses, 5, TimeUnit.SECONDS);
|
||||
+
|
||||
+ public static void print(StackTraceElement[] stackTrace, Consumer<String> out) {
|
||||
+ Set<Plugin> suspectedPlugins = getSuspectedPluginsFromStackTrace(stackTrace);
|
||||
+
|
||||
+ printSuspectedPlugins(out, suspectedPlugins);
|
||||
+ }
|
||||
+
|
||||
+ public static void print(Throwable t, Consumer<String> out) {
|
||||
+ Set<Plugin> suspectedPlugins = getSuspectedPluginsFromStackTrace(getStackTracesFromThrowable(t).toArray(new StackTraceElement[0]));
|
||||
+
|
||||
+ printSuspectedPlugins(out, suspectedPlugins);
|
||||
+ }
|
||||
+
|
||||
+ private static Set<StackTraceElement> getStackTracesFromThrowable(Throwable t) {
|
||||
+ if(t == null) return Collections.emptySet();
|
||||
+ Set<StackTraceElement> elements = new ObjectOpenHashSet<>();
|
||||
+ elements.addAll(getStackTracesFromThrowable(t.getCause()));
|
||||
+ elements.addAll(Arrays.stream(t.getSuppressed()).flatMap(throwable -> getStackTracesFromThrowable(throwable).stream()).collect(Collectors.toSet()));
|
||||
+ elements.addAll(Arrays.asList(t.getStackTrace()));
|
||||
+ return elements;
|
||||
+ }
|
||||
+
|
||||
+ private static void printSuspectedPlugins(Consumer<String> out, Set<Plugin> suspectedPlugins) {
|
||||
+ if (!suspectedPlugins.isEmpty()) {
|
||||
+ out.accept("Suspected Plugins: ");
|
||||
+ for (Plugin plugin : suspectedPlugins) {
|
||||
+ StringBuilder builder = new StringBuilder("\t");
|
||||
+ builder.append(plugin.getName())
|
||||
+ .append("{")
|
||||
+ .append(plugin.isEnabled() ? "enabled" : "disabled")
|
||||
+ .append(",").append("ver=").append(plugin.getDescription().getVersion());
|
||||
+ if (!plugin.isNaggable())
|
||||
+ builder.append(",").append("nag");
|
||||
+ if (plugin instanceof JavaPlugin)
|
||||
+ builder.append(",").append("path=").append(((JavaPlugin) plugin).getFile());
|
||||
+
|
||||
+ builder.append("}");
|
||||
+ out.accept(builder.toString());
|
||||
+ }
|
||||
+ } else {
|
||||
+ out.accept("Suspected Plugins: None");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private static Set<Plugin> getSuspectedPluginsFromStackTrace(StackTraceElement[] stackTrace) {
|
||||
+ Map<Plugin, Set<Class<?>>> loadedClasses = loadedClassesSupplier.get();
|
||||
+ Set<Plugin> suspectedPlugins = new HashSet<>();
|
||||
+ for (StackTraceElement stackTraceElement : stackTrace) {
|
||||
+ for (Map.Entry<Plugin, Set<Class<?>>> pluginSetEntry : loadedClasses.entrySet()) {
|
||||
+ if (pluginSetEntry.getValue().stream().anyMatch(clazz -> clazz.getName().equals(stackTraceElement.getClassName())))
|
||||
+ suspectedPlugins.add(pluginSetEntry.getKey());
|
||||
+ }
|
||||
+ }
|
||||
+ return suspectedPlugins;
|
||||
+ }
|
||||
+
|
||||
+ private static Map<Plugin, Set<Class<?>>> scanForPluginClasses() {
|
||||
+ Map<Plugin, Set<Class<?>>> loadedClasses = new Object2ObjectOpenHashMap<>();
|
||||
+ if (Bukkit.getPluginManager() instanceof SimplePluginManager) {
|
||||
+ final SimplePluginManager pluginManager = (SimplePluginManager) Bukkit.getPluginManager();
|
||||
+ final Collection<PluginLoader> pluginLoaders = pluginManager.getPluginLoaders();
|
||||
+ for (PluginLoader pluginLoader : pluginLoaders) {
|
||||
+ if (pluginLoader instanceof JavaPluginLoader) {
|
||||
+ JavaPluginLoader javaPluginLoader = (JavaPluginLoader) pluginLoader;
|
||||
+ final List<PluginClassLoader> classLoaders = javaPluginLoader.getClassLoaders();
|
||||
+ for (PluginClassLoader classLoader : classLoaders) {
|
||||
+ loadedClasses.put(classLoader.getPlugin(), new ObjectOpenHashSet<>(classLoader.getLoadedClasses()));
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return loadedClasses;
|
||||
+ }
|
||||
+
|
||||
+}
|
||||
diff --git a/src/test/java/org/bukkit/AnnotationTest.java b/src/test/java/org/bukkit/AnnotationTest.java
|
||||
index 7cb7618df43793836a3151925b8c615628d707f9..6734be90d7121755ca3f81138ffaa8955152eee2 100644
|
||||
--- a/src/test/java/org/bukkit/AnnotationTest.java
|
||||
+++ b/src/test/java/org/bukkit/AnnotationTest.java
|
||||
@@ -57,8 +57,11 @@ public class AnnotationTest {
|
||||
"co/aikar/timings/TimingHistory$2$1$2",
|
||||
"co/aikar/timings/TimingHistory$3",
|
||||
"co/aikar/timings/TimingHistory$4",
|
||||
- "co/aikar/timings/TimingHistoryEntry$1"
|
||||
+ "co/aikar/timings/TimingHistoryEntry$1",
|
||||
// Paper end
|
||||
+ // Yatopia start
|
||||
+ "org/yatopiamc/yatopia/api/internal/StackTraceUtils"
|
||||
+ // Yatopia end
|
||||
};
|
||||
|
||||
@Test
|
||||
@@ -40,6 +40,19 @@ index 277cfd9d1e8fff5d9b5e534b75c3c5162d58b0b7..093170c13b3980791373fb240c9ec6c5
|
||||
private int size;
|
||||
|
||||
public static int getLocationKey(final int x, final int y, final int z) {
|
||||
diff --git a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java b/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java
|
||||
index ae60bd96b5284d54676d8e7e4dd5d170b526ec1e..2344ea858eda8e54c2eb3ccbdad464ed5934650c 100644
|
||||
--- a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java
|
||||
+++ b/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java
|
||||
@@ -14,7 +14,7 @@ public final class VersionCommand implements PaperSubcommand {
|
||||
public boolean execute(final CommandSender sender, final String subCommand, final String[] args) {
|
||||
final @Nullable Command ver = MinecraftServer.getServer().server.getCommandMap().getCommand("version");
|
||||
if (ver != null) {
|
||||
- ver.execute(sender, "paper", new String[0]);
|
||||
+ ver.execute(sender, "paper", me.titaniumtown.Constants.EMPTY_string_arr); // JettPack
|
||||
}
|
||||
return true;
|
||||
}
|
||||
diff --git a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java b/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
||||
index 85882eeb86d7b74db0219aa65783946d8083885d..06bcf27bf42ad1b6259999c25fe7ae80eab1263e 100644
|
||||
--- a/src/main/java/io/papermc/paper/world/ChunkEntitySlices.java
|
||||
@@ -103,6 +116,19 @@ index 0000000000000000000000000000000000000000..60bf30759a26c04c0f79ba739426aab1
|
||||
+ public static final net.minecraft.world.entity.Entity[] EMPTY_entity_arr = new net.minecraft.world.entity.Entity[0];
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/advancements/RequirementsStrategy.java b/src/main/java/net/minecraft/advancements/RequirementsStrategy.java
|
||||
index 57d504d15794b1640ff7186f563d6ca5c2453d8c..97ca3c80af66884e74595a051224d54b9a8bde21 100644
|
||||
--- a/src/main/java/net/minecraft/advancements/RequirementsStrategy.java
|
||||
+++ b/src/main/java/net/minecraft/advancements/RequirementsStrategy.java
|
||||
@@ -14,7 +14,7 @@ public interface RequirementsStrategy {
|
||||
return strings;
|
||||
};
|
||||
RequirementsStrategy OR = (collection) -> {
|
||||
- return new String[][]{collection.toArray(new String[0])};
|
||||
+ return new String[][]{collection.toArray(me.titaniumtown.Constants.EMPTY_string_arr)}; // JettPack
|
||||
};
|
||||
|
||||
String[][] createRequirements(Collection<String> criteriaNames);
|
||||
diff --git a/src/main/java/net/minecraft/nbt/ByteArrayTag.java b/src/main/java/net/minecraft/nbt/ByteArrayTag.java
|
||||
index 3dd8a189c26f41759c59c3b9d0e5282038989a9f..147beddf8ef369cdae4b1ed2dcd0d7b2fd865315 100644
|
||||
--- a/src/main/java/net/minecraft/nbt/ByteArrayTag.java
|
||||
@@ -182,6 +208,34 @@ index 6a5e33d9821221be73f9c16afc17c9130248a231..29b7bde3ef3c5817910ccd5248e791f9
|
||||
}
|
||||
|
||||
public double getDouble(int index) {
|
||||
diff --git a/src/main/java/net/minecraft/nbt/LongArrayTag.java b/src/main/java/net/minecraft/nbt/LongArrayTag.java
|
||||
index a39baec88dc9c73f1b592881ed96d11ab64ad785..710bb5579e23258c38a767f99d751576524f88f0 100644
|
||||
--- a/src/main/java/net/minecraft/nbt/LongArrayTag.java
|
||||
+++ b/src/main/java/net/minecraft/nbt/LongArrayTag.java
|
||||
@@ -188,7 +188,7 @@ public class LongArrayTag extends CollectionTag<LongTag> {
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
- this.data = new long[0];
|
||||
+ this.data = me.titaniumtown.Constants.EMPTY_long_arr; // JettPack
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/network/CipherBase.java b/src/main/java/net/minecraft/network/CipherBase.java
|
||||
index a2920b8a9eff77d9c5d1d7f70ad3abdacba8f0fa..f7f19e360d712211625ff28e92f83949197c93b0 100644
|
||||
--- a/src/main/java/net/minecraft/network/CipherBase.java
|
||||
+++ b/src/main/java/net/minecraft/network/CipherBase.java
|
||||
@@ -7,8 +7,8 @@ import javax.crypto.ShortBufferException;
|
||||
|
||||
public class CipherBase {
|
||||
private final Cipher cipher;
|
||||
- private byte[] heapIn = new byte[0];
|
||||
- private byte[] heapOut = new byte[0];
|
||||
+ private byte[] heapIn = me.titaniumtown.Constants.EMPTY_byte_arr; // JettPack
|
||||
+ private byte[] heapOut = me.titaniumtown.Constants.EMPTY_byte_arr; // JettPack
|
||||
|
||||
protected CipherBase(Cipher cipher) {
|
||||
this.cipher = cipher;
|
||||
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
|
||||
index 2a26d03fba2f3b37f176be9e47954ef9a6cd7b3e..969968cfcf2c2ed019fab3407b22d4974926bdd2 100644
|
||||
--- a/src/main/java/net/minecraft/network/Connection.java
|
||||
@@ -195,6 +249,19 @@ index 2a26d03fba2f3b37f176be9e47954ef9a6cd7b3e..969968cfcf2c2ed019fab3407b22d497
|
||||
this.packetListener = listener;
|
||||
}
|
||||
// Paper start
|
||||
diff --git a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java b/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java
|
||||
index 02fb51f7f699992caf13d088c75b8275ec5267bb..11cb4ac19ddc09889117690ffec5191534a8adee 100644
|
||||
--- a/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java
|
||||
+++ b/src/main/java/net/minecraft/network/chat/contents/TranslatableContents.java
|
||||
@@ -20,7 +20,7 @@ import net.minecraft.network.chat.Style;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
|
||||
public class TranslatableContents implements ComponentContents {
|
||||
- private static final Object[] NO_ARGS = new Object[0];
|
||||
+ private static final Object[] NO_ARGS = me.titaniumtown.Constants.EMPTY_object_arr; // JettPack
|
||||
private static final FormattedText TEXT_PERCENT = FormattedText.of("%");
|
||||
private static final FormattedText TEXT_NULL = FormattedText.of("null");
|
||||
private final String key;
|
||||
diff --git a/src/main/java/net/minecraft/server/Main.java b/src/main/java/net/minecraft/server/Main.java
|
||||
index 0a843e0afbcb1af8e2641515eb244b791b819b8c..c420ce5c1bebdb0abe273d73a61a15e5424fb1bb 100644
|
||||
--- a/src/main/java/net/minecraft/server/Main.java
|
||||
@@ -346,6 +413,18 @@ index 4fd709a550bf8da1e996894a1ca6b91206c31e9e..63c0fe30ff035b6b5c1b4b35d3ad6c64
|
||||
}
|
||||
|
||||
// CraftBukkit start
|
||||
diff --git a/src/main/java/net/minecraft/util/MemoryReserve.java b/src/main/java/net/minecraft/util/MemoryReserve.java
|
||||
index 0ee04fe6ff6a4d09754f326526ae04fe7226bab2..58217ddb1d63f3bb628cc40e5cc0959657a17938 100644
|
||||
--- a/src/main/java/net/minecraft/util/MemoryReserve.java
|
||||
+++ b/src/main/java/net/minecraft/util/MemoryReserve.java
|
||||
@@ -11,6 +11,6 @@ public class MemoryReserve {
|
||||
}
|
||||
|
||||
public static void release() {
|
||||
- reserve = new byte[0];
|
||||
+ reserve = me.titaniumtown.Constants.EMPTY_byte_arr; // JettPack
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/util/ZeroBitStorage.java b/src/main/java/net/minecraft/util/ZeroBitStorage.java
|
||||
index 5d8e9bdf5538b19681f21949368d862fab8a89ad..97c744508cc535418eba65fa722859c81c22d647 100644
|
||||
--- a/src/main/java/net/minecraft/util/ZeroBitStorage.java
|
||||
@@ -573,6 +652,19 @@ index 601f8099f74e81c17600566b3c9b7a6dd39c9bcb..f816fae46568b83ef4441bd3bb06f208
|
||||
}
|
||||
|
||||
for (int i = 0; i < astring.length; ++i) {
|
||||
diff --git a/src/main/java/net/minecraft/world/scores/Team.java b/src/main/java/net/minecraft/world/scores/Team.java
|
||||
index 16d2aa4556bc9f32a2def7f9ca282aa3fa23fb87..290a0d35e1e4ca8b7281aa6d8cdb66dabdadf0f7 100644
|
||||
--- a/src/main/java/net/minecraft/world/scores/Team.java
|
||||
+++ b/src/main/java/net/minecraft/world/scores/Team.java
|
||||
@@ -80,7 +80,7 @@ public abstract class Team {
|
||||
public final int id;
|
||||
|
||||
public static String[] getAllNames() {
|
||||
- return BY_NAME.keySet().toArray(new String[0]);
|
||||
+ return BY_NAME.keySet().toArray(me.titaniumtown.Constants.EMPTY_string_arr); // JettPack
|
||||
}
|
||||
|
||||
@Nullable
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftEquipmentSlot.java b/src/main/java/org/bukkit/craftbukkit/CraftEquipmentSlot.java
|
||||
index e91714a66f582c14184ddb5e4bf2443d3ed45efb..375107cbc51b907342379bb5539500d76fb76a92 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftEquipmentSlot.java
|
||||
|
||||
@@ -75,7 +75,7 @@ index 0000000000000000000000000000000000000000..2f48a1c71356f7ebc00aaa44b28f6e10
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
|
||||
index f9251183df72ddc56662fd3f02acf21641a2200c..ea1bad145e529ac36bf335cf4d5339b2d88b282f 100644
|
||||
index f9251183df72ddc56662fd3f02acf21641a2200c..525bbe1a07025179cb32d9182fdde1d472b5852e 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/gui/RAMDetails.java
|
||||
@@ -81,6 +81,6 @@ public class RAMDetails extends JList<String> {
|
||||
@@ -83,11 +83,11 @@ index f9251183df72ddc56662fd3f02acf21641a2200c..ea1bad145e529ac36bf335cf4d5339b2
|
||||
|
||||
private static String format(double tps) {
|
||||
- return ( ( tps > 21.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 );
|
||||
+ return ( ( tps > 21.0 ) ? "*" : "" ) + Math.min( carpetfixes.helpers.FastMath.round( tps * 100.0 ) / 100.0, 20.0 );
|
||||
+ return ( ( tps > 21.0 ) ? "*" : "" ) + Math.min( carpetfixes.helpers.FastMath.round( tps * 100.0 ) / 100.0, 20.0 ); // Mirai
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/gui/RAMGraph.java b/src/main/java/com/destroystokyo/paper/gui/RAMGraph.java
|
||||
index c3e54da4ab6440811aab2f9dd1e218802ac13285..2a38ea32f2d4a01be556fdf11254d5910c54f997 100644
|
||||
index c3e54da4ab6440811aab2f9dd1e218802ac13285..db1319c51a5410ee106d023fce759f1e390872e2 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/gui/RAMGraph.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/gui/RAMGraph.java
|
||||
@@ -128,7 +128,7 @@ public class RAMGraph extends JComponent {
|
||||
@@ -95,12 +95,12 @@ index c3e54da4ab6440811aab2f9dd1e218802ac13285..2a38ea32f2d4a01be556fdf11254d591
|
||||
graphics.fillOval(m.x - 2, 100 - used - 2, 5, 5);
|
||||
setToolTipText(String.format("<html><body>Used: %s mb (%s%%)<br/>%s</body></html>",
|
||||
- Math.round(data.getUsedMem() / 1024F / 1024F),
|
||||
+ carpetfixes.helpers.FastMath.round(data.getUsedMem() / 1024F / 1024F),
|
||||
+ carpetfixes.helpers.FastMath.round(data.getUsedMem() / 1024F / 1024F), // Mirai
|
||||
used, getTime(m.x)));
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/gg/pufferfish/pufferfish/flare/collectors/TPSCollector.java b/src/main/java/gg/pufferfish/pufferfish/flare/collectors/TPSCollector.java
|
||||
index 40447d00aefb5ffedb8a2ee87155a04088f0649f..31cc0a29e89e79f616b3ee329a5528961edaa2de 100644
|
||||
index 40447d00aefb5ffedb8a2ee87155a04088f0649f..633a6e313174244cf13ed89b53893ea5900e2828 100644
|
||||
--- a/src/main/java/gg/pufferfish/pufferfish/flare/collectors/TPSCollector.java
|
||||
+++ b/src/main/java/gg/pufferfish/pufferfish/flare/collectors/TPSCollector.java
|
||||
@@ -25,7 +25,7 @@ public class TPSCollector extends LiveCollector {
|
||||
@@ -109,12 +109,12 @@ index 40447d00aefb5ffedb8a2ee87155a04088f0649f..31cc0a29e89e79f616b3ee329a552896
|
||||
|
||||
- this.report(TPS, Math.min(20D, Math.round(Bukkit.getServer().getTPS()[0] * 100d) / 100d));
|
||||
- this.report(MSPT, (double) Math.round(mspt * 100d) / 100d);
|
||||
+ this.report(TPS, Math.min(20D, carpetfixes.helpers.FastMath.round(Bukkit.getServer().getTPS()[0] * 100d) / 100d));
|
||||
+ this.report(MSPT, (double) carpetfixes.helpers.FastMath.round(mspt * 100d) / 100d);
|
||||
+ this.report(TPS, Math.min(20D, carpetfixes.helpers.FastMath.round(Bukkit.getServer().getTPS()[0] * 100d) / 100d)); // Mirai
|
||||
+ this.report(MSPT, (double) carpetfixes.helpers.FastMath.round(mspt * 100d) / 100d); // Mirai
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/io/papermc/paper/chunk/PlayerChunkLoader.java b/src/main/java/io/papermc/paper/chunk/PlayerChunkLoader.java
|
||||
index b53402903eb6845df361daf6b05a668608ad7b63..df60ee5ec4f98e815499dd1dfe94a0b62d1f1fbf 100644
|
||||
index b53402903eb6845df361daf6b05a668608ad7b63..0d43afcdd5db346d0ddf82e06bad5b219721715c 100644
|
||||
--- a/src/main/java/io/papermc/paper/chunk/PlayerChunkLoader.java
|
||||
+++ b/src/main/java/io/papermc/paper/chunk/PlayerChunkLoader.java
|
||||
@@ -387,11 +387,11 @@ public final class PlayerChunkLoader {
|
||||
@@ -122,17 +122,17 @@ index b53402903eb6845df361daf6b05a668608ad7b63..df60ee5ec4f98e815499dd1dfe94a0b6
|
||||
|
||||
protected long getTargetSendPerPlayerAddend() {
|
||||
- return GlobalConfiguration.get().chunkLoading.targetPlayerChunkSendRate <= 1.0 ? 0L : (long)Math.round(1.0e9 / GlobalConfiguration.get().chunkLoading.targetPlayerChunkSendRate);
|
||||
+ return GlobalConfiguration.get().chunkLoading.targetPlayerChunkSendRate <= 1.0 ? 0L : (long)carpetfixes.helpers.FastMath.round(1.0e9 / GlobalConfiguration.get().chunkLoading.targetPlayerChunkSendRate);
|
||||
+ return GlobalConfiguration.get().chunkLoading.targetPlayerChunkSendRate <= 1.0 ? 0L : (long)carpetfixes.helpers.FastMath.round(1.0e9 / GlobalConfiguration.get().chunkLoading.targetPlayerChunkSendRate); // Mirai
|
||||
}
|
||||
|
||||
protected long getMaxSendAddend() {
|
||||
- return GlobalConfiguration.get().chunkLoading.globalMaxChunkSendRate <= 1.0 ? 0L : (long)Math.round(1.0e9 / GlobalConfiguration.get().chunkLoading.globalMaxChunkSendRate);
|
||||
+ return GlobalConfiguration.get().chunkLoading.globalMaxChunkSendRate <= 1.0 ? 0L : (long)carpetfixes.helpers.FastMath.round(1.0e9 / GlobalConfiguration.get().chunkLoading.globalMaxChunkSendRate);
|
||||
+ return GlobalConfiguration.get().chunkLoading.globalMaxChunkSendRate <= 1.0 ? 0L : (long)carpetfixes.helpers.FastMath.round(1.0e9 / GlobalConfiguration.get().chunkLoading.globalMaxChunkSendRate); // Mirai
|
||||
}
|
||||
|
||||
public void onChunkPlayerTickReady(final int chunkX, final int chunkZ) {
|
||||
diff --git a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java
|
||||
index 68645bbbab9b4225048b647252d8f462028a9c84..725f532ce4479cf059b3f749eb01372179056581 100644
|
||||
index 68645bbbab9b4225048b647252d8f462028a9c84..14eff63f7725769ba0ce15eedf7f605ee34d1722 100644
|
||||
--- a/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java
|
||||
+++ b/src/main/java/io/papermc/paper/command/subcommands/FixLightCommand.java
|
||||
@@ -105,12 +105,12 @@ public final class FixLightCommand implements PaperSubcommand {
|
||||
@@ -140,31 +140,31 @@ index 68645bbbab9b4225048b647252d8f462028a9c84..725f532ce4479cf059b3f749eb013721
|
||||
sender.getBukkitEntity().sendMessage(text().color(DARK_AQUA).append(
|
||||
text("Relit chunk ", BLUE), text(chunkPos.toString()),
|
||||
- text(", progress: ", BLUE), text((int) (Math.round(100.0 * (double) (relitChunks[0]) / (double) pending[0])) + "%")
|
||||
+ text(", progress: ", BLUE), text((int) (carpetfixes.helpers.FastMath.round(100.0 * (double) (relitChunks[0]) / (double) pending[0])) + "%")
|
||||
+ text(", progress: ", BLUE), text((int) (carpetfixes.helpers.FastMath.round(100.0 * (double) (relitChunks[0]) / (double) pending[0])) + "%") // Mirai
|
||||
));
|
||||
},
|
||||
(int totalRelit) -> {
|
||||
final long end = System.nanoTime();
|
||||
- final long diff = Math.round(1.0e-6 * (end - start));
|
||||
+ final long diff = carpetfixes.helpers.FastMath.round(1.0e-6 * (end - start));
|
||||
+ final long diff = carpetfixes.helpers.FastMath.round(1.0e-6 * (end - start)); // Mirai
|
||||
sender.getBukkitEntity().sendMessage(text().color(DARK_AQUA).append(
|
||||
text("Relit ", BLUE), text(totalRelit),
|
||||
text(" chunks. Took ", BLUE), text(diff + "ms")
|
||||
diff --git a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java b/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java
|
||||
index ae60bd96b5284d54676d8e7e4dd5d170b526ec1e..2344ea858eda8e54c2eb3ccbdad464ed5934650c 100644
|
||||
--- a/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java
|
||||
+++ b/src/main/java/io/papermc/paper/command/subcommands/VersionCommand.java
|
||||
@@ -14,7 +14,7 @@ public final class VersionCommand implements PaperSubcommand {
|
||||
public boolean execute(final CommandSender sender, final String subCommand, final String[] args) {
|
||||
final @Nullable Command ver = MinecraftServer.getServer().server.getCommandMap().getCommand("version");
|
||||
if (ver != null) {
|
||||
- ver.execute(sender, "paper", new String[0]);
|
||||
+ ver.execute(sender, "paper", me.titaniumtown.Constants.EMPTY_string_arr); // JettPack
|
||||
}
|
||||
return true;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/commands/arguments/TimeArgument.java b/src/main/java/net/minecraft/commands/arguments/TimeArgument.java
|
||||
index e3e80db89c18588322ffdaa0f9fd85e398cb1471..d947011b80ee14e7aaf74af3d9081fc78e8cb4c3 100644
|
||||
--- a/src/main/java/net/minecraft/commands/arguments/TimeArgument.java
|
||||
+++ b/src/main/java/net/minecraft/commands/arguments/TimeArgument.java
|
||||
@@ -35,7 +35,7 @@ public class TimeArgument implements ArgumentType<Integer> {
|
||||
if (i == 0) {
|
||||
throw ERROR_INVALID_UNIT.create();
|
||||
} else {
|
||||
- int j = Math.round(f * (float)i);
|
||||
+ int j = carpetfixes.helpers.FastMath.round(f * (float)i); // Mirai
|
||||
if (j < 0) {
|
||||
throw ERROR_INVALID_TICK_COUNT.create(j);
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 2308d91066825fc90bd7645313138471f8b8aa1b..cf628f7a06e833b7e27cf3f48ad6ada9683204e3 100644
|
||||
index 2308d91066825fc90bd7645313138471f8b8aa1b..de917eb5498365fc596eff7b5c5c621864578a41 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -2772,7 +2772,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<Runnab
|
||||
@@ -172,12 +172,12 @@ index 2308d91066825fc90bd7645313138471f8b8aa1b..cf628f7a06e833b7e27cf3f48ad6ada9
|
||||
|
||||
double overuseCount = (double)overuse/(double)MAX_CHUNK_EXEC_TIME;
|
||||
- long extraSleep = (long)Math.round(overuseCount*CHUNK_TASK_QUEUE_BACKOFF_MIN_TIME);
|
||||
+ long extraSleep = (long)carpetfixes.helpers.FastMath.round(overuseCount*CHUNK_TASK_QUEUE_BACKOFF_MIN_TIME);
|
||||
+ long extraSleep = (long)carpetfixes.helpers.FastMath.round(overuseCount*CHUNK_TASK_QUEUE_BACKOFF_MIN_TIME); // Mirai
|
||||
|
||||
lastMidTickExecute = currTime + extraSleep;
|
||||
return;
|
||||
diff --git a/src/main/java/net/minecraft/server/gui/StatsComponent.java b/src/main/java/net/minecraft/server/gui/StatsComponent.java
|
||||
index 88f10d729aa1e0a01790521821d691a0ecd373a2..df2c8dffd626eab0e03b1b62940a52fa83f6edaf 100644
|
||||
index 88f10d729aa1e0a01790521821d691a0ecd373a2..45b2aa542969798a5a3b73af78de21ccc57bcca1 100644
|
||||
--- a/src/main/java/net/minecraft/server/gui/StatsComponent.java
|
||||
+++ b/src/main/java/net/minecraft/server/gui/StatsComponent.java
|
||||
@@ -88,7 +88,7 @@ public class StatsComponent extends JComponent {
|
||||
@@ -185,7 +185,7 @@ index 88f10d729aa1e0a01790521821d691a0ecd373a2..df2c8dffd626eab0e03b1b62940a52fa
|
||||
// Paper - start Add tps entry
|
||||
private static String format(double tps) {
|
||||
- return (( tps > 21.0 ) ? "*" : "") + Math.min(Math.round(tps * 100.0) / 100.0, 20.0); // only print * at 21, we commonly peak to 20.02 as the tick sleep is not accurate enough, stop the noise
|
||||
+ return (( tps > 21.0 ) ? "*" : "") + Math.min(carpetfixes.helpers.FastMath.round(tps * 100.0) / 100.0, 20.0); // only print * at 21, we commonly peak to 20.02 as the tick sleep is not accurate enough, stop the noise
|
||||
+ return (( tps > 21.0 ) ? "*" : "") + Math.min(carpetfixes.helpers.FastMath.round(tps * 100.0) / 100.0, 20.0); // only print * at 21, we commonly peak to 20.02 as the tick sleep is not accurate enough, stop the noise // Mirai
|
||||
}
|
||||
// Paper end
|
||||
}
|
||||
@@ -202,7 +202,7 @@ index ec587cf6592a1dc0d90d6f54af1bdfab97aec7c6..41fe8bbdf9235ce79bffe6b2fe1339f7
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index a2c348697b0a9a6646647e7946f6720c5897fb3d..f53e5cd78431e84bf257229cd70fd8dd4599e306 100644
|
||||
index a2c348697b0a9a6646647e7946f6720c5897fb3d..0bc9eeef8dba308cf75c05def4de30de4475c030 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -1496,7 +1496,7 @@ public abstract class LivingEntity extends Entity {
|
||||
@@ -210,7 +210,7 @@ index a2c348697b0a9a6646647e7946f6720c5897fb3d..f53e5cd78431e84bf257229cd70fd8dd
|
||||
CriteriaTriggers.ENTITY_HURT_PLAYER.trigger((ServerPlayer) this, source, f1, amount, flag);
|
||||
if (f2 > 0.0F && f2 < 3.4028235E37F) {
|
||||
- ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, Math.round(f2 * 10.0F));
|
||||
+ ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, carpetfixes.helpers.FastMath.round(f2 * 10.0F));
|
||||
+ ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, carpetfixes.helpers.FastMath.round(f2 * 10.0F)); // Mirai
|
||||
}
|
||||
}
|
||||
|
||||
@@ -219,10 +219,10 @@ index a2c348697b0a9a6646647e7946f6720c5897fb3d..f53e5cd78431e84bf257229cd70fd8dd
|
||||
if (f3 > 0.0F && f3 < 3.4028235E37F) {
|
||||
if (this instanceof ServerPlayer) {
|
||||
- ((ServerPlayer) this).awardStat(Stats.DAMAGE_RESISTED, Math.round(f3 * 10.0F));
|
||||
+ ((ServerPlayer) this).awardStat(Stats.DAMAGE_RESISTED, carpetfixes.helpers.FastMath.round(f3 * 10.0F));
|
||||
+ ((ServerPlayer) this).awardStat(Stats.DAMAGE_RESISTED, carpetfixes.helpers.FastMath.round(f3 * 10.0F)); // Mirai
|
||||
} else if (source.getEntity() instanceof ServerPlayer) {
|
||||
- ((ServerPlayer) source.getEntity()).awardStat(Stats.DAMAGE_DEALT_RESISTED, Math.round(f3 * 10.0F));
|
||||
+ ((ServerPlayer) source.getEntity()).awardStat(Stats.DAMAGE_DEALT_RESISTED, carpetfixes.helpers.FastMath.round(f3 * 10.0F));
|
||||
+ ((ServerPlayer) source.getEntity()).awardStat(Stats.DAMAGE_DEALT_RESISTED, carpetfixes.helpers.FastMath.round(f3 * 10.0F)); // Mirai
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -231,10 +231,10 @@ index a2c348697b0a9a6646647e7946f6720c5897fb3d..f53e5cd78431e84bf257229cd70fd8dd
|
||||
if (f3 > 0.0F && f3 < 3.4028235E37F) {
|
||||
if (this instanceof ServerPlayer) {
|
||||
- ((ServerPlayer) this).awardStat(Stats.DAMAGE_RESISTED, Math.round(f3 * 10.0F));
|
||||
+ ((ServerPlayer) this).awardStat(Stats.DAMAGE_RESISTED, carpetfixes.helpers.FastMath.round(f3 * 10.0F));
|
||||
+ ((ServerPlayer) this).awardStat(Stats.DAMAGE_RESISTED, carpetfixes.helpers.FastMath.round(f3 * 10.0F)); // Mirai
|
||||
} else if (damagesource.getEntity() instanceof ServerPlayer) {
|
||||
- ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_RESISTED, Math.round(f3 * 10.0F));
|
||||
+ ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_RESISTED, carpetfixes.helpers.FastMath.round(f3 * 10.0F));
|
||||
+ ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_RESISTED, carpetfixes.helpers.FastMath.round(f3 * 10.0F)); // Mirai
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -243,11 +243,11 @@ index a2c348697b0a9a6646647e7946f6720c5897fb3d..f53e5cd78431e84bf257229cd70fd8dd
|
||||
|
||||
if (f2 > 0.0F && f2 < 3.4028235E37F && this instanceof net.minecraft.world.entity.player.Player) {
|
||||
- ((net.minecraft.world.entity.player.Player) this).awardStat(Stats.DAMAGE_ABSORBED, Math.round(f2 * 10.0F));
|
||||
+ ((net.minecraft.world.entity.player.Player) this).awardStat(Stats.DAMAGE_ABSORBED, carpetfixes.helpers.FastMath.round(f2 * 10.0F));
|
||||
+ ((net.minecraft.world.entity.player.Player) this).awardStat(Stats.DAMAGE_ABSORBED, carpetfixes.helpers.FastMath.round(f2 * 10.0F)); // Mirai
|
||||
}
|
||||
if (f2 > 0.0F && f2 < 3.4028235E37F && damagesource.getEntity() instanceof ServerPlayer) {
|
||||
- ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_ABSORBED, Math.round(f2 * 10.0F));
|
||||
+ ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_ABSORBED, carpetfixes.helpers.FastMath.round(f2 * 10.0F));
|
||||
+ ((ServerPlayer) damagesource.getEntity()).awardStat(Stats.DAMAGE_DEALT_ABSORBED, carpetfixes.helpers.FastMath.round(f2 * 10.0F)); // Mirai
|
||||
}
|
||||
|
||||
if (f > 0 || !human) {
|
||||
@@ -256,7 +256,7 @@ index a2c348697b0a9a6646647e7946f6720c5897fb3d..f53e5cd78431e84bf257229cd70fd8dd
|
||||
((net.minecraft.world.entity.player.Player) this).causeFoodExhaustion(damagesource.getFoodExhaustion(), org.bukkit.event.entity.EntityExhaustionEvent.ExhaustionReason.DAMAGED); // CraftBukkit - EntityExhaustionEvent
|
||||
if (f < 3.4028235E37F) {
|
||||
- ((net.minecraft.world.entity.player.Player) this).awardStat(Stats.DAMAGE_TAKEN, Math.round(f * 10.0F));
|
||||
+ ((net.minecraft.world.entity.player.Player) this).awardStat(Stats.DAMAGE_TAKEN, carpetfixes.helpers.FastMath.round(f * 10.0F));
|
||||
+ ((net.minecraft.world.entity.player.Player) this).awardStat(Stats.DAMAGE_TAKEN, carpetfixes.helpers.FastMath.round(f * 10.0F)); // Mirai
|
||||
}
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -265,7 +265,7 @@ index a2c348697b0a9a6646647e7946f6720c5897fb3d..f53e5cd78431e84bf257229cd70fd8dd
|
||||
f2 = (float) -event.getDamage(DamageModifier.BLOCKING);
|
||||
if (f2 > 0.0F && f2 < 3.4028235E37F) {
|
||||
- ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, Math.round(originalDamage * 10.0F));
|
||||
+ ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, carpetfixes.helpers.FastMath.round(originalDamage * 10.0F));
|
||||
+ ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, carpetfixes.helpers.FastMath.round(originalDamage * 10.0F)); // Mirai
|
||||
}
|
||||
}
|
||||
|
||||
@@ -277,15 +277,15 @@ index a2c348697b0a9a6646647e7946f6720c5897fb3d..f53e5cd78431e84bf257229cd70fd8dd
|
||||
- this.yBodyRotO += Math.round((this.yBodyRot - this.yBodyRotO) / 360.0F) * 360.0F;
|
||||
- this.xRotO += Math.round((this.getXRot() - this.xRotO) / 360.0F) * 360.0F;
|
||||
- this.yHeadRotO += Math.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F;
|
||||
+ this.yRotO += carpetfixes.helpers.FastMath.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F;
|
||||
+ this.yBodyRotO += carpetfixes.helpers.FastMath.round((this.yBodyRot - this.yBodyRotO) / 360.0F) * 360.0F;
|
||||
+ this.xRotO += carpetfixes.helpers.FastMath.round((this.getXRot() - this.xRotO) / 360.0F) * 360.0F;
|
||||
+ this.yHeadRotO += carpetfixes.helpers.FastMath.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F;
|
||||
+ this.yRotO += carpetfixes.helpers.FastMath.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F; // Mirai
|
||||
+ this.yBodyRotO += carpetfixes.helpers.FastMath.round((this.yBodyRot - this.yBodyRotO) / 360.0F) * 360.0F; // Mirai
|
||||
+ this.xRotO += carpetfixes.helpers.FastMath.round((this.getXRot() - this.xRotO) / 360.0F) * 360.0F; // Mirai
|
||||
+ this.yHeadRotO += carpetfixes.helpers.FastMath.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F; // Mirai
|
||||
// Paper end
|
||||
|
||||
this.level.getProfiler().pop();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..b76f7acd5b44ecc2d73a716b6860b0b58b6510a0 100644
|
||||
index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..18c4f2eeb6bb427c1314608fc6a81e4642d92888 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -1087,7 +1087,7 @@ public abstract class Player extends LivingEntity {
|
||||
@@ -293,7 +293,7 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..b76f7acd5b44ecc2d73a716b6860b0b5
|
||||
|
||||
if (f2 > 0.0F && f2 < 3.4028235E37F) {
|
||||
- this.awardStat(Stats.DAMAGE_ABSORBED, Math.round(f2 * 10.0F));
|
||||
+ this.awardStat(Stats.DAMAGE_ABSORBED, carpetfixes.helpers.FastMath.round(f2 * 10.0F));
|
||||
+ this.awardStat(Stats.DAMAGE_ABSORBED, carpetfixes.helpers.FastMath.round(f2 * 10.0F)); // Mirai
|
||||
}
|
||||
|
||||
if (f != 0.0F) {
|
||||
@@ -302,7 +302,7 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..b76f7acd5b44ecc2d73a716b6860b0b5
|
||||
this.getCombatTracker().recordDamage(damagesource, f3, f);
|
||||
if (f < 3.4028235E37F) {
|
||||
- this.awardStat(Stats.DAMAGE_TAKEN, Math.round(f * 10.0F));
|
||||
+ this.awardStat(Stats.DAMAGE_TAKEN, carpetfixes.helpers.FastMath.round(f * 10.0F));
|
||||
+ this.awardStat(Stats.DAMAGE_TAKEN, carpetfixes.helpers.FastMath.round(f * 10.0F)); // Mirai
|
||||
}
|
||||
|
||||
}
|
||||
@@ -311,7 +311,7 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..b76f7acd5b44ecc2d73a716b6860b0b5
|
||||
float f5 = f3 - ((LivingEntity) target).getHealth();
|
||||
|
||||
- this.awardStat(Stats.DAMAGE_DEALT, Math.round(f5 * 10.0F));
|
||||
+ this.awardStat(Stats.DAMAGE_DEALT, carpetfixes.helpers.FastMath.round(f5 * 10.0F));
|
||||
+ this.awardStat(Stats.DAMAGE_DEALT, carpetfixes.helpers.FastMath.round(f5 * 10.0F)); // Mirai
|
||||
if (j > 0) {
|
||||
// CraftBukkit start - Call a combust event when somebody hits with a fire enchanted item
|
||||
EntityCombustByEntityEvent combustEvent = new EntityCombustByEntityEvent(this.getBukkitEntity(), target.getBukkitEntity(), j * 4);
|
||||
@@ -320,21 +320,21 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..b76f7acd5b44ecc2d73a716b6860b0b5
|
||||
|
||||
if (this.isSwimming()) {
|
||||
- i = Math.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F); // Mirai
|
||||
if (i > 0) {
|
||||
this.awardStat(Stats.SWIM_ONE_CM, i);
|
||||
this.causeFoodExhaustion(level.spigotConfig.swimMultiplier * (float) i * 0.01F, EntityExhaustionEvent.ExhaustionReason.SWIM); // CraftBukkit - EntityExhaustionEvent // Spigot
|
||||
}
|
||||
} else if (this.isEyeInFluid(FluidTags.WATER)) {
|
||||
- i = Math.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F); // Mirai
|
||||
if (i > 0) {
|
||||
this.awardStat(Stats.WALK_UNDER_WATER_ONE_CM, i);
|
||||
this.causeFoodExhaustion(level.spigotConfig.swimMultiplier * (float) i * 0.01F, EntityExhaustionEvent.ExhaustionReason.WALK_UNDERWATER); // CraftBukkit - EntityExhaustionEvent // Spigot
|
||||
}
|
||||
} else if (this.isInWater()) {
|
||||
- i = Math.round((float) Math.sqrt(dx * dx + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dz * dz) * 100.0F); // Mirai
|
||||
if (i > 0) {
|
||||
this.awardStat(Stats.WALK_ON_WATER_ONE_CM, i);
|
||||
this.causeFoodExhaustion(level.spigotConfig.swimMultiplier * (float) i * 0.01F, EntityExhaustionEvent.ExhaustionReason.WALK_ON_WATER); // CraftBukkit - EntityExhaustionEvent // Spigot
|
||||
@@ -342,11 +342,11 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..b76f7acd5b44ecc2d73a716b6860b0b5
|
||||
} else if (this.onClimbable()) {
|
||||
if (dy > 0.0D) {
|
||||
- this.awardStat(Stats.CLIMB_ONE_CM, (int) Math.round(dy * 100.0D));
|
||||
+ this.awardStat(Stats.CLIMB_ONE_CM, (int) carpetfixes.helpers.FastMath.round(dy * 100.0D));
|
||||
+ this.awardStat(Stats.CLIMB_ONE_CM, (int) carpetfixes.helpers.FastMath.round(dy * 100.0D)); // Mirai
|
||||
}
|
||||
} else if (this.onGround) {
|
||||
- i = Math.round((float) Math.sqrt(dx * dx + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dz * dz) * 100.0F); // Mirai
|
||||
if (i > 0) {
|
||||
if (this.isSprinting()) {
|
||||
this.awardStat(Stats.SPRINT_ONE_CM, i);
|
||||
@@ -355,11 +355,11 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..b76f7acd5b44ecc2d73a716b6860b0b5
|
||||
}
|
||||
} else if (this.isFallFlying()) {
|
||||
- i = Math.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F); // Mirai
|
||||
this.awardStat(Stats.AVIATE_ONE_CM, i);
|
||||
} else {
|
||||
- i = Math.round((float) Math.sqrt(dx * dx + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dz * dz) * 100.0F);
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dz * dz) * 100.0F); // Mirai
|
||||
if (i > 25) {
|
||||
this.awardStat(Stats.FLY_ONE_CM, i);
|
||||
}
|
||||
@@ -368,7 +368,7 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..b76f7acd5b44ecc2d73a716b6860b0b5
|
||||
public void checkRidingStatistics(double dx, double dy, double dz) {
|
||||
if (this.isPassenger()) {
|
||||
- int i = Math.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
+ int i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F);
|
||||
+ int i = carpetfixes.helpers.FastMath.round((float) Math.sqrt(dx * dx + dy * dy + dz * dz) * 100.0F); // Mirai
|
||||
|
||||
if (i > 0) {
|
||||
Entity entity = this.getVehicle();
|
||||
@@ -377,12 +377,38 @@ index 54e241534f0a3c00044c1ce33e7dc3a8fd020ab7..b76f7acd5b44ecc2d73a716b6860b0b5
|
||||
} else {
|
||||
if (fallDistance >= 2.0F) {
|
||||
- this.awardStat(Stats.FALL_ONE_CM, (int) Math.round((double) fallDistance * 100.0D));
|
||||
+ this.awardStat(Stats.FALL_ONE_CM, (int) carpetfixes.helpers.FastMath.round((double) fallDistance * 100.0D));
|
||||
+ this.awardStat(Stats.FALL_ONE_CM, (int) carpetfixes.helpers.FastMath.round((double) fallDistance * 100.0D)); // Mirai
|
||||
}
|
||||
|
||||
return super.causeFallDamage(fallDistance, damageMultiplier, damageSource);
|
||||
diff --git a/src/main/java/net/minecraft/world/item/Item.java b/src/main/java/net/minecraft/world/item/Item.java
|
||||
index 8b250dab8f3cb788ae1cfad43737afda31b72c0f..7e57163c82f7a4f9df0774f049f724c9b201e023 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/Item.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/Item.java
|
||||
@@ -166,7 +166,7 @@ public class Item implements ItemLike {
|
||||
}
|
||||
|
||||
public int getBarWidth(ItemStack stack) {
|
||||
- return Math.round(13.0F - (float)stack.getDamageValue() * 13.0F / (float)this.maxDamage);
|
||||
+ return carpetfixes.helpers.FastMath.round(13.0F - (float)stack.getDamageValue() * 13.0F / (float)this.maxDamage); // Mirai
|
||||
}
|
||||
|
||||
public int getBarColor(ItemStack stack) {
|
||||
diff --git a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
|
||||
index 22925b2f44fc510832ef07290d3109f0394f7d30..e694a256a72479cff28b65a86ce31a8ca0b1eba6 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
|
||||
+++ b/src/main/java/net/minecraft/world/item/enchantment/EnchantmentHelper.java
|
||||
@@ -346,7 +346,7 @@ public class EnchantmentHelper {
|
||||
} else {
|
||||
level += 1 + random.nextInt(i / 4 + 1) + random.nextInt(i / 4 + 1);
|
||||
float f = (random.nextFloat() + random.nextFloat() - 1.0F) * 0.15F;
|
||||
- level = Mth.clamp(Math.round((float)level + (float)level * f), 1, Integer.MAX_VALUE);
|
||||
+ level = Mth.clamp(carpetfixes.helpers.FastMath.round((float)level + (float)level * f), 1, Integer.MAX_VALUE); // Mirai
|
||||
List<EnchantmentInstance> list2 = getAvailableEnchantmentResults(level, stack, treasureAllowed);
|
||||
if (!list2.isEmpty()) {
|
||||
WeightedRandom.getRandomItem(random, list2).ifPresent(list::add);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/DaylightDetectorBlock.java b/src/main/java/net/minecraft/world/level/block/DaylightDetectorBlock.java
|
||||
index 16504b8be08064e61b013fa943f692816612cbd0..c5b39234822626b4ff948464409ca415250619e9 100644
|
||||
index 16504b8be08064e61b013fa943f692816612cbd0..38f6759501dcc2a0adb9608a9f639c2411acf277 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/DaylightDetectorBlock.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/DaylightDetectorBlock.java
|
||||
@@ -62,7 +62,7 @@ public class DaylightDetectorBlock extends BaseEntityBlock {
|
||||
@@ -390,12 +416,12 @@ index 16504b8be08064e61b013fa943f692816612cbd0..c5b39234822626b4ff948464409ca415
|
||||
|
||||
f += (f1 - f) * 0.2F;
|
||||
- i = Math.round((float) i * Mth.cos(f));
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) i * Mth.cos(f));
|
||||
+ i = carpetfixes.helpers.FastMath.round((float) i * Mth.cos(f)); // Mirai
|
||||
}
|
||||
|
||||
i = Mth.clamp(i, (int) 0, (int) 15);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
index 19ffd93b7bc745d9a6822f1e5642d2f640f61df7..0790467860bd793a7e69b2a4080161756d28906d 100644
|
||||
index 19ffd93b7bc745d9a6822f1e5642d2f640f61df7..61e35c7a91341701bad119ca9ea56373b6b7d7a9 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/chunk/ChunkGenerator.java
|
||||
@@ -249,8 +249,8 @@ public abstract class ChunkGenerator {
|
||||
@@ -404,13 +430,38 @@ index 19ffd93b7bc745d9a6822f1e5642d2f640f61df7..0790467860bd793a7e69b2a408016175
|
||||
double d1 = (double) (4 * i + i * i1 * 6) + (randomsource.nextDouble() - 0.5D) * (double) i * 2.5D;
|
||||
- int k1 = (int) Math.round(Math.cos(d0) * d1);
|
||||
- int l1 = (int) Math.round(Math.sin(d0) * d1);
|
||||
+ int k1 = (int) carpetfixes.helpers.FastMath.round(Math.cos(d0) * d1);
|
||||
+ int l1 = (int) carpetfixes.helpers.FastMath.round(Math.sin(d0) * d1);
|
||||
+ int k1 = (int) carpetfixes.helpers.FastMath.round(Math.cos(d0) * d1); // Mirai
|
||||
+ int l1 = (int) carpetfixes.helpers.FastMath.round(Math.sin(d0) * d1); // Mirai
|
||||
BiomeSource worldchunkmanager = this.biomeSource;
|
||||
int i2 = SectionPos.sectionToBlockCoord(k1, 8);
|
||||
int j2 = SectionPos.sectionToBlockCoord(l1, 8);
|
||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java b/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java
|
||||
index b20ba0b10b5b1682bb5435d9d0bbe4aad25e8062..22a23580ccd861d14031f46b72f309cca6584d3b 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/SurfaceSystem.java
|
||||
@@ -300,7 +300,7 @@ public class SurfaceSystem {
|
||||
}
|
||||
|
||||
protected BlockState getBand(int x, int y, int z) {
|
||||
- int i = (int)Math.round(this.clayBandsOffsetNoise.getValue((double)x, 0.0D, (double)z) * 4.0D);
|
||||
+ int i = (int)carpetfixes.helpers.FastMath.round(this.clayBandsOffsetNoise.getValue((double)x, 0.0D, (double)z) * 4.0D); // Mirai
|
||||
return this.clayBands[(y + i + this.clayBands.length) % this.clayBands.length];
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/levelgen/feature/ScatteredOreFeature.java b/src/main/java/net/minecraft/world/level/levelgen/feature/ScatteredOreFeature.java
|
||||
index 06f27fc8eda9ec160c54759ec95fdade19876d29..567d653469c964922dc5662e48c45dc289222bc2 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/levelgen/feature/ScatteredOreFeature.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/levelgen/feature/ScatteredOreFeature.java
|
||||
@@ -46,6 +46,6 @@ public class ScatteredOreFeature extends Feature<OreConfiguration> {
|
||||
}
|
||||
|
||||
private int getRandomPlacementInOneAxisRelativeToOrigin(RandomSource randomSource, int spread) {
|
||||
- return Math.round((randomSource.nextFloat() - randomSource.nextFloat()) * (float)spread);
|
||||
+ return carpetfixes.helpers.FastMath.round((randomSource.nextFloat() - randomSource.nextFloat()) * (float)spread); // Mirai
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java b/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java
|
||||
index 31918fa2eb38e42a5ea5366e559f25ea9d7d59ae..f512f1e0c46b96f831fdea3073e57c6bfd9c69eb 100644
|
||||
index 31918fa2eb38e42a5ea5366e559f25ea9d7d59ae..fe0bcd4295e96556d1c5282d6acc426980697675 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/storage/loot/functions/LootingEnchantFunction.java
|
||||
@@ -61,7 +61,7 @@ public class LootingEnchantFunction extends LootItemConditionalFunction {
|
||||
@@ -418,12 +469,25 @@ index 31918fa2eb38e42a5ea5366e559f25ea9d7d59ae..f512f1e0c46b96f831fdea3073e57c6b
|
||||
float f = (float) i * this.value.getFloat(context);
|
||||
|
||||
- stack.grow(Math.round(f));
|
||||
+ stack.grow(carpetfixes.helpers.FastMath.round(f));
|
||||
+ stack.grow(carpetfixes.helpers.FastMath.round(f)); // Mirai
|
||||
if (this.hasLimit() && stack.getCount() > this.limit) {
|
||||
stack.setCount(this.limit);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/storage/loot/providers/number/NumberProvider.java b/src/main/java/net/minecraft/world/level/storage/loot/providers/number/NumberProvider.java
|
||||
index 2a7c75ea447b179ea1ab9db56e8a39d03faa0bce..53ca87c7659a4fff9e99d21217d1ad08c8765836 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/storage/loot/providers/number/NumberProvider.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/storage/loot/providers/number/NumberProvider.java
|
||||
@@ -7,7 +7,7 @@ public interface NumberProvider extends LootContextUser {
|
||||
float getFloat(LootContext context);
|
||||
|
||||
default int getInt(LootContext context) {
|
||||
- return Math.round(this.getFloat(context));
|
||||
+ return carpetfixes.helpers.FastMath.round(this.getFloat(context)); // Mirai
|
||||
}
|
||||
|
||||
LootNumberProviderType getType();
|
||||
diff --git a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java
|
||||
index 731c7dd15f131dc124be6af8f342b122cb89491b..3ca1a2599a211374cb95e73fdc8c8b3069496660 100644
|
||||
index 731c7dd15f131dc124be6af8f342b122cb89491b..24a82111a5485da1e3903977d0519e9ed502f34d 100644
|
||||
--- a/src/main/java/net/minecraft/world/phys/shapes/Shapes.java
|
||||
+++ b/src/main/java/net/minecraft/world/phys/shapes/Shapes.java
|
||||
@@ -59,8 +59,8 @@ public final class Shapes {
|
||||
@@ -432,13 +496,13 @@ index 731c7dd15f131dc124be6af8f342b122cb89491b..3ca1a2599a211374cb95e73fdc8c8b30
|
||||
double e = max * (double)j;
|
||||
- boolean bl = Math.abs(d - (double)Math.round(d)) < 1.0E-7D * (double)j;
|
||||
- boolean bl2 = Math.abs(e - (double)Math.round(e)) < 1.0E-7D * (double)j;
|
||||
+ boolean bl = Math.abs(d - (double)carpetfixes.helpers.FastMath.round(d)) < 1.0E-7D * (double)j;
|
||||
+ boolean bl2 = Math.abs(e - (double)carpetfixes.helpers.FastMath.round(e)) < 1.0E-7D * (double)j;
|
||||
+ boolean bl = Math.abs(d - (double)carpetfixes.helpers.FastMath.round(d)) < 1.0E-7D * (double)j; // Mirai
|
||||
+ boolean bl2 = Math.abs(e - (double)carpetfixes.helpers.FastMath.round(e)) < 1.0E-7D * (double)j; // Mirai
|
||||
if (bl && bl2) {
|
||||
return i;
|
||||
}
|
||||
diff --git a/src/main/java/org/spigotmc/TicksPerSecondCommand.java b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
|
||||
index 0ecac76577eb440a0c3104ef4603acec826c474d..4813bd6de894d0566e8631d8c71915c38c1da0f8 100644
|
||||
index 0ecac76577eb440a0c3104ef4603acec826c474d..26ff7f68dacad945095d794c1def4752e0775abb 100644
|
||||
--- a/src/main/java/org/spigotmc/TicksPerSecondCommand.java
|
||||
+++ b/src/main/java/org/spigotmc/TicksPerSecondCommand.java
|
||||
@@ -52,7 +52,7 @@ public class TicksPerSecondCommand extends Command
|
||||
@@ -446,7 +510,7 @@ index 0ecac76577eb440a0c3104ef4603acec826c474d..4813bd6de894d0566e8631d8c71915c3
|
||||
{
|
||||
return ( ( tps > 18.0 ) ? ChatColor.GREEN : ( tps > 16.0 ) ? ChatColor.YELLOW : ChatColor.RED ).toString()
|
||||
- + ( ( tps > 21.0 ) ? "*" : "" ) + Math.min( Math.round( tps * 100.0 ) / 100.0, 20.0 ); // Paper - only print * at 21, we commonly peak to 20.02 as the tick sleep is not accurate enough, stop the noise
|
||||
+ + ( ( tps > 21.0 ) ? "*" : "" ) + Math.min( carpetfixes.helpers.FastMath.round( tps * 100.0 ) / 100.0, 20.0 ); // Paper - only print * at 21, we commonly peak to 20.02 as the tick sleep is not accurate enough, stop the noise
|
||||
+ + ( ( tps > 21.0 ) ? "*" : "" ) + Math.min( carpetfixes.helpers.FastMath.round( tps * 100.0 ) / 100.0, 20.0 ); // Paper - only print * at 21, we commonly peak to 20.02 as the tick sleep is not accurate enough, stop the noise // Mirai
|
||||
}
|
||||
|
||||
// Yatopia start - Last tick time API
|
||||
|
||||
@@ -4,50 +4,93 @@ Date: Tue, 2 Aug 2022 14:48:12 +0200
|
||||
Subject: [PATCH] Configurable chat message signatures
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java b/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
|
||||
index 11183b4a39b9897e1b1067eb2a3556d2b1d90f52..d08127b516fbae1a5500a9d3f0df02a437b0d250 100644
|
||||
--- a/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
|
||||
+++ b/src/main/java/net/minecraft/network/protocol/status/ServerStatus.java
|
||||
@@ -78,6 +78,7 @@ public class ServerStatus {
|
||||
}
|
||||
|
||||
public boolean enforcesSecureChat() {
|
||||
+ if (wtf.etil.mirai.MiraiConfig.chatMessageSignatures) return true; // Mirai - configurable chat message signatures
|
||||
return this.enforcesSecureChat;
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index aec14ff5235686a3e02b66eb3ad05fed2c4756b4..d072b064499a7743305c9f3e078015b97c5ac39e 100644
|
||||
index aec14ff5235686a3e02b66eb3ad05fed2c4756b4..60ba00eb6daeeb9b97281f9380d373af3cc29402 100644
|
||||
--- a/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -619,7 +619,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -619,6 +619,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
|
||||
@Override
|
||||
public boolean enforceSecureProfile() {
|
||||
- return this.getProperties().enforceSecureProfile && this.getProperties().onlineMode;
|
||||
+ return this.getProperties().enforceSecureProfile && this.getProperties().onlineMode && wtf.etil.mirai.MiraiConfig.chatMessageSignatures; // Mirai - Configurable chat message signatures
|
||||
+ if (wtf.etil.mirai.MiraiConfig.chatMessageSignatures) return false; // Mirai - configurable chat message signatures
|
||||
return this.getProperties().enforceSecureProfile && this.getProperties().onlineMode;
|
||||
}
|
||||
|
||||
protected boolean convertOldUsers() {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index 4d705dc5294bb07b0ce34c68d1c4bbf33bb84848..542b8c6be55f2a99a4f7e864a9021a8826976495 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1960,7 +1960,7 @@ public class ServerPlayer extends Player {
|
||||
}
|
||||
|
||||
public void sendServerStatus(ServerStatus metadata) {
|
||||
- this.connection.send(new ClientboundServerDataPacket(metadata.getDescription(), metadata.getFavicon(), metadata.previewsChat(), metadata.enforcesSecureChat()));
|
||||
+ this.connection.send(new ClientboundServerDataPacket(metadata.getDescription(), metadata.getFavicon(), metadata.previewsChat(), metadata.enforcesSecureChat() || wtf.etil.mirai.MiraiConfig.chatMessageSignatures)); // Mirai - Configurable chat message signatures
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index bc3f0dfe075ea2aeae48df05c66c9045810f7a0b..475fb7879ddfce4e080e45031a97661e6f31f6f8 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -2166,10 +2166,34 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 5930ee1dbabf644361220b67407e3ac871c391a8..6bb64edc6d8357980400e6d83f828d110de0dca9 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1445,6 +1445,13 @@ public abstract class PlayerList {
|
||||
// Paper end
|
||||
boolean flag = this.verifyChatTrusted(message, sourceProfile);
|
||||
|
||||
+ // Mirai start - Configurable chat message signatures
|
||||
public void send(Packet<?> packet) {
|
||||
+ // Mirai start - configurable chat message signatures
|
||||
+ if (wtf.etil.mirai.MiraiConfig.chatMessageSignatures) {
|
||||
+ flag = true;
|
||||
+ message = PlayerChatMessage.system(message.signedContent());
|
||||
+ if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatHeaderPacket) {
|
||||
+ return;
|
||||
+ } else if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket chat) {
|
||||
+ packet = new ClientboundSystemChatPacket(chat.chatType().resolve(this.player.level.registryAccess())
|
||||
+ .get().decorate(chat.message().serverContent()), false);
|
||||
+
|
||||
+
|
||||
+ this.send(packet);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+ // Mirai end
|
||||
this.send(packet, (PacketSendListener) null);
|
||||
}
|
||||
|
||||
public void send(Packet<?> packet, @Nullable PacketSendListener callbacks) {
|
||||
+ // Mirai start - configurable chat message signatures
|
||||
+ if (wtf.etil.mirai.MiraiConfig.chatMessageSignatures) {
|
||||
+ if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatHeaderPacket) {
|
||||
+ return;
|
||||
+ } else if (packet instanceof net.minecraft.network.protocol.game.ClientboundPlayerChatPacket chat && callbacks != null) {
|
||||
+ this.send(chat);
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+ // Mirai end
|
||||
+
|
||||
this.server.logChatMessage((unsignedFunction == null ? message : message.withUnsignedContent(unsignedFunction.apply(this.server.console))).serverContent(), params, flag ? null : "Not Secure"); // Paper
|
||||
OutgoingPlayerChatMessage outgoingplayerchatmessage = OutgoingPlayerChatMessage.create(message);
|
||||
boolean flag1 = message.isFullyFiltered();
|
||||
// CraftBukkit start
|
||||
if (packet == null || this.processedDisconnect) { // Spigot
|
||||
return;
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index 5930ee1dbabf644361220b67407e3ac871c391a8..3adfba493b806a136b857d6e785996d8a1e241a2 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1483,6 +1483,7 @@ public abstract class PlayerList {
|
||||
}
|
||||
|
||||
public boolean verifyChatTrusted(PlayerChatMessage message, ChatSender profile) { // Paper - private -> public
|
||||
+ if (wtf.etil.mirai.MiraiConfig.chatMessageSignatures) return true; // Mirai - configurable chat message signatures
|
||||
return !message.hasExpiredServer(Instant.now()) && message.verify(profile);
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/player/Player.java b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
index 18c4f2eeb6bb427c1314608fc6a81e4642d92888..b029ae19db2bfde9b08950f41ba8a09e8e4091a0 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/player/Player.java
|
||||
@@ -1516,6 +1516,7 @@ public abstract class Player extends LivingEntity {
|
||||
|
||||
@Nullable
|
||||
public ProfilePublicKey getProfilePublicKey() {
|
||||
+ if (wtf.etil.mirai.MiraiConfig.chatMessageSignatures) return null; // Mirai - configurable chat message signatures
|
||||
return this.profilePublicKey;
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/wtf/etil/mirai/MiraiConfig.java b/src/main/java/wtf/etil/mirai/MiraiConfig.java
|
||||
index f6f88a802c6f1892418fd6bcb8b4bc0b90fb6afb..13884ca2bd4e459498700e2fed1f0b4406538f53 100644
|
||||
--- a/src/main/java/wtf/etil/mirai/MiraiConfig.java
|
||||
|
||||
@@ -7,7 +7,7 @@ Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
|
||||
index ceb8e8db5813d5dd052a6a0079ae37e393b043fb..4291f9d996fb41f2c6180777ebc518679db4709e 100644
|
||||
index 6ab1549e53c5356f48212f39e50df97e645fe925..c21a724043cf5f142c4d2251604119b5e2fa5389 100644
|
||||
--- a/src/main/java/net/minecraft/commands/Commands.java
|
||||
+++ b/src/main/java/net/minecraft/commands/Commands.java
|
||||
@@ -137,7 +137,7 @@ public class Commands {
|
||||
@@ -41,7 +41,7 @@ index ceb8e8db5813d5dd052a6a0079ae37e393b043fb..4291f9d996fb41f2c6180777ebc51867
|
||||
|
||||
return b0;
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index f5f42508ea95e25ad698678c81927489b71c3e1c..c03a0acaff532907e7912817546695fe04844f79 100644
|
||||
index fe8b2de61fdce195210f270e33f508376b60f793..754207cc726d0e89c47d190696a2a16330b36d58 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -325,13 +325,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<Runnab
|
||||
@@ -802,7 +802,7 @@ index a9bb78d68adac54729a954f766ad993989bfee77..d2a5fef04ede02700c566280599d2aac
|
||||
|
||||
while (iterator.hasNext()) {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index a66912570d7308dd8ec818ede625a377b8bcd1fa..375a49372e66b90f42baa934873e503ed3bd7ab9 100644
|
||||
index 4d705dc5294bb07b0ce34c68d1c4bbf33bb84848..0323074105dc15579cd1ddeef2ff03e9d4ace2bc 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -1116,7 +1116,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -835,7 +835,7 @@ index a66912570d7308dd8ec818ede625a377b8bcd1fa..375a49372e66b90f42baa934873e503e
|
||||
this.connection.send(new ClientboundPlayerAbilitiesPacket(this.getAbilities()));
|
||||
playerlist.sendLevelInfo(this, worldserver);
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index 7bf8ade4c9907c0dc060b318c34cb43f7f9078c5..70cb34baa7dff7380bd9d33ed2d799450f72d597 100644
|
||||
index 475fb7879ddfce4e080e45031a97661e6f31f6f8..8b1dee2ec0a22ee08b06caf7e032091f68dcc08c 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -405,7 +405,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||
@@ -1187,7 +1187,7 @@ index 32bb217e3b1a5ee3be8ba576e192ee93b4123d30..2909bd864bd2ae663a81aa133262ffb8
|
||||
}
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 7fe46ecd8221545d56f5c8e509f72cb90ad6425a..47e214bbc464d1e0925fa521b094f036c0098bbe 100644
|
||||
index b621253d69d4379faaf11ef39e9e000ed615e85f..80f2c1b7bb65c7274f0f755b5f9447f762d4fdc7 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -390,7 +390,7 @@ public abstract class LivingEntity extends Entity {
|
||||
@@ -1221,9 +1221,9 @@ index 7fe46ecd8221545d56f5c8e509f72cb90ad6425a..47e214bbc464d1e0925fa521b094f036
|
||||
+ //this.level.getProfiler().push("rangeChecks"); // Purpur
|
||||
|
||||
// Paper start - Stop large pitch and yaw changes from crashing the server
|
||||
this.yRotO += carpetfixes.helpers.FastMath.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F;
|
||||
this.yRotO += carpetfixes.helpers.FastMath.round((this.getYRot() - this.yRotO) / 360.0F) * 360.0F; // Mirai
|
||||
@@ -3018,7 +3018,7 @@ public abstract class LivingEntity extends Entity {
|
||||
this.yHeadRotO += carpetfixes.helpers.FastMath.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F;
|
||||
this.yHeadRotO += carpetfixes.helpers.FastMath.round((this.yHeadRot - this.yHeadRotO) / 360.0F) * 360.0F; // Mirai
|
||||
// Paper end
|
||||
|
||||
- this.level.getProfiler().pop();
|
||||
@@ -1593,9 +1593,15 @@ index 3dd4e6d622a6daafa00ae971edd88a147e34beef..69423113b638616e8b56bece13edd992
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
index 362f952888f63a453a4352a9f1dc7df799244a3c..01cda034c6899755b0ec76ce63f33a0af25cbe9c 100644
|
||||
index 362f952888f63a453a4352a9f1dc7df799244a3c..4e52e88b8a72a4fc1016debe82fa4b8727db7cce 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/animal/goat/Goat.java
|
||||
@@ -1,4 +1,4 @@
|
||||
-package net.minecraft.world.entity.animal.goat;
|
||||
+ package net.minecraft.world.entity.animal.goat;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import com.mojang.serialization.Dynamic;
|
||||
@@ -166,13 +166,13 @@ public class Goat extends Animal {
|
||||
private int behaviorTick = 0; // Pufferfish
|
||||
@Override
|
||||
@@ -1772,7 +1778,7 @@ index 01477e7240f9e33d08d416a7d40ee10f3e5d4abf..c9def2202d7c2a523858ec124df2beaf
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index e69be14b25f2a8686473da5806c4930469e2074b..1ca010d785f3cb76e45aee1650f625c10fbf30bc 100644
|
||||
index f915415e2e24ee7ab3c279ae1fa98d2d9d19a683..8c710918e01fca05df95ebf101606b9bad15dfe7 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -666,9 +666,9 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
|
||||
Reference in New Issue
Block a user