mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-22 08:29:28 +00:00
Backport from ver/1.21.7
- Better warning message for discouraging Maven Central as CDN - Fix infinite loop in dismount loc check
This commit is contained in:
@@ -9,14 +9,10 @@ Original project: https://github.com/PaperMC/Paper
|
|||||||
https://github.com/PaperMC/Paper/commit/62b7f86dae659deb2fc450285452d7c1439f92dc
|
https://github.com/PaperMC/Paper/commit/62b7f86dae659deb2fc450285452d7c1439f92dc
|
||||||
|
|
||||||
Dreeam's Note:
|
Dreeam's Note:
|
||||||
We use soft warning which in Paper is directly exception throw,
|
|
||||||
Only print warning to avoid break plugins directly.
|
|
||||||
|
|
||||||
Also see `Configurable LibraryLoader maven repos` patch,
|
Also see `Configurable LibraryLoader maven repos` patch,
|
||||||
able to match googleapi mirror urls, to replace to repo url we custom defined.
|
able to match googleapi mirror urls, to replace to repo url we custom defined.
|
||||||
This able to switch back to maven central repo, to prevent
|
This able to switch back to maven central repo, to prevent
|
||||||
situation that dependencies exist in maven central, but not in mirror.
|
situation that dependencies exist in maven central, but not in mirror.
|
||||||
---
|
|
||||||
|
|
||||||
Default LibraryLoader to Google's Maven Central mirror, add MavenLibraryResolver.MAVEN_CENTRAL_DEFAULT_MIRROR, and warn on use of Maven Central with MavenLibraryResolver
|
Default LibraryLoader to Google's Maven Central mirror, add MavenLibraryResolver.MAVEN_CENTRAL_DEFAULT_MIRROR, and warn on use of Maven Central with MavenLibraryResolver
|
||||||
|
|
||||||
@@ -24,7 +20,7 @@ https://www.sonatype.com/blog/maven-central-and-the-tragedy-of-the-commons
|
|||||||
https://www.sonatype.com/blog/beyond-ips-addressing-organizational-overconsumption-in-maven-central
|
https://www.sonatype.com/blog/beyond-ips-addressing-organizational-overconsumption-in-maven-central
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java b/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
diff --git a/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java b/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
||||||
index 107705db2d82b7c191e5e625ec888e0bc3b03831..f12c25f35f3d26dc69e05c7965385e66a3d3d545 100644
|
index 107705db2d82b7c191e5e625ec888e0bc3b03831..0f26a192b709cbcda83fad0a0a78f87dbb9e701e 100644
|
||||||
--- a/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
--- a/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
||||||
+++ b/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
+++ b/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
||||||
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
|
@@ -41,7 +41,7 @@ import org.slf4j.LoggerFactory;
|
||||||
@@ -61,23 +57,22 @@ index 107705db2d82b7c191e5e625ec888e0bc3b03831..f12c25f35f3d26dc69e05c7965385e66
|
|||||||
private static final Logger LOGGER = LoggerFactory.getLogger("MavenLibraryResolver");
|
private static final Logger LOGGER = LoggerFactory.getLogger("MavenLibraryResolver");
|
||||||
|
|
||||||
private final RepositorySystem repository;
|
private final RepositorySystem repository;
|
||||||
@@ -105,6 +123,15 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
@@ -105,6 +123,14 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
||||||
* dependencies from
|
* dependencies from
|
||||||
*/
|
*/
|
||||||
public void addRepository(final RemoteRepository remoteRepository) {
|
public void addRepository(final RemoteRepository remoteRepository) {
|
||||||
+ // Paper start - Avoid and discourage use of Maven Central as a CDN
|
+ // Paper start - Avoid and discourage use of Maven Central as a CDN
|
||||||
+ if (MAVEN_CENTRAL_URLS.stream().anyMatch(remoteRepository.getUrl()::startsWith)) {
|
+ if (MAVEN_CENTRAL_URLS.stream().anyMatch(remoteRepository.getUrl()::startsWith)) {
|
||||||
+ try {
|
+ LOGGER.warn(
|
||||||
+ throw new RuntimeException("Plugin used Maven Central for library resolution");
|
+ "Use of Maven Central as a CDN is against the Maven Central Terms of Service. Use MavenLibraryResolver.MAVEN_CENTRAL_DEFAULT_MIRROR instead. DO NOT report it to Paper or Leaf! Please contact plugin's support to adapt this change.", // Leaf - Better warning message for discouraging Maven Central as CDN
|
||||||
+ } catch (RuntimeException e) {
|
+ new RuntimeException("Plugin used Maven Central for library resolution")
|
||||||
+ LOGGER.error("Use of Maven Central as a CDN is against the Maven Central Terms of Service. Use MavenLibraryResolver.MAVEN_CENTRAL_DEFAULT_MIRROR instead.", e);
|
+ );
|
||||||
+ }
|
|
||||||
+ }
|
+ }
|
||||||
+ // Paper end - Avoid and discourage use of Maven Central as a CDN
|
+ // Paper end - Avoid and discourage use of Maven Central as a CDN
|
||||||
this.repositories.add(remoteRepository);
|
this.repositories.add(remoteRepository);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -130,4 +157,17 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
@@ -130,4 +156,17 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
||||||
store.addLibrary(file.toPath());
|
store.addLibrary(file.toPath());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ Add JVM flag `-DLeaf.library-download-repo=link` to choose library download repo
|
|||||||
e.g. `-DLeaf.library-download-repo=https://maven.aliyun.com/repository/public`
|
e.g. `-DLeaf.library-download-repo=https://maven.aliyun.com/repository/public`
|
||||||
|
|
||||||
diff --git a/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java b/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
diff --git a/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java b/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
||||||
index f12c25f35f3d26dc69e05c7965385e66a3d3d545..768b60e13435dc8eca6fc343081a663a37a6d0e7 100644
|
index 0f26a192b709cbcda83fad0a0a78f87dbb9e701e..b0e20089283b2fb3fa0c65f96e1f6bd6634712e9 100644
|
||||||
--- a/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
--- a/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
||||||
+++ b/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
+++ b/src/main/java/io/papermc/paper/plugin/loader/library/impl/MavenLibraryResolver.java
|
||||||
@@ -60,12 +60,25 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
@@ -60,12 +60,25 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
||||||
@@ -38,15 +38,11 @@ index f12c25f35f3d26dc69e05c7965385e66a3d3d545..768b60e13435dc8eca6fc343081a663a
|
|||||||
// Paper end - Avoid and discourage use of Maven Central as a CDN
|
// Paper end - Avoid and discourage use of Maven Central as a CDN
|
||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger("MavenLibraryResolver");
|
private static final Logger LOGGER = LoggerFactory.getLogger("MavenLibraryResolver");
|
||||||
@@ -124,13 +137,32 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
@@ -124,12 +137,33 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
||||||
*/
|
*/
|
||||||
public void addRepository(final RemoteRepository remoteRepository) {
|
public void addRepository(final RemoteRepository remoteRepository) {
|
||||||
// Paper start - Avoid and discourage use of Maven Central as a CDN
|
// Paper start - Avoid and discourage use of Maven Central as a CDN
|
||||||
- if (MAVEN_CENTRAL_URLS.stream().anyMatch(remoteRepository.getUrl()::startsWith)) {
|
- if (MAVEN_CENTRAL_URLS.stream().anyMatch(remoteRepository.getUrl()::startsWith)) {
|
||||||
- try {
|
|
||||||
- throw new RuntimeException("Plugin used Maven Central for library resolution");
|
|
||||||
- } catch (RuntimeException e) {
|
|
||||||
- LOGGER.error("Use of Maven Central as a CDN is against the Maven Central Terms of Service. Use MavenLibraryResolver.MAVEN_CENTRAL_DEFAULT_MIRROR instead.", e);
|
|
||||||
+ // Leaf start - Configurable LibraryLoader maven repos
|
+ // Leaf start - Configurable LibraryLoader maven repos
|
||||||
+ for (String url : MAVEN_CENTRAL_URLS) {
|
+ for (String url : MAVEN_CENTRAL_URLS) {
|
||||||
+ if (remoteRepository.getUrl().startsWith(url)) {
|
+ if (remoteRepository.getUrl().startsWith(url)) {
|
||||||
@@ -55,11 +51,12 @@ index f12c25f35f3d26dc69e05c7965385e66a3d3d545..768b60e13435dc8eca6fc343081a663a
|
|||||||
+ this.repositories.add(mirrorRepo);
|
+ this.repositories.add(mirrorRepo);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ try {
|
+ // Leaf end - Configurable LibraryLoader maven repos
|
||||||
+ throw new RuntimeException("Plugin used Maven Central for library resolution");
|
LOGGER.warn(
|
||||||
+ } catch (RuntimeException e) {
|
"Use of Maven Central as a CDN is against the Maven Central Terms of Service. Use MavenLibraryResolver.MAVEN_CENTRAL_DEFAULT_MIRROR instead. DO NOT report it to Paper or Leaf! Please contact plugin's support to adapt this change.", // Leaf - Better warning message for discouraging Maven Central as CDN
|
||||||
+ LOGGER.error("Use of Maven Central as a CDN is against the Maven Central Terms of Service. Use MavenLibraryResolver.MAVEN_CENTRAL_DEFAULT_MIRROR instead.", e);
|
new RuntimeException("Plugin used Maven Central for library resolution")
|
||||||
+ }
|
);
|
||||||
|
+ // Leaf start - Configurable LibraryLoader maven repos
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+ // Match google api maven central mirror urls
|
+ // Match google api maven central mirror urls
|
||||||
@@ -70,13 +67,13 @@ index f12c25f35f3d26dc69e05c7965385e66a3d3d545..768b60e13435dc8eca6fc343081a663a
|
|||||||
+ this.repositories.add(mirrorRepo);
|
+ this.repositories.add(mirrorRepo);
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
}
|
+ }
|
||||||
}
|
}
|
||||||
+ // Leaf end - Configurable LibraryLoader maven repos
|
+ // Leaf end - Configurable LibraryLoader maven repos
|
||||||
// Paper end - Avoid and discourage use of Maven Central as a CDN
|
// Paper end - Avoid and discourage use of Maven Central as a CDN
|
||||||
this.repositories.add(remoteRepository);
|
this.repositories.add(remoteRepository);
|
||||||
}
|
}
|
||||||
@@ -170,4 +202,15 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
@@ -169,4 +203,15 @@ public class MavenLibraryResolver implements ClassPathLibrary {
|
||||||
return central;
|
return central;
|
||||||
}
|
}
|
||||||
// Paper end - Avoid and discourage use of Maven Central as a CDN
|
// Paper end - Avoid and discourage use of Maven Central as a CDN
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ From: Taiyou06 <kaandindar21@gmail.com>
|
|||||||
Date: Sun, 16 Feb 2025 01:13:04 +0100
|
Date: Sun, 16 Feb 2025 01:13:04 +0100
|
||||||
Subject: [PATCH] count all chunks for ticking
|
Subject: [PATCH] count all chunks for ticking
|
||||||
|
|
||||||
|
|
||||||
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
|
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
|
||||||
index e07fdd22e08cb4e30cf606c055e85b5946e8c046..432c98b582ab40f893835a7a24ef9bbdacc49bd7 100644
|
index e07fdd22e08cb4e30cf606c055e85b5946e8c046..432c98b582ab40f893835a7a24ef9bbdacc49bd7 100644
|
||||||
--- a/net/minecraft/server/level/ServerChunkCache.java
|
--- a/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
|||||||
@@ -0,0 +1,22 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
||||||
|
Date: Fri, 11 Jul 2025 06:10:41 +0800
|
||||||
|
Subject: [PATCH] Fix infinite loop in dismount loc check
|
||||||
|
|
||||||
|
Very fun VineFlower decompile issue.
|
||||||
|
|
||||||
|
Invert the condition to prevent infinite loop
|
||||||
|
|
||||||
|
diff --git a/net/minecraft/world/entity/animal/horse/AbstractHorse.java b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||||
|
index 56dc7011ed07f0bd5870fbadde2b5c0c630c5edd..c2c14958254df77b9b18c6f4a0ea5e68fc79d44e 100644
|
||||||
|
--- a/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||||
|
+++ b/net/minecraft/world/entity/animal/horse/AbstractHorse.java
|
||||||
|
@@ -1223,7 +1223,7 @@ public abstract class AbstractHorse extends Animal implements ContainerListener,
|
||||||
|
}
|
||||||
|
|
||||||
|
mutableBlockPos.move(Direction.UP);
|
||||||
|
- } while (!(mutableBlockPos.getY() < d3));
|
||||||
|
+ } while (mutableBlockPos.getY() < d3); // Leaf - Fix infinite loop in dismount loc check
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
Reference in New Issue
Block a user