mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2025-01-27 18:41:36 +01:00
Merge pull request #47 from tr7zw/fix/submodules
Stuff with sub-modules
This commit is contained in:
commit
be6d0614c7
9
.gitignore
vendored
9
.gitignore
vendored
@ -14,19 +14,16 @@ target/site/surefire-report.html
|
||||
/patches/Akarin/**
|
||||
/patches/Purpur/**
|
||||
/patches/Empirecraft/**
|
||||
/patches/Papercut/**
|
||||
/patches/Rainforest/**
|
||||
/patches/Origami/**
|
||||
/patches/Origami2/**
|
||||
!/patches/Purpur/server.txt
|
||||
!/patches/Purpur/api.txt
|
||||
!/patches/Empirecraft/server.txt
|
||||
!/patches/Empirecraft/api.txt
|
||||
!/patches/Akarin/server.txt
|
||||
!/patches/Akarin/api.txt
|
||||
!/patches/Papercut/server.txt
|
||||
!/patches/Papercut/api.txt
|
||||
!/patches/Rainforest/server.txt
|
||||
!/patches/Rainforest/api.txt
|
||||
!/patches/Origami/server.txt
|
||||
!/patches/Origami/api.txt
|
||||
!/patches/Origami2/server.txt
|
||||
!/patches/Origami2/api.txt
|
||||
yatopia-1.16.1-paperclip.jar
|
||||
|
15
.gitmodules
vendored
15
.gitmodules
vendored
@ -18,18 +18,9 @@
|
||||
url = https://github.com/starlis/empirecraft.git
|
||||
branch = master
|
||||
update = merge
|
||||
[submodule "Papercut"]
|
||||
path = Papercut
|
||||
url = https://github.com/Minevictus/Papercut.git
|
||||
branch = ver/1.16
|
||||
update = merge
|
||||
[submodule "Origami"]
|
||||
path = Origami
|
||||
url = https://github.com/MrIvanPlays/Origami/
|
||||
branch = master
|
||||
update = merge
|
||||
[submodule "Origami2"]
|
||||
path = Origami2
|
||||
url = https://github.com/Minebench/Origami.git
|
||||
branch = 1.16
|
||||
update = merge
|
||||
[submodule "Rainforest"]
|
||||
path = Rainforest
|
||||
url = https://github.com/Proximyst/Rainforest.git
|
||||
|
2
Origami
2
Origami
@ -1 +1 @@
|
||||
Subproject commit 7510dd6fb0bacf10d86de38599b24b3bee4771fa
|
||||
Subproject commit 2a9f9291df1953d16b21cdac79d24f99a7c895f9
|
1
Origami2
1
Origami2
@ -1 +0,0 @@
|
||||
Subproject commit 2a9f9291df1953d16b21cdac79d24f99a7c895f9
|
1
Papercut
1
Papercut
@ -1 +0,0 @@
|
||||
Subproject commit f521235dc2dd5deaf57631fe4aa52cbe4d06d64a
|
2
Purpur
2
Purpur
@ -1 +1 @@
|
||||
Subproject commit e486798b7df7394bcdf8143b6c96cc0f8f8d4ec2
|
||||
Subproject commit 9659c3a4e5394194ec52a1d969087ab7bc7ee08e
|
@ -15,9 +15,8 @@ ## Introduction ##
|
||||
* [EMC](https://github.com/starlis/empirecraft)
|
||||
* [Lithium](https://github.com/jellysquid3/lithium-fabric)
|
||||
* [Akarin](https://github.com/Akarin-project/Akarin)
|
||||
* [Papercut](https://github.com/Minevictus/Papercut/)
|
||||
* [Origami](https://github.com/MrIvanPlays/Origami)
|
||||
* [Origami(2)](https://github.com/Minebench/Origami)
|
||||
* [Rainforest](https://github.com/Proixmyst/Rainforest)
|
||||
* [Origami](https://github.com/Minebench/Origami)
|
||||
* [Purpur](https://github.com/pl3xgaming/Purpur)
|
||||
|
||||
Notable features are: Async & Optimized Pathfinding, Eigencraft Redstone (1.16), Async Advancements, Optimizer Pathfinder, Ability to slow down villager brains, Ability to disable collisions & collisionboxes, Major Hopper Performance Improvements, Nether TNT Bug + A lot more that all contribute towards ultimate performance.
|
||||
@ -70,7 +69,7 @@ ## LICENSE
|
||||
|
||||
Everything is licensed under the MIT license and is free to be used in your own fork.
|
||||
|
||||
See [EMC](https://github.com/starlis/empirecraft), [Lithium](https://github.com/jellysquid3/lithium-fabric), [Akarin](https://github.com/Akarin-project/Akarin), [Purpur](https://github.com/pl3xgaming/Purpur), [Papercut](https://github.com/Minevictus/Papercut/), [Origami](https://github.com/MrIvanPlays/Origami), [Origami(2)](https://github.com/Minebench/Origami), and [Tuinity](https://github.com/Spottedleaf/Tuinity)
|
||||
See [EMC](https://github.com/starlis/empirecraft), [Lithium](https://github.com/jellysquid3/lithium-fabric), [Akarin](https://github.com/Akarin-project/Akarin), [Purpur](https://github.com/pl3xgaming/Purpur), [Rainforest](https://github.com/Proixmyst/Rainforest), [Origami](https://github.com/Minebench/Origami), and [Tuinity](https://github.com/Spottedleaf/Tuinity)
|
||||
for the license of material used/modified by this project.
|
||||
|
||||
**To use this project you'll have to accept the Mojang EULA!**
|
||||
|
1
Rainforest
Submodule
1
Rainforest
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit 789cc1df962877c293716cc86ddeaf8ef06baffd
|
2
Tuinity
2
Tuinity
@ -1 +1 @@
|
||||
Subproject commit 650532ad9f1d74ee6324e4c63d5e0eaf2ccfdcf3
|
||||
Subproject commit 475ca7cbf73456c570adfb0573ea02b87ba5cef4
|
@ -1 +0,0 @@
|
||||
Remove-reload-command
|
@ -1 +1 @@
|
||||
Origami-config&Port-optimized-redstone-algorithm&Optimize-Pathfinder&Optimize-BehaviorController&Better-handling-of-tracker-timings-in-PlayerChunkMap
|
||||
Origami-Server-Config&Optimize-inventory-API-item-handling&Don-t-load-chunk-with-seed-based-feature-search&Hopper-Optimizations&Don-t-wake-up-entities-when-damage-event-is-cancelle
|
||||
|
@ -1 +0,0 @@
|
||||
Origami-Server-Config&Optimize-inventory-API-item-handling&Don-t-load-chunk-with-seed-based-feature-search&Hopper-Optimizations&Don-t-wake-up-entities-when-damage-event-is-cancelle
|
@ -1 +0,0 @@
|
||||
Ban-EntityTrackerFixer
|
@ -1 +0,0 @@
|
||||
Add-Papercut-config&Apply-advancements-async
|
1
patches/Rainforest/server.txt
Normal file
1
patches/Rainforest/server.txt
Normal file
@ -0,0 +1 @@
|
||||
Add-Rainforest-config&Apply-advancements-async&Optimize-Pathfinder-Remove-Streams-Optimized-collect&Optimize-redstone-algorithm&Async-navigation
|
@ -3,7 +3,7 @@ From: Bud Gidiere <sgidiere@gmail.com>
|
||||
Date: Sat, 1 Aug 2020 15:51:06 -0500
|
||||
Subject: [PATCH] Yatopia API Bundle
|
||||
|
||||
Lagging threshold + Purpur & Papercut & Origami config
|
||||
Lagging threshold + Purpur & Rainforest & Origami config
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/Bukkit.java b/src/main/java/org/bukkit/Bukkit.java
|
||||
index 62cc1c74c11f56dcbd1e24e9c5478497742e6351..0770736b4b52f325027671b43f74ad038c97ce7f 100644
|
||||
@ -26,19 +26,21 @@ index 62cc1c74c11f56dcbd1e24e9c5478497742e6351..0770736b4b52f325027671b43f74ad03
|
||||
+ // Purpur end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 1f916988bd54e8386011b0d7e82fc9219939a881..6ff5c73f607d1c1a3bc392fda2c0e8b492aab579 100644
|
||||
index 1f916988bd54e8386011b0d7e82fc9219939a881..154c24a5a32450636b1c554df1bb5262fa05e9c8 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -1463,6 +1463,31 @@ public interface Server extends PluginMessageRecipient {
|
||||
@@ -1463,6 +1463,33 @@ public interface Server extends PluginMessageRecipient {
|
||||
}
|
||||
// Akarin end - Server config
|
||||
|
||||
+ // Papercut start
|
||||
+ // Rainforest start
|
||||
+ @NotNull
|
||||
+ public org.bukkit.configuration.file.YamlConfiguration getPapercutConfig()
|
||||
+ public org.bukkit.configuration.file.YamlConfiguration getRainforestConfig()
|
||||
+ {
|
||||
+ throw new UnsupportedOperationException("Not supported yet.");
|
||||
+ }
|
||||
+ // Rainforest end
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @NotNull
|
||||
+ public org.bukkit.configuration.file.YamlConfiguration getPurpurConfig() {
|
||||
@ -61,7 +63,7 @@ index 1f916988bd54e8386011b0d7e82fc9219939a881..6ff5c73f607d1c1a3bc392fda2c0e8b4
|
||||
/**
|
||||
* Sends the component to the player
|
||||
*
|
||||
@@ -1563,4 +1588,13 @@ public interface Server extends PluginMessageRecipient {
|
||||
@@ -1563,4 +1590,13 @@ public interface Server extends PluginMessageRecipient {
|
||||
@NotNull
|
||||
com.destroystokyo.paper.entity.ai.MobGoals getMobGoals();
|
||||
// Paper end
|
||||
|
@ -20,10 +20,10 @@ index 0770736b4b52f325027671b43f74ad038c97ce7f..537e7fc9273b7e4ecc88eaad5b1a69d3
|
||||
+ // Yatopia end
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||
index 6ff5c73f607d1c1a3bc392fda2c0e8b492aab579..09a710dd500e404b382e75b62f1f2533da270ff3 100644
|
||||
index 154c24a5a32450636b1c554df1bb5262fa05e9c8..1eb935b3ba88918f04a075d47b0f514ddc8f2499 100644
|
||||
--- a/src/main/java/org/bukkit/Server.java
|
||||
+++ b/src/main/java/org/bukkit/Server.java
|
||||
@@ -1597,4 +1597,13 @@ public interface Server extends PluginMessageRecipient {
|
||||
@@ -1599,4 +1599,13 @@ public interface Server extends PluginMessageRecipient {
|
||||
*/
|
||||
boolean isLagging();
|
||||
// Purpur end
|
||||
|
@ -1,37 +1,98 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Bud Gidiere <sgidiere@gmail.com>
|
||||
Date: Fri, 31 Jul 2020 22:39:43 -0500
|
||||
Date: Wed, 5 Aug 2020 14:21:05 -0500
|
||||
Subject: [PATCH] Yatopia Server Fixes
|
||||
|
||||
|
||||
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java
|
||||
index 841a8d2b392acdcef90592b841cbbcb2237c6901..c9cd3f6e6bb779ecaf0412c21e0dc654321eb44f 100644
|
||||
index 841a8d2b392acdcef90592b841cbbcb2237c6901..1fbbc17f0aa2fc505b87840ffe91ff9a7b4a56fe 100644
|
||||
--- a/src/main/java/co/aikar/timings/TimingsExport.java
|
||||
+++ b/src/main/java/co/aikar/timings/TimingsExport.java
|
||||
@@ -232,6 +232,8 @@ public class TimingsExport extends Thread {
|
||||
pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), // Tuinity - add config to timings report
|
||||
pair("tuinity", mapAsJSON(Bukkit.spigot().getTuinityConfig(), null)) // Tuinity - add config to timings report
|
||||
, pair("akarin", mapAsJSON(Bukkit.spigot().getAkarinConfig(), null)) // Akarin - Server config
|
||||
+ , pair("papercut", mapAsJSON(Bukkit.spigot().getPapercutConfig(), null)) // Papercut
|
||||
+ , pair("origami", mapAsJSON(Bukkit.spigot().getOrigamiConfig(), null)) // Origami
|
||||
+ , pair("rainforest", mapAsJSON(Bukkit.spigot().getRainforestConfig(), null)) // Rainforest
|
||||
));
|
||||
|
||||
new TimingsExport(listeners, parent, history).start();
|
||||
diff --git a/src/main/java/co/aikar/timings/TimingsExport.java.rej b/src/main/java/co/aikar/timings/TimingsExport.java.rej
|
||||
deleted file mode 100644
|
||||
index aad8019b2c23b72bfad58a507671cd750bdc1a20..0000000000000000000000000000000000000000
|
||||
index 572780ca665c0fb254cc7431af3dd7759a94f26c..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/co/aikar/timings/TimingsExport.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,9 +0,0 @@
|
||||
-diff a/src/main/java/co/aikar/timings/TimingsExport.java b/src/main/java/co/aikar/timings/TimingsExport.java (rejected hunks)
|
||||
-@@ -231,6 +231,7 @@ public class TimingsExport extends Thread {
|
||||
-@@ -230,6 +230,7 @@ public class TimingsExport extends Thread {
|
||||
- pair("spigot", mapAsJSON(Bukkit.spigot().getSpigotConfig(), null)),
|
||||
- pair("bukkit", mapAsJSON(Bukkit.spigot().getBukkitConfig(), null)),
|
||||
- pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null)), // Tuinity - add config to timings report
|
||||
- pair("tuinity", mapAsJSON(Bukkit.spigot().getTuinityConfig(), null)) // Tuinity - add config to timings report
|
||||
-+ , pair("papercut", mapAsJSON(Bukkit.spigot().getPapercutConfig(), null)) // Papercut
|
||||
- pair("paper", mapAsJSON(Bukkit.spigot().getPaperConfig(), null))
|
||||
-+ , pair("rainforest", mapAsJSON(Bukkit.spigot().getRainforestConfig(), null)) // Rainforest
|
||||
- ));
|
||||
-
|
||||
- new TimingsExport(listeners, parent, history).start();
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java
|
||||
index f81bd67a323f2e72bdad76c52016993a0bf88307..98a898f8b8469969e5eb388edb818e519ff68681 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperCommand.java
|
||||
@@ -439,18 +439,18 @@ public class PaperCommand extends Command {
|
||||
ChunkProviderServer chunkProviderServer = world.getChunkProvider();
|
||||
|
||||
Collection<Entity> entities = world.entitiesById.values();
|
||||
- entities.forEach(e -> {
|
||||
- MinecraftKey key = e.getMinecraftKey();
|
||||
- if (e.shouldBeRemoved) return; // Paper
|
||||
+ for (Entity entity : entities) {
|
||||
+ MinecraftKey key = entity.getMinecraftKey();
|
||||
+ if (entity.shouldBeRemoved) continue;
|
||||
|
||||
MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap()));
|
||||
- ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.chunkX, e.chunkZ);
|
||||
+ ChunkCoordIntPair chunk = new ChunkCoordIntPair(entity.chunkX, entity.chunkZ);
|
||||
info.left++;
|
||||
info.right.put(chunk, info.right.getOrDefault(chunk, 0) + 1);
|
||||
- if (!chunkProviderServer.isInEntityTickingChunk(e)) {
|
||||
+ if (!chunkProviderServer.isInEntityTickingChunk(entity)) {
|
||||
nonEntityTicking.merge(key, Integer.valueOf(1), Integer::sum);
|
||||
}
|
||||
- });
|
||||
+ }
|
||||
|
||||
if (names.size() == 1) {
|
||||
MinecraftKey name = names.iterator().next();
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperCommand.java.rej b/src/main/java/com/destroystokyo/paper/PaperCommand.java.rej
|
||||
deleted file mode 100644
|
||||
index 8f31dba6a29514aad6e74e265bf000014cd1e3c3..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperCommand.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,26 +0,0 @@
|
||||
-diff a/src/main/java/com/destroystokyo/paper/PaperCommand.java b/src/main/java/com/destroystokyo/paper/PaperCommand.java (rejected hunks)
|
||||
-@@ -429,18 +439,18 @@ public class PaperCommand extends Command {
|
||||
- ChunkProviderServer chunkProviderServer = world.getChunkProvider();
|
||||
-
|
||||
- Collection<Entity> entities = world.entitiesById.values();
|
||||
-- entities.forEach(e -> {
|
||||
-- MinecraftKey key = e.getMinecraftKey();
|
||||
-- if (e.shouldBeRemoved) return; // Paper
|
||||
-+ for (Entity entity : entities) {
|
||||
-+ MinecraftKey key = entity.getMinecraftKey();
|
||||
-+ if (entity.shouldBeRemoved) continue;
|
||||
-
|
||||
- MutablePair<Integer, Map<ChunkCoordIntPair, Integer>> info = list.computeIfAbsent(key, k -> MutablePair.of(0, Maps.newHashMap()));
|
||||
-- ChunkCoordIntPair chunk = new ChunkCoordIntPair(e.getChunkX(), e.getChunkZ());
|
||||
-+ ChunkCoordIntPair chunk = new ChunkCoordIntPair(entity.getChunkX(), entity.getChunkZ());
|
||||
- info.left++;
|
||||
- info.right.put(chunk, info.right.getOrDefault(chunk, 0) + 1);
|
||||
-- if (!chunkProviderServer.isInEntityTickingChunk(e)) {
|
||||
-+ if (!chunkProviderServer.isInEntityTickingChunk(entity)) {
|
||||
- nonEntityTicking.merge(key, Integer.valueOf(1), Integer::sum);
|
||||
- }
|
||||
-- });
|
||||
-+ }
|
||||
-
|
||||
- if (names.size() == 1) {
|
||||
- MinecraftKey name = names.iterator().next();
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java b/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java
|
||||
index dee9655b89d061ec8218ea2c54660c6003e8548f..253b73cfc597d4c7106d969be7b18c68166128ae 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/server/ticklist/PaperTickList.java
|
||||
@ -62,26 +123,26 @@ index c9fa39c5b4b013b56720e339463ffcb5fd3c13f9..00000000000000000000000000000000
|
||||
-
|
||||
- for (final NextTickListEntry<T> toTick : this.toTickThisTick) {
|
||||
diff --git a/src/main/java/de/minebench/origami/OrigamiConfig.java b/src/main/java/de/minebench/origami/OrigamiConfig.java
|
||||
index fe7330fabe386966c2d203a190a00a785ea21be0..3b3c7053c73ac31eb00585c4e1fc19933467205a 100644
|
||||
index fe7330fabe386966c2d203a190a00a785ea21be0..bd107a376eaf660ba1ad61c035f8ed2d9d04749c 100644
|
||||
--- a/src/main/java/de/minebench/origami/OrigamiConfig.java
|
||||
+++ b/src/main/java/de/minebench/origami/OrigamiConfig.java
|
||||
@@ -112,6 +112,19 @@ public final class OrigamiConfig {
|
||||
config.addDefault("worlds.default." + path, Double.valueOf(dfl));
|
||||
return config.getDouble("worlds." + worldName + "." + path, config.getDouble("worlds.default." + path, dfl));
|
||||
}
|
||||
+
|
||||
+
|
||||
+ public boolean tickEmptyHoppers = false;
|
||||
+ public int fullHopperCooldown = 128;
|
||||
+ private void hopperOptimizations() {
|
||||
+ tickEmptyHoppers = getBoolean("tick-empty-hoppers", tickEmptyHoppers);
|
||||
+ fullHopperCooldown = getInt("ticks-per.full-hopper-cooldown", fullHopperCooldown);
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ public boolean fastFeatureSearchDontLoad = false;
|
||||
+ private void fastFeatureSearchDontLoad() {
|
||||
+ fastFeatureSearchDontLoad = getBoolean("fast-feature-search-dont-load", fastFeatureSearchDontLoad);
|
||||
+ fastFeatureSearchDontLoad = getBoolean("fast-feature-search-dont-load", fastFeatureSearchDontLoad);
|
||||
+ }
|
||||
+
|
||||
+
|
||||
}
|
||||
|
||||
}
|
||||
@ -146,33 +207,68 @@ index d1152585c5f482e554966f965561626c78ac4d3a..00000000000000000000000000000000
|
||||
- int l = this.chunkMapDistance.b();
|
||||
- // Paper start - per player mob spawning
|
||||
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
index 77b6e4dd34893f0959574f95078bc3fa6896e69c..ad1af2905e4f3e3d05a0dc63859a6e2f3bc43327 100644
|
||||
index 77b6e4dd34893f0959574f95078bc3fa6896e69c..7ac6ef0a125499de4b5e6a9ed80f963ba623b9f6 100644
|
||||
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
@@ -181,6 +181,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
@@ -181,6 +181,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
// Paper end
|
||||
com.tuinity.tuinity.config.TuinityConfig.init((java.io.File) options.valueOf("tuinity-settings")); // Tuinity - Server Config
|
||||
app.akarin.server.Config.init((java.io.File) options.valueOf("akarin-settings")); // Akarin - Server Config
|
||||
+ us.minevict.papercut.PapercutConfig.init((java.io.File) options.valueOf("papercut-settings")); // Papercut
|
||||
+ com.mrivanplays.origami.OrigamiConfig.init((java.io.File) options.valueOf("origami-settings")); // Origami - server config
|
||||
+ com.proximyst.rainforest.RainforestConfig.init((java.io.File) options.valueOf("rainforest-settings")); // Rainforest
|
||||
|
||||
this.setPVP(dedicatedserverproperties.pvp);
|
||||
this.setAllowFlight(dedicatedserverproperties.allowFlight);
|
||||
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java.rej b/src/main/java/net/minecraft/server/DedicatedServer.java.rej
|
||||
deleted file mode 100644
|
||||
index 6b1dd973eb1e44e530d525981fbe4c698088b9b8..0000000000000000000000000000000000000000
|
||||
index 4c2d5b3e080c925d687733ec40d4fb4b22552c96..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/net/minecraft/server/DedicatedServer.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,9 +0,0 @@
|
||||
-diff a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java (rejected hunks)
|
||||
-@@ -171,6 +171,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
-@@ -170,6 +170,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
- com.destroystokyo.paper.PaperConfig.registerCommands();
|
||||
- com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
|
||||
- // Paper end
|
||||
- com.tuinity.tuinity.config.TuinityConfig.init((java.io.File) options.valueOf("tuinity-settings")); // Tuinity - Server Config
|
||||
-+ us.minevict.papercut.PapercutConfig.init((java.io.File) options.valueOf("papercut-settings")); // Papercut
|
||||
-+ com.proximyst.rainforest.RainforestConfig.init((java.io.File) options.valueOf("rainforest-settings")); // Rainforest
|
||||
-
|
||||
- this.setPVP(dedicatedserverproperties.pvp);
|
||||
- this.setAllowFlight(dedicatedserverproperties.allowFlight);
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
index 83e232deaeb78f0c97bce42d67fc220e8fb88368..bbcded1e80a4b0e4618affd77bcaa6e41589b9fe 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
@@ -758,7 +758,11 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
this.goalSelector.doTick();
|
||||
//this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
||||
//this.world.getMethodProfiler().enter("navigation"); // Akarin - remove caller
|
||||
- this.navigation.c();
|
||||
+ // Paper start - async navigation
|
||||
+ if (this.navigation instanceof AsyncNavigationAbstract)
|
||||
+ ((AsyncNavigationAbstract) this.navigation).asyncTick();
|
||||
+ else
|
||||
+ // Paper end
|
||||
//this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
||||
//this.world.getMethodProfiler().enter("mob tick"); // Akarin - remove caller
|
||||
this.mobTick();
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java.rej b/src/main/java/net/minecraft/server/EntityInsentient.java.rej
|
||||
deleted file mode 100644
|
||||
index de5ec59cb607030703e7b0361b1fa615b95e289e..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/net/minecraft/server/EntityInsentient.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,13 +0,0 @@
|
||||
-diff a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java (rejected hunks)
|
||||
-@@ -757,6 +758,11 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
- this.goalSelector.doTick();
|
||||
- this.world.getMethodProfiler().exit();
|
||||
- this.world.getMethodProfiler().enter("navigation");
|
||||
-+ // Paper start - async navigation
|
||||
-+ if (this.navigation instanceof AsyncNavigationAbstract)
|
||||
-+ ((AsyncNavigationAbstract) this.navigation).asyncTick();
|
||||
-+ else
|
||||
-+ // Paper end
|
||||
- this.navigation.c();
|
||||
- this.world.getMethodProfiler().exit();
|
||||
- this.world.getMethodProfiler().enter("mob tick");
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
index 70ae2923e21d7a0312e629a903ca9e380d6c6114..d906c5e530c2e7f779df079223aee619a73b5d51 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityVillager.java
|
||||
@ -252,7 +348,7 @@ index 74d10212e547adf96762155adb03c0158df00a16..00000000000000000000000000000000
|
||||
- ran = true;
|
||||
- }
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index de1845b3585d7cf96bf26f5859e1cb4820ad2d56..e17119d37577de42f8d52afcfdfee64c33996941 100644
|
||||
index ff1692c131b43f217de1fb6657a8274136a3dd08..5960ed2e91008b363dad900c72064055413eafd9 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1001,7 +1001,13 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||
@ -292,11 +388,162 @@ index b005dd817e9ecffcf2172b4a807b0ecc632570b0..00000000000000000000000000000000
|
||||
- this.sleepForTick();
|
||||
- this.methodProfiler.exit();
|
||||
- this.methodProfiler.b();
|
||||
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||
index 2f2f8d74acef3cdaeda0faab67ace0d28e2d4627..d155d843c03ee1e16180657886a87844e6b34aa6 100644
|
||||
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||
@@ -8,25 +8,25 @@ import javax.annotation.Nullable;
|
||||
|
||||
public abstract class NavigationAbstract {
|
||||
|
||||
- protected final EntityInsentient a; public Entity getEntity() { return a; } // Paper - OBFHELPER
|
||||
- protected final World b;
|
||||
+ protected final EntityInsentient a; public EntityInsentient getEntity() { return a; } // Paper - OBFHELPER
|
||||
+ protected final World b; protected final World getWorld() { return this.b; } // Paper - OBFHELPER
|
||||
@Nullable
|
||||
- protected PathEntity c; protected final PathEntity getCurrentPath() { return this.c; } // Paper - OBFHELPER
|
||||
- protected double d;
|
||||
- protected int e;
|
||||
- protected int f;
|
||||
- protected Vec3D g;
|
||||
- protected BaseBlockPosition h;
|
||||
- protected long i;
|
||||
- protected long j;
|
||||
- protected double k;
|
||||
- protected float l;
|
||||
+ protected PathEntity c; protected final PathEntity getCurrentPath() { return this.c; } protected final void setCurrentPath(PathEntity path) { this.c = path; } // Paper - OBFHELPER
|
||||
+ protected double d; protected final double getSpeed() { return this.d; } // Paper - OBFHELPER
|
||||
+ protected int e; protected final int getCurrentTick() { return this.e; } protected final void incrementTick() { ++this.e; } // Paper - OBFHELPER
|
||||
+ protected int f; protected final int getCurrentPathStartTime() { return this.f; } protected final void setCurrentPathStartTime(int time) { this.f = time; } // Paper - OBFHELPER
|
||||
+ protected Vec3D g; protected final Vec3D getCurrentPathStartPosition() { return this.g; } protected final void setCurrentPathStartPosition(Vec3D position) { this.g = position; } // Paper - OBFHELPER
|
||||
+ protected BaseBlockPosition h; protected final BaseBlockPosition getLastNodePosition() { return this.h; } protected final void setLastNodePosition(BaseBlockPosition position) { this.h = position; } // Paper - OBFHELPER
|
||||
+ protected long i; protected final long getCurrentNodeStartTickMs() { return this.i; } protected final void addToCurrentNodeStartTickMs(long amount) { this.i += amount; } // Paper - OBFHELPER
|
||||
+ protected long j; protected final long getLastActiveTickMs() { return this.j; } protected final void setLastActiveTickMs(long ms) { this.j = ms; } // Paper - OBFHELPER
|
||||
+ protected double k; protected final double getCurrentNodeTimeout() { return this.k; } protected final void setCurrentNodeTimeout(double timeout) { this.k = timeout; } // Paper - OBFHELPER
|
||||
+ protected float l; protected final float getChebyshevMinimumReachProximity() { return this.l; } protected final void setChebyshevMinimumReachProximity(float proximity) { this.l = proximity; } // Paper - OBFHELPER
|
||||
protected boolean m; protected final boolean needsPathRecalculation() { return this.m; } // Tuinity - OBFHELPER
|
||||
protected long n;
|
||||
- protected PathfinderAbstract o;
|
||||
- private BlockPosition p;
|
||||
- private int q;
|
||||
- private float r;
|
||||
+ protected PathfinderAbstract o; protected final PathfinderAbstract getNodeCreator() { return this.o; } // Paper - OBFHELPER
|
||||
+ private BlockPosition p; protected final BlockPosition getCurrentTarget() { return this.p; } protected final void setCurrentTarget(BlockPosition target) { this.p = target; } // Paper - OBFHELPER
|
||||
+ private int q; protected final int getCurrentDistance() { return this.q; } // Paper - OBFHELPER
|
||||
+ private float r; protected final float getRangeMultiplier() { return this.r; } // Paper - OBFHELPER
|
||||
private final Pathfinder s; public Pathfinder getPathfinder() { return this.s; } // Paper - OBFHELPER
|
||||
|
||||
// Tuinity start
|
||||
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java.rej b/src/main/java/net/minecraft/server/NavigationAbstract.java.rej
|
||||
deleted file mode 100644
|
||||
index 3b706d3951c187dfdd158b7c4c73014d271855ca..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,43 +0,0 @@
|
||||
-diff a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java (rejected hunks)
|
||||
-@@ -8,25 +8,25 @@ import javax.annotation.Nullable;
|
||||
-
|
||||
- public abstract class NavigationAbstract {
|
||||
-
|
||||
-- protected final EntityInsentient a; public Entity getEntity() { return a; } // Paper - OBFHELPER
|
||||
-- protected final World b;
|
||||
-+ protected final EntityInsentient a; public EntityInsentient getEntity() { return a; } // Paper - OBFHELPER
|
||||
-+ protected final World b; protected final World getWorld() { return this.b; } // Paper - OBFHELPER
|
||||
- @Nullable
|
||||
-- protected PathEntity c; protected final PathEntity getCurrentPath() { return this.c; } // Paper - OBFHELPER
|
||||
-- protected double d;
|
||||
-- protected int e;
|
||||
-- protected int f;
|
||||
-- protected Vec3D g;
|
||||
-- protected BaseBlockPosition h;
|
||||
-- protected long i;
|
||||
-- protected long j;
|
||||
-- protected double k;
|
||||
-- protected float l;
|
||||
-+ protected PathEntity c; protected final PathEntity getCurrentPath() { return this.c; } protected final void setCurrentPath(PathEntity path) { this.c = path; } // Paper - OBFHELPER
|
||||
-+ protected double d; protected final double getSpeed() { return this.d; } // Paper - OBFHELPER
|
||||
-+ protected int e; protected final int getCurrentTick() { return this.e; } protected final void incrementTick() { ++this.e; } // Paper - OBFHELPER
|
||||
-+ protected int f; protected final int getCurrentPathStartTime() { return this.f; } protected final void setCurrentPathStartTime(int time) { this.f = time; } // Paper - OBFHELPER
|
||||
-+ protected Vec3D g; protected final Vec3D getCurrentPathStartPosition() { return this.g; } protected final void setCurrentPathStartPosition(Vec3D position) { this.g = position; } // Paper - OBFHELPER
|
||||
-+ protected BaseBlockPosition h; protected final BaseBlockPosition getLastNodePosition() { return this.h; } protected final void setLastNodePosition(BaseBlockPosition position) { this.h = position; } // Paper - OBFHELPER
|
||||
-+ protected long i; protected final long getCurrentNodeStartTickMs() { return this.i; } protected final void addToCurrentNodeStartTickMs(long amount) { this.i += amount; } // Paper - OBFHELPER
|
||||
-+ protected long j; protected final long getLastActiveTickMs() { return this.j; } protected final void setLastActiveTickMs(long ms) { this.j = ms; } // Paper - OBFHELPER
|
||||
-+ protected double k; protected final double getCurrentNodeTimeout() { return this.k; } protected final void setCurrentNodeTimeout(double timeout) { this.k = timeout; } // Paper - OBFHELPER
|
||||
-+ protected float l; protected final float getChebyshevMinimumReachProximity() { return this.l; } protected final void setChebyshevMinimumReachProximity(float proximity) { this.l = proximity; } // Paper - OBFHELPER
|
||||
- protected boolean m;
|
||||
- protected long n;
|
||||
-- protected PathfinderAbstract o;
|
||||
-- private BlockPosition p;
|
||||
-- private int q;
|
||||
-- private float r;
|
||||
-+ protected PathfinderAbstract o; protected final PathfinderAbstract getNodeCreator() { return this.o; } // Paper - OBFHELPER
|
||||
-+ private BlockPosition p; protected final BlockPosition getCurrentTarget() { return this.p; } protected final void setCurrentTarget(BlockPosition target) { this.p = target; } // Paper - OBFHELPER
|
||||
-+ private int q; protected final int getCurrentDistance() { return this.q; } // Paper - OBFHELPER
|
||||
-+ private float r; protected final float getRangeMultiplier() { return this.r; } // Paper - OBFHELPER
|
||||
- private final Pathfinder s; public Pathfinder getPathfinder() { return this.s; } // Paper - OBFHELPER
|
||||
-
|
||||
- public NavigationAbstract(EntityInsentient entityinsentient, World world) {
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
index a91b540a9e35efc8746f74f039a8ab6cfbd37206..546f4c942b047a39e0aec10cc2009b90573484dd 100644
|
||||
index fe43603ecdc52f26fdaf4c94f14ea27e76b5a71b..a794e4523decded103b88433a5f63213fc243683 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
|
||||
@@ -1169,7 +1169,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
@@ -505,40 +505,40 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
double playerChunkZ = MathHelper.floor(player.locZ()) >> 4;
|
||||
pos.setValues(player.locX(), 0, player.locZ());
|
||||
double twoThirdModifier = 2D / 3D;
|
||||
- MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance)).forEach(coord -> {
|
||||
- if (shouldSkipPrioritization(coord)) return;
|
||||
+ for (ChunkCoordIntPair coordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance))) {
|
||||
+ if (shouldSkipPrioritization(coordIntPair)) continue;
|
||||
|
||||
- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
||||
+ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coordIntPair.x, 0, coordIntPair.z);
|
||||
// Prioritize immediate
|
||||
if (dist <= 4 * 4) {
|
||||
- updateChunkPriorityMap(priorities, coord.pair(), (int) (27 - Math.sqrt(dist)));
|
||||
- return;
|
||||
+ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (27 - Math.sqrt(dist)));
|
||||
+ continue;
|
||||
}
|
||||
|
||||
// Prioritize nearby chunks
|
||||
- updateChunkPriorityMap(priorities, coord.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier));
|
||||
- });
|
||||
+ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier));
|
||||
+ }
|
||||
|
||||
// Prioritize Frustum near 3
|
||||
ChunkCoordIntPair front3 = player.getChunkInFront(3);
|
||||
pos.setValues(front3.x << 4, 0, front3.z << 4);
|
||||
- MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance)).forEach(coord -> {
|
||||
- if (shouldSkipPrioritization(coord)) return;
|
||||
+ for (ChunkCoordIntPair chunkCoordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance))) {
|
||||
+ if (shouldSkipPrioritization(chunkCoordIntPair)) continue;
|
||||
|
||||
- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
||||
- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
||||
- });
|
||||
+ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, chunkCoordIntPair.x, 0, chunkCoordIntPair.z);
|
||||
+ updateChunkPriorityMap(priorities, chunkCoordIntPair.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
||||
+ }
|
||||
|
||||
// Prioritize Frustum near 5
|
||||
if (viewDistance > 4) {
|
||||
ChunkCoordIntPair front5 = player.getChunkInFront(5);
|
||||
pos.setValues(front5.x << 4, 0, front5.z << 4);
|
||||
- MCUtil.getSpiralOutChunks(pos, 4).forEach(coord -> {
|
||||
- if (shouldSkipPrioritization(coord)) return;
|
||||
+ for (ChunkCoordIntPair coord : MCUtil.getSpiralOutChunks(pos, 3)) {
|
||||
+ if (shouldSkipPrioritization(coord)) continue;
|
||||
|
||||
double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
||||
updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
||||
- });
|
||||
+ }
|
||||
}
|
||||
|
||||
// Prioritize Frustum far 7
|
||||
@@ -1168,7 +1168,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
}
|
||||
|
||||
this.getVillagePlace().loadInData(chunkcoordintpair, chunkHolder.poiData);
|
||||
@ -309,11 +556,83 @@ index a91b540a9e35efc8746f74f039a8ab6cfbd37206..546f4c942b047a39e0aec10cc2009b90
|
||||
if (chunkHolder.protoChunk != null) {try (Timing ignored2 = this.world.timings.chunkLoadLevelTimer.startTimingIfSync()) { // Paper start - timings // Paper - chunk is created async
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java.rej b/src/main/java/net/minecraft/server/PlayerChunkMap.java.rej
|
||||
deleted file mode 100644
|
||||
index 06b502a43f0e89b1b2cef8c3adb0a4229511846f..0000000000000000000000000000000000000000
|
||||
index 759862aba781ec6f1ae0c9a76c4ab6352d603a4c..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,12 +0,0 @@
|
||||
@@ -1,84 +0,0 @@
|
||||
-diff a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java (rejected hunks)
|
||||
-@@ -480,53 +471,53 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
- double playerChunkZ = MathHelper.floor(player.locZ()) >> 4;
|
||||
- pos.setValues(player.locX(), 0, player.locZ());
|
||||
- double twoThirdModifier = 2D / 3D;
|
||||
-- MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance)).forEach(coord -> {
|
||||
-- if (shouldSkipPrioritization(coord)) return;
|
||||
-+ for (ChunkCoordIntPair coordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(6, viewDistance))) {
|
||||
-+ if (shouldSkipPrioritization(coordIntPair)) continue;
|
||||
-
|
||||
-- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
||||
-+ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coordIntPair.x, 0, coordIntPair.z);
|
||||
- // Prioritize immediate
|
||||
- if (dist <= 4 * 4) {
|
||||
-- updateChunkPriorityMap(priorities, coord.pair(), (int) (27 - Math.sqrt(dist)));
|
||||
-- return;
|
||||
-+ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (27 - Math.sqrt(dist)));
|
||||
-+ continue;
|
||||
- }
|
||||
-
|
||||
- // Prioritize nearby chunks
|
||||
-- updateChunkPriorityMap(priorities, coord.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier));
|
||||
-- });
|
||||
-+ updateChunkPriorityMap(priorities, coordIntPair.pair(), (int) (20 - Math.sqrt(dist) * twoThirdModifier));
|
||||
-+ }
|
||||
-
|
||||
- // Prioritize Frustum near 3
|
||||
- ChunkCoordIntPair front3 = player.getChunkInFront(3);
|
||||
- pos.setValues(front3.x << 4, 0, front3.z << 4);
|
||||
-- MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance)).forEach(coord -> {
|
||||
-- if (shouldSkipPrioritization(coord)) return;
|
||||
-+ for (ChunkCoordIntPair chunkCoordIntPair : MCUtil.getSpiralOutChunks(pos, Math.min(5, viewDistance))) {
|
||||
-+ if (shouldSkipPrioritization(chunkCoordIntPair)) continue;
|
||||
-
|
||||
-- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
||||
-- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
||||
-- });
|
||||
-+ double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, chunkCoordIntPair.x, 0, chunkCoordIntPair.z);
|
||||
-+ updateChunkPriorityMap(priorities, chunkCoordIntPair.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
||||
-+ }
|
||||
-
|
||||
- // Prioritize Frustum near 5
|
||||
- if (viewDistance > 4) {
|
||||
- ChunkCoordIntPair front5 = player.getChunkInFront(5);
|
||||
- pos.setValues(front5.x << 4, 0, front5.z << 4);
|
||||
-- MCUtil.getSpiralOutChunks(pos, 4).forEach(coord -> {
|
||||
-- if (shouldSkipPrioritization(coord)) return;
|
||||
-+ for (ChunkCoordIntPair coord : MCUtil.getSpiralOutChunks(pos, 4)) {
|
||||
-+ if (shouldSkipPrioritization(coord)) continue;
|
||||
-
|
||||
- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
||||
- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
||||
-- });
|
||||
-+ }
|
||||
- }
|
||||
-
|
||||
- // Prioritize Frustum far 7
|
||||
- if (viewDistance > 6) {
|
||||
- ChunkCoordIntPair front7 = player.getChunkInFront(7);
|
||||
- pos.setValues(front7.x << 4, 0, front7.z << 4);
|
||||
-- MCUtil.getSpiralOutChunks(pos, 3).forEach(coord -> {
|
||||
-+ for (ChunkCoordIntPair coord : MCUtil.getSpiralOutChunks(pos, 3)) {
|
||||
- if (shouldSkipPrioritization(coord)) {
|
||||
-- return;
|
||||
-+ continue;
|
||||
- }
|
||||
- double dist = MCUtil.distance(playerChunkX, 0, playerChunkZ, coord.x, 0, coord.z);
|
||||
- updateChunkPriorityMap(priorities, coord.pair(), (int) (25 - Math.sqrt(dist) * twoThirdModifier));
|
||||
-- });
|
||||
-+ }
|
||||
- }
|
||||
-
|
||||
- pos.close();
|
||||
-@@ -1122,7 +1131,9 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
|
||||
- if (ioThrowable != null) {
|
||||
- com.destroystokyo.paper.util.SneakyThrow.sneaky(ioThrowable);
|
||||
@ -361,10 +680,10 @@ index 8b5d001fb8ecb4a5b96bda6532cf8d5900816290..00000000000000000000000000000000
|
||||
- IChunkAccess ichunkaccess = iworldreader.getChunkAt(chunkcoordintpair.x, chunkcoordintpair.z, ChunkStatus.STRUCTURE_STARTS, !(iworldreader instanceof World) || !((World) iworldreader).origamiConfig.onlyFindGeneratedFeatures);
|
||||
- if (ichunkaccess == null) {
|
||||
diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||
index 7e06324777617d38be18e80b8498a74b1b0eb97f..d87d3f274ba1525c13875a92eec9d4c1bd265fa5 100644
|
||||
index 2fbbc1588c2943c8998550db4da6642e666650d8..3ff61141aede4b5a09bf83153222de0d14db5ad0 100644
|
||||
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||
@@ -514,6 +514,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
@@ -508,6 +508,7 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
entityitem = (EntityItem) iterator.next();
|
||||
} while (!a((IInventory) ihopper, entityitem));
|
||||
|
||||
@ -411,90 +730,63 @@ index 7fe085e48b6ad625a510edf33b112bef24f7d7ad..9459efde54d507231b4aacb7cba14e99
|
||||
private NonNullList<ItemStack> contents;
|
||||
public int c; // PAIL private -> public, rename viewerCount
|
||||
private TileEntityShulkerBox.AnimationPhase i;
|
||||
diff --git a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej b/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej
|
||||
deleted file mode 100644
|
||||
index bada470cba41cce9beb9eb04227b42c1d489d731..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,22 +0,0 @@
|
||||
-diff a/src/main/java/net/minecraft/server/TileEntityShulkerBox.java b/src/main/java/net/minecraft/server/TileEntityShulkerBox.java (rejected hunks)
|
||||
-@@ -10,7 +11,19 @@ import org.bukkit.entity.HumanEntity;
|
||||
-
|
||||
- public class TileEntityShulkerBox extends TileEntityLootable implements IWorldInventory, ITickable {
|
||||
-
|
||||
-- private static final int[] a = IntStream.range(0, 27).toArray();
|
||||
-+ private static final int[] a;
|
||||
-+
|
||||
-+ static {
|
||||
-+ int[] arr = new int[10];
|
||||
-+ int count = 0;
|
||||
-+ for (int i1 = 0; i1 < 27; i1++) {
|
||||
-+ if (arr.length == count) arr = Arrays.copyOf(arr, count * 2);
|
||||
-+ arr[count++] = i1;
|
||||
-+ }
|
||||
-+ arr = Arrays.copyOfRange(arr, 0, count);
|
||||
-+ a = arr;
|
||||
-+ }
|
||||
-+
|
||||
- private NonNullList<ItemStack> contents;
|
||||
- private int c;
|
||||
- private TileEntityShulkerBox.AnimationPhase i;
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index ce7a742f2a3b5c169b956c1a91819882b9b57955..542b7cb89ac6b216d02bac6563df60d53cc7e9f1 100644
|
||||
index 0890bca50858ec8d544be2e1ff4ac2da73c7d830..44af511da96b265a8441052cc87e356e630699a6 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -96,6 +96,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -97,6 +97,9 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
|
||||
public final com.tuinity.tuinity.config.TuinityConfig.WorldConfig tuinityConfig; // Tuinity - Server Config
|
||||
public final app.akarin.server.Config.WorldConfig akarinConfig; // Akarin - Server Config
|
||||
+ public final us.minevict.papercut.PapercutConfig.WorldConfig papercutConfig; // Papercut
|
||||
+ public final net.pl3x.purpur.PurpurWorldConfig purpurConfig; // Purpur
|
||||
+ public final de.minebench.origami.OrigamiConfig.WorldConfig origamiConfig; // Origami - World Config
|
||||
+ public final RainforestWorldConfig rainforestConfig; // Rainforest
|
||||
|
||||
public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
||||
public static BlockPosition lastPhysicsProblem; // Spigot
|
||||
@@ -126,6 +129,10 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -127,6 +130,11 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this.paperConfig, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
|
||||
this.tuinityConfig = new com.tuinity.tuinity.config.TuinityConfig.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Tuinity - Server Config
|
||||
this.akarinConfig = new app.akarin.server.Config.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Akarin - Server Config
|
||||
+ this.papercutConfig = new us.minevict.papercut.PapercutConfig.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Papercut
|
||||
+ this.purpurConfig = new net.pl3x.purpur.PurpurWorldConfig((((WorldDataServer)worlddatamutable).getName())); // Purpur
|
||||
+ this.origamiConfig = new de.minebench.origami.OrigamiConfig.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Origami - World Config
|
||||
+ this.rainforestConfig = new RainforestWorldConfig((((WorldDataServer)worlddatamutable).getName()), this.paperConfig); // Rainforest
|
||||
+
|
||||
+
|
||||
this.generator = gen;
|
||||
this.world = new CraftWorld((WorldServer) this, gen, env);
|
||||
this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
|
||||
@@ -646,6 +653,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
this.a(blockposition.south(), block, blockposition);
|
||||
@@ -637,6 +645,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
|
||||
public void b(BlockPosition blockposition, IBlockData iblockdata, IBlockData iblockdata1) {}
|
||||
|
||||
+
|
||||
public void applyPhysics(BlockPosition blockposition, Block block) {
|
||||
if (captureBlockStates) { return; } // Paper - Cancel all physics during placement
|
||||
this.a(blockposition.west(), block, blockposition);
|
||||
@@ -674,6 +683,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
|
||||
}
|
||||
|
||||
+ public void neighborChanged(BlockPosition pos, Block block, BlockPosition parent) { a(pos, block, parent); } // Origami - OBFHELPER
|
||||
public void a(BlockPosition blockposition, Block block, EnumDirection enumdirection) {
|
||||
if (enumdirection != EnumDirection.WEST) {
|
||||
this.a(blockposition.west(), block, blockposition);
|
||||
+ public void neighborChanged(BlockPosition pos, Block blockIn, BlockPosition fromPos) { a(pos, blockIn, fromPos); } // Paper - OBFHELPER
|
||||
public void a(BlockPosition blockposition, Block block, BlockPosition blockposition1) {
|
||||
if (!this.isClientSide) {
|
||||
IBlockData iblockdata = this.getTypeIfLoaded(blockposition); // EMC
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java.rej b/src/main/java/net/minecraft/server/World.java.rej
|
||||
deleted file mode 100644
|
||||
index 6f7cf093021998e6ae0178fa851e82437d4f7f86..0000000000000000000000000000000000000000
|
||||
index c632cd030e36d8abfd92a14948e4893d885823ad..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/net/minecraft/server/World.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,17 +0,0 @@
|
||||
@@ -1,9 +0,0 @@
|
||||
-diff a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java (rejected hunks)
|
||||
-@@ -95,6 +95,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
- public final ChunkPacketBlockController chunkPacketBlockController; // Paper - Anti-Xray
|
||||
-@@ -646,6 +646,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
-
|
||||
- public final com.tuinity.tuinity.config.TuinityConfig.WorldConfig tuinityConfig; // Tuinity - Server Config
|
||||
-+ public final net.pl3x.purpur.PurpurWorldConfig purpurConfig; // Purpur
|
||||
- }
|
||||
-
|
||||
- public final co.aikar.timings.WorldTimingsHandler timings; // Paper
|
||||
- public static BlockPosition lastPhysicsProblem; // Spigot
|
||||
-@@ -124,6 +125,7 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
- this.paperConfig = new com.destroystokyo.paper.PaperWorldConfig((((WorldDataServer)worlddatamutable).getName()), this.spigotConfig); // Paper
|
||||
- this.chunkPacketBlockController = this.paperConfig.antiXray ? new ChunkPacketBlockControllerAntiXray(this.paperConfig, executor) : ChunkPacketBlockController.NO_OPERATION_INSTANCE; // Paper - Anti-Xray
|
||||
- this.tuinityConfig = new com.tuinity.tuinity.config.TuinityConfig.WorldConfig(((WorldDataServer)worlddatamutable).getName()); // Tuinity - Server Config
|
||||
-+ this.purpurConfig = new net.pl3x.purpur.PurpurWorldConfig((((WorldDataServer)worlddatamutable).getName())); // Purpur
|
||||
- this.generator = gen;
|
||||
- this.world = new CraftWorld((WorldServer) this, gen, env);
|
||||
- this.ticksPerAnimalSpawns = this.getServer().getTicksPerAnimalSpawns(); // CraftBukkit
|
||||
-+ public void neighborChanged(BlockPosition pos, Block blockIn, BlockPosition fromPos) { a(pos, blockIn, fromPos); } // Paper - OBFHELPER
|
||||
- public void a(BlockPosition blockposition, Block block, BlockPosition blockposition1) {
|
||||
- if (!this.isClientSide) {
|
||||
- IBlockData iblockdata = this.getType(blockposition);
|
||||
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
||||
index 64f7fc40a6847ebc6c84b3c179614e186f861e1f..3782d329dc62a9e834f16a9009f4102b5b4aad6f 100644
|
||||
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
||||
@ -696,38 +988,39 @@ index 120d0df27e76c9beef9f09e6cdc0972454fdd4ca..00000000000000000000000000000000
|
||||
- }
|
||||
-
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index afaa6ab4744190b134aeb616a1355cefd1333e37..b06f72228df2bd047e378ba750936a1138e72ade 100644
|
||||
index afaa6ab4744190b134aeb616a1355cefd1333e37..51c59159e04c6f48cb99f691cb64245973d8e628 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -836,6 +836,10 @@ public final class CraftServer implements Server {
|
||||
@@ -836,6 +836,9 @@ public final class CraftServer implements Server {
|
||||
com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
|
||||
com.tuinity.tuinity.config.TuinityConfig.init((File) console.options.valueOf("tuinity-settings")); // Tuinity - Server Config
|
||||
app.akarin.server.Config.init((File) console.options.valueOf("akarin-settings")); // Akarin - Server Config
|
||||
+ us.minevict.papercut.PapercutConfig.init((File) console.options.valueOf("papercut-settings")); // Papercut
|
||||
+ net.pl3x.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur
|
||||
+ com.mrivanplays.origami.OrigamiConfig.init((File) console.options.valueOf("origami-settings")); // Origami
|
||||
+ de.minebench.origami.OrigamiConfig.init((File) console.options.valueOf("origami-settings")); // Origami - Server Config
|
||||
+ com.proximyst.rainforest.RainforestConfig.init((File) console.options.valueOf("rainforest-settings")); // Rainforest
|
||||
for (WorldServer world : console.getWorlds()) {
|
||||
world.worldDataServer.setDifficulty(config.difficulty);
|
||||
world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals);
|
||||
@@ -872,6 +876,9 @@ public final class CraftServer implements Server {
|
||||
@@ -872,6 +875,9 @@ public final class CraftServer implements Server {
|
||||
world.paperConfig.init(); // Paper
|
||||
world.tuinityConfig.init(); // Tuinity - Server Config
|
||||
world.akarinConfig.init(); // Akarin - Server Config
|
||||
+ world.papercutConfig.init(); // Papercut
|
||||
+ world.rainforestConfig.init(); // Rainforest
|
||||
+ world.purpurConfig.init(); // Purpur
|
||||
+ world.origamiConfig.init(); // Origami - World Config
|
||||
}
|
||||
|
||||
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
||||
@@ -2249,6 +2256,25 @@ public final class CraftServer implements Server {
|
||||
@@ -2249,6 +2255,25 @@ public final class CraftServer implements Server {
|
||||
}
|
||||
// Akarin End - Server Config
|
||||
|
||||
+ // Papercut start - add config to timings report
|
||||
+ // Rainforest start
|
||||
+ @Override
|
||||
+ public YamlConfiguration getPapercutConfig() { return us.minevict.papercut.PapercutConfig.config; }
|
||||
+ // Papercut end - add config to timings report
|
||||
+ public YamlConfiguration getRainforestConfig() {
|
||||
+ return com.proximyst.rainforest.RainforestConfig.config;
|
||||
+ }
|
||||
+ // Rainforest end
|
||||
+
|
||||
+ // Purpur start
|
||||
+ @Override
|
||||
@ -740,13 +1033,11 @@ index afaa6ab4744190b134aeb616a1355cefd1333e37..b06f72228df2bd047e378ba750936a11
|
||||
+ }*/
|
||||
+ // Purpur end
|
||||
+
|
||||
+ @Override
|
||||
+ public YamlConfiguration getOrigamiConfig() { return com.mrivanplays.origami.OrigamiConfig.config; } // Origami - add config to timings report
|
||||
+
|
||||
+
|
||||
@Override
|
||||
public void restart() {
|
||||
org.spigotmc.RestartCommand.restart();
|
||||
@@ -2388,4 +2414,11 @@ public final class CraftServer implements Server {
|
||||
@@ -2388,4 +2413,11 @@ public final class CraftServer implements Server {
|
||||
return mobGoals;
|
||||
}
|
||||
// Paper end
|
||||
@ -760,24 +1051,43 @@ index afaa6ab4744190b134aeb616a1355cefd1333e37..b06f72228df2bd047e378ba750936a11
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java.rej b/src/main/java/org/bukkit/craftbukkit/CraftServer.java.rej
|
||||
deleted file mode 100644
|
||||
index b9d3fb83434a48b328cf0a0ae1ec29d93e87aa3e..0000000000000000000000000000000000000000
|
||||
index a3c8dfd94f78b49341e5f5aba1735651096c9d70..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,12 +0,0 @@
|
||||
@@ -1,31 +0,0 @@
|
||||
-diff a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java (rejected hunks)
|
||||
-@@ -2409,5 +2409,10 @@ public final class CraftServer implements Server {
|
||||
- public String getServerName() {
|
||||
- return getProperties().serverName;
|
||||
- }
|
||||
-@@ -848,6 +848,7 @@ public final class CraftServer implements Server {
|
||||
-
|
||||
- org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
|
||||
- com.destroystokyo.paper.PaperConfig.init((File) console.options.valueOf("paper-settings")); // Paper
|
||||
-+ com.proximyst.rainforest.RainforestConfig.init((File) console.options.valueOf("rainforest-settings")); // Rainforest
|
||||
- for (WorldServer world : console.getWorlds()) {
|
||||
- world.worldDataServer.setDifficulty(config.difficulty);
|
||||
- world.setSpawnFlags(config.spawnMonsters, config.spawnAnimals);
|
||||
-@@ -882,6 +883,7 @@ public final class CraftServer implements Server {
|
||||
- }
|
||||
- world.spigotConfig.init(); // Spigot
|
||||
- world.paperConfig.init(); // Paper
|
||||
-+ world.rainforestConfig.init(); // Rainforest
|
||||
- }
|
||||
-
|
||||
- Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
||||
-@@ -2238,6 +2240,13 @@ public final class CraftServer implements Server {
|
||||
- return com.destroystokyo.paper.PaperConfig.config;
|
||||
- }
|
||||
-
|
||||
-+ // Rainforest start
|
||||
-+ @Override
|
||||
-+ public YamlConfiguration getRainforestConfig() {
|
||||
-+ return com.proximyst.rainforest.RainforestConfig.config;
|
||||
-+ }
|
||||
-+ // Rainforest end
|
||||
-+
|
||||
-+ @Override
|
||||
-+ public boolean isLagging() {
|
||||
-+ return getServer().lagging;
|
||||
-+ }
|
||||
- // Purpur end
|
||||
- }
|
||||
- @Override
|
||||
- public void restart() {
|
||||
- org.spigotmc.RestartCommand.restart();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
index 5d9197e6b27c5fcb5ef5244a82b45052a5dd5b40..2c3f96e9d5e7c2cfd4a3d1aeba27f25c6e8b891b 100644
|
||||
index 2d12ad72be927712d38d6fb6991f4af7a196fb9b..1a454f74b322605b1006da5be13760b13cc5f931 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
@@ -138,6 +138,7 @@ public class Main {
|
||||
@ -792,13 +1102,13 @@ index 5d9197e6b27c5fcb5ef5244a82b45052a5dd5b40..2c3f96e9d5e7c2cfd4a3d1aeba27f25c
|
||||
.describedAs("Yml file");
|
||||
// Akarin End - Server Config
|
||||
|
||||
+ // Papercut start
|
||||
+ acceptsAll(asList("papercut", "papercut-settings"), "File for papercut settings")
|
||||
+ // Origami Start - Server Config
|
||||
+ acceptsAll(asList("origami", "origami-settings"), "File for origami settings")
|
||||
+ .withRequiredArg()
|
||||
+ .ofType(File.class)
|
||||
+ .defaultsTo(new File("papercut.yml"))
|
||||
+ .describedAs("Yml file");
|
||||
+ // Papercut end
|
||||
+ .ofType(File.class)
|
||||
+ .defaultsTo(new File("origami.yml"))
|
||||
+ .describedAs("Yml file");
|
||||
+ // Origami end - Server Config
|
||||
+
|
||||
+ // Purpur Start
|
||||
+ acceptsAll(asList("purpur", "purpur-settings"), "File for purpur settings")
|
||||
@ -811,38 +1121,24 @@ index 5d9197e6b27c5fcb5ef5244a82b45052a5dd5b40..2c3f96e9d5e7c2cfd4a3d1aeba27f25c
|
||||
// Paper start
|
||||
acceptsAll(asList("server-name"), "Name of the server")
|
||||
.withRequiredArg()
|
||||
@@ -168,6 +185,13 @@ public class Main {
|
||||
.defaultsTo(new File("origami.yml"))
|
||||
.describedAs("Yml file");
|
||||
// Origami end
|
||||
+ // Origami Start - Server Config
|
||||
+ acceptsAll(asList("origami", "origami-settings"), "File for origami settings")
|
||||
+ .withRequiredArg()
|
||||
+ .ofType(File.class)
|
||||
+ .defaultsTo(new File("origami.yml"))
|
||||
+ .describedAs("Yml file");
|
||||
+ // Origami end - Server Config
|
||||
}
|
||||
};
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java.rej b/src/main/java/org/bukkit/craftbukkit/Main.java.rej
|
||||
deleted file mode 100644
|
||||
index 5d35899d1bedbb8643a601a2e1731a9bc66c7b61..0000000000000000000000000000000000000000
|
||||
index 916603085d652444027e4513b77293ece84a6c4f..0000000000000000000000000000000000000000
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java.rej
|
||||
+++ /dev/null
|
||||
@@ -1,16 +0,0 @@
|
||||
-diff a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java (rejected hunks)
|
||||
-@@ -146,6 +146,14 @@ public class Main {
|
||||
-@@ -139,6 +139,14 @@ public class Main {
|
||||
- .describedAs("Yml file");
|
||||
- /* Conctete End - Server Config */
|
||||
- // Paper end
|
||||
-
|
||||
-+ // Purpur Start
|
||||
-+ acceptsAll(asList("purpur", "purpur-settings"), "File for purpur settings")
|
||||
-+ // Rainforest start
|
||||
-+ acceptsAll(asList("rainforest", "rainforest-settings"), "File for rainforest settings")
|
||||
-+ .withRequiredArg()
|
||||
-+ .ofType(File.class)
|
||||
-+ .defaultsTo(new File("purpur.yml"))
|
||||
-+ .defaultsTo(new File("rainforest.yml"))
|
||||
-+ .describedAs("Yml file");
|
||||
-+ // Purpur end
|
||||
-+ // Rainforest end
|
||||
-+
|
||||
- // Paper start
|
||||
- acceptsAll(asList("server-name"), "Name of the server")
|
||||
|
@ -44,7 +44,7 @@ index 0000000000000000000000000000000000000000..523e3b50d535e91afe8b14fdb53966da
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index e17119d37577de42f8d52afcfdfee64c33996941..7cc402a4dfaa2a4bb123c897b05c09190cbdd489 100644
|
||||
index 5960ed2e91008b363dad900c72064055413eafd9..ee6a2dbc1306871d9ba621f199054befb09744c2 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1515,7 +1515,7 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||
@ -57,7 +57,7 @@ index e17119d37577de42f8d52afcfdfee64c33996941..7cc402a4dfaa2a4bb123c897b05c0919
|
||||
|
||||
public CrashReport b(CrashReport crashreport) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index b06f72228df2bd047e378ba750936a1138e72ade..e9b5140dbac0516c8900f32d686bb812c11562aa 100644
|
||||
index 51c59159e04c6f48cb99f691cb64245973d8e628..e5aa68bd8c678398c81af96303669f1ec1b1d375 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -217,7 +217,7 @@ import javax.annotation.Nullable; // Paper
|
||||
|
@ -1,11 +1,11 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: tr7zw <tr7zw@live.de>
|
||||
Date: Wed, 26 Feb 2020 22:22:02 +0100
|
||||
From: Bud Gidiere <sgidiere@gmail.com>
|
||||
Date: Wed, 5 Aug 2020 14:25:50 -0500
|
||||
Subject: [PATCH] Add GameProfileLookupEvent
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java
|
||||
index 8a18dfcda3c785e9c8bd134f88515e077dbef7dc..f0ccfce3bc7a2308a479fecd6d751bcaa88a0861 100644
|
||||
index dd96dd296d042c0625e527b50b3acfc19a2bf43e..0c5f2a010f30eb32bea273d7e65b0741016480e5 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java
|
||||
@@ -5,9 +5,13 @@ import com.google.common.base.Charsets;
|
||||
@ -22,35 +22,39 @@ index 8a18dfcda3c785e9c8bd134f88515e077dbef7dc..f0ccfce3bc7a2308a479fecd6d751bca
|
||||
import org.bukkit.craftbukkit.entity.CraftPlayer;
|
||||
import org.spigotmc.SpigotConfig;
|
||||
|
||||
@@ -185,13 +189,21 @@ public class CraftPlayerProfile implements PlayerProfile {
|
||||
|
||||
@@ -182,17 +186,24 @@ public class CraftPlayerProfile implements PlayerProfile {
|
||||
}
|
||||
public boolean complete(boolean textures, boolean onlineMode) {
|
||||
MinecraftServer server = MinecraftServer.getServer();
|
||||
-
|
||||
boolean isCompleteFromCache = this.completeFromCache(true, onlineMode);
|
||||
if (onlineMode && (!isCompleteFromCache || textures && !hasTextures())) {
|
||||
- GameProfile result = server.getSessionService().fillProfileProperties(profile, true);
|
||||
- GameProfile result = server.getMinecraftSessionService().fillProfileProperties(profile, true);
|
||||
- if (result != null) {
|
||||
- copyProfileProperties(result, this.profile, true);
|
||||
- }
|
||||
+ // Yatopia start
|
||||
+ GameProfileLookupEvent event = new GameProfileLookupEvent(!Bukkit.isPrimaryThread(), profile.getId(), profile.getName());
|
||||
+ Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
+ if (event.getGameProfile() != null) {
|
||||
+ this.profile = event.getGameProfile();
|
||||
+ } else {
|
||||
+ GameProfile result = server.getMinecraftSessionService().fillProfileProperties(profile, true);
|
||||
+ if (result != null) {
|
||||
+ copyProfileProperties(result, this.profile, true);
|
||||
+ }
|
||||
+ if (this.profile.isComplete()) {
|
||||
+ server.getUserCache().saveProfile(this.profile);
|
||||
+ }
|
||||
+ }
|
||||
+ // Yatopia end
|
||||
}
|
||||
- if (this.profile.isComplete()) {
|
||||
- server.getUserCache().saveProfile(this.profile);
|
||||
- }
|
||||
+ // Yatopia start
|
||||
+ GameProfileLookupEvent event = new GameProfileLookupEvent(!Bukkit.isPrimaryThread(), profile.getId(), profile.getName());
|
||||
+ Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
+ if (event.getGameProfile() != null) {
|
||||
+ this.profile = event.getGameProfile();
|
||||
+ } else {
|
||||
+ GameProfile result = server.getSessionService().fillProfileProperties(profile, true);
|
||||
+ if (result != null) {
|
||||
+ copyProfileProperties(result, this.profile, true);
|
||||
+ }
|
||||
+ if (this.profile.isComplete()) {
|
||||
+ server.getUserCache().saveProfile(this.profile);
|
||||
+ }
|
||||
+ }
|
||||
+ // Yatopia end
|
||||
}
|
||||
- }
|
||||
return profile.isComplete() && (!onlineMode || !textures || hasTextures());
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/TileEntitySkull.java b/src/main/java/net/minecraft/server/TileEntitySkull.java
|
||||
index 579a81e521fdfabfa0318d06c6760a8ab7a88c1e..ceb1f18a49ebc8fbac270d9f221fa44f9baea216 100644
|
||||
--- a/src/main/java/net/minecraft/server/TileEntitySkull.java
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Add getLastTickMs api
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 7cc402a4dfaa2a4bb123c897b05c09190cbdd489..8e5284fd39be45055bec1609f6b8dd05229e6b35 100644
|
||||
index ee6a2dbc1306871d9ba621f199054befb09744c2..26ee6e9219059c9f7175148e934d2adec2b336a0 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -930,6 +930,8 @@ public abstract class MinecraftServer extends IAsyncTaskHandlerReentrant<TickTas
|
||||
@ -28,10 +28,10 @@ index 7cc402a4dfaa2a4bb123c897b05c09190cbdd489..8e5284fd39be45055bec1609f6b8dd05
|
||||
this.X = true;
|
||||
// Purpur start - tps catchup
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index e9b5140dbac0516c8900f32d686bb812c11562aa..dc7cd8c22b7edd6e63167421a565aca8dddbd102 100644
|
||||
index e5aa68bd8c678398c81af96303669f1ec1b1d375..e1c62bcb9186518d2ad7f95b2d02847f210acd86 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -2421,4 +2421,11 @@ public final class CraftServer implements Server {
|
||||
@@ -2420,4 +2420,11 @@ public final class CraftServer implements Server {
|
||||
return getServer().lagging;
|
||||
}
|
||||
// Purpur end
|
||||
|
@ -1,6 +1,6 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: tr7zw <tr7zw@live.de>
|
||||
Date: Sun, 2 Aug 2020 11:17:08 -0500
|
||||
From: Bud Gidiere <sgidiere@gmail.com>
|
||||
Date: Wed, 5 Aug 2020 08:05:10 -0500
|
||||
Subject: [PATCH] Add config Yatopia command and basic settings
|
||||
|
||||
|
||||
@ -357,7 +357,7 @@ index 0000000000000000000000000000000000000000..19bea6ee83d8b25da022662253328fb6
|
||||
+}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
index ad1af2905e4f3e3d05a0dc63859a6e2f3bc43327..9ba65a7528755f54b9a1c4b1323b6e75de867f14 100644
|
||||
index 7ac6ef0a125499de4b5e6a9ed80f963ba623b9f6..0170f25a694e757798ebd4a37c90b1c1e479d3bd 100644
|
||||
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
@@ -7,6 +7,7 @@ import com.mojang.authlib.GameProfileRepository;
|
||||
@ -368,10 +368,11 @@ index ad1af2905e4f3e3d05a0dc63859a6e2f3bc43327..9ba65a7528755f54b9a1c4b1323b6e75
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
import java.net.InetAddress;
|
||||
@@ -184,6 +185,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
us.minevict.papercut.PapercutConfig.init((java.io.File) options.valueOf("papercut-settings")); // Papercut
|
||||
com.mrivanplays.origami.OrigamiConfig.init((java.io.File) options.valueOf("origami-settings")); // Origami - server config
|
||||
|
||||
@@ -182,7 +183,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
com.tuinity.tuinity.config.TuinityConfig.init((java.io.File) options.valueOf("tuinity-settings")); // Tuinity - Server Config
|
||||
app.akarin.server.Config.init((java.io.File) options.valueOf("akarin-settings")); // Akarin - Server Config
|
||||
com.proximyst.rainforest.RainforestConfig.init((java.io.File) options.valueOf("rainforest-settings")); // Rainforest
|
||||
-
|
||||
+ // Yatopia start
|
||||
+ try {
|
||||
+ dev.tr7zw.yatopia.YatopiaConfig.init(new File("yatopia.yml"));
|
||||
@ -385,7 +386,7 @@ index ad1af2905e4f3e3d05a0dc63859a6e2f3bc43327..9ba65a7528755f54b9a1c4b1323b6e75
|
||||
this.setAllowFlight(dedicatedserverproperties.allowFlight);
|
||||
this.setResourcePack(dedicatedserverproperties.resourcePack, this.aY());
|
||||
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
|
||||
index 98c5ecdf8b59670c872cb43593054f5a91d5e9fe..c77bb0b092cf4198edb6334520fd57042b4e171c 100644
|
||||
index dd093e3e624158ff87bad59785ed2496f161f64c..ec84bc4dceff76fd2f823a6a9548fdf180291584 100644
|
||||
--- a/src/main/java/net/minecraft/server/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/server/Entity.java
|
||||
@@ -1035,7 +1035,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
|
||||
@ -398,7 +399,7 @@ index 98c5ecdf8b59670c872cb43593054f5a91d5e9fe..c77bb0b092cf4198edb6334520fd5704
|
||||
});
|
||||
StreamAccumulator<VoxelShape> streamaccumulator = new StreamAccumulator<>(Stream.concat(stream1, stream));
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index d83ad80c08ef7c8a55bae6fd86aefa128c9c8a20..9f2aab1cb100cb6f9048d840db6fc15947a26847 100644
|
||||
index 0c862b4604540545206ebe6e08d5d79484414279..da08249ee1c61b7c77b79f491cb8482865ecba3c 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -266,6 +266,7 @@ public abstract class EntityLiving extends Entity {
|
||||
|
@ -19,10 +19,10 @@ index 19bea6ee83d8b25da022662253328fb6384f40d9..2cee6e02a7dcbacb5f002f9c5917a2e2
|
||||
}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index 9f2aab1cb100cb6f9048d840db6fc15947a26847..ac029aed60e90072d214399d1f8901957af46ba3 100644
|
||||
index da08249ee1c61b7c77b79f491cb8482865ecba3c..2edebae8a1127c9214c7c2974700db9f207fa05f 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -2843,40 +2843,46 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -2844,40 +2844,46 @@ public abstract class EntityLiving extends Entity {
|
||||
if (i <= 0 && world.paperConfig.maxCollisionsPerEntity <= 0) {
|
||||
return;
|
||||
}
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Player-saving-async-FileIO
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java
|
||||
index 2e88442e13546e9005e3783b09feaddbed7cea16..0f05c8887f5ecd639021e90389e53891b6ad80fc 100644
|
||||
index cf539c98073b475eb5b769c8cc11d48a7e6d58f1..5442c28c56f933c63bd611f579d0392876ecc2ef 100644
|
||||
--- a/src/main/java/net/minecraft/server/AdvancementDataPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/AdvancementDataPlayer.java
|
||||
@@ -27,6 +27,8 @@ import java.util.List;
|
||||
@ -138,7 +138,7 @@ index 2e88442e13546e9005e3783b09feaddbed7cea16..0f05c8887f5ecd639021e90389e53891
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityHuman.java b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
index 2cada09ced1660526e9c112c2c8d92bbf9d6ea98..767ecf5fe63d86522ef8de4c0b4cda2803a5145c 100644
|
||||
index e411f6280d07e3f6a953e1fcaffaaa49f85dc7cc..3966bf7160ef5a7ec6944397ffbf51f583875860 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityHuman.java
|
||||
@@ -700,11 +700,23 @@ public abstract class EntityHuman extends EntityLiving {
|
||||
@ -176,10 +176,10 @@ index 2cada09ced1660526e9c112c2c8d92bbf9d6ea98..767ecf5fe63d86522ef8de4c0b4cda28
|
||||
nbttagcompound.set("ShoulderEntityLeft", this.getShoulderEntityLeft());
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
|
||||
index 8b64720f4acf5deb341074cd75f99ca7816f1e41..2e24e2210f91e69ead4f21f2426e5230fb887e53 100644
|
||||
index 33c40bf94e74d1ee268fb8ffb809f45b31621df9..c10a1d15bcfe0cb1c2ff6ee7f2881bc2040bcd1d 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerList.java
|
||||
@@ -20,6 +20,7 @@ import java.util.Optional;
|
||||
@@ -19,6 +19,7 @@ import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.UUID;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
@ -187,7 +187,7 @@ index 8b64720f4acf5deb341074cd75f99ca7816f1e41..2e24e2210f91e69ead4f21f2426e5230
|
||||
import javax.annotation.Nullable;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -1262,6 +1263,28 @@ public abstract class PlayerList {
|
||||
@@ -1260,6 +1261,28 @@ public abstract class PlayerList {
|
||||
if (team != null) scoreboard.removeTeam(team);
|
||||
}
|
||||
// Paper end
|
||||
@ -216,7 +216,7 @@ index 8b64720f4acf5deb341074cd75f99ca7816f1e41..2e24e2210f91e69ead4f21f2426e5230
|
||||
}
|
||||
// Paper end
|
||||
|
||||
@@ -1299,13 +1322,13 @@ public abstract class PlayerList {
|
||||
@@ -1297,13 +1320,13 @@ public abstract class PlayerList {
|
||||
File file = this.server.a(SavedFile.STATS).toFile();
|
||||
File file1 = new File(file, uuid + ".json");
|
||||
|
||||
|
@ -5,7 +5,7 @@ Subject: [PATCH] Modify default configs
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperConfig.java b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
index 56e4359ba32339e1bef58061585ff3e12e4215f3..5465f13cdedcf71310838e8505e94e975180919b 100644
|
||||
index 29200d223cf7c5948ebd0907ef5a1d9ea8114c81..1febe2aff4eab2f15e9bc4b21e6d0c350f122c87 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperConfig.java
|
||||
@@ -201,7 +201,7 @@ public class PaperConfig {
|
||||
@ -18,7 +18,7 @@ index 56e4359ba32339e1bef58061585ff3e12e4215f3..5465f13cdedcf71310838e8505e94e97
|
||||
TimingsManager.privacy = getBoolean("timings.server-name-privacy", false);
|
||||
TimingsManager.hiddenConfigs = getList("timings.hidden-config-entries", Lists.newArrayList("database", "settings.bungeecord-addresses"));
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
index e471e764935e2a89560de56959a782b02e5e8fe1..5b9fef2b47b752897ea9153fe818a9c476e689ea 100644
|
||||
index 8cc8134f701d2517d134077b2fcd223106c09478..c2d5f7d22beb4c4829dfcb55fa842eaf727e906c 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
||||
@@ -600,7 +600,7 @@ public class PaperWorldConfig {
|
||||
|
@ -37,10 +37,10 @@ index 4f10ca5ada741b4f5ef941bb9d92a2fa6a7c44ff..3d6f8d948d293ca57bf158bcd1f58e28
|
||||
if (enumdirection2 != EnumDirection.DOWN && world.isBlockFacePowered(blockposition1.shift(enumdirection2), enumdirection2)) {
|
||||
return true;
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
index ac029aed60e90072d214399d1f8901957af46ba3..9780b8602984b5d8fce7d5b38ebcd70955097a56 100644
|
||||
index 2edebae8a1127c9214c7c2974700db9f207fa05f..ce96eea39425792eda9aacd656d2bffda8bc3803 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
||||
@@ -2566,11 +2566,14 @@ public abstract class EntityLiving extends Entity {
|
||||
@@ -2567,11 +2567,14 @@ public abstract class EntityLiving extends Entity {
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ Original code by JellySquid, licensed under GNU Lesser General Public License v3
|
||||
you can find the original code on https://github.com/jellysquid3/lithium-fabric/tree/1.15.x/fabric (Yarn mappings)
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PathfinderNormal.java b/src/main/java/net/minecraft/server/PathfinderNormal.java
|
||||
index 49fc87b6e196d4bde8b99929a4a42f00d2f462e8..97d2b88570037ad9f4efe037ae7410598b031c40 100644
|
||||
index 29c978aaa2b9f50f5dba70943653af7658d98fc7..595fb84f280bb10997992cc41ebc512ceaf2d696 100644
|
||||
--- a/src/main/java/net/minecraft/server/PathfinderNormal.java
|
||||
+++ b/src/main/java/net/minecraft/server/PathfinderNormal.java
|
||||
@@ -4,12 +4,23 @@ import it.unimi.dsi.fastutil.longs.Long2ObjectMap;
|
||||
@ -34,7 +34,7 @@ index 49fc87b6e196d4bde8b99929a4a42f00d2f462e8..97d2b88570037ad9f4efe037ae741059
|
||||
protected float j;
|
||||
private final Long2ObjectMap<PathType> k = new Long2ObjectOpenHashMap();
|
||||
private final Object2BooleanMap<AxisAlignedBB> l = new Object2BooleanOpenHashMap();
|
||||
@@ -508,13 +519,44 @@ public class PathfinderNormal extends PathfinderAbstract {
|
||||
@@ -509,13 +520,44 @@ public class PathfinderNormal extends PathfinderAbstract {
|
||||
protected static PathType b(IBlockAccess iblockaccess, BlockPosition blockposition) {
|
||||
IBlockData iblockdata = iblockaccess.getTypeIfLoaded(blockposition); // Paper
|
||||
if (iblockdata == null) return PathType.BLOCKED; // Paper
|
||||
@ -84,7 +84,7 @@ index 49fc87b6e196d4bde8b99929a4a42f00d2f462e8..97d2b88570037ad9f4efe037ae741059
|
||||
return PathType.DAMAGE_CACTUS;
|
||||
} else if (iblockdata.a(Blocks.SWEET_BERRY_BUSH)) {
|
||||
return PathType.DAMAGE_OTHER;
|
||||
@@ -540,7 +582,10 @@ public class PathfinderNormal extends PathfinderAbstract {
|
||||
@@ -541,7 +583,10 @@ public class PathfinderNormal extends PathfinderAbstract {
|
||||
} else {
|
||||
Fluid fluid = iblockdata.getFluid(); // Tuinity - remove another getType call
|
||||
|
||||
|
@ -35,7 +35,7 @@ index a29294fbc7cd6fcfff0df9eadd11de3bd7f1405e..7918382f26807f945dc7966b81c3c1e2
|
||||
|
||||
private void a(World world, BlockPosition blockposition, IBlockData iblockdata) {
|
||||
diff --git a/src/main/java/net/minecraft/server/TileEntityHopper.java b/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||
index d87d3f274ba1525c13875a92eec9d4c1bd265fa5..7e5e72d06f2b073dd98bb03d57618bdf7d269f91 100644
|
||||
index 3ff61141aede4b5a09bf83153222de0d14db5ad0..a5a8528db91c15afcf8c77d5e4727c8e0212bb63 100644
|
||||
--- a/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||
+++ b/src/main/java/net/minecraft/server/TileEntityHopper.java
|
||||
@@ -2,6 +2,7 @@ package net.minecraft.server;
|
||||
@ -46,7 +46,7 @@ index d87d3f274ba1525c13875a92eec9d4c1bd265fa5..7e5e72d06f2b073dd98bb03d57618bdf
|
||||
import java.util.function.Supplier;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.IntStream;
|
||||
@@ -667,14 +668,44 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
@@ -661,14 +662,44 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
|
||||
@Nullable
|
||||
private IInventory l() {
|
||||
@ -93,7 +93,7 @@ index d87d3f274ba1525c13875a92eec9d4c1bd265fa5..7e5e72d06f2b073dd98bb03d57618bdf
|
||||
}
|
||||
|
||||
public static List<EntityItem> c(IHopper ihopper) {
|
||||
@@ -689,14 +720,15 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
@@ -683,14 +714,15 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@ -114,7 +114,7 @@ index d87d3f274ba1525c13875a92eec9d4c1bd265fa5..7e5e72d06f2b073dd98bb03d57618bdf
|
||||
BlockPosition blockposition = new BlockPosition(d0, d1, d2);
|
||||
if ( !world.isLoaded( blockposition ) ) return null; // Spigot
|
||||
IBlockData iblockdata = world.getType(blockposition);
|
||||
@@ -714,8 +746,9 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
@@ -708,8 +740,9 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -125,7 +125,7 @@ index d87d3f274ba1525c13875a92eec9d4c1bd265fa5..7e5e72d06f2b073dd98bb03d57618bdf
|
||||
List<Entity> list = world.getEntities((Entity) null, new AxisAlignedBB(d0 - 0.5D, d1 - 0.5D, d2 - 0.5D, d0 + 0.5D, d1 + 0.5D, d2 + 0.5D), IEntitySelector.d);
|
||||
|
||||
if (!list.isEmpty()) {
|
||||
@@ -785,4 +818,21 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
@@ -779,4 +812,21 @@ public class TileEntityHopper extends TileEntityLootable implements IHopper, ITi
|
||||
protected Container createContainer(int i, PlayerInventory playerinventory) {
|
||||
return new ContainerHopper(i, playerinventory, this);
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: tr7zw <tr7zw@live.de>
|
||||
Date: Fri, 31 Jul 2020 22:04:17 -0500
|
||||
From: Bud Gidiere <sgidiere@gmail.com>
|
||||
Date: Wed, 5 Aug 2020 08:08:44 -0500
|
||||
Subject: [PATCH] Optimize TileEntity loading
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@ index c2c19a6fbfa2a4aba21aa71789071c69a6246556..7dfd36e22a896ae440bbda6db0628c44
|
||||
}
|
||||
\ No newline at end of file
|
||||
diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java
|
||||
index 542b7cb89ac6b216d02bac6563df60d53cc7e9f1..811b02d36416b41f7dfa0d3b8a94c159fe77c911 100644
|
||||
index 44af511da96b265a8441052cc87e356e630699a6..847a245606c5bb98a8821a9dcd677d7eb2e81e45 100644
|
||||
--- a/src/main/java/net/minecraft/server/World.java
|
||||
+++ b/src/main/java/net/minecraft/server/World.java
|
||||
@@ -2,6 +2,8 @@ package net.minecraft.server;
|
||||
@ -44,15 +44,15 @@ index 542b7cb89ac6b216d02bac6563df60d53cc7e9f1..811b02d36416b41f7dfa0d3b8a94c159
|
||||
import com.destroystokyo.paper.antixray.ChunkPacketBlockController; // Paper - Anti-Xray
|
||||
import com.destroystokyo.paper.antixray.ChunkPacketBlockControllerAntiXray; // Paper - Anti-Xray
|
||||
import com.destroystokyo.paper.event.server.ServerExceptionEvent;
|
||||
@@ -10,6 +12,7 @@ import com.google.common.base.MoreObjects;
|
||||
import com.google.common.collect.Lists;
|
||||
@@ -11,6 +13,7 @@ import com.google.common.collect.Lists;
|
||||
import com.mojang.serialization.Codec;
|
||||
import com.proximyst.rainforest.RainforestWorldConfig;
|
||||
import java.io.IOException;
|
||||
+import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Iterator;
|
||||
import java.util.List;
|
||||
@@ -42,8 +45,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
@@ -43,8 +46,8 @@ public abstract class World implements GeneratorAccess, AutoCloseable {
|
||||
public static final ResourceKey<World> THE_END = ResourceKey.a(IRegistry.ae, new MinecraftKey("the_end"));
|
||||
private static final EnumDirection[] a = EnumDirection.values();
|
||||
//public final List<TileEntity> tileEntityList = Lists.newArrayList(); // Paper - remove unused list
|
||||
|
@ -1,6 +1,6 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: tr7zw <tr7zw@live.de>
|
||||
Date: Mon, 3 Aug 2020 17:38:07 +0200
|
||||
From: Bud Gidiere <sgidiere@gmail.com>
|
||||
Date: Wed, 5 Aug 2020 08:17:46 -0500
|
||||
Subject: [PATCH] Redirect Configs
|
||||
|
||||
|
||||
@ -40,42 +40,42 @@ index 1742facec843dd87897d62e4aab819835fab4a38..358ac3361c814b7cf5f9650a6a49c6ef
|
||||
}
|
||||
|
||||
public static void load(final YamlConfiguration config) {
|
||||
diff --git a/src/main/java/com/mrivanplays/origami/OrigamiConfig.java b/src/main/java/com/mrivanplays/origami/OrigamiConfig.java
|
||||
index 111fa3cd586c31eb0ab9fd425179d1f54a40a0f4..9038b3324c50982e85c5e1992de99df6ba902a89 100644
|
||||
--- a/src/main/java/com/mrivanplays/origami/OrigamiConfig.java
|
||||
+++ b/src/main/java/com/mrivanplays/origami/OrigamiConfig.java
|
||||
@@ -2,6 +2,8 @@ package com.mrivanplays.origami;
|
||||
|
||||
import com.destroystokyo.paper.util.SneakyThrow;
|
||||
diff --git a/src/main/java/com/proximyst/rainforest/RainforestConfig.java b/src/main/java/com/proximyst/rainforest/RainforestConfig.java
|
||||
index 0d854bda9611b45d78815f9fe9cafb8901de210f..04f5751f7972ed04f97c3f911277a30f14344801 100644
|
||||
--- a/src/main/java/com/proximyst/rainforest/RainforestConfig.java
|
||||
+++ b/src/main/java/com/proximyst/rainforest/RainforestConfig.java
|
||||
@@ -18,6 +18,8 @@ import org.bukkit.command.Command;
|
||||
import org.bukkit.configuration.InvalidConfigurationException;
|
||||
import org.bukkit.configuration.file.YamlConfiguration;
|
||||
|
||||
+import dev.tr7zw.yatopia.YatopiaConfig;
|
||||
+
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.lang.reflect.Method;
|
||||
@@ -23,7 +25,7 @@ public final class OrigamiConfig {
|
||||
private static int configVersion;
|
||||
// Based on PaperConfig
|
||||
public final class RainforestConfig {
|
||||
private static File CONFIG_FILE;
|
||||
@@ -37,8 +39,7 @@ public final class RainforestConfig {
|
||||
private static boolean fatalError;
|
||||
|
||||
public static void init(final File file) {
|
||||
- OrigamiConfig.configFile = file;
|
||||
+ /*OrigamiConfig.configFile = file;
|
||||
final YamlConfiguration config = new YamlConfiguration();
|
||||
config.options().header(CONFIG_HEADER);
|
||||
config.options().copyDefaults(true);
|
||||
@@ -42,8 +44,9 @@ public final class OrigamiConfig {
|
||||
SneakyThrow.sneaky(e);
|
||||
throw new RuntimeException(e); // unreachable
|
||||
}
|
||||
- }
|
||||
- load(config);
|
||||
+ }*/
|
||||
+ configFile = YatopiaConfig.CONFIG_FILE;
|
||||
+ load(YatopiaConfig.config);
|
||||
}
|
||||
public static void init(File configFile) {
|
||||
- CONFIG_FILE = configFile;
|
||||
- config = new YamlConfiguration();
|
||||
+ /*config = new YamlConfiguration();
|
||||
try {
|
||||
config.load(CONFIG_FILE);
|
||||
} catch (IOException ex) {
|
||||
@@ -56,7 +57,9 @@ public final class RainforestConfig {
|
||||
|
||||
public static void load(final YamlConfiguration config) {
|
||||
version = getInt("config-version", 1);
|
||||
set("config-version", 1);
|
||||
- readConfig(RainforestConfig.class, null);
|
||||
+ readConfig(RainforestConfig.class, null);*/
|
||||
+ config = YatopiaConfig.config;
|
||||
+ CONFIG_FILE = YatopiaConfig.CONFIG_FILE;
|
||||
}
|
||||
|
||||
protected static void logError(String s) {
|
||||
diff --git a/src/main/java/de/minebench/origami/OrigamiConfig.java b/src/main/java/de/minebench/origami/OrigamiConfig.java
|
||||
index 3b3c7053c73ac31eb00585c4e1fc19933467205a..5c904da2c49098eed9ea2b0ed133bf1322225c4d 100644
|
||||
index bd107a376eaf660ba1ad61c035f8ed2d9d04749c..157a5c1be65b6b39787e5be11d1a8d5ea4aeb2b8 100644
|
||||
--- a/src/main/java/de/minebench/origami/OrigamiConfig.java
|
||||
+++ b/src/main/java/de/minebench/origami/OrigamiConfig.java
|
||||
@@ -3,6 +3,8 @@ package de.minebench.origami;
|
||||
@ -121,7 +121,7 @@ index 9f04500e167b8403c7487044a4ae03a6be61062a..fb3bf0731512b5517ca7ccb3240085b4
|
||||
+ "Yatopia contains many breaking changes and settings, so know what you are doing!\n"
|
||||
+ "You have been warned!\n";
|
||||
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
index 9ba65a7528755f54b9a1c4b1323b6e75de867f14..d6e0d9dd98efadb46e7888af2e0cd2ff7736df83 100644
|
||||
index 0170f25a694e757798ebd4a37c90b1c1e479d3bd..73f4d52f24d042e287dab351edd4bfa4e22046b4 100644
|
||||
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
|
||||
@@ -169,6 +169,15 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
@ -140,12 +140,10 @@ index 9ba65a7528755f54b9a1c4b1323b6e75de867f14..d6e0d9dd98efadb46e7888af2e0cd2ff
|
||||
// Purpur start
|
||||
try {
|
||||
net.pl3x.purpur.PurpurConfig.init((java.io.File) options.valueOf("purpur-settings"));
|
||||
@@ -184,16 +193,8 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
@@ -183,14 +192,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
|
||||
com.tuinity.tuinity.config.TuinityConfig.init((java.io.File) options.valueOf("tuinity-settings")); // Tuinity - Server Config
|
||||
app.akarin.server.Config.init((java.io.File) options.valueOf("akarin-settings")); // Akarin - Server Config
|
||||
us.minevict.papercut.PapercutConfig.init((java.io.File) options.valueOf("papercut-settings")); // Papercut
|
||||
com.mrivanplays.origami.OrigamiConfig.init((java.io.File) options.valueOf("origami-settings")); // Origami - server config
|
||||
+ de.minebench.origami.OrigamiConfig.init((java.io.File) options.valueOf("origami-settings"));
|
||||
|
||||
com.proximyst.rainforest.RainforestConfig.init((java.io.File) options.valueOf("rainforest-settings")); // Rainforest
|
||||
- // Yatopia start
|
||||
- try {
|
||||
- dev.tr7zw.yatopia.YatopiaConfig.init(new File("yatopia.yml"));
|
||||
@ -154,15 +152,15 @@ index 9ba65a7528755f54b9a1c4b1323b6e75de867f14..d6e0d9dd98efadb46e7888af2e0cd2ff
|
||||
- return false;
|
||||
- }
|
||||
- dev.tr7zw.yatopia.YatopiaConfig.registerCommands();
|
||||
- // Yatopia end
|
||||
+ de.minebench.origami.OrigamiConfig.init((java.io.File) options.valueOf("origami-settings"));
|
||||
// Yatopia end
|
||||
this.setPVP(dedicatedserverproperties.pvp);
|
||||
this.setAllowFlight(dedicatedserverproperties.allowFlight);
|
||||
this.setResourcePack(dedicatedserverproperties.resourcePack, this.aY());
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
index 2c3f96e9d5e7c2cfd4a3d1aeba27f25c6e8b891b..01ad4f9881623639aa247a064c600b78952ba1be 100644
|
||||
index 1a454f74b322605b1006da5be13760b13cc5f931..6820905bf16eb4e8a97615a7ef49b6d3337ab247 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||
@@ -318,7 +318,7 @@ public class Main {
|
||||
@@ -304,7 +304,7 @@ public class Main {
|
||||
}
|
||||
// Paper end
|
||||
System.setProperty( "library.jansi.version", "Paper" ); // Paper - set meaningless jansi version to prevent git builds from crashing on Windows
|
||||
@ -171,42 +169,3 @@ index 2c3f96e9d5e7c2cfd4a3d1aeba27f25c6e8b891b..01ad4f9881623639aa247a064c600b78
|
||||
System.out.println("Loading libraries, please wait...");
|
||||
net.minecraft.server.Main.main(options);
|
||||
} catch (Throwable t) {
|
||||
diff --git a/src/main/java/us/minevict/papercut/PapercutConfig.java b/src/main/java/us/minevict/papercut/PapercutConfig.java
|
||||
index 1256b689481f9d31dc2fbbf6072293c293ed6c2e..f242810198a48e82838e67dd356da596e3288f8e 100644
|
||||
--- a/src/main/java/us/minevict/papercut/PapercutConfig.java
|
||||
+++ b/src/main/java/us/minevict/papercut/PapercutConfig.java
|
||||
@@ -1,6 +1,9 @@
|
||||
package us.minevict.papercut;
|
||||
|
||||
import com.destroystokyo.paper.util.SneakyThrow;
|
||||
+
|
||||
+import dev.tr7zw.yatopia.YatopiaConfig;
|
||||
+
|
||||
import java.io.File;
|
||||
import java.lang.reflect.Method;
|
||||
import java.lang.reflect.Modifier;
|
||||
@@ -20,7 +23,7 @@ public final class PapercutConfig {
|
||||
private static int configVersion;
|
||||
|
||||
public static void init(final File file) {
|
||||
- final File papercutConfig = new File(file.getParent(), "papercut.yml");
|
||||
+ /*final File papercutConfig = new File(file.getParent(), "papercut.yml");
|
||||
if (!papercutConfig.exists()) {
|
||||
final File oldConfig = new File(file.getParent(), "papercut.yml");
|
||||
oldConfig.renameTo(papercutConfig);
|
||||
@@ -42,11 +45,12 @@ public final class PapercutConfig {
|
||||
} catch (final Exception ex) {
|
||||
Bukkit.getLogger().log(Level.SEVERE, "Failure to load papercut config", ex);
|
||||
SneakyThrow.sneaky(ex); /* Rethrow, this is critical */
|
||||
- throw new RuntimeException(ex); // unreachable
|
||||
+ /* throw new RuntimeException(ex); // unreachable
|
||||
}
|
||||
- }
|
||||
+ }*/
|
||||
|
||||
- PapercutConfig.load(config);
|
||||
+ configFile = YatopiaConfig.CONFIG_FILE;
|
||||
+ PapercutConfig.load(YatopiaConfig.config);
|
||||
}
|
||||
|
||||
public static void load(final YamlConfiguration config) {
|
@ -1,76 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Sotr <i@omc.hk>
|
||||
Date: Fri, 31 Jul 2020 22:31:08 -0500
|
||||
Subject: [PATCH] Akarin updated Cache hashcode for BlockPosition
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/BaseBlockPosition.java b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||
index dab89b0c69ddff24d37cee06107bdc464012c6bb..1e0acca45d0c8f7873176a46018b38eba02aa667 100644
|
||||
--- a/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||
+++ b/src/main/java/net/minecraft/server/BaseBlockPosition.java
|
||||
@@ -28,6 +28,7 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
|
||||
return b < 0 || b >= 256;
|
||||
}
|
||||
// Paper end
|
||||
+ protected int hash; // Akarin - cache hashcode
|
||||
|
||||
public BaseBlockPosition(int i, int j, int k) {
|
||||
this.a = i;
|
||||
@@ -52,8 +53,20 @@ public class BaseBlockPosition implements Comparable<BaseBlockPosition> {
|
||||
}
|
||||
|
||||
public final int hashCode() { // Paper
|
||||
- return (this.getY() + this.getZ() * 31) * 31 + this.getX();
|
||||
- }
|
||||
+ // Akarin start - cache hashcode
|
||||
+ int result = hash; // Make the situation not too bad when it is modified by multiple threads
|
||||
+ if (result == 0) {
|
||||
+ result = (this.b + this.e * 31) * 31 + this.a; // Paper
|
||||
+ hash = result;
|
||||
+ }
|
||||
+ return result;
|
||||
+ // return (this.getY() + this.getZ() * 31) * 31 + this.getX();
|
||||
+ }
|
||||
+
|
||||
+ public final void recalcHashCode() {
|
||||
+ hash = 0;
|
||||
+ }
|
||||
+ // Akarin end
|
||||
|
||||
public int compareTo(BaseBlockPosition baseblockposition) {
|
||||
return this.getY() == baseblockposition.getY() ? (this.getZ() == baseblockposition.getZ() ? this.getX() - baseblockposition.getX() : this.getZ() - baseblockposition.getZ()) : this.getY() - baseblockposition.getY();
|
||||
diff --git a/src/main/java/net/minecraft/server/BlockPosition.java b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
index 7ff4948a47be03c65c162ca04b2338cdcdafe7c4..14a626f98fb1faf38cf3d3e9d0bc79baf14559ac 100644
|
||||
--- a/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
+++ b/src/main/java/net/minecraft/server/BlockPosition.java
|
||||
@@ -438,7 +438,9 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
}
|
||||
|
||||
public BlockPosition.MutableBlockPosition e(int i, int j, int k) {
|
||||
- return this.d(this.getX() + i, this.getY() + j, this.getZ() + k);
|
||||
+ this.d(this.getX() + i, this.getY() + j, this.getZ() + k);
|
||||
+ this.recalcHashCode();
|
||||
+ return this;
|
||||
}
|
||||
|
||||
public BlockPosition.MutableBlockPosition a(EnumDirection.EnumAxis enumdirection_enumaxis, int i, int j) {
|
||||
@@ -469,16 +471,19 @@ public class BlockPosition extends BaseBlockPosition {
|
||||
// Tuinity - moved up
|
||||
public final void o(int i) { // Tuinity
|
||||
((BaseBlockPosition)this).a = i; // need cast thanks to name conflict
|
||||
+ this.recalcHashCode();
|
||||
}
|
||||
|
||||
// Tuinity - moved up
|
||||
public final void p(int i) { // Tuinity
|
||||
((BaseBlockPosition)this).b = i; // Tuinity
|
||||
+ this.recalcHashCode();
|
||||
}
|
||||
|
||||
// Tuinity - moved up
|
||||
public final void q(int i) { // Tuinity
|
||||
((BaseBlockPosition)this).e = i; // Tuinity
|
||||
+ this.recalcHashCode();
|
||||
}
|
||||
|
||||
@Override
|
@ -1,358 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: tsao chi <tsao-chi@the-lingo.org>
|
||||
Date: Sun, 2 Aug 2020 12:25:52 -0500
|
||||
Subject: [PATCH] Akarin updated Async Path Finding
|
||||
|
||||
Co-authored-by: Bud Gidiere <sgidiere@gmail.com>
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityBee.java b/src/main/java/net/minecraft/server/EntityBee.java
|
||||
index e6868e2b65e3c2bde7696272b242a47e7394e27f..c4c3ef500b9b8465644a0b7712f43ba35ad3acc1 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityBee.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityBee.java
|
||||
@@ -445,9 +445,9 @@ public class EntityBee extends EntityAnimal implements IEntityAngerable, EntityB
|
||||
}
|
||||
|
||||
@Override
|
||||
- public void c() {
|
||||
+ public void tickAsync() {
|
||||
if (!EntityBee.this.bJ.k()) {
|
||||
- super.c();
|
||||
+ super.tickAsync();
|
||||
}
|
||||
}
|
||||
};
|
||||
diff --git a/src/main/java/net/minecraft/server/EntityInsentient.java b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
index 027a55223c660f25b0b52f99efed5b0c037ae658..09f332aa02604dd86224a6f66ec4f84d7bf99318 100644
|
||||
--- a/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
+++ b/src/main/java/net/minecraft/server/EntityInsentient.java
|
||||
@@ -757,7 +757,7 @@ public abstract class EntityInsentient extends EntityLiving {
|
||||
this.goalSelector.doTick();
|
||||
//this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
||||
//this.world.getMethodProfiler().enter("navigation"); // Akarin - remove caller
|
||||
- this.navigation.c();
|
||||
+ this.navigation.tickAsync(); // Akarin - Async pathfinder
|
||||
//this.world.getMethodProfiler().exit(); // Akarin - remove caller
|
||||
//this.world.getMethodProfiler().enter("mob tick"); // Akarin - remove caller
|
||||
this.mobTick();
|
||||
diff --git a/src/main/java/net/minecraft/server/Navigation.java b/src/main/java/net/minecraft/server/Navigation.java
|
||||
index 681465d8a74831461dce4615d2d19c7ed46bc299..f04411a2a295d2a982dca5851ae76a80a6a83585 100644
|
||||
--- a/src/main/java/net/minecraft/server/Navigation.java
|
||||
+++ b/src/main/java/net/minecraft/server/Navigation.java
|
||||
@@ -183,7 +183,7 @@ public class Navigation extends NavigationAbstract {
|
||||
double d3 = (double) j2 + 0.5D - vec3d.z;
|
||||
|
||||
if (d2 * d0 + d3 * d1 >= 0.0D) {
|
||||
- PathType pathtype = this.o.a(this.b, i2, j - 1, j2, this.a, l, i1, j1, true, true);
|
||||
+ PathType pathtype = this.o.a(this.o.a, i2, j - 1, j2, this.a, l, i1, j1, true, true); // Akarin - use chunk cache
|
||||
|
||||
if (!this.a(pathtype)) {
|
||||
return false;
|
||||
diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||
index 2405dc5e9a6a971a565c37710b61d5fc4737bdf8..2dac507e9e0044a32ae54ea57eada0de04c1467d 100644
|
||||
--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||
+++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
|
||||
@@ -28,6 +28,15 @@ public abstract class NavigationAbstract {
|
||||
private int q;
|
||||
private float r;
|
||||
private final Pathfinder s; public Pathfinder getPathfinder() { return this.s; } // Paper - OBFHELPER
|
||||
+ // Akarin start - Async pathfinder
|
||||
+ private long lastPathfindAsync;
|
||||
+ private static final java.util.concurrent.ExecutorService pathfindExecutor =
|
||||
+ java.util.concurrent.Executors.newSingleThreadExecutor(
|
||||
+ new com.google.common.util.concurrent.ThreadFactoryBuilder()
|
||||
+ .setDaemon(true)
|
||||
+ .setNameFormat("StarLink Pathfinder - %d")
|
||||
+ .build());
|
||||
+ // Akarin end
|
||||
|
||||
// Tuinity start
|
||||
public boolean isViableForPathRecalculationChecking() {
|
||||
@@ -83,7 +92,40 @@ public abstract class NavigationAbstract {
|
||||
}
|
||||
|
||||
}
|
||||
+ // Akarin start - Async pathfinder, copied from above with modification
|
||||
+ public void doPathfindAsync() {
|
||||
+ if (this.b.getTime() - this.lastPathfindAsync > 20L) {
|
||||
+ if (this.p != null) {
|
||||
+ this.lastPathfindAsync = this.b.getTime();
|
||||
+
|
||||
+ // Bake chunk cache
|
||||
+ float f = (float) this.a.b(GenericAttributes.FOLLOW_RANGE);;
|
||||
+ BlockPosition blockposition = this.a.getChunkCoordinates();
|
||||
+ int k = (int) (f + (float) 8);
|
||||
+ ChunkCache cache = new ChunkCache(this.b, blockposition.b(-k, -k, -k), blockposition.b(k, k, k));
|
||||
+
|
||||
+ // Execute directly if we already have a path entity, or compute one
|
||||
+ if (this.c != null && !this.c.b()) {
|
||||
+ doTickAsync(this.c);
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
+ pathfindExecutor.execute(() -> {
|
||||
+ PathEntity result = findPathAsync(cache, java.util.Collections.singleton(this.p), this.q);
|
||||
+ NavigationAbstract.this.b.getMinecraftServer().processQueue.add(() -> {
|
||||
+ if (result != null && result.m() != null)
|
||||
+ this.p = result.m();
|
||||
+
|
||||
+ NavigationAbstract.this.c = result;
|
||||
+ });
|
||||
+ });
|
||||
+ }
|
||||
+ } else {
|
||||
+ // Execute directly, keep behaviour with vanilla, see the original doTick method
|
||||
+ doTickAsync(this.c);
|
||||
+ }
|
||||
+ }
|
||||
+ // Akarin end
|
||||
@Nullable
|
||||
public final PathEntity calculateDestination(double d0, double d1, double d2) { return a(d0, d1, d2, 0); } public final PathEntity a(double d0, double d1, double d2, int i) { // Paper - OBFHELPER
|
||||
return this.a(new BlockPosition(d0, d1, d2), i);
|
||||
@@ -164,7 +206,17 @@ public abstract class NavigationAbstract {
|
||||
return pathentity;
|
||||
}
|
||||
}
|
||||
-
|
||||
+ // Akarin start - Async pathfinder, copied and edited from above with only pathfinding
|
||||
+ protected PathEntity findPathAsync(ChunkCache cache, Set<BlockPosition> set, int j) {
|
||||
+ if (this.a.locY() < 0.0D) {
|
||||
+ return null;
|
||||
+ } else if (!this.a()) {
|
||||
+ return null;
|
||||
+ } else {
|
||||
+ return this.s.a(cache, this.a, set, f, j, this.r);
|
||||
+ }
|
||||
+ }
|
||||
+ // Akarin end
|
||||
public boolean a(double d0, double d1, double d2, double d3) {
|
||||
return this.a(this.a(d0, d1, d2, 1), d3);
|
||||
}
|
||||
@@ -228,7 +280,7 @@ public abstract class NavigationAbstract {
|
||||
return this.c;
|
||||
}
|
||||
|
||||
- public void c() {
|
||||
+/* public void c() {
|
||||
++this.e;
|
||||
if (this.m) {
|
||||
this.j();
|
||||
@@ -238,7 +290,7 @@ public abstract class NavigationAbstract {
|
||||
Vec3D vec3d;
|
||||
|
||||
if (this.a()) {
|
||||
- this.l();
|
||||
+ //this.l();
|
||||
} else if (this.c != null && this.c.f() < this.c.e()) {
|
||||
vec3d = this.b();
|
||||
Vec3D vec3d1 = this.c.a(this.a, this.c.f());
|
||||
@@ -256,9 +308,44 @@ public abstract class NavigationAbstract {
|
||||
this.a.getControllerMove().a(vec3d.x, this.b.getType(blockposition.down()).isAir() ? vec3d.y : PathfinderNormal.a((IBlockAccess) this.b, blockposition), vec3d.z, this.d);
|
||||
}
|
||||
}
|
||||
+ }*/
|
||||
+ //Yatopia Start
|
||||
+ public void c() {
|
||||
+ this.tickAsync();
|
||||
+ }
|
||||
+ //Yatopia End
|
||||
+ // Akarin start - Async pathfinder, copied from above
|
||||
+ public void tickAsync() {
|
||||
+ ++this.e;
|
||||
+ this.doPathfindAsync();
|
||||
}
|
||||
|
||||
- protected void l() {
|
||||
+ // This was copied from above partly with param
|
||||
+ public void doTickAsync(PathEntity pathEntity) {
|
||||
+ if (shouldContinuePathfind(pathEntity))
|
||||
+ return;
|
||||
+
|
||||
+ Vec3D vec3d;
|
||||
+ if (this.a()) {
|
||||
+ this.applyPath(pathEntity);
|
||||
+ } else if (pathEntity.f() < pathEntity.e()) {
|
||||
+ vec3d = this.b();
|
||||
+ Vec3D vec3d1 = pathEntity.a(this.a, pathEntity.f());
|
||||
+
|
||||
+ if (vec3d.y > vec3d1.y && !this.a.isOnGround() && MathHelper.floor(vec3d.x) == MathHelper.floor(vec3d1.x) && MathHelper.floor(vec3d.z) == MathHelper.floor(vec3d1.z)) {
|
||||
+ pathEntity.c(pathEntity.f() + 1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (shouldContinuePathfind(pathEntity))
|
||||
+ return;
|
||||
+ //PacketDebug.a(this.b, this.a, pathEntity, this.l);
|
||||
+ vec3d = pathEntity.a((Entity) this.a);
|
||||
+ BlockPosition blockposition = new BlockPosition(vec3d);
|
||||
+
|
||||
+ this.a.getControllerMove().a(vec3d.x, this.b.getType(blockposition.down()).isAir() ? vec3d.y : PathfinderNormal.a((IBlockAccess) this.b, blockposition), vec3d.z, this.d);
|
||||
+ }
|
||||
+/* protected void l() {
|
||||
Vec3D vec3d = this.b();
|
||||
|
||||
this.l = this.a.getWidth() > 0.75F ? this.a.getWidth() / 2.0F : 0.75F - this.a.getWidth() / 2.0F;
|
||||
@@ -273,8 +360,26 @@ public abstract class NavigationAbstract {
|
||||
}
|
||||
|
||||
this.a(vec3d);
|
||||
- }
|
||||
+ }*/
|
||||
+
|
||||
+ // Akarin start - Async pathfinder, copied from above with param
|
||||
+ protected void applyPath(PathEntity pathEntity) {
|
||||
+ Vec3D vec3d = this.b();
|
||||
+
|
||||
+ this.l = this.a.getWidth() > 0.75F ? this.a.getWidth() / 2.0F : 0.75F - this.a.getWidth() / 2.0F;
|
||||
+ BaseBlockPosition baseblockposition = pathEntity.g();
|
||||
+ double d0 = Math.abs(this.a.locX() - ((double) baseblockposition.getX() + 0.5D));
|
||||
+ double d1 = Math.abs(this.a.locY() - (double) baseblockposition.getY());
|
||||
+ double d2 = Math.abs(this.a.locZ() - ((double) baseblockposition.getZ() + 0.5D));
|
||||
+ boolean flag = d0 < (double) this.l && d2 < (double) this.l && d1 < 1.0D;
|
||||
|
||||
+ if (flag || this.a.b(pathEntity.h().l) && this.b(vec3d)) {
|
||||
+ pathEntity.c(pathEntity.f() + 1);
|
||||
+ }
|
||||
+
|
||||
+ this.applyPath0(pathEntity, vec3d);
|
||||
+ }
|
||||
+ // Akarin end
|
||||
private boolean b(Vec3D vec3d) {
|
||||
if (this.c.e() <= this.c.f() + 1) {
|
||||
return false;
|
||||
@@ -324,7 +429,39 @@ public abstract class NavigationAbstract {
|
||||
}
|
||||
|
||||
}
|
||||
+ // Akarin start - Async pathfinder, copied from above with param
|
||||
+ protected void applyPath0(PathEntity pathEntity, Vec3D vec3d) {
|
||||
+ if (this.e - this.f > 100) {
|
||||
+ if (vec3d.distanceSquared(this.g) < 2.25D) {
|
||||
+ this.o();
|
||||
+ }
|
||||
+
|
||||
+ this.f = this.e;
|
||||
+ this.g = vec3d;
|
||||
+ }
|
||||
+
|
||||
+ if (!pathEntity.b()) {
|
||||
+ BaseBlockPosition baseblockposition = pathEntity.g();
|
||||
+
|
||||
+ if (baseblockposition.equals(this.h)) {
|
||||
+ this.i += SystemUtils.getMonotonicMillis() - this.j;
|
||||
+ } else {
|
||||
+ this.h = baseblockposition;
|
||||
+ double d0 = vec3d.f(Vec3D.c(this.h));
|
||||
+
|
||||
+ this.k = this.a.dM() > 0.0F ? d0 / (double) this.a.dM() * 1000.0D : 0.0D;
|
||||
+ }
|
||||
+
|
||||
+ if (this.k > 0.0D && (double) this.i > this.k * 3.0D) {
|
||||
+ this.e();
|
||||
+ this.o();
|
||||
+ }
|
||||
+
|
||||
+ this.j = SystemUtils.getMonotonicMillis();
|
||||
+ }
|
||||
|
||||
+ }
|
||||
+ // Akarin end
|
||||
private void e() {
|
||||
this.h = BaseBlockPosition.ZERO;
|
||||
this.i = 0L;
|
||||
@@ -389,7 +526,11 @@ public abstract class NavigationAbstract {
|
||||
public boolean r() {
|
||||
return this.o.e();
|
||||
}
|
||||
-
|
||||
+ // Akarin start - Async pathfinder, copied from above with param
|
||||
+ public static boolean shouldContinuePathfind(PathEntity pathEntity) {
|
||||
+ return pathEntity == null || pathEntity.b();
|
||||
+ }
|
||||
+ // Akarin end
|
||||
public void b(BlockPosition blockposition) {
|
||||
if (this.c != null && !this.c.b() && this.c.e() != 0) { // Tuinity - diff on change - needed for isViableForPathRecalculationChecking()
|
||||
PathPoint pathpoint = this.c.c();
|
||||
diff --git a/src/main/java/net/minecraft/server/NavigationFlying.java b/src/main/java/net/minecraft/server/NavigationFlying.java
|
||||
index 0c33a0c9d59d79a39826b5ee14144604717ffebe..cf3f4c1a2a89cce0345566a62faa34ef7e93c603 100644
|
||||
--- a/src/main/java/net/minecraft/server/NavigationFlying.java
|
||||
+++ b/src/main/java/net/minecraft/server/NavigationFlying.java
|
||||
@@ -28,7 +28,7 @@ public class NavigationFlying extends NavigationAbstract {
|
||||
return this.a(entity.getChunkCoordinates(), entity, i); // Paper - Forward target entity
|
||||
}
|
||||
|
||||
- @Override
|
||||
+/* @Override
|
||||
public void c() {
|
||||
++this.e;
|
||||
if (this.m) {
|
||||
@@ -53,6 +53,31 @@ public class NavigationFlying extends NavigationAbstract {
|
||||
this.a.getControllerMove().a(vec3d.x, vec3d.y, vec3d.z, this.d);
|
||||
}
|
||||
}
|
||||
+ }*/
|
||||
+
|
||||
+ // This was copied from above partly with param
|
||||
+ @Override
|
||||
+ public void doTickAsync(PathEntity pathEntity) {
|
||||
+ if (shouldContinuePathfind(pathEntity))
|
||||
+ return;
|
||||
+
|
||||
+ Vec3D vec3d;
|
||||
+ if (this.a()) {
|
||||
+ this.applyPath(pathEntity);
|
||||
+ } else if (pathEntity != null && pathEntity.f() < pathEntity.e()) {
|
||||
+ vec3d = pathEntity.a(this.a, pathEntity.f());
|
||||
+ if (MathHelper.floor(this.a.locX()) == MathHelper.floor(vec3d.x) && MathHelper.floor(this.a.locY()) == MathHelper.floor(vec3d.y) && MathHelper.floor(this.a.locZ()) == MathHelper.floor(vec3d.z)) {
|
||||
+ pathEntity.c(pathEntity.f() + 1);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (shouldContinuePathfind(pathEntity))
|
||||
+ return;
|
||||
+ //PacketDebug.a(this.b, this.a, pathEntity, this.l);
|
||||
+ vec3d = pathEntity.a((Entity) this.a);
|
||||
+ BlockPosition blockposition = new BlockPosition(vec3d);
|
||||
+
|
||||
+ this.a.getControllerMove().a(vec3d.x, vec3d.y, vec3d.z, this.d);
|
||||
}
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/net/minecraft/server/Pathfinder.java b/src/main/java/net/minecraft/server/Pathfinder.java
|
||||
index 1c3a8043e735ec4605635efcfc5deb08a35ea1fd..bf2ac046eebd7f88fcb1d953f37952e791e6ea83 100644
|
||||
--- a/src/main/java/net/minecraft/server/Pathfinder.java
|
||||
+++ b/src/main/java/net/minecraft/server/Pathfinder.java
|
||||
@@ -26,7 +26,7 @@ public class Pathfinder {
|
||||
}
|
||||
|
||||
@Nullable
|
||||
- public PathEntity a(ChunkCache chunkcache, EntityInsentient entityinsentient, Set<BlockPosition> set, float f, int i, float f1) {
|
||||
+ public synchronized PathEntity a(ChunkCache chunkcache, EntityInsentient entityinsentient, Set<BlockPosition> set, float f, int i, float f1) { // Akarin - synchronized
|
||||
this.d.a();
|
||||
this.c.a(chunkcache, entityinsentient);
|
||||
PathPoint pathpoint = this.c.b();
|
||||
diff --git a/src/main/java/net/minecraft/server/PathfinderTurtle.java b/src/main/java/net/minecraft/server/PathfinderTurtle.java
|
||||
index cea160885783e8666b616375eac44ba6d1880e1f..9598563b4f97500fd3fba0165813d564d9c96c4f 100644
|
||||
--- a/src/main/java/net/minecraft/server/PathfinderTurtle.java
|
||||
+++ b/src/main/java/net/minecraft/server/PathfinderTurtle.java
|
||||
@@ -148,7 +148,7 @@ public class PathfinderTurtle extends PathfinderNormal {
|
||||
if (pathtype == PathType.OPEN) {
|
||||
AxisAlignedBB axisalignedbb = new AxisAlignedBB((double) i - d2 + 0.5D, (double) j + 0.001D, (double) k - d2 + 0.5D, (double) i + d2 + 0.5D, (double) ((float) j + this.b.getHeight()), (double) k + d2 + 0.5D);
|
||||
|
||||
- if (!this.b.world.getCubes(this.b, axisalignedbb)) {
|
||||
+ if (!this.a.getCubes(this.b, axisalignedbb)) { // Akarin - use chunk cache
|
||||
return null;
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PathfinderWater.java b/src/main/java/net/minecraft/server/PathfinderWater.java
|
||||
index fba6692a1e537b90e20aa448567c0ad6db653332..d576edc8c30288e98aeda8f1cb561b22c6b37536 100644
|
||||
--- a/src/main/java/net/minecraft/server/PathfinderWater.java
|
||||
+++ b/src/main/java/net/minecraft/server/PathfinderWater.java
|
||||
@@ -63,7 +63,7 @@ public class PathfinderWater extends PathfinderAbstract {
|
||||
@Override
|
||||
protected PathPoint a(int i, int j, int k) {
|
||||
PathPoint pathpoint = null;
|
||||
- PathType pathtype = this.a(this.b.world, i, j, k);
|
||||
+ PathType pathtype = this.a(this.a, i, j, k); // Akarin - use chunk cache
|
||||
float f = this.b.a(pathtype);
|
||||
|
||||
if (f >= 0.0F) {
|
@ -14,7 +14,7 @@ git config commit.gpgsign false
|
||||
cd $1/patches/$2
|
||||
for D in ${searchtxts[@]}; do
|
||||
echo "IMPORTANT:!!! $D"
|
||||
if [ true ]; then
|
||||
if [ -d $1/patches/$2/$dnoslashlower ]; then
|
||||
echo $D
|
||||
dnoslash=$D
|
||||
echo "DnoS: $dnoslash"
|
||||
|
@ -12,36 +12,38 @@ for D in */; do
|
||||
if [[ $dnoslash != "api" ]]; then
|
||||
echo "Found $dnoslash directory!"
|
||||
for file in ${searchtxts[@]}; do
|
||||
i=0
|
||||
rm -rf -f "$1/patches/$dnoslash/$file/"
|
||||
echo "Looking for $file file!"
|
||||
echo "$(cat $patchdir/$dnoslash/$file.txt)"
|
||||
IFS='&'
|
||||
read -ra ADDR <<< $(cat $patchdir/$dnoslash/$file.txt)
|
||||
for patch in ${ADDR[@]}; do
|
||||
echo "Found $patch in $file!"
|
||||
echo $1/$dnoslash/patches/$file
|
||||
for filename in $1/$dnoslash/patches/$file/*.patch; do
|
||||
filenamend="${filename##*/}"
|
||||
filenamens=${filenamend%/*}
|
||||
#filenameedited=${filenamens%.*} # retain the part before the period
|
||||
filenameedited=${filenamens::-6}
|
||||
#echo $filenameedited
|
||||
filenameedited=${filenameedited:5} # retain the part after the frist slash
|
||||
if [[ $filenameedited == $patch ]]; then
|
||||
echo "Found Matching file!"
|
||||
if [[ $i == 0 ]]; then
|
||||
echo "Making $file dir in $dnoslash patch dir"
|
||||
mkdir $1/patches/$dnoslash/$file
|
||||
if [ -f "$1/patches/$dnoslash/$file.txt" ]; then
|
||||
i=0
|
||||
rm -rf -f "$1/patches/$dnoslash/$file/"
|
||||
echo "Looking for $file file!"
|
||||
echo "$(cat $patchdir/$dnoslash/$file.txt)"
|
||||
IFS='&'
|
||||
read -ra ADDR <<< $(cat $patchdir/$dnoslash/$file.txt)
|
||||
for patch in ${ADDR[@]}; do
|
||||
echo "Found $patch in $file!"
|
||||
echo $1/$dnoslash/patches/$file
|
||||
for filename in $1/$dnoslash/patches/$file/*.patch; do
|
||||
filenamend="${filename##*/}"
|
||||
filenamens=${filenamend%/*}
|
||||
#filenameedited=${filenamens%.*} # retain the part before the period
|
||||
filenameedited=${filenamens::-6}
|
||||
#echo $filenameedited
|
||||
filenameedited=${filenameedited:5} # retain the part after the frist slash
|
||||
if [[ $filenameedited == $patch ]]; then
|
||||
echo "Found Matching file!"
|
||||
if [[ $i == 0 ]]; then
|
||||
echo "Making $file dir in $dnoslash patch dir"
|
||||
mkdir $1/patches/$dnoslash/$file
|
||||
fi
|
||||
((i=i+1))
|
||||
printf -v num "%04d" $i
|
||||
echo "Making ${num}-${patch}.patch file for Yatopia"
|
||||
cp $1/$dnoslash/patches/$file/$filenamens $1/patches/$dnoslash/$file/"${num}-${patch}.patch"
|
||||
fi
|
||||
((i=i+1))
|
||||
printf -v num "%04d" $i
|
||||
echo "Making ${num}-${patch}.patch file for Yatopia"
|
||||
cp $1/$dnoslash/patches/$file/$filenamens $1/patches/$dnoslash/$file/"${num}-${patch}.patch"
|
||||
fi
|
||||
done
|
||||
done
|
||||
done
|
||||
IFS=' '
|
||||
IFS=' '
|
||||
fi
|
||||
done
|
||||
$1/scripts/applyUpstream.sh $1 $dnoslash || exit 1
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user