Rohan Verma



Commit Diff


commit - 62b3bb8066fd31d86098f91d771f995979fb9ef3
commit + 9e6c197f44d42c88b15cf79edcf2b5bdce9f0f0b
blob - 15cfbbc30857d1e0d869401a0982367fea87236b
blob + 1f8ee11a5903168dc0a82083a1ea845fb84fea5c
--- build.gradle
+++ build.gradle
@@ -93,6 +93,7 @@ jar {
     exclude 'dev/ryanhcode/**'
     exclude 'dev/simulated_team/**'
     exclude 'me/desht/**'
+    exclude 'net/mehvahdjukaar/**'
 }
 
 var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) {
blob - 0f8f0800da5605f8ea9f0fc97c3fb1d5fc5c86c1
blob + dc75a8ad6b5bf6be0adbc1eecc5b47cc9b51a870
--- src/main/java/sh/rsap/aeronauticscompat/mixin/AeronauticsCompatMixinPlugin.java
+++ src/main/java/sh/rsap/aeronauticscompat/mixin/AeronauticsCompatMixinPlugin.java
@@ -20,29 +20,30 @@ public class AeronauticsCompatMixinPlugin implements I
     private static final String PNEUMATIC_CRAFT = "me.desht.pneumaticcraft.common.block.entity.utility.SentryTurretBlockEntity";
 
     /** Per-mixin marker-class requirements (all must resolve to apply). */
-    private static final Map<String, String[]> REQUIREMENTS = Map.of(
-            "sh.rsap.aeronauticscompat.mixin.etched.EtchedStopListeningSoundMixin",
-            new String[]{SABLE, ETCHED},
-            "sh.rsap.aeronauticscompat.mixin.waterframes.WaterFramesSableDistanceMixin",
-            new String[]{SABLE, WATERFRAMES},
-            "sh.rsap.aeronauticscompat.mixin.citadel.CitadelAdvancedPathNavigateMixin",
-            new String[]{SABLE, CITADEL},
-            "sh.rsap.aeronauticscompat.mixin.thickair.ThickAirAirQualityHelperMixin",
-            new String[]{SABLE, THICK_AIR},
-            "sh.rsap.aeronauticscompat.mixin.sable.SubLevelAssemblyHelperMixin",
-            new String[]{SABLE, BITS_N_BOBS},
-            "sh.rsap.aeronauticscompat.mixin.bitsnbobs.CogwheelChainBehaviourMixin",
-            new String[]{SABLE, BITS_N_BOBS},
-            "sh.rsap.aeronauticscompat.mixin.simulated.SimAssemblyHelperMixin",
-            new String[]{SABLE, SIMULATED, BITS_N_BOBS},
-            "sh.rsap.aeronauticscompat.mixin.pneumaticcraft.SentryTurretEntitySelectorMixin",
-            new String[]{SABLE, PNEUMATIC_CRAFT},
-            "sh.rsap.aeronauticscompat.mixin.pneumaticcraft.MovingSoundMinigunMixin",
-            new String[]{SABLE, PNEUMATIC_CRAFT},
-            "sh.rsap.aeronauticscompat.mixin.pneumaticcraft.AbstractPneumaticCraftBlockMixin",
-            new String[]{SABLE, PNEUMATIC_CRAFT}
+    private static final Map<String, String[]> REQUIREMENTS = Map.ofEntries(
+        Map.entry("sh.rsap.aeronauticscompat.mixin.etched.EtchedStopListeningSoundMixin",
+                new String[]{SABLE, ETCHED}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.waterframes.WaterFramesSableDistanceMixin",
+                new String[]{SABLE, WATERFRAMES}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.citadel.CitadelAdvancedPathNavigateMixin",
+                new String[]{SABLE, CITADEL}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.thickair.ThickAirAirQualityHelperMixin",
+                new String[]{SABLE, THICK_AIR}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.sable.SubLevelAssemblyHelperMixin",
+                new String[]{SABLE, BITS_N_BOBS}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.simulated.SimAssemblyHelperMixin",
+                new String[]{SABLE, SIMULATED, BITS_N_BOBS}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.bitsnbobs.CogwheelChainBlockEntityMixin",
+                new String[]{SABLE, BITS_N_BOBS}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.pneumaticcraft.SentryTurretEntitySelectorMixin",
+                new String[]{SABLE, PNEUMATIC_CRAFT}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.pneumaticcraft.MovingSoundMinigunMixin",
+                new String[]{SABLE, PNEUMATIC_CRAFT}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.pneumaticcraft.AbstractPneumaticCraftBlockMixin",
+                new String[]{SABLE, PNEUMATIC_CRAFT}),
+        Map.entry("sh.rsap.aeronauticscompat.mixin.sable.ClientPacketListenerMixin",
+                new String[]{SABLE})
     );
-
     @Override
     public void onLoad(String mixinPackage) {
         ClassLoader cl = AeronauticsCompatMixinPlugin.class.getClassLoader();
@@ -54,7 +55,6 @@ public class AeronauticsCompatMixinPlugin implements I
                 + " thick_air=" + resolves(THICK_AIR, cl)
                 + " bnb=" + resolves(BITS_N_BOBS, cl)
                 + " simulated=" + resolves(SIMULATED, cl)
-                + " pneumaticcraft=" + resolves(PNEUMATIC_CRAFT, cl)
                 + " pneumaticcraft=" + resolves(PNEUMATIC_CRAFT, cl));
     }
 
blob - /dev/null
blob + c98cc389edb2e56c0b014639bf75bbeb2e3650dc (mode 644)
--- /dev/null
+++ src/main/java/sh/rsap/aeronauticscompat/mixin/sable/ClientPacketListenerMixin.java
@@ -0,0 +1,28 @@
+package sh.rsap.aeronauticscompat.mixin.sable;
+
+import net.minecraft.client.multiplayer.ClientChunkCache;
+import net.minecraft.client.multiplayer.ClientPacketListener;
+import net.minecraft.world.level.ChunkPos;
+import org.spongepowered.asm.mixin.Mixin;
+import org.spongepowered.asm.mixin.injection.At;
+import org.spongepowered.asm.mixin.injection.Redirect;
+
+@Mixin(ClientPacketListener.class)
+public abstract class ClientPacketListenerMixin {
+
+    private static final int PLOT_CHUNK_THRESHOLD = 1_000_000;
+
+    @Redirect(
+            method = "handleForgetLevelChunk",
+            at = @At(
+                    value = "INVOKE",
+                    target = "Lnet/minecraft/client/multiplayer/ClientChunkCache;drop(Lnet/minecraft/world/level/ChunkPos;)V"
+            )
+    )
+    private void aeronauticscompat$skipPlotChunkDrop(ClientChunkCache cache, ChunkPos chunkPos) {
+        if (Math.abs(chunkPos.x) > PLOT_CHUNK_THRESHOLD || Math.abs(chunkPos.z) > PLOT_CHUNK_THRESHOLD) {
+            return;
+        }
+        cache.drop(chunkPos);
+    }
+}
blob - 6db1cf80e7a659514d7f374979f6f454fa78a59b
blob + 8d2da57a4aae63c1fb37b53472aaa3dc719a89a9
--- src/main/resources/aeronauticscompat.mixins.json
+++ src/main/resources/aeronauticscompat.mixins.json
@@ -16,7 +16,8 @@
   "client": [
     "etched.EtchedStopListeningSoundMixin",
     "waterframes.WaterFramesSableDistanceMixin",
-    "pneumaticcraft.MovingSoundMinigunMixin"
+    "pneumaticcraft.MovingSoundMinigunMixin",
+    "sable.ClientPacketListenerMixin"
   ],
   "injectors": {
     "defaultRequire": 1
blob - 2ffa83779f29f1c1e8c0d53554d5cbe667a0bb01
blob + 00dcf5a434c21254ed8390f063265781066d0876
--- src/main/resources/data/sable/tags/entity_type/retain_in_sub_level.json
+++ src/main/resources/data/sable/tags/entity_type/retain_in_sub_level.json
@@ -5,6 +5,7 @@
     {"id": "immersive_paintings:painting", "required": false},
     {"id": "immersive_paintings:glow_painting", "required": false},
     {"id": "immersive_paintings:graffiti", "required": false},
-    {"id": "immersive_paintings:glow_graffiti", "required": false}
+    {"id": "immersive_paintings:glow_graffiti", "required": false},
+    {"id": "sleep_tight:bed_entity", "required": false}
   ]
 }