mirror of
https://github.com/Samsuik/Sakura.git
synced 2025-12-23 00:39:20 +00:00
Updated Upstream (Paper 1.20.6)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@abc49bf Begin update to 1.20.5 PaperMC/Paper@f2c45ed do some work PaperMC/Paper@00c14f2 Move logging patches after adventure PaperMC/Paper@ef057bb work on Adventure patch PaperMC/Paper@380c4d2 Add plugin remapping patches PaperMC/Paper@7cdf804 Work PaperMC/Paper@dd6ce09 Fix reflection diff and order wrt commodore diff PaperMC/Paper@598a1cb Apply shadow removal patch PaperMC/Paper@ffccfd5 Apply timings PaperMC/Paper@eb41348 33 PaperMC/Paper@9cac5b6 Fix continueServerUpdate with 2-line subjects PaperMC/Paper@2eeed9e 41 PaperMC/Paper@d07c487 Don't use defaultToolchain method for run tasks PaperMC/Paper@f2350fe Set mercury sourceCompat PaperMC/Paper@5cfd92b Fix api compile PaperMC/Paper@862d004 work on some API stuff PaperMC/Paper@d6a3c0c fix 2 of our javadoc errors PaperMC/Paper@487555b update PaperMC/Paper@0225537 Update upstream PaperMC/Paper@906f906 Patches! PaperMC/Paper@8244815 221 PaperMC/Paper@309ebc1 253 PaperMC/Paper@1d7d7e9 301 PaperMC/Paper@9079c90 354 PaperMC/Paper@cc46148 405 PaperMC/Paper@5be858e Patches! PaperMC/Paper@2d9d0d8 Patches! PaperMC/Paper@a403a8d Patches!!!!!!! PaperMC/Paper@21afc0a Patches!!!!!!! PaperMC/Paper@1de0dc8 666 plus 1 PaperMC/Paper@4e654f2 More patch work PaperMC/Paper@e832328 Check for existing am session before running continueServerUpdate PaperMC/Paper@fc5c0da 683 PaperMC/Paper@90095cd 694 PaperMC/Paper@71ae391 more work (721) PaperMC/Paper@22227cc more more work (757) PaperMC/Paper@4d9e824 more more work (806) PaperMC/Paper@9617829 Restore original formatting for MC-252817 patch PaperMC/Paper@0518559 Update reflection rewriter to 0.0.1 release PaperMC/Paper@e0a245d Patches!!!!!!! PaperMC/Paper@1104431 955 PaperMC/Paper@1df7e21 Apply more API-implementing patches PaperMC/Paper@b733809 Drop conduit api patch (upstream implemented same api with same method signatures) PaperMC/Paper@c95db4f adventure 4.17.0-SNAPSHOT PaperMC/Paper@bb1351c some work on adventure PaperMC/Paper@1444b36 work on adventure PaperMC/Paper@ce0e78c compile fixes PaperMC/Paper@25f7c68 compile fixes PaperMC/Paper@690b1cd compile fixes PaperMC/Paper@b673721 compile fixes PaperMC/Paper@6a87d14 dataconverter PaperMC/Paper@ec9f7e3 starlight PaperMC/Paper@e9eec78 chunk system PaperMC/Paper@f6ea373 Patches PaperMC/Paper@ec4ada8 Apply and move up non-optimization patches PaperMC/Paper@c9907c6 More patches PaperMC/Paper@2debcaf More more patches, including hopper optimization patch PaperMC/Paper@6da0d8c (Almost) all patches applied PaperMC/Paper@345b5c1 Patches!!!!!!! (we are done) PaperMC/Paper@4590038 Fix properly resend patches PaperMC/Paper@457e2c8 pass more stuff PaperMC/Paper@b8da9ac item meta patch work PaperMC/Paper@ccf158a update smithing recipe copy data components API PaperMC/Paper@653f043 readd fix bee aging patch PaperMC/Paper@bab31b6 Update Enchantment damage increase API PaperMC/Paper@f4c7639 Un-jankify root user detection PaperMC/Paper@9c58056 Some more compilation fixes PaperMC/Paper@b984f66 Missing FQN in CraftPotionBrewer getter PaperMC/Paper@768befe Remove patch renaming scripts PaperMC/Paper@04a25c2 Fix WorldCreator#keepSpawnLoaded PaperMC/Paper@820f999 Fixes for cb pkg ver PaperMC/Paper@ca9001a compile fixes PaperMC/Paper@d01f6b2 Fix more compile issues PaperMC/Paper@8d3759d More more compile fixes PaperMC/Paper@ed79038 More compile fixes PaperMC/Paper@2641c02 Updated Upstream (Bukkit/CraftBukkit) PaperMC/Paper@68aea43 Fixup damage source change PaperMC/Paper@3062eb2 address my own comments PaperMC/Paper@e85e1ec fixup sus effect entry patches PaperMC/Paper@10e6143 fixup adventure's book meta handling PaperMC/Paper@a244281 Replace VanillaGradle use and update generated API PaperMC/Paper@31ad90b some more compile fixes PaperMC/Paper@d2ef062 generator fix PaperMC/Paper@7c6411b compile fixes PaperMC/Paper@867eb90 compile fixes PaperMC/Paper@62b96c5 compile fixes PaperMC/Paper@c5c2a5f hunk system fixes PaperMC/Paper@bcdf1f9 fixup loom pattern select event patch PaperMC/Paper@43d110e fix issue with item default attribute API PaperMC/Paper@2997fd6 plugin manager updates PaperMC/Paper@7e9da43 support patch versions in api-version PaperMC/Paper@813cfbf Fix compile issues PaperMC/Paper@478a971 Fix light setting in protochunk PaperMC/Paper@8b28f9f Fix accumulated total ticking chunks not being updated PaperMC/Paper@00dac83 Drop old decompile fix PaperMC/Paper@f6fae41 fix chat_type issue PaperMC/Paper@cc81668 fix some issues on the todo list PaperMC/Paper@44e68c3 fix some more issues PaperMC/Paper@1bc278b Update patched spigot decompiler to fix inconsistency based on processing order PaperMC/Paper@19ac9d4 remove no longer needed patches and fix tests PaperMC/Paper@e856d17 Update paper plugin check in PluginRemapper PaperMC/Paper@882ea0a fix adventure translations PaperMC/Paper@4c53ace fix exact choice recipes PaperMC/Paper@464cc81 fix custom potion mixes PaperMC/Paper@ff77f82 paperweight 1.6.0 PaperMC/Paper@6a4974b Remove shadow from build classpath PaperMC/Paper@c38f96b deprecate our ItemRarity API PaperMC/Paper@ba8512a fix javadocs for SpawnerEntry$Equipment API PaperMC/Paper@f1fc1b3 readd old UUID format patch PaperMC/Paper@5485043 Don't tell people to build the reobf jar PaperMC/Paper@2f19f0f fix enchantment order issue PaperMC/Paper@80bd015 fix adventure converters not using RegistryOps PaperMC/Paper@68e23db add back missing call to profile fill events PaperMC/Paper@9bac389 more fixes PaperMC/Paper@81f4405 add back hunk to async SavedData IO PaperMC/Paper@91b5de6 bunch of fixes and improvements PaperMC/Paper@f85d423 improve dumpitem and pgive commands PaperMC/Paper@5731f34 Restore Handle Large Packets Disconnecting Client Patch PaperMC/Paper@f037f08 Unify plugin remapping debug flags PaperMC/Paper@c82766d fix item flags PaperMC/Paper@f933c35 Update DataConverter to 1.20.6-rc1 PaperMC/Paper@55b1a87 fix PotionEffectType#getEffectAttributes PaperMC/Paper@0b1b1fe fix helmet damage reduction inconsistencies PaperMC/Paper@e2552ee Start cleaning up plugin remapping patches PaperMC/Paper@711dbd7 Bump adventure ansi serializer PaperMC/Paper@af97400 update generator PaperMC/Paper@b7e148a Move obfhelper/stack deobf diff into original patch PaperMC/Paper@a390119 Move cb version definition to gradle patch PaperMC/Paper@20af7a7 remove funny diff PaperMC/Paper@b3ea907 more ItemFlag fixes PaperMC/Paper@53d8edd properly check for experimental stuff in generator PaperMC/Paper@a771940 Revert to vanilla handling of LivingEntity#actuallyHurt (#10463) PaperMC/Paper@06cae13 Update jdk version and distribution in actions PaperMC/Paper@dd571d8 Fix bad diff in build gradle file PaperMC/Paper@d02bb81 proper migration to gamerules for keep spawn loaded distance PaperMC/Paper@aeb3f37 update paperweight to 1.6.1 PaperMC/Paper@75c22d5 Bump tiny-remapper PaperMC/Paper@8454786 Bump tiny-remapper (real) PaperMC/Paper@d99d84a Temporarily comment out adventure jd links PaperMC/Paper@83767f9 Use JetBrains runtime for run tasks PaperMC/Paper@4ad6022 improve checking handled tags in itemmeta (#9470) PaperMC/Paper@8ce62b3 Fix issue with hopppers PaperMC/Paper@7e3d5b5 bump paperweight to 1.6.2 to fix spurious build failure from scanJar OOM PaperMC/Paper@d964c15 fix last test issue PaperMC/Paper@3e90a19 Updated Upstream (Bukkit/CraftBukkit) PaperMC/Paper@d93c6f9 remove calls to DoNotUse methods PaperMC/Paper@f187fd6 Only scan `org.bukkit.craftbukkit.inventory` in `MetaHandledTagsTest` PaperMC/Paper@a3c4dc9 Fix the incorrect codec usage in the Style convert (#10465) PaperMC/Paper@e16263c Fix firework meta NPE PaperMC/Paper@306b203 more fixes for ItemMeta relating to components PaperMC/Paper@1a03cc9 Fix test compilation PaperMC/Paper@6e31f38 Fix book meta lacking resolved tag from older versions (Fixes #10470) PaperMC/Paper@37b3891 Fix another missing book meta tag PaperMC/Paper@c4a1cd1 Fix issue with empty lists in adventure predicates PaperMC/Paper@9d6e7e3 Don't hard fail on plugin remap error PaperMC/Paper@4491ac0 respect hard list size limits in ItemMeta PaperMC/Paper@aed7dca Fix overly strong name validation in player heads PaperMC/Paper@0f4d328 final missing validation for data components PaperMC/Paper@52ff3b7 Add itemName components (Resolves #10467) (#10471) PaperMC/Paper@ba673a3 [ci skip] Feature requests are now in GitHub Discussions (#10606) PaperMC/Paper@0f3e324 [ci skip] Fix discussion template file name (#10607) PaperMC/Paper@82a8012 [ci skip] adjust projects workflow for label changes PaperMC/Paper@61c9c07 Fix CraftMetaBlockState adding extra tags PaperMC/Paper@7f2d531 Rewrite reflection in library loader jars (#10608) PaperMC/Paper@05308fc Remap plugin libraries with namespace set to spigot (#10610) PaperMC/Paper@69a971a Reset component prototype on itemtype change PaperMC/Paper@f9397e1 Fix incorrect Commodore mapping of sweeping enchant PaperMC/Paper@8f7ac62 Validate manifest provided mapping namespace (#10612) PaperMC/Paper@fbe3c00 [ci skip] update projects workflow configuration PaperMC/Paper@44ee092 1.20.6 (#10623) PaperMC/Paper@812ccb9 fix spawnChunkRadius gamerule resetting PaperMC/Paper@25e44bc fix dumpitem command nbt format PaperMC/Paper@3fdd094 Fix sealed package check in BytecodeModifyingURLClassLoader (#10627) PaperMC/Paper@937a67a Add initial size cap to component map PaperMC/Paper@4ea67ab [ci skip] Remove trailing comma in projects action PaperMC/Paper@8c058f8 Update paperweight to 1.6.3 (#10626) PaperMC/Paper@fa6013d Fixes beds not exploding in the nether PaperMC/Paper@3e0eb4a Updated Upstream (CraftBukkit) (#10624) PaperMC/Paper@4cfd9e2 Expose canReach to mob pathfinding API (#10636) PaperMC/Paper@b8c454c Add damage check for mending (#10631) PaperMC/Paper@310b47b Update Java version references, add note on var usages PaperMC/Paper@faa7aa2 Add GameMode#isInvulnerable (#10633) PaperMC/Paper@18c201b Add EquipmentSlot#getOppositeHand (#10632) PaperMC/Paper@544ce20 Expose #hasColor to leather armor (#10638) PaperMC/Paper@59fe7cc default save-empty-scoreboard-teams to vanilla PaperMC/Paper@0db72ac Fix can_place_on conversion and size check for item containers PaperMC/Paper@156675c Fix lodestone compass target conversion PaperMC/Paper@5632210 add RegistryAccess for managing registries (#10154) PaperMC/Paper@6fcca46 Add missing step in V3818 PaperMC/Paper@7401313 fix shear drops for wolf and bogged PaperMC/Paper@7ae2c67 Keep components using single items in creative (#10664) PaperMC/Paper@b13c7db Add missing experimental field and annotations (#10653) PaperMC/Paper@9d8d38d Updated Upstream (CraftBukkit) (#10646) PaperMC/Paper@0e43d3c Added API to get player's proxy address (#10400) PaperMC/Paper@54c5ecb Add missing SpigotConfig logCommands check (#10659) PaperMC/Paper@816ea9e [ci skip] Update old particle reference in javadoc (#10652) PaperMC/Paper@716dfd8 Fix EntityLoadCrossbowEvent (#10645) PaperMC/Paper@21d91ce Prevent profile lookups when unnecessary (#10651) PaperMC/Paper@2a6a5fe Add a way to check whether the chest is blocked (#10635) PaperMC/Paper@ac3a547 Fix BlockStateMeta (#10647)
This commit is contained in:
@@ -238,10 +238,10 @@ index 0000000000000000000000000000000000000000..115addbbed36b9c10c123450a0f6400c
|
||||
+
|
||||
+}
|
||||
diff --git a/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java b/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java
|
||||
index ccdc2345465313991f065e1176b58fb7d5e8722f..ab8bb26bceb2ec6f541aab348d420b9390c8c47a 100644
|
||||
index 1a37654aff9a9c86c9f7af10a1cf721371f0c5ec..82644b34a77dc5e5af38260b7b07b3ec9aceae33 100644
|
||||
--- a/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java
|
||||
+++ b/src/main/java/net/minecraft/network/protocol/game/ClientboundSectionBlocksUpdatePacket.java
|
||||
@@ -16,7 +16,7 @@ public class ClientboundSectionBlocksUpdatePacket implements Packet<ClientGamePa
|
||||
@@ -19,7 +19,7 @@ public class ClientboundSectionBlocksUpdatePacket implements Packet<ClientGamePa
|
||||
private static final int POS_IN_SECTION_BITS = 12;
|
||||
private final SectionPos sectionPos;
|
||||
private final short[] positions;
|
||||
@@ -251,10 +251,10 @@ index ccdc2345465313991f065e1176b58fb7d5e8722f..ab8bb26bceb2ec6f541aab348d420b93
|
||||
public ClientboundSectionBlocksUpdatePacket(SectionPos sectionPos, ShortSet positions, LevelChunkSection section) {
|
||||
this.sectionPos = sectionPos;
|
||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
index 1f169b9bc09052137187654a7331033779694ad4..8e2ee508d2290ace16714ed9927983f29a230304 100644
|
||||
index 6aacf5ff736bcbbb8582b6ae11e7dfc6ff265c08..6e6ca00b20072e65370a47d38dded747fc0eb7c9 100644
|
||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1744,6 +1744,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1803,6 +1803,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.profiler.pop();
|
||||
worldserver.explosionDensityCache.clear(); // Paper - Optimize explosions
|
||||
worldserver.localConfig().expire(currentTickLong); // Sakura
|
||||
@@ -263,10 +263,10 @@ index 1f169b9bc09052137187654a7331033779694ad4..8e2ee508d2290ace16714ed9927983f2
|
||||
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
index 12109446fc76a39faee6cda042ca48b3fd3809f4..bb6a2be67394b9a6904d759b7564008dd1c282b3 100644
|
||||
index dbe9df1e1973db133f7c8516256697ef7c968137..0bfd2005dc82b0262badfe6867835e80a6e6a1dc 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||
@@ -1424,6 +1424,22 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
@@ -1438,6 +1438,22 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||
}
|
||||
// Paper end - Configurable entity tracking range by Y
|
||||
|
||||
@@ -290,10 +290,10 @@ index 12109446fc76a39faee6cda042ca48b3fd3809f4..bb6a2be67394b9a6904d759b7564008d
|
||||
if (flag && !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Paper - only consider hits
|
||||
flag = false;
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
index 529ab44baaf573b97cf7e89560c548642733188f..cce8f45c15b9a9acfbf9b769f7670cfd0969d62f 100644
|
||||
index 4f103f731623a8570238a6867fda1c5f83fca4e4..2835f102559edcd6e7891a83125d84f5553565da 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -47,6 +47,13 @@ import net.minecraft.util.Mth;
|
||||
@@ -51,6 +51,13 @@ import net.minecraft.util.Mth;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerVelocityEvent;
|
||||
// CraftBukkit end
|
||||
@@ -307,7 +307,7 @@ index 529ab44baaf573b97cf7e89560c548642733188f..cce8f45c15b9a9acfbf9b769f7670cfd
|
||||
|
||||
public class ServerEntity {
|
||||
|
||||
@@ -290,6 +297,18 @@ public class ServerEntity {
|
||||
@@ -297,6 +304,18 @@ public class ServerEntity {
|
||||
this.entity.startSeenByPlayer(player);
|
||||
}
|
||||
|
||||
@@ -326,7 +326,7 @@ index 529ab44baaf573b97cf7e89560c548642733188f..cce8f45c15b9a9acfbf9b769f7670cfd
|
||||
public void sendPairingData(ServerPlayer player, Consumer<Packet<ClientGamePacketListener>> sender) {
|
||||
if (this.entity.isRemoved()) {
|
||||
// CraftBukkit start - Remove useless error spam, just return
|
||||
@@ -298,12 +317,19 @@ public class ServerEntity {
|
||||
@@ -305,12 +324,19 @@ public class ServerEntity {
|
||||
// CraftBukkit end
|
||||
}
|
||||
|
||||
@@ -348,7 +348,7 @@ index 529ab44baaf573b97cf7e89560c548642733188f..cce8f45c15b9a9acfbf9b769f7670cfd
|
||||
}
|
||||
|
||||
boolean flag = this.trackDelta;
|
||||
@@ -373,6 +399,32 @@ public class ServerEntity {
|
||||
@@ -375,6 +401,32 @@ public class ServerEntity {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -381,7 +381,7 @@ index 529ab44baaf573b97cf7e89560c548642733188f..cce8f45c15b9a9acfbf9b769f7670cfd
|
||||
|
||||
private void sendDirtyEntityData() {
|
||||
SynchedEntityData datawatcher = this.entity.getEntityData();
|
||||
@@ -380,7 +432,7 @@ public class ServerEntity {
|
||||
@@ -382,7 +434,7 @@ public class ServerEntity {
|
||||
|
||||
if (list != null) {
|
||||
this.trackedDataValues = datawatcher.getNonDefaultValues();
|
||||
@@ -391,10 +391,10 @@ index 529ab44baaf573b97cf7e89560c548642733188f..cce8f45c15b9a9acfbf9b769f7670cfd
|
||||
|
||||
if (this.entity instanceof LivingEntity) {
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index ed7b9d9a3856cf36b64e629a86c2e9bdac381eb3..5df1d01c52b527ff74778d8e4aa27b3b0b1e7a4b 100644
|
||||
index cffdb530be035d177ccfd13a9e560c544f3acaac..bb1b891d917ed41ce5da6c2c9f470c5f49eff34a 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -1952,7 +1952,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -1959,7 +1959,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
while (iterator.hasNext()) {
|
||||
ServerPlayer entityplayer = (ServerPlayer) iterator.next();
|
||||
|
||||
@@ -404,18 +404,18 @@ index ed7b9d9a3856cf36b64e629a86c2e9bdac381eb3..5df1d01c52b527ff74778d8e4aa27b3b
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
index b3781efbd3edcf102fe1bda5d6149915dc1127c6..68ea7cd8148ff4a80da761cf38e73bfa15f93b97 100644
|
||||
index 8437316888c6056060a2780652147590b6fe7443..826fca7c9e1b49b8fbedbc4d99d55b85b4faa807 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -261,6 +261,7 @@ public class ServerPlayer extends Player {
|
||||
@@ -277,6 +277,7 @@ public class ServerPlayer extends Player {
|
||||
public final int[] mobCounts = new int[MOBCATEGORY_TOTAL_ENUMS]; // Paper
|
||||
// Paper end - Optional per player mob spawns
|
||||
public final int[] mobBackoffCounts = new int[MOBCATEGORY_TOTAL_ENUMS]; // Paper - per player mob count backoff
|
||||
+ public final me.samsuik.sakura.player.visibility.Visibility visibility = new me.samsuik.sakura.player.visibility.Visibility(); // Sakura - visiblity api
|
||||
|
||||
// CraftBukkit start
|
||||
public String displayName;
|
||||
@@ -567,6 +568,15 @@ public class ServerPlayer extends Player {
|
||||
public CraftPlayer.TransferCookieConnection transferCookieConnection;
|
||||
@@ -595,6 +596,15 @@ public class ServerPlayer extends Player {
|
||||
this.respawnDimension = (ResourceKey) dataresult1.resultOrPartial(logger1::error).orElse(Level.OVERWORLD);
|
||||
}
|
||||
}
|
||||
@@ -427,11 +427,11 @@ index b3781efbd3edcf102fe1bda5d6149915dc1127c6..68ea7cd8148ff4a80da761cf38e73bfa
|
||||
+ visibility.toggle(setting);
|
||||
+ }
|
||||
+ }
|
||||
+ // Sakura end
|
||||
+ // Sakura end - visibility api
|
||||
|
||||
}
|
||||
|
||||
@@ -633,6 +643,13 @@ public class ServerPlayer extends Player {
|
||||
this.spawnExtraParticlesOnFall = nbt.getBoolean("spawn_extra_particles_on_fall");
|
||||
Tag nbtbase = nbt.get("raid_omen_position");
|
||||
@@ -673,6 +683,13 @@ public class ServerPlayer extends Player {
|
||||
});
|
||||
}
|
||||
this.getBukkitEntity().setExtraData(nbt); // CraftBukkit
|
||||
@@ -441,56 +441,55 @@ index b3781efbd3edcf102fe1bda5d6149915dc1127c6..68ea7cd8148ff4a80da761cf38e73bfa
|
||||
+ tag.putBoolean(setting.name(), visibility.isToggled(setting));
|
||||
+ }
|
||||
+ nbt.put("Sakura.Visuals", tag);
|
||||
+ // Sakura end
|
||||
|
||||
}
|
||||
+ // Sakura end - visibility api
|
||||
|
||||
nbt.putBoolean("spawn_extra_particles_on_fall", this.spawnExtraParticlesOnFall);
|
||||
if (this.raidOmenPosition != null) {
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
index 0306771b8f90dcdd77f151c19c6c2d75c41f8feb..7451f65cef49248793815965bda4bcbe257b722e 100644
|
||||
index 8ac5d8ccf731100a1be690cb2ed1be82cadba8ed..9a5e0e244068d9ef424bcf2c466a2bf21f1fcaf8 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
|
||||
@@ -40,6 +40,23 @@ import org.bukkit.craftbukkit.util.Waitable;
|
||||
@@ -42,6 +42,23 @@ import org.bukkit.craftbukkit.util.CraftLocation;
|
||||
import org.bukkit.craftbukkit.util.Waitable;
|
||||
import org.bukkit.event.player.PlayerKickEvent;
|
||||
import org.bukkit.event.player.PlayerResourcePackStatusEvent;
|
||||
// CraftBukkit end
|
||||
+// Sakura start
|
||||
+import com.mojang.datafixers.util.Pair;
|
||||
+import me.samsuik.sakura.player.visibility.Visibility.Setting;
|
||||
+import net.minecraft.world.level.block.Blocks;
|
||||
+import net.minecraft.core.component.DataComponents;
|
||||
+import net.minecraft.network.protocol.game.ClientboundBlockEntityDataPacket;
|
||||
+import net.minecraft.network.protocol.game.ClientboundBlockEventPacket;
|
||||
+import net.minecraft.network.protocol.game.ClientboundBlockUpdatePacket;
|
||||
+import net.minecraft.network.protocol.game.ClientboundLevelChunkPacketData;
|
||||
+import net.minecraft.network.protocol.game.ClientboundLevelChunkPacketData.BlockEntityTagOutput;
|
||||
+import net.minecraft.network.protocol.game.ClientboundSectionBlocksUpdatePacket;
|
||||
+import net.minecraft.network.protocol.game.ClientboundSetEquipmentPacket;
|
||||
+import net.minecraft.world.entity.EquipmentSlot;
|
||||
+import net.minecraft.world.item.ItemStack;
|
||||
+import net.minecraft.world.level.block.Blocks;
|
||||
+import net.minecraft.world.level.block.DiodeBlock;
|
||||
+import net.minecraft.world.level.block.entity.BlockEntityType;
|
||||
+import net.minecraft.world.level.block.RedStoneWireBlock;
|
||||
+import net.minecraft.world.level.block.piston.PistonBaseBlock;
|
||||
+import net.minecraft.world.level.block.piston.PistonHeadBlock;
|
||||
+// Sakura end
|
||||
|
||||
public abstract class ServerCommonPacketListenerImpl implements ServerCommonPacketListener {
|
||||
public abstract class ServerCommonPacketListenerImpl implements ServerCommonPacketListener, CraftPlayer.TransferCookieConnection {
|
||||
|
||||
@@ -247,6 +264,61 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
} else if (packet instanceof ClientboundSetDefaultSpawnPositionPacket) {
|
||||
ClientboundSetDefaultSpawnPositionPacket packet6 = (ClientboundSetDefaultSpawnPositionPacket) packet;
|
||||
this.player.compassTarget = CraftLocation.toBukkit(packet6.pos, this.getCraftPlayer().getWorld());
|
||||
+ // Sakura start - visibility api
|
||||
+ } else if (!player.visibility.isModified()) {
|
||||
+ // Skip players that haven't modified their settings
|
||||
+ } else if (packet instanceof ClientboundSetEquipmentPacket equipment
|
||||
+ && player.visibility.isToggled(Setting.ENCHANTMENT_GLINT)) {
|
||||
+ var slots = new java.util.ArrayList<Pair<net.minecraft.world.entity.EquipmentSlot, net.minecraft.world.item.ItemStack>>();
|
||||
@@ -94,6 +111,65 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
protected final org.bukkit.craftbukkit.CraftServer cserver;
|
||||
public boolean processedDisconnect;
|
||||
|
||||
+ // Sakura start - visibility api
|
||||
+ private @Nullable Packet<?> recreatePacket(Packet<?> packet) {
|
||||
+ me.samsuik.sakura.player.visibility.Visibility visibility = this.player.visibility;
|
||||
+ if (packet instanceof ClientboundSetEquipmentPacket equipment && visibility.isToggled(Setting.ENCHANTMENT_GLINT)) {
|
||||
+ java.util.List<Pair<EquipmentSlot, ItemStack>> slots = new java.util.ArrayList<>();
|
||||
+
|
||||
+ for (int i = 0; i < equipment.getSlots().size(); i++) {
|
||||
+ var pair = equipment.getSlots().get(i);
|
||||
+ var itemstack = pair.getSecond();
|
||||
+ Pair<EquipmentSlot, ItemStack> pair = equipment.getSlots().get(i);
|
||||
+ ItemStack itemstack = pair.getSecond();
|
||||
+
|
||||
+ if (itemstack.isEnchanted()) {
|
||||
+ var copy = itemstack.copy();
|
||||
+ copy.getTag().remove("ench");
|
||||
+ ItemStack copy = itemstack.copy();
|
||||
+ copy.remove(DataComponents.ENCHANTMENTS);
|
||||
+ itemstack = copy;
|
||||
+ }
|
||||
+
|
||||
@@ -499,43 +498,61 @@ index 0306771b8f90dcdd77f151c19c6c2d75c41f8feb..7451f65cef49248793815965bda4bcbe
|
||||
+
|
||||
+ packet = new ClientboundSetEquipmentPacket(equipment.getEntity(), slots);
|
||||
+ } else if (packet instanceof ClientboundBlockEntityDataPacket blockdata
|
||||
+ && player.visibility.isToggled(Setting.SPAWNERS)
|
||||
+ && player.level().getBlockIfLoaded(blockdata.getPos()) == Blocks.SPAWNER) {
|
||||
+ && visibility.isToggled(Setting.SPAWNERS)
|
||||
+ && this.player.level().getBlockIfLoaded(blockdata.getPos()) == Blocks.SPAWNER) {
|
||||
+ packet = new ClientboundBlockUpdatePacket(blockdata.getPos(), Blocks.BLACK_STAINED_GLASS.defaultBlockState());
|
||||
+ } else if (packet instanceof ClientboundBlockUpdatePacket updatePacket) {
|
||||
+ if (player.visibility.isToggled(Setting.SPAWNERS) && updatePacket.blockState.getBlock() == Blocks.SPAWNER) {
|
||||
+ if (visibility.isToggled(Setting.SPAWNERS) && updatePacket.blockState.getBlock() == Blocks.SPAWNER) {
|
||||
+ packet = new ClientboundBlockUpdatePacket(updatePacket.getPos(), Blocks.BLACK_STAINED_GLASS.defaultBlockState());
|
||||
+ } else if (player.visibility.isToggled(Setting.REDSTONE)
|
||||
+ } else if (visibility.isToggled(Setting.REDSTONE)
|
||||
+ && (updatePacket.blockState.getBlock() instanceof DiodeBlock
|
||||
+ || updatePacket.blockState.getBlock() instanceof RedStoneWireBlock)) {
|
||||
+ return;
|
||||
+ } else if (player.visibility.isToggled(Setting.PISTONS)
|
||||
+ return null;
|
||||
+ } else if (visibility.isToggled(Setting.PISTONS)
|
||||
+ && (updatePacket.blockState.getBlock() instanceof PistonBaseBlock
|
||||
+ || updatePacket.blockState.getBlock() instanceof PistonHeadBlock)) {
|
||||
+ return;
|
||||
+ return null;
|
||||
+ }
|
||||
+ } else if (packet instanceof ClientboundSectionBlocksUpdatePacket sectionPacket) {
|
||||
+ for (var state : sectionPacket.states) {
|
||||
+ if (player.visibility.isToggled(Setting.REDSTONE)
|
||||
+ for (net.minecraft.world.level.block.state.BlockState state : sectionPacket.states) {
|
||||
+ if (visibility.isToggled(Setting.REDSTONE)
|
||||
+ && (state.getBlock() instanceof DiodeBlock
|
||||
+ || state.getBlock() instanceof RedStoneWireBlock)) {
|
||||
+ return;
|
||||
+ } else if (player.visibility.isToggled(Setting.PISTONS)
|
||||
+ return null;
|
||||
+ } else if (visibility.isToggled(Setting.PISTONS)
|
||||
+ && (state.getBlock() instanceof PistonBaseBlock
|
||||
+ || state.getBlock() instanceof PistonHeadBlock)) {
|
||||
+ return;
|
||||
+ return null;
|
||||
+ }
|
||||
+ }
|
||||
+ } else if (packet instanceof ClientboundBlockEventPacket blockevent
|
||||
+ && player.visibility.isToggled(Setting.PISTONS)
|
||||
+ && visibility.isToggled(Setting.PISTONS)
|
||||
+ && (blockevent.getBlock() instanceof PistonBaseBlock
|
||||
+ || blockevent.getBlock() instanceof PistonHeadBlock)) {
|
||||
+ return;
|
||||
+ // Sakura end
|
||||
}
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ return packet;
|
||||
+ }
|
||||
+ // Sakura end - visibility api
|
||||
+
|
||||
public CraftPlayer getCraftPlayer() {
|
||||
return (this.player == null) ? null : (CraftPlayer) this.player.getBukkitEntity();
|
||||
// CraftBukkit end
|
||||
boolean flag = !this.suspendFlushingOnServerThread || !this.server.isSameThread();
|
||||
@@ -257,8 +329,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
@@ -300,6 +376,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
ClientboundSetDefaultSpawnPositionPacket packet6 = (ClientboundSetDefaultSpawnPositionPacket) packet;
|
||||
this.player.compassTarget = CraftLocation.toBukkit(packet6.pos, this.getCraftPlayer().getWorld());
|
||||
}
|
||||
+ // Sakura start - visibility api
|
||||
+ if (this.player.visibility.isModified()) {
|
||||
+ packet = this.recreatePacket(packet);
|
||||
+ if (packet == null) return;
|
||||
+ }
|
||||
+ // Sakura end - visibility api
|
||||
// CraftBukkit end
|
||||
if (packet.isTerminal()) {
|
||||
this.close();
|
||||
@@ -313,8 +395,11 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
|
||||
CrashReport crashreport = CrashReport.forThrowable(throwable, "Sending packet");
|
||||
CrashReportCategory crashreportsystemdetails = crashreport.addCategory("Packet being sent");
|
||||
|
||||
@@ -549,10 +566,10 @@ index 0306771b8f90dcdd77f151c19c6c2d75c41f8feb..7451f65cef49248793815965bda4bcbe
|
||||
throw new ReportedException(crashreport);
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
index fe2ef36ab5dc4b933abf24dbfd0e811c53239cf0..d6e60e4e7b5410f30b47e6b9b57b390837368dfc 100644
|
||||
index 5e9202bc7fc649764568b55d66ba0d684118c00c..9dd069659a7ec93b9f0c65edd233952548881870 100644
|
||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||
@@ -3116,6 +3116,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
@@ -3198,6 +3198,7 @@ public class ServerGamePacketListenerImpl extends ServerCommonPacketListenerImpl
|
||||
|
||||
event.setCancelled(cancelled);
|
||||
AbstractContainerMenu oldContainer = this.player.containerMenu; // SPIGOT-1224
|
||||
@@ -561,10 +578,10 @@ index fe2ef36ab5dc4b933abf24dbfd0e811c53239cf0..d6e60e4e7b5410f30b47e6b9b57b3908
|
||||
if (this.player.containerMenu != oldContainer) {
|
||||
return;
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index 637478fd8a284e6833cf8f5fa17ccf9d73d1dd3f..7e4ed21080c56961713f35e219dd592f5f717d63 100644
|
||||
index 2bc85351e6e52f90da5fdb29d8d042a06132d742..6872b9624be78e252df54858d8b9cb5aae93ceda 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -567,6 +567,10 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource, S
|
||||
@@ -569,6 +569,10 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
|
||||
public boolean updatingSectionStatus = false;
|
||||
// Paper end
|
||||
@@ -576,7 +593,7 @@ index 637478fd8a284e6833cf8f5fa17ccf9d73d1dd3f..7e4ed21080c56961713f35e219dd592f
|
||||
public Entity(EntityType<?> type, Level world) {
|
||||
this.id = Entity.ENTITY_COUNTER.incrementAndGet();
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
index a52c2fc38fd97ffa1684270443646d605ec35830..4f072853272bedd79bdf53d2a8373d8e0f6fdd29 100644
|
||||
index d504d10fbe45dfe3f2f3d08d2473df6cd18f6dcf..28b8efdd224e4dbb32f3eac1c9e2c512e2695dc8 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||
@@ -74,6 +74,7 @@ public class FallingBlockEntity extends Entity {
|
||||
@@ -588,10 +605,10 @@ index a52c2fc38fd97ffa1684270443646d605ec35830..4f072853272bedd79bdf53d2a8373d8e
|
||||
|
||||
public FallingBlockEntity(Level world, double x, double y, double z, BlockState block) {
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
index e712bd07ea2946167782473a536e0c72fab4bccd..2e6691b86e161616bb2dcf5ce0391ad57a3ef422 100644
|
||||
index f1f352ec0e51f5db59254841a06c176c5a876fc9..dace8dc0c051ce9355d878154466ee3a548a3832 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
@@ -39,6 +39,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
@@ -37,6 +37,7 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
public PrimedTnt(EntityType<? extends PrimedTnt> type, Level world) {
|
||||
super(type, world);
|
||||
this.blocksBuilding = true;
|
||||
@@ -600,10 +617,10 @@ index e712bd07ea2946167782473a536e0c72fab4bccd..2e6691b86e161616bb2dcf5ce0391ad5
|
||||
|
||||
public PrimedTnt(Level world, double x, double y, double z, @Nullable LivingEntity igniter) {
|
||||
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
|
||||
index 702bd6f2468559d425a95f8ad2622e98c373c065..dc8d34adac1a2834777a8fe1fe7f142e0b13c0bf 100644
|
||||
index 62d39dd63e33c2781c39d3241130b32c18093fcf..52c203dcc1e0ba6b0b236412dadfb1fed2a8ea31 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/Level.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/Level.java
|
||||
@@ -228,6 +228,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
@@ -225,6 +225,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {
|
||||
|
||||
public abstract ResourceKey<LevelStem> getTypeKey();
|
||||
|
||||
@@ -613,10 +630,10 @@ index 702bd6f2468559d425a95f8ad2622e98c373c065..dc8d34adac1a2834777a8fe1fe7f142e
|
||||
this.spigotConfig = new org.spigotmc.SpigotWorldConfig(((net.minecraft.world.level.storage.PrimaryLevelData) worlddatamutable).getLevelName()); // Spigot
|
||||
this.paperConfig = paperWorldConfigCreator.apply(this.spigotConfig); // Paper - create paper world config
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
index 44f4665db613c558078df5bb49106e4ca5679dfe..29f0c4c3fd9185bf8768572c135b50a9db34dbbe 100644
|
||||
index 5f896948d158651cd9837364759dbfbcce6b7d21..73068dfe3c721b38e7f00767f3c94dc1d2589a13 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
||||
@@ -458,6 +458,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
@@ -543,6 +543,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||
this.getHandle().displayName = name == null ? this.getName() : name;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user