Minor patch cleanup

This commit is contained in:
Kyle Wood 2021-06-16 20:43:30 -05:00
parent a26d1aa427
commit b9402f84a9
No known key found for this signature in database
GPG Key ID: 86AF5613ACA30CC5
7 changed files with 513 additions and 97 deletions

View File

@ -6,6 +6,9 @@
# Leave out the member and it will apply to the class itself # Leave out the member and it will apply to the class itself
# More info, see here https://mcforge.readthedocs.io/en/latest/advanced/accesstransformers/#access-modifiers # More info, see here https://mcforge.readthedocs.io/en/latest/advanced/accesstransformers/#access-modifiers
# Remap/Decompile fix (unclear why this is happening)
public net.minecraft.server.MinecraftServer doRunTask(Lnet/minecraft/server/TickTask;)V
# Paper config files # Paper config files
public org.spigotmc.SpigotWorldConfig getBoolean(Ljava/lang/String;Z)Z public org.spigotmc.SpigotWorldConfig getBoolean(Ljava/lang/String;Z)Z
public org.spigotmc.SpigotWorldConfig getDouble(Ljava/lang/String;)D public org.spigotmc.SpigotWorldConfig getDouble(Ljava/lang/String;)D
@ -178,9 +181,6 @@ public net.minecraft.util.thread.BlockableEventLoop runAllTasks()V
public net.minecraft.server.level.ChunkMap entitiesInLevel public net.minecraft.server.level.ChunkMap entitiesInLevel
public net.minecraft.server.level.ServerLevel players public net.minecraft.server.level.ServerLevel players
# Improve block entity unload performance
public net.minecraft.Util$IdentityStrategy
# Chunk priority urgency system # Chunk priority urgency system
public net.minecraft.server.level.ChunkMap$ChunkDistanceManager public net.minecraft.server.level.ChunkMap$ChunkDistanceManager

View File

