More patch work
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
group=com.lokamc.slice
|
||||
version=1.21.3-R0.1-SNAPSHOT
|
||||
mcVersion=1.21.3
|
||||
paperRef=c2294d7067959d264eb8ad275557f194a3e2656f
|
||||
paperRef=da7138233f6392e791d790d1c3407414c855f9c2
|
||||
updatingMinecraft=false
|
||||
|
||||
org.gradle.caching=true
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Cryptite <cryptite@gmail.com>
|
||||
Date: Sat, 16 Nov 2024 09:34:15 -0600
|
||||
Subject: [PATCH] Add PlayerLoadStatsEvent
|
||||
Subject: [PATCH] Add PlayerLoadStatsEvent Fix patch
|
||||
|
||||
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/event/player/PlayerLoadStatsEvent.java b/src/main/java/com/destroystokyo/paper/event/player/PlayerLoadStatsEvent.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..8c74868a7445b478a80aff160a7a588a885aa889
|
||||
index 0000000000000000000000000000000000000000..13c627b73520d862f864834732f0cad35532298b
|
||||
--- /dev/null
|
||||
+++ b/src/main/java/com/destroystokyo/paper/event/player/PlayerLoadStatsEvent.java
|
||||
@@ -0,0 +1,53 @@
|
||||
@@ -0,0 +1,54 @@
|
||||
+package com.destroystokyo.paper.event.player;
|
||||
+
|
||||
+import com.google.gson.JsonObject;
|
||||
+import org.bukkit.Bukkit;
|
||||
+import org.bukkit.event.Event;
|
||||
+import org.bukkit.event.HandlerList;
|
||||
@@ -26,7 +27,7 @@ index 0000000000000000000000000000000000000000..8c74868a7445b478a80aff160a7a588a
|
||||
+public class PlayerLoadStatsEvent extends Event {
|
||||
+ private static final HandlerList handlers = new HandlerList();
|
||||
+ private final UUID playerId;
|
||||
+ private String json;
|
||||
+ private JsonObject json;
|
||||
+
|
||||
+ public PlayerLoadStatsEvent(@NotNull UUID playerId) {
|
||||
+ super(!Bukkit.isPrimaryThread());
|
||||
@@ -44,11 +45,11 @@ index 0000000000000000000000000000000000000000..8c74868a7445b478a80aff160a7a588a
|
||||
+ }
|
||||
+
|
||||
+ @Nullable
|
||||
+ public String getStatistics() {
|
||||
+ public JsonObject getStatistics() {
|
||||
+ return json;
|
||||
+ }
|
||||
+
|
||||
+ public void setStatistics(@NotNull String json) {
|
||||
+ public void setStatistics(@NotNull JsonObject json) {
|
||||
+ this.json = json;
|
||||
+ }
|
||||
+
|
||||
|
||||
@@ -17,10 +17,10 @@ index 585e2b43a0326f0b81597fa1234d3c67c76af550..e256e5ff5c167c6cff5b9e985cdc80d5
|
||||
public LevelChunk getChunkIfLoaded(int x, int z) {
|
||||
return this.chunkSource.getChunkAtIfLoadedImmediately(x, z); // Paper - Use getChunkIfLoadedImmediately
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
index 8f234b46c24a0ae08aa5f8190c5b27e1f62dfbab..149100c63bce390440f2d162cfd45ebf2ddc6976 100644
|
||||
index 57da11c0da7322e74810e7108e9c8000b0c36520..68e3dee346fe013f8e69900a0911583f851d2782 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||
@@ -1329,6 +1329,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
@@ -1330,6 +1330,18 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||
this.world.noSave = !value;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Cryptite <cryptite@gmail.com>
|
||||
Date: Sat, 16 Nov 2024 09:34:15 -0600
|
||||
Subject: [PATCH] Add PlayerLoadStatsEvent
|
||||
Subject: [PATCH] Add PlayerLoadStatsEvent Fix patch
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
index b775de1732238954e9bbbd072277254d2dc91b18..e590ce0e76985dd5c701ae933509221a2853266a 100644
|
||||
index 2c1781a45828ef8018e976a445984197f0df1445..46f060f33fcbc6a4568a7fcfba29e83a4d192578 100644
|
||||
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1414,7 +1414,7 @@ public abstract class PlayerList {
|
||||
@@ -18,7 +18,7 @@ index b775de1732238954e9bbbd072277254d2dc91b18..e590ce0e76985dd5c701ae933509221a
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/stats/ServerStatsCounter.java b/src/main/java/net/minecraft/stats/ServerStatsCounter.java
|
||||
index da7e1a69ecb4e6b3be2d8544ac406aa519bd196e..3bac27ffaea7fe873aa73605256f83837322fe0a 100644
|
||||
index da7e1a69ecb4e6b3be2d8544ac406aa519bd196e..6947650f299f99402a4a8d9c8384eb9f71a8e3a6 100644
|
||||
--- a/src/main/java/net/minecraft/stats/ServerStatsCounter.java
|
||||
+++ b/src/main/java/net/minecraft/stats/ServerStatsCounter.java
|
||||
@@ -45,10 +45,16 @@ public class ServerStatsCounter extends StatsCounter {
|
||||
@@ -33,10 +33,130 @@ index da7e1a69ecb4e6b3be2d8544ac406aa519bd196e..3bac27ffaea7fe873aa73605256f8383
|
||||
+ // Slice start - If event supplies stats, use it. Otherwise just load from disk as usual
|
||||
+ com.destroystokyo.paper.event.player.PlayerLoadStatsEvent event = new com.destroystokyo.paper.event.player.PlayerLoadStatsEvent(uuid);
|
||||
+ org.bukkit.Bukkit.getPluginManager().callEvent(event);
|
||||
+ String providedJson = event.getStatistics();
|
||||
+ JsonObject providedJson = event.getStatistics();
|
||||
+ if (providedJson != null) {
|
||||
+ this.parseLocal(server.getFixerUpper(), providedJson);
|
||||
+ parseLocal(server.getFixerUpper(), providedJson);
|
||||
+ } else if (file.isFile()) { // Slice end
|
||||
try {
|
||||
this.parseLocal(server.getFixerUpper(), FileUtils.readFileToString(file));
|
||||
} catch (IOException ioexception) {
|
||||
@@ -101,77 +107,59 @@ public class ServerStatsCounter extends StatsCounter {
|
||||
try {
|
||||
JsonReader jsonreader = new JsonReader(new StringReader(json));
|
||||
|
||||
- label48:
|
||||
- {
|
||||
- try {
|
||||
- jsonreader.setLenient(false);
|
||||
- JsonElement jsonelement = Streams.parse(jsonreader);
|
||||
-
|
||||
- if (!jsonelement.isJsonNull()) {
|
||||
- CompoundTag nbttagcompound = ServerStatsCounter.fromJson(jsonelement.getAsJsonObject());
|
||||
-
|
||||
- nbttagcompound = DataFixTypes.STATS.updateToCurrentVersion(dataFixer, nbttagcompound, NbtUtils.getDataVersion(nbttagcompound, 1343));
|
||||
- if (!nbttagcompound.contains("stats", 10)) {
|
||||
- break label48;
|
||||
- }
|
||||
-
|
||||
- CompoundTag nbttagcompound1 = nbttagcompound.getCompound("stats");
|
||||
- Iterator iterator = nbttagcompound1.getAllKeys().iterator();
|
||||
-
|
||||
- while (true) {
|
||||
- if (!iterator.hasNext()) {
|
||||
- break label48;
|
||||
- }
|
||||
-
|
||||
- String s1 = (String) iterator.next();
|
||||
-
|
||||
- if (nbttagcompound1.contains(s1, 10)) {
|
||||
- Util.ifElse(BuiltInRegistries.STAT_TYPE.getOptional(ResourceLocation.parse(s1)), (statisticwrapper) -> {
|
||||
- CompoundTag nbttagcompound2 = nbttagcompound1.getCompound(s1);
|
||||
- Iterator iterator1 = nbttagcompound2.getAllKeys().iterator();
|
||||
-
|
||||
- while (iterator1.hasNext()) {
|
||||
- String s2 = (String) iterator1.next();
|
||||
-
|
||||
- if (nbttagcompound2.contains(s2, 99)) {
|
||||
- Util.ifElse(this.getStat(statisticwrapper, s2), (statistic) -> {
|
||||
- this.stats.put(statistic, nbttagcompound2.getInt(s2));
|
||||
- }, () -> {
|
||||
- ServerStatsCounter.LOGGER.warn("Invalid statistic in {}: Don't know what {} is", this.file, s2);
|
||||
- });
|
||||
- } else {
|
||||
- ServerStatsCounter.LOGGER.warn("Invalid statistic value in {}: Don't know what {} is for key {}", new Object[]{this.file, nbttagcompound2.get(s2), s2});
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- }, () -> {
|
||||
- ServerStatsCounter.LOGGER.warn("Invalid statistic type in {}: Don't know what {} is", this.file, s1);
|
||||
- });
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- ServerStatsCounter.LOGGER.error("Unable to parse Stat data from {}", this.file);
|
||||
- } catch (Throwable throwable) {
|
||||
- try {
|
||||
- jsonreader.close();
|
||||
- } catch (Throwable throwable1) {
|
||||
- throwable.addSuppressed(throwable1);
|
||||
- }
|
||||
+ // Slice start
|
||||
+ try {
|
||||
+ jsonreader.setLenient(false);
|
||||
+ JsonElement jsonelement = Streams.parse(jsonreader);
|
||||
|
||||
- throw throwable;
|
||||
+ if (!jsonelement.isJsonNull()) {
|
||||
+ parseLocal(dataFixer, jsonelement.getAsJsonObject()); // Slice
|
||||
+ }
|
||||
+ } catch (Throwable throwable) {
|
||||
+ try {
|
||||
+ jsonreader.close();
|
||||
+ } catch (Throwable throwable1) {
|
||||
+ throwable.addSuppressed(throwable1);
|
||||
}
|
||||
|
||||
- jsonreader.close();
|
||||
- return;
|
||||
+ throw throwable;
|
||||
}
|
||||
|
||||
jsonreader.close();
|
||||
} catch (IOException | JsonParseException jsonparseexception) {
|
||||
ServerStatsCounter.LOGGER.error("Unable to parse Stat data from {}", this.file, jsonparseexception);
|
||||
}
|
||||
+ }
|
||||
+
|
||||
+ public void parseLocal(DataFixer dataFixer, JsonObject jsonObject) {
|
||||
+ CompoundTag nbttagcompound = ServerStatsCounter.fromJson(jsonObject);
|
||||
+ nbttagcompound = DataFixTypes.STATS.updateToCurrentVersion(dataFixer, nbttagcompound, NbtUtils.getDataVersion(nbttagcompound, 1343));
|
||||
+ if (!nbttagcompound.contains("stats", 10)) {
|
||||
+ ServerStatsCounter.LOGGER.error("Unable to parse Stat data from {}", jsonObject);
|
||||
+ return;
|
||||
+ }
|
||||
|
||||
+ CompoundTag nbttagcompound1 = nbttagcompound.getCompound("stats");
|
||||
+
|
||||
+ for (String s1 : nbttagcompound1.getAllKeys()) {
|
||||
+ if (nbttagcompound1.contains(s1, 10)) {
|
||||
+ Util.ifElse(BuiltInRegistries.STAT_TYPE.getOptional(ResourceLocation.parse(s1)), (statisticwrapper) -> {
|
||||
+ CompoundTag nbttagcompound2 = nbttagcompound1.getCompound(s1);
|
||||
+ for (String s2 : nbttagcompound2.getAllKeys()) {
|
||||
+ if (nbttagcompound2.contains(s2, 99)) {
|
||||
+ Util.ifElse(this.getStat(statisticwrapper, s2),
|
||||
+ (statistic) -> this.stats.put(statistic, nbttagcompound2.getInt(s2)),
|
||||
+ () -> ServerStatsCounter.LOGGER.warn("Invalid statistic in {}: Don't know what {} is", this.file, s2));
|
||||
+ } else {
|
||||
+ ServerStatsCounter.LOGGER.warn("Invalid statistic value in {}: Don't know what {} is for key {}", new Object[]{this.file, nbttagcompound2.get(s2), s2});
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ }, () -> ServerStatsCounter.LOGGER.warn("Invalid statistic type in {}: Don't know what {} is", this.file, s1));
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
+ // Slice end
|
||||
|
||||
private <T> Optional<Stat<T>> getStat(StatType<T> type, String id) {
|
||||
// CraftBukkit - decompile error start
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add PlayerData Events
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/stats/ServerStatsCounter.java b/src/main/java/net/minecraft/stats/ServerStatsCounter.java
|
||||
index 3bac27ffaea7fe873aa73605256f83837322fe0a..ba8416b010ca17cc5a4640dab2f9f5420227f3ca 100644
|
||||
index 6947650f299f99402a4a8d9c8384eb9f71a8e3a6..299fcc2ecb17f8d42ff3480ec9868127faa9b0fc 100644
|
||||
--- a/src/main/java/net/minecraft/stats/ServerStatsCounter.java
|
||||
+++ b/src/main/java/net/minecraft/stats/ServerStatsCounter.java
|
||||
@@ -210,7 +210,12 @@ public class ServerStatsCounter extends StatsCounter {
|
||||
@@ -192,7 +192,12 @@ public class ServerStatsCounter extends StatsCounter {
|
||||
return nbttagcompound;
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@ index 3bac27ffaea7fe873aa73605256f83837322fe0a..ba8416b010ca17cc5a4640dab2f9f542
|
||||
Map<StatType<?>, JsonObject> map = Maps.newHashMap();
|
||||
ObjectIterator objectiterator = this.stats.object2IntEntrySet().iterator();
|
||||
|
||||
@@ -236,7 +241,7 @@ public class ServerStatsCounter extends StatsCounter {
|
||||
@@ -218,7 +223,7 @@ public class ServerStatsCounter extends StatsCounter {
|
||||
|
||||
jsonobject1.add("stats", jsonobject);
|
||||
jsonobject1.addProperty("DataVersion", SharedConstants.getCurrentVersion().getDataVersion().getVersion());
|
||||
|
||||
Reference in New Issue
Block a user