@ -155,3 +155,481 @@ index 0000000000000000000000000000000000000000..84af6353d060c65d5f125559becc011a
+ return PLUGIN_CACHE_FILE == element.name || element.name == "Log4j2Plugins.dat" + return PLUGIN_CACHE_FILE == element.name || element.name == "Log4j2Plugins.dat"
+ } + }
+} +}
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 2f0e513c9e5d78a22e7d1e1a5aa64bb8f0f360d2..0000000000000000000000000000000000000000
--- a/pom.xml
+++ /dev/null
@@ -1,472 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <groupId>org.spigotmc</groupId>
- <artifactId>spigot</artifactId>
- <packaging>jar</packaging>
- <version>1.17-R0.1-SNAPSHOT</version>
- <name>Spigot</name>
- <url>https://www.spigotmc.org/</url>
-
- <properties>
- <skipTests>true</skipTests>
- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <api.version>unknown</api.version>
- <bt.name>git</bt.name>
- <minecraft_version>1_17_R1</minecraft_version>
- <maven.compiler.source>1.8</maven.compiler.source>
- <maven.compiler.target>1.8</maven.compiler.target>
- </properties>
-
- <parent>
- <groupId>org.spigotmc</groupId>
- <artifactId>spigot-parent</artifactId>
- <version>dev-SNAPSHOT</version>
- <relativePath>../pom.xml</relativePath>
- </parent>
-
- <dependencies>
- <dependency>
- <groupId>org.spigotmc</groupId>
- <artifactId>spigot-api</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.spigotmc</groupId>
- <artifactId>minecraft-server</artifactId>
- <version>${project.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>jline</groupId>
- <artifactId>jline</artifactId>
- <version>2.12.1</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-iostreams</artifactId>
- <version>2.14.1</version>
- <scope>compile</scope>
- <exclusions>
- <!-- included in minecraft-server -->
- <exclusion>
- <groupId>org.apache.logging.log4j</groupId>
- <artifactId>log4j-api</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm</artifactId>
- <version>9.1</version>
- <scope>compile</scope>
- </dependency>
- <!-- deprecated API depend -->
- <dependency>
- <groupId>com.googlecode.json-simple</groupId>
- <artifactId>json-simple</artifactId>
- <version>1.1.1</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.xerial</groupId>
- <artifactId>sqlite-jdbc</artifactId>
- <version>3.34.0</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <version>5.1.49</version>
- <scope>runtime</scope>
- </dependency>
- <!-- add these back in as they are not exposed by the API -->
- <dependency>
- <groupId>org.apache.maven</groupId>
- <artifactId>maven-resolver-provider</artifactId>
- <version>3.8.1</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.resolver</groupId>
- <artifactId>maven-resolver-connector-basic</artifactId>
- <version>1.7.0</version>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.maven.resolver</groupId>
- <artifactId>maven-resolver-transport-http</artifactId>
- <version>1.7.0</version>
- <scope>runtime</scope>
- </dependency>
- <!-- testing -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>4.13.1</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.hamcrest</groupId>
- <artifactId>hamcrest-library</artifactId>
- <version>1.3</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <!-- This builds a completely 'ready to start' jar with all dependencies inside -->
- <build>
- <plugins>
- <plugin>
- <groupId>net.md-5</groupId>
- <artifactId>scriptus</artifactId>
- <version>0.4.1</version>
- <executions>
- <execution>
- <id>ex-spigot</id>
- <configuration>
- <format>${bt.name}-Spigot-%s</format>
- <scmDirectory>../</scmDirectory>
- <descriptionProperty>spigot.desc</descriptionProperty>
- </configuration>
- <phase>initialize</phase>
- <goals>
- <goal>describe</goal>
- </goals>
- </execution>
- <execution>
- <id>ex-craftbukkit</id>
- <configuration>
- <format>-%s</format>
- <scmDirectory>../../CraftBukkit</scmDirectory>
- <descriptionProperty>craftbukkit.desc</descriptionProperty>
- </configuration>
- <phase>initialize</phase>
- <goals>
- <goal>describe</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-clean-plugin</artifactId>
- <version>3.1.0</version>
- <executions>
- <execution>
- <phase>initialize</phase>
- <goals>
- <goal>clean</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-jar-plugin</artifactId>
- <version>3.2.0</version>
- <configuration>
- <archive>
- <manifest>
- <addDefaultEntries>false</addDefaultEntries>
- </manifest>
- <manifestEntries>
- <Main-Class>org.bukkit.craftbukkit.Main</Main-Class>
- <Implementation-Title>CraftBukkit</Implementation-Title>
- <Implementation-Version>${spigot.desc}${craftbukkit.desc}</Implementation-Version>
- <Implementation-Vendor>${project.build.outputTimestamp}</Implementation-Vendor>
- <Specification-Title>Bukkit</Specification-Title>
- <Specification-Version>${api.version}</Specification-Version>
- <Specification-Vendor>Bukkit Team</Specification-Vendor>
- <Multi-Release>true</Multi-Release>
- </manifestEntries>
- <manifestSections>
- <manifestSection>
- <name>net/bukkit/</name>
- <manifestEntries>
- <Sealed>true</Sealed>
- </manifestEntries>
- </manifestSection>
- <manifestSection>
- <name>com/bukkit/</name>
- <manifestEntries>
- <Sealed>true</Sealed>
- </manifestEntries>
- </manifestSection>
- <manifestSection>
- <name>org/bukkit/</name>
- <manifestEntries>
- <Sealed>true</Sealed>
- </manifestEntries>
- </manifestSection>
- </manifestSections>
- </archive>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-shade-plugin</artifactId>
- <version>3.2.4</version>
- <dependencies>
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm</artifactId>
- <version>9.1</version>
- </dependency>
- <dependency>
- <groupId>org.ow2.asm</groupId>
- <artifactId>asm-commons</artifactId>
- <version>9.1</version>
- </dependency>
- </dependencies>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>shade</goal>
- </goals>
- <configuration>
- <createSourcesJar>${shadeSourcesJar}</createSourcesJar>
- <filters>
- <filter>
- <artifact>org.spigotmc:minecraft-server</artifact>
- <excludes>
- <exclude>com/google/common/**</exclude>
- <exclude>com/google/gson/**</exclude>
- <exclude>com/google/thirdparty/**</exclude>
- </excludes>
- </filter>
- <filter>
- <artifact>org.eclipse.sisu:org.eclipse.sisu.inject</artifact>
- <excludes>
- <exclude>META-INF/services/javax.annotation.processing.Processor</exclude>
- </excludes>
- </filter>
- </filters>
- <relocations>
- <!-- Cannot be relocated as it breaks translation property keys -->
- <!--
- <relocation>
- <pattern>joptsimple</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.joptsimple</shadedPattern>
- </relocation>
- -->
- <relocation>
- <pattern>jline</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.jline</shadedPattern>
- </relocation>
- <relocation>
- <pattern>it.unimi</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.it.unimi</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.apache.commons.codec</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.org.apache.commons.codec</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.apache.commons.io</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.org.apache.commons.io</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.apache.commons.lang3</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.org.apache.commons.lang3</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.apache.http</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.org.apache.http</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.apache.maven</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.org.apache.maven</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.codehaus.plexus</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.org.codehaus.plexus</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.eclipse.aether</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.org.eclipse.aether</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.eclipse.sisu</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.org.eclipse.sisu</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.objectweb.asm</pattern>
- <shadedPattern>org.bukkit.craftbukkit.libs.org.objectweb.asm</shadedPattern>
- </relocation>
- <relocation>
- <pattern>org.bukkit.craftbukkit</pattern>
- <shadedPattern>org.bukkit.craftbukkit.v${minecraft_version}</shadedPattern>
- <excludes>
- <exclude>org.bukkit.craftbukkit.Main*</exclude>
- </excludes>
- </relocation>
- </relocations>
- <transformers>
- <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
- <resource>META-INF/services/java.sql.Driver</resource>
- </transformer>
- </transformers>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>net.md-5</groupId>
- <artifactId>specialsource-maven-plugin</artifactId>
- <version>1.2.2</version>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>remap</goal>
- </goals>
- <id>remap-fields</id>
- <configuration>
- <srgIn>org.spigotmc:minecraft-server:${project.version}:csrg:maps-spigot-fields</srgIn>
- <reverse>true</reverse>
- </configuration>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.8.1</version>
- <configuration>
- <!-- we use the Eclipse compiler as it doesn't need a JDK -->
- <compilerId>eclipse</compilerId>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-compiler-eclipse</artifactId>
- <version>2.8.8</version>
- </dependency>
- <dependency>
- <groupId>org.eclipse.jdt</groupId>
- <artifactId>ecj</artifactId>
- <version>3.24.0</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.12.4</version>
- <configuration>
- <workingDirectory>${basedir}/target/test-server</workingDirectory>
- <excludes>
- <exclude>org/bukkit/craftbukkit/inventory/ItemStack*Test.java</exclude>
- </excludes>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <profiles>
- <profile>
- <id>shadeSourcesJar</id>
- <properties>
- <shadeSourcesJar>true</shadeSourcesJar>
- <shadeSourcesContent>true</shadeSourcesContent>
- </properties>
- </profile>
- <profile>
- <id>development</id>
- <properties>
- <skipTests>false</skipTests>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-checkstyle-plugin</artifactId>
- <version>3.1.1</version>
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <configLocation>checkstyle.xml</configLocation>
- <includeTestSourceDirectory>true</includeTestSourceDirectory>
- </configuration>
- <dependencies>
- <dependency>
- <groupId>com.puppycrawl.tools</groupId>
- <artifactId>checkstyle</artifactId>
- <version>8.39</version>
- </dependency>
- </dependencies>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>animal-sniffer-maven-plugin</artifactId>
- <version>1.20</version>
- <executions>
- <execution>
- <phase>process-classes</phase>
- <goals>
- <goal>check</goal>
- </goals>
- </execution>
- </executions>
- <configuration>
- <signature>
- <groupId>org.codehaus.mojo.signature</groupId>
- <artifactId>java18</artifactId>
- <version>1.0</version>
- </signature>
- </configuration>
- </plugin>
- </plugins>
- </build>
- </profile>
- <profile>
- <id>remapped</id>
- <build>
- <plugins>
- <plugin>
- <groupId>net.md-5</groupId>
- <artifactId>specialsource-maven-plugin</artifactId>
- <executions>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>remap</goal>
- </goals>
- <id>remap-obf</id>
- <configuration>
- <srgIn>org.spigotmc:minecraft-server:${project.version}:csrg:maps-spigot</srgIn>
- <reverse>true</reverse>
- <remappedArtifactAttached>true</remappedArtifactAttached>
- <remappedClassifierName>remapped-obf</remappedClassifierName>
- </configuration>
- </execution>
- <execution>
- <phase>package</phase>
- <goals>
- <goal>remap</goal>
- </goals>
- <id>remap-mojang</id>
- <configuration>
- <inputFile>${project.build.directory}/${project.artifactId}-${project.version}-remapped-obf.jar</inputFile>
- <srgIn>org.spigotmc:minecraft-server:${project.version}:txt:maps-mojang</srgIn>
- <remappedArtifactAttached>true</remappedArtifactAttached>
- <remappedClassifierName>remapped-mojang</remappedClassifierName>
- </configuration>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
- </profile>
- </profiles>
-</project>

View File

@ -1,11 +1,11 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Kyle Wood <kyle@denwav.dev> From: Kyle Wood <kyle@denwav.dev>
Date: Fri, 11 Jun 2021 05:25:03 -0500 Date: Fri, 11 Jun 2021 05:25:03 -0500
Subject: [PATCH] Decompile fixes Subject: [PATCH] Remap fixes
diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java diff --git a/src/main/java/net/minecraft/core/BlockPos.java b/src/main/java/net/minecraft/core/BlockPos.java
index 1bd6ef643b17b059eb525035496b816a098279c4..891fc7f4cbea8eccd580f371715478265339c0cc 100644 index 1bd6ef643b17b059eb525035496b816a098279c4..754e65f322ded875ae7614066bab30a8da2aa4a9 100644
--- a/src/main/java/net/minecraft/core/BlockPos.java --- a/src/main/java/net/minecraft/core/BlockPos.java
+++ b/src/main/java/net/minecraft/core/BlockPos.java +++ b/src/main/java/net/minecraft/core/BlockPos.java
@@ -270,9 +270,11 @@ public class BlockPos extends Vec3i { @@ -270,9 +270,11 @@ public class BlockPos extends Vec3i {
@ -15,7 +15,7 @@ index 1bd6ef643b17b059eb525035496b816a098279c4..891fc7f4cbea8eccd580f37171547826
- int j = center.getX(); - int j = center.getX();
- int k = center.getY(); - int k = center.getY();
- int l = center.getZ(); - int l = center.getZ();
+ // Paper start - rename variables to fix conflict with anonymous class (decompile fix) + // Paper start - rename variables to fix conflict with anonymous class (remap fix)
+ int centerX = center.getX(); + int centerX = center.getX();
+ int centerY = center.getY(); + int centerY = center.getY();
+ int centerZ = center.getZ(); + int centerZ = center.getZ();
@ -28,7 +28,7 @@ index 1bd6ef643b17b059eb525035496b816a098279c4..891fc7f4cbea8eccd580f37171547826
if (this.zMirror) { if (this.zMirror) {
this.zMirror = false; this.zMirror = false;
- this.cursor.setZ(l - (this.cursor.getZ() - l)); - this.cursor.setZ(l - (this.cursor.getZ() - l));
+ this.cursor.setZ(centerZ - (this.cursor.getZ() - centerZ)); // Paper - decompile fix + this.cursor.setZ(centerZ - (this.cursor.getZ() - centerZ)); // Paper - remap fix
return this.cursor; return this.cursor;
} else { } else {
BlockPos blockPos; BlockPos blockPos;
@ -37,25 +37,12 @@ index 1bd6ef643b17b059eb525035496b816a098279c4..891fc7f4cbea8eccd580f37171547826
if (k <= rangeZ) { if (k <= rangeZ) {
this.zMirror = k != 0; this.zMirror = k != 0;
- blockPos = this.cursor.set(j + i, k + j, l + k); - blockPos = this.cursor.set(j + i, k + j, l + k);
+ blockPos = this.cursor.set(centerX + i, centerY + j, centerZ + k); // Paper - decompile fix + blockPos = this.cursor.set(centerX + i, centerY + j, centerZ + k); // Paper - remap fix
} }
} }
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 0000a0057ec4ee2db72e4ea1bf421f95d9d9fdc6..729e55535d833f8f6ff65bf226aac5ecdec44990 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -1139,7 +1139,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
}
- protected void doRunTask(TickTask ticktask) {
+ public void doRunTask(TickTask ticktask) { // Paper - decomp fix
this.getProfiler().incrementCounter("runTask");
super.doRunTask(ticktask);
}
diff --git a/src/main/java/net/minecraft/server/commands/SummonCommand.java b/src/main/java/net/minecraft/server/commands/SummonCommand.java diff --git a/src/main/java/net/minecraft/server/commands/SummonCommand.java b/src/main/java/net/minecraft/server/commands/SummonCommand.java
index 71c22f72b6e7507e85ecb6be3166b809b7409ab2..fb9fca76a42479363c9c9764fdae6adb4b5e703f 100644 index 71c22f72b6e7507e85ecb6be3166b809b7409ab2..0821cd15071ac10c88f0bcfd869c27cadbe778ba 100644
--- a/src/main/java/net/minecraft/server/commands/SummonCommand.java --- a/src/main/java/net/minecraft/server/commands/SummonCommand.java
+++ b/src/main/java/net/minecraft/server/commands/SummonCommand.java +++ b/src/main/java/net/minecraft/server/commands/SummonCommand.java
@@ -54,9 +54,9 @@ public class SummonCommand { @@ -54,9 +54,9 @@ public class SummonCommand {
@ -65,14 +52,14 @@ index 71c22f72b6e7507e85ecb6be3166b809b7409ab2..fb9fca76a42479363c9c9764fdae6adb
- Entity entity1 = EntityType.loadEntityRecursive(nbttagcompound1, worldserver, (entity1) -> { - Entity entity1 = EntityType.loadEntityRecursive(nbttagcompound1, worldserver, (entity1) -> {
- entity1.moveTo(pos.x, pos.y, pos.z, entity1.getYRot(), entity1.getXRot()); - entity1.moveTo(pos.x, pos.y, pos.z, entity1.getYRot(), entity1.getXRot());
- return entity1; - return entity1;
+ Entity entity1 = EntityType.loadEntityRecursive(nbttagcompound1, worldserver, (loadedEntity) -> { // Paper - decomp fix + Entity entity1 = EntityType.loadEntityRecursive(nbttagcompound1, worldserver, (loadedEntity) -> { // Paper - remap fix
+ loadedEntity.moveTo(pos.x, pos.y, pos.z, loadedEntity.getYRot(), loadedEntity.getXRot()); // Paper - decomp fix + loadedEntity.moveTo(pos.x, pos.y, pos.z, loadedEntity.getYRot(), loadedEntity.getXRot()); // Paper - remap fix
+ return loadedEntity; // Paper - decomp fix + return loadedEntity; // Paper - remap fix
}); });
if (entity1 == null) { if (entity1 == null) {
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
index 88a8c2bc4aa30f478122a05fd119486a0107db82..5f00e3f4c86196db47bf1007973445d40866afdd 100644 index 88a8c2bc4aa30f478122a05fd119486a0107db82..ef17f21574ce37b9ce6f72b9585034db473502c7 100644
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java --- a/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java +++ b/src/main/java/net/minecraft/world/entity/ai/behavior/BehaviorUtils.java
@@ -169,8 +169,8 @@ public class BehaviorUtils { @@ -169,8 +169,8 @@ public class BehaviorUtils {
@ -81,13 +68,13 @@ index 88a8c2bc4aa30f478122a05fd119486a0107db82..5f00e3f4c86196db47bf1007973445d4
return ((ServerLevel) entity.level).getEntity(uuid); return ((ServerLevel) entity.level).getEntity(uuid);
- }).map((entity) -> { - }).map((entity) -> {
- return entity instanceof LivingEntity ? (LivingEntity) entity : null; - return entity instanceof LivingEntity ? (LivingEntity) entity : null;
+ }).map((entity2) -> { // Paper - decomp fix + }).map((entity2) -> { // Paper - remap fix
+ return entity2 instanceof LivingEntity ? (LivingEntity) entity2 : null; // Paper - decomp fix + return entity2 instanceof LivingEntity ? (LivingEntity) entity2 : null; // Paper - remap fix
}); });
} }
diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java diff --git a/src/main/java/net/minecraft/world/entity/monster/Phantom.java b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
index c88dc823ca0c2f83bc10886208d498ea77523d68..dcfd0b107ac7bd1633f3b681cd5f5e26ce87bd63 100644 index 6552c7c30d02a99420b5c8c14595c62f2f896ed2..5df9ad398ba173bb0ff4770673f8eb5967325c5a 100644
--- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java --- a/src/main/java/net/minecraft/world/entity/monster/Phantom.java
+++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java +++ b/src/main/java/net/minecraft/world/entity/monster/Phantom.java
@@ -522,7 +522,7 @@ public class Phantom extends FlyingMob implements Enemy { @@ -522,7 +522,7 @@ public class Phantom extends FlyingMob implements Enemy {
@ -95,12 +82,12 @@ index c88dc823ca0c2f83bc10886208d498ea77523d68..dcfd0b107ac7bd1633f3b681cd5f5e26
if (!list.isEmpty()) { if (!list.isEmpty()) {
- list.sort(Comparator.comparing(Entity::getY).reversed()); - list.sort(Comparator.comparing(Entity::getY).reversed());
+ list.sort(Comparator.<Player, Double>comparing(Entity::getY).reversed()); // Paper - decomp fix + list.sort(Comparator.<Player, Double>comparing(Entity::getY).reversed()); // Paper - remap fix
Iterator iterator = list.iterator(); Iterator iterator = list.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java diff --git a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
index efb37470d4927def456c382420775a815594aa58..9bc0ccf6acccd5505bac7b8a6bfb7597a43570cf 100644 index efb37470d4927def456c382420775a815594aa58..38dd114fbfa07a18987cd774ae05060d723247e4 100644
--- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java --- a/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
+++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java +++ b/src/main/java/net/minecraft/world/item/crafting/RecipeManager.java
@@ -172,7 +172,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener { @@ -172,7 +172,7 @@ public class RecipeManager extends SimpleJsonResourceReloadListener {
@ -108,12 +95,12 @@ index efb37470d4927def456c382420775a815594aa58..9bc0ccf6acccd5505bac7b8a6bfb7597
recipes.forEach((irecipe) -> { recipes.forEach((irecipe) -> {
- Map<ResourceLocation, Recipe<?>> map1 = (Map) map.computeIfAbsent(irecipe.getType(), (recipes) -> { - Map<ResourceLocation, Recipe<?>> map1 = (Map) map.computeIfAbsent(irecipe.getType(), (recipes) -> {
+ Map<ResourceLocation, Recipe<?>> map1 = (Map) map.computeIfAbsent(irecipe.getType(), (recipes_) -> { // Paper - decomp fix + Map<ResourceLocation, Recipe<?>> map1 = (Map) map.computeIfAbsent(irecipe.getType(), (recipes_) -> { // Paper - remap fix
return new Object2ObjectLinkedOpenHashMap<>(); // CraftBukkit return new Object2ObjectLinkedOpenHashMap<>(); // CraftBukkit
}); });
Recipe<?> irecipe1 = (Recipe) map1.put(irecipe.getId(), irecipe); Recipe<?> irecipe1 = (Recipe) map1.put(irecipe.getId(), irecipe);
diff --git a/src/test/java/org/bukkit/DyeColorsTest.java b/src/test/java/org/bukkit/DyeColorsTest.java diff --git a/src/test/java/org/bukkit/DyeColorsTest.java b/src/test/java/org/bukkit/DyeColorsTest.java
index ad52c3fc6210939a39ef77a382c640a24ee44838..5d811797ce8e14195a23fc71c8a3afbdca7691eb 100644 index ad52c3fc6210939a39ef77a382c640a24ee44838..6b7dd01778f0a5d3a96d2d04af4b525d17efbfba 100644
--- a/src/test/java/org/bukkit/DyeColorsTest.java --- a/src/test/java/org/bukkit/DyeColorsTest.java
+++ b/src/test/java/org/bukkit/DyeColorsTest.java +++ b/src/test/java/org/bukkit/DyeColorsTest.java
@@ -4,7 +4,6 @@ import static org.hamcrest.Matchers.*; @@ -4,7 +4,6 @@ import static org.hamcrest.Matchers.*;
@ -129,7 +116,7 @@ index ad52c3fc6210939a39ef77a382c640a24ee44838..5d811797ce8e14195a23fc71c8a3afbd
public void checkColor() { public void checkColor() {
Color color = this.dye.getColor(); Color color = this.dye.getColor();
- float[] nmsColorArray = DyeColor.byId(this.dye.getWoolData()).getTextureDiffuseColors(); - float[] nmsColorArray = DyeColor.byId(this.dye.getWoolData()).getTextureDiffuseColors();
+ float[] nmsColorArray = net.minecraft.world.item.DyeColor.byId(this.dye.getWoolData()).getTextureDiffuseColors(); + float[] nmsColorArray = net.minecraft.world.item.DyeColor.byId(this.dye.getWoolData()).getTextureDiffuseColors(); // Paper - remap fix
Color nmsColor = Color.fromRGB((int) (nmsColorArray[0] * 255), (int) (nmsColorArray[1] * 255), (int) (nmsColorArray[2] * 255)); Color nmsColor = Color.fromRGB((int) (nmsColorArray[0] * 255), (int) (nmsColorArray[1] * 255), (int) (nmsColorArray[2] * 255));
assertThat(color, is(nmsColor)); assertThat(color, is(nmsColor));
} }
@ -138,12 +125,12 @@ index ad52c3fc6210939a39ef77a382c640a24ee44838..5d811797ce8e14195a23fc71c8a3afbd
public void checkFireworkColor() { public void checkFireworkColor() {
Color color = this.dye.getFireworkColor(); Color color = this.dye.getFireworkColor();
- int nmsColor = DyeColor.byId(this.dye.getWoolData()).getFireworkColor(); - int nmsColor = DyeColor.byId(this.dye.getWoolData()).getFireworkColor();
+ int nmsColor = net.minecraft.world.item.DyeColor.byId(this.dye.getWoolData()).getFireworkColor(); + int nmsColor = net.minecraft.world.item.DyeColor.byId(this.dye.getWoolData()).getFireworkColor(); // Paper - remap fix
assertThat(color, is(Color.fromRGB(nmsColor))); assertThat(color, is(Color.fromRGB(nmsColor)));
} }
} }
diff --git a/src/test/java/org/bukkit/PerMaterialTest.java b/src/test/java/org/bukkit/PerMaterialTest.java diff --git a/src/test/java/org/bukkit/PerMaterialTest.java b/src/test/java/org/bukkit/PerMaterialTest.java
index 90baf6e3329d64495da9edd580d5fbc80df8c165..185fa8bf7308bb2980a0feecf0d7696a59e507ac 100644 index 90baf6e3329d64495da9edd580d5fbc80df8c165..e2fb8a0183885b4ad81d5284297be7a35946aa9c 100644
--- a/src/test/java/org/bukkit/PerMaterialTest.java --- a/src/test/java/org/bukkit/PerMaterialTest.java
+++ b/src/test/java/org/bukkit/PerMaterialTest.java +++ b/src/test/java/org/bukkit/PerMaterialTest.java
@@ -221,7 +221,7 @@ public class PerMaterialTest extends AbstractTestingBase { @@ -221,7 +221,7 @@ public class PerMaterialTest extends AbstractTestingBase {
@ -151,12 +138,12 @@ index 90baf6e3329d64495da9edd580d5fbc80df8c165..185fa8bf7308bb2980a0feecf0d7696a
assertThat(this.material.isInteractable(), assertThat(this.material.isInteractable(),
is(!CraftMagicNumbers.getBlock(material).getClass() is(!CraftMagicNumbers.getBlock(material).getClass()
- .getMethod("interact", BlockState.class, net.minecraft.world.level.Level.class, BlockPos.class, Player.class, InteractionHand.class, BlockHitResult.class) - .getMethod("interact", BlockState.class, net.minecraft.world.level.Level.class, BlockPos.class, Player.class, InteractionHand.class, BlockHitResult.class)
+ .getMethod("use", BlockState.class, net.minecraft.world.level.Level.class, BlockPos.class, Player.class, InteractionHand.class, BlockHitResult.class) + .getMethod("use", BlockState.class, net.minecraft.world.level.Level.class, BlockPos.class, Player.class, InteractionHand.class, BlockHitResult.class) // Paper - remap fix
.getDeclaringClass().equals(BlockBehaviour.class))); .getDeclaringClass().equals(BlockBehaviour.class)));
} else { } else {
assertFalse(this.material.isInteractable()); assertFalse(this.material.isInteractable());
diff --git a/src/test/java/org/bukkit/entity/EntityTypesTest.java b/src/test/java/org/bukkit/entity/EntityTypesTest.java diff --git a/src/test/java/org/bukkit/entity/EntityTypesTest.java b/src/test/java/org/bukkit/entity/EntityTypesTest.java
index 8c4ad718e113f24a30fd11b345d34d6ca1ef73b0..085b0c17fb54fd8229838fee666120d9e59d942b 100644 index 8c4ad718e113f24a30fd11b345d34d6ca1ef73b0..1e84f541683ddb619c2a8dfcd2a141fba2bd851d 100644
--- a/src/test/java/org/bukkit/entity/EntityTypesTest.java --- a/src/test/java/org/bukkit/entity/EntityTypesTest.java
+++ b/src/test/java/org/bukkit/entity/EntityTypesTest.java +++ b/src/test/java/org/bukkit/entity/EntityTypesTest.java
@@ -5,7 +5,6 @@ import java.util.Set; @@ -5,7 +5,6 @@ import java.util.Set;
@ -173,13 +160,13 @@ index 8c4ad718e113f24a30fd11b345d34d6ca1ef73b0..085b0c17fb54fd8229838fee666120d9
- for (EntityType<?> nms : Registry.ENTITY_TYPE) { - for (EntityType<?> nms : Registry.ENTITY_TYPE) {
- ResourceLocation key = EntityType.getKey(nms); - ResourceLocation key = EntityType.getKey(nms);
+ for (net.minecraft.world.entity.EntityType<?> nms : Registry.ENTITY_TYPE) { + for (net.minecraft.world.entity.EntityType<?> nms : Registry.ENTITY_TYPE) { // Paper - remap fix
+ ResourceLocation key = net.minecraft.world.entity.EntityType.getKey(nms); + ResourceLocation key = net.minecraft.world.entity.EntityType.getKey(nms); // Paper - remap fix
org.bukkit.entity.EntityType bukkit = org.bukkit.entity.EntityType.fromName(key.getPath()); org.bukkit.entity.EntityType bukkit = org.bukkit.entity.EntityType.fromName(key.getPath());
Assert.assertNotNull("Missing nms->bukkit " + key, bukkit); Assert.assertNotNull("Missing nms->bukkit " + key, bukkit);
diff --git a/src/test/java/org/bukkit/entity/PandaGeneTest.java b/src/test/java/org/bukkit/entity/PandaGeneTest.java diff --git a/src/test/java/org/bukkit/entity/PandaGeneTest.java b/src/test/java/org/bukkit/entity/PandaGeneTest.java
index 76e2ad676ae68846bdff3c3ef711751445fb0f3c..bee1bd015f161a00df1311b6ef272739fcff6834 100644 index 76e2ad676ae68846bdff3c3ef711751445fb0f3c..feee17192bca55a9cf1b2fc5b9609b888db77763 100644
--- a/src/test/java/org/bukkit/entity/PandaGeneTest.java --- a/src/test/java/org/bukkit/entity/PandaGeneTest.java
+++ b/src/test/java/org/bukkit/entity/PandaGeneTest.java +++ b/src/test/java/org/bukkit/entity/PandaGeneTest.java
@@ -1,6 +1,5 @@ @@ -1,6 +1,5 @@
@ -194,7 +181,7 @@ index 76e2ad676ae68846bdff3c3ef711751445fb0f3c..bee1bd015f161a00df1311b6ef272739
public void testBukkit() { public void testBukkit() {
for (Panda.Gene gene : Panda.Gene.values()) { for (Panda.Gene gene : Panda.Gene.values()) {
- Panda.Gene nms = CraftPanda.toNms(gene); - Panda.Gene nms = CraftPanda.toNms(gene);
+ net.minecraft.world.entity.animal.Panda.Gene nms = CraftPanda.toNms(gene); + net.minecraft.world.entity.animal.Panda.Gene nms = CraftPanda.toNms(gene); // Paper - remap fix
Assert.assertNotNull("NMS gene null for " + gene, nms); Assert.assertNotNull("NMS gene null for " + gene, nms);
Assert.assertEquals("Recessive status did not match " + gene, gene.isRecessive(), nms.isRecessive()); Assert.assertEquals("Recessive status did not match " + gene, gene.isRecessive(), nms.isRecessive());
@ -203,7 +190,7 @@ index 76e2ad676ae68846bdff3c3ef711751445fb0f3c..bee1bd015f161a00df1311b6ef272739
@Test @Test
public void testNMS() { public void testNMS() {
- for (Panda.Gene gene : Panda.Gene.values()) { - for (Panda.Gene gene : Panda.Gene.values()) {
+ for (net.minecraft.world.entity.animal.Panda.Gene gene : net.minecraft.world.entity.animal.Panda.Gene.values()) { + for (net.minecraft.world.entity.animal.Panda.Gene gene : net.minecraft.world.entity.animal.Panda.Gene.values()) { // Paper - remap fix
org.bukkit.entity.Panda.Gene bukkit = CraftPanda.fromNms(gene); org.bukkit.entity.Panda.Gene bukkit = CraftPanda.fromNms(gene);
Assert.assertNotNull("Bukkit gene null for " + gene, bukkit); Assert.assertNotNull("Bukkit gene null for " + gene, bukkit);

View File

@ -15,7 +15,7 @@ This may cause additional prefixes to be disabled for plugins bypassing
the plugin logger. the plugin logger.
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index a3e4d9d5a1829533f1419f9ca124c5209a489938..7f34898ab177269803246a2be39763e3438b514c 100644 index f82546e7bb2b10b33e45f547ca4eb4e38ebab568..2946f2bd0b12846929c8d708cabe019c2bbf2297 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -30,7 +30,7 @@ dependencies { @@ -30,7 +30,7 @@ dependencies {
@ -27,19 +27,6 @@ index a3e4d9d5a1829533f1419f9ca124c5209a489938..7f34898ab177269803246a2be39763e3
// Paper end // Paper end
implementation("org.apache.logging.log4j:log4j-iostreams:2.14.1") // Paper implementation("org.apache.logging.log4j:log4j-iostreams:2.14.1") // Paper
implementation("org.apache.logging.log4j:log4j-api:2.14.1") // Paper implementation("org.apache.logging.log4j:log4j-api:2.14.1") // Paper
diff --git a/pom.xml b/pom.xml
index 2f0e513c9e5d78a22e7d1e1a5aa64bb8f0f360d2..f5e74f74e32095c4ad1f8094a0dd64be8e193f0c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -68,7 +68,7 @@
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
- <scope>runtime</scope>
+ <scope>compile</scope>
</dependency>
<dependency>
<groupId>org.xerial</groupId>
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
index 2d226fd06759ed92bf5591259fc86f34f606a3ec..e7586c325290ceb8669f9f9d430c73080a37dd05 100644 index 2d226fd06759ed92bf5591259fc86f34f606a3ec..e7586c325290ceb8669f9f9d430c73080a37dd05 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java --- a/src/main/java/org/spigotmc/SpigotConfig.java

View File

@ -5,14 +5,14 @@ Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index a86b5272c0ac4dd64f796f7fd025c7a34a5d2f8d..e8ec98aa4598af6733b94a58a196190c9e0839d2 100644 index a86b5272c0ac4dd64f796f7fd025c7a34a5d2f8d..f8554943783754618bc04cbbe7df61cebfc98b80 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -724,6 +724,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -724,6 +724,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
// Spigot start // Spigot start
// Iterator iterator = this.blockEntityTickers.iterator(); // Iterator iterator = this.blockEntityTickers.iterator();
int tilesThisCycle = 0; int tilesThisCycle = 0;
+ it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet<TickingBlockEntity> toRemove = new it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet(net.minecraft.Util.IdentityStrategy.INSTANCE); // Paper - use removeAll + var toRemove = new it.unimi.dsi.fastutil.objects.ObjectOpenCustomHashSet<TickingBlockEntity>(net.minecraft.Util.identityStrategy()); // Paper - use removeAll
+ toRemove.add(null); + toRemove.add(null);
for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters for (tileTickPosition = 0; tileTickPosition < this.blockEntityTickers.size(); tileTickPosition++) { // Paper - Disable tick limiters
this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0; this.tileTickPosition = (this.tileTickPosition < this.blockEntityTickers.size()) ? this.tileTickPosition : 0;

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Use asynchronous Log4j 2 loggers
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 7f34898ab177269803246a2be39763e3438b514c..98899f57a859a78dc4445dae6c5448818e3cdd2d 100644 index 2946f2bd0b12846929c8d708cabe019c2bbf2297..bac1ed67b41fd0f63a1e4f511d62144791360550 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -42,6 +42,7 @@ dependencies { @@ -42,6 +42,7 @@ dependencies {
@ -16,24 +16,6 @@ index 7f34898ab177269803246a2be39763e3438b514c..98899f57a859a78dc4445dae6c544881
runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.1") runtimeOnly("org.apache.maven:maven-resolver-provider:3.8.1")
runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.0") runtimeOnly("org.apache.maven.resolver:maven-resolver-connector-basic:1.7.0")
diff --git a/pom.xml b/pom.xml
index f5e74f74e32095c4ad1f8094a0dd64be8e193f0c..86cce7143abd317326cc755118bf61435e82e479 100644
--- a/pom.xml
+++ b/pom.xml
@@ -57,6 +57,13 @@
</exclusion>
</exclusions>
</dependency>
+ <!-- Paper - Async loggers -->
+ <dependency>
+ <groupId>com.lmax</groupId>
+ <artifactId>disruptor</artifactId>
+ <version>3.4.2</version>
+ <scope>runtime</scope>
+ </dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
diff --git a/src/main/java/com/destroystokyo/paper/log/LogFullPolicy.java b/src/main/java/com/destroystokyo/paper/log/LogFullPolicy.java diff --git a/src/main/java/com/destroystokyo/paper/log/LogFullPolicy.java b/src/main/java/com/destroystokyo/paper/log/LogFullPolicy.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..db652a1f7abc80bc751fd94925abaec58ab1a563 index 0000000000000000000000000000000000000000..db652a1f7abc80bc751fd94925abaec58ab1a563

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Implement Mob Goal API
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 81e176070c1f5bbc3deb062a4663bdf66bee14b5..44fd50b5c566c218b83d602f941f33436afe2f39 100644 index 40e1b4322db6bf79ae9511fbf8abab60bde9f127..2e8424beaa1f8a14d3541dad9c258da80ab915d5 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -52,6 +52,7 @@ dependencies { @@ -52,6 +52,7 @@ dependencies {
@ -16,24 +16,6 @@ index 81e176070c1f5bbc3deb062a4663bdf66bee14b5..44fd50b5c566c218b83d602f941f3343
testImplementation("junit:junit:4.13.1") testImplementation("junit:junit:4.13.1")
testImplementation("org.hamcrest:hamcrest-library:1.3") testImplementation("org.hamcrest:hamcrest-library:1.3")
} }
diff --git a/pom.xml b/pom.xml
index 86cce7143abd317326cc755118bf61435e82e479..4233698d499b520dfc07c4184cefca633a95d15b 100644
--- a/pom.xml
+++ b/pom.xml
@@ -121,6 +121,13 @@
<version>1.3</version>
<scope>test</scope>
</dependency>
+ <!-- for vanilla goal scanning -->
+ <dependency>
+ <groupId>io.github.classgraph</groupId>
+ <artifactId>classgraph</artifactId>
+ <version>4.8.47</version>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<!-- This builds a completely 'ready to start' jar with all dependencies inside -->
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..dfc026d183adab1dde5942f36e7a281b3a2fc699 index 0000000000000000000000000000000000000000..dfc026d183adab1dde5942f36e7a281b3a2fc699