Inspired by 2020's April Fools' 20w14infinite Snapshot, this mod brings endless randomly generated dimensions into Minecraft.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

name a lot of mixins

+38 -38
+1 -1
src/main/java/net/lerariemann/infinity/mixin/core/AbstractFireBlockMixin.java
··· 12 12 public class AbstractFireBlockMixin { 13 13 /* Allows to light portals in infdims. */ 14 14 @Inject(method = "inPortalDimension(Lnet/minecraft/world/level/Level;)Z", at = @At("RETURN"), cancellable = true) 15 - private static void injected(Level world, CallbackInfoReturnable<Boolean> cir) { 15 + private static void lightPortalsInInfDims(Level world, CallbackInfoReturnable<Boolean> cir) { 16 16 cir.setReturnValue(cir.getReturnValue() || InfinityMethods.isInfinity(world)); 17 17 } 18 18 }
+4 -4
src/main/java/net/lerariemann/infinity/mixin/core/NetherPortalBlockMixin.java
··· 35 35 /* The root hook for "throw a book in the portal" logic. */ 36 36 @Inject(at = @At("HEAD"), method = "entityInside") 37 37 //? if >1.21.9 { 38 - /*private void injected(BlockState state, Level world, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean bl, CallbackInfo ci) { 38 + /*private void throwBookInPortal(BlockState state, Level world, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, boolean bl, CallbackInfo ci) { 39 39 *///?} else if >1.21.5 { 40 - private void injected(BlockState state, Level world, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, CallbackInfo ci) { 40 + private void throwBookInPortal(BlockState state, Level world, BlockPos pos, Entity entity, InsideBlockEffectApplier effectApplier, CallbackInfo ci) { 41 41 //?} else { 42 - /*private void injected(BlockState state, Level world, BlockPos pos, Entity entity, CallbackInfo info) { 42 + /*private void throwBookInPortal(BlockState state, Level world, BlockPos pos, Entity entity, CallbackInfo info) { 43 43 *///?} 44 44 if (world instanceof ServerLevel w && entity instanceof ItemEntity e) { 45 45 PortalCreator.tryCreatePortalFromItem(w, pos, e); ··· 49 49 /* Allows infinity portals to consider themselves valid block configurations. */ 50 50 @Redirect(method="updateShape", 51 51 at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/block/state/BlockState;is(Lnet/minecraft/world/level/block/Block;)Z")) 52 - private boolean injected(BlockState neighborState, Block block) { 52 + private boolean infinityPortalsAreValid(BlockState neighborState, Block block) { 53 53 return (neighborState.getBlock() instanceof NetherPortalBlock); 54 54 } 55 55
+1 -1
src/main/java/net/lerariemann/infinity/mixin/core/NetherPortalMixin.java
··· 12 12 public class NetherPortalMixin { 13 13 /* Allows infinity portals to consider themselves valid block configurations. */ 14 14 @Inject(method = "isEmpty(Lnet/minecraft/world/level/block/state/BlockState;)Z", at = @At("RETURN"), cancellable = true) 15 - private static void injected(BlockState state, CallbackInfoReturnable<Boolean> cir) { 15 + private static void infinityPortalsAreValid(BlockState state, CallbackInfoReturnable<Boolean> cir) { 16 16 cir.setReturnValue(cir.getReturnValue() || state.is(ModBlocks.PORTAL.get())); 17 17 } 18 18 }
+1 -1
src/main/java/net/lerariemann/infinity/mixin/core/PlayerMixin.java
··· 16 16 public class PlayerMixin { 17 17 //? if <1.21 { 18 18 /*@Inject(method = "findRespawnPositionAndUseSpawnBlock", at = @At("HEAD"), cancellable = true) 19 - private static void inj(ServerLevel serverLevel, BlockPos blockPos, float f, boolean bl, boolean bl2, CallbackInfoReturnable<Optional<Vec3>> cir) { 19 + private static void doNotRespawnInTimebombedDimension(ServerLevel serverLevel, BlockPos blockPos, float f, boolean bl, boolean bl2, CallbackInfoReturnable<Optional<Vec3>> cir) { 20 20 if (InfinityMethods.isTimebombed(serverLevel)) cir.setReturnValue(Optional.empty()); 21 21 } 22 22 *///?}
+1 -1
src/main/java/net/lerariemann/infinity/mixin/fixes/ColllisionShapeMixin.java
··· 18 18 public class ColllisionShapeMixin { 19 19 @Inject(method = "getCollisionShape(Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/phys/shapes/CollisionContext;)Lnet/minecraft/world/phys/shapes/VoxelShape;", 20 20 at = @At("RETURN"), cancellable = true) 21 - private void inj(BlockGetter world, BlockPos pos, CollisionContext context, CallbackInfoReturnable<VoxelShape> cir) { 21 + private void antsStandOnWater(BlockGetter world, BlockPos pos, CollisionContext context, CallbackInfoReturnable<VoxelShape> cir) { 22 22 //? if >1.21.3 { 23 23 try { 24 24 //?}
+3 -3
src/main/java/net/lerariemann/infinity/mixin/fixes/EntityMixin.java
··· 67 67 68 68 /* (Neo)forge-exclusive mixins working around its code (which causes mobs to be unable to swim in iridescence) */ 69 69 @Inject(method="updateFluidHeightAndDoFluidPushing", at = @At(value = "RETURN"), cancellable = true) 70 - void inj(TagKey<Fluid> tag, double speed, CallbackInfoReturnable<Boolean> cir) { 70 + void neoMobsSwim(TagKey<Fluid> tag, double speed, CallbackInfoReturnable<Boolean> cir) { 71 71 if (tag.equals(FluidTags.WATER)) 72 72 if (InfinityPlatform.INSTANCE.acidTest((Entity)(Object)this, false)) 73 73 cir.setReturnValue(true); 74 74 } 75 75 76 76 @Inject(method = "isEyeInFluid", at = @At("RETURN"), cancellable = true) 77 - void inj(TagKey<Fluid> fluidTag, CallbackInfoReturnable<Boolean> cir) { 77 + void neoMobsSwim2(TagKey<Fluid> fluidTag, CallbackInfoReturnable<Boolean> cir) { 78 78 if (fluidTag.equals(FluidTags.WATER)) 79 79 if (InfinityPlatform.INSTANCE.acidTest((Entity)(Object)this, true)) 80 80 cir.setReturnValue(true); 81 81 } 82 82 83 83 @Inject(method = "getFluidHeight", at = @At("RETURN"), cancellable = true) 84 - void inj2(TagKey<Fluid> fluid, CallbackInfoReturnable<Double> cir) { 84 + void neoMobsSwim3(TagKey<Fluid> fluid, CallbackInfoReturnable<Double> cir) { 85 85 if (fluid.equals(FluidTags.WATER)) 86 86 cir.setReturnValue(Math.max(cir.getReturnValue(), InfinityPlatform.INSTANCE.acidHeightTest((Entity)(Object)this))); 87 87 }
+2 -2
src/main/java/net/lerariemann/infinity/mixin/fixes/PointOfInterestStorageMixin.java
··· 50 50 /* There's null-unsafe inner-minecraft code that can crash if we don't do this */ 51 51 //? if >1.21.9 { 52 52 /*@Inject(method = "add", at = @At("HEAD"), cancellable = true) 53 - void inj(BlockPos pos, Holder<PoiType> type, CallbackInfoReturnable<PoiRecord> cir) { 53 + void makePoiNullSafe(BlockPos pos, Holder<PoiType> type, CallbackInfoReturnable<PoiRecord> cir) { 54 54 if (levelHeightAccessor.isOutsideBuildHeight(pos.getY())) cir.cancel(); 55 55 } 56 56 *///?} else { 57 57 @Inject(method = "add", at = @At("HEAD"), cancellable = true) 58 - void inj(BlockPos pos, Holder<PoiType> type, CallbackInfo ci) { 58 + void makePoiNullSafe(BlockPos pos, Holder<PoiType> type, CallbackInfo ci) { 59 59 if (levelHeightAccessor.isOutsideBuildHeight(pos.getY())) ci.cancel(); 60 60 } 61 61 //?}
+1 -1
src/main/java/net/lerariemann/infinity/mixin/iridescence/FluidBlockMixin.java
··· 14 14 @Mixin(LiquidBlock.class) 15 15 public class FluidBlockMixin { 16 16 @ModifyArg(method = "shouldSpreadLiquid", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/level/Level;getFluidState(Lnet/minecraft/core/BlockPos;)Lnet/minecraft/world/level/material/FluidState;", ordinal = 0)) 17 - BlockPos inj(BlockPos original, @Local(argsOnly = true) Level world, @Local(argsOnly = true) BlockPos pos) { 17 + BlockPos shouldSpreadIridesence(BlockPos original, @Local(argsOnly = true) Level world, @Local(argsOnly = true) BlockPos pos) { 18 18 FluidState st = world.getFluidState(original); 19 19 if (Iridescence.isIridescence(st) && !world.getFluidState(pos).isSource()) { 20 20 world.setBlockAndUpdate(pos, Iridescence.getRandomColorBlock(world, "glazed_terracotta").defaultBlockState());
+1 -1
src/main/java/net/lerariemann/infinity/mixin/mavity/EntityMixin.java
··· 17 17 18 18 //? if >1.21 { 19 19 @Inject(method = "getGravity", at = @At("RETURN"), cancellable = true) 20 - private void injected(CallbackInfoReturnable<Double> cir) { 20 + private void mavity(CallbackInfoReturnable<Double> cir) { 21 21 cir.setReturnValue(cir.getReturnValue() * getMavity(level)); 22 22 } 23 23 //?}
+2 -2
src/main/java/net/lerariemann/infinity/mixin/mavity/LivingEntityMixin.java
··· 21 21 22 22 //? if <1.21 { 23 23 /*@ModifyArg(method = "calculateFallDamage", at = @At(value="INVOKE", target="Lnet/minecraft/util/Mth;ceil(F)I")) 24 - float injected(float value) { 24 + float mavity(float value) { 25 25 return (float)getMavity(this.level()) * value; 26 26 } 27 27 28 28 @ModifyConstant(method = "travel", constant = @Constant(doubleValue = 0.08)) 29 - double inj2(double value) { 29 + double mavity2(double value) { 30 30 return value*getMavity(this.level()); 31 31 } 32 32 *///?}
+1 -1
src/main/java/net/lerariemann/infinity/mixin/mavity/SeveralEntitiesMixin.java
··· 24 24 25 25 //? if <1.21 { 26 26 /*@ModifyArg(method = "tick", at = @At(value="INVOKE", target="Lnet/minecraft/world/phys/Vec3;add(DDD)Lnet/minecraft/world/phys/Vec3;"), index = 1) 27 - double injected(double x) { 27 + double mavity(double x) { 28 28 return getMavity(this.level()) * x; 29 29 } 30 30 *///?}
+2 -2
src/main/java/net/lerariemann/infinity/mixin/mobs/LivingEntityMixin.java
··· 39 39 40 40 //? if >1.21.2 { 41 41 @Inject(method = "onEffectsRemoved", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;refreshDirtyAttributes()V")) 42 - void inj(Collection<MobEffectInstance> effects, CallbackInfo ci) { 42 + void removeSpecialEffects(Collection<MobEffectInstance> effects, CallbackInfo ci) { 43 43 effects.forEach(effect-> { 44 44 if (VersionMethods.unholdEffect(effect.getEffect()) instanceof ModStatusEffects.SpecialEffect eff) { 45 45 eff.onRemoved((LivingEntity)(Object)this); ··· 52 52 /*@Inject(method = "onEffectRemoved", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/LivingEntity;getAttributes()Lnet/minecraft/world/entity/ai/attributes/AttributeMap;")) 53 53 *///?} 54 54 //? if <1.21.2 { 55 - /*void inj(MobEffectInstance effect, CallbackInfo ci) { 55 + /*void removeSpecialEffects(MobEffectInstance effect, CallbackInfo ci) { 56 56 if (VersionMethods.unholdEffect(effect.getEffect()) instanceof ModStatusEffects.SpecialEffect eff) { 57 57 eff.onRemoved((LivingEntity)(Object)this); 58 58 }
+1 -1
src/main/java/net/lerariemann/infinity/mixin/mobs/SheepEntityMixin.java
··· 78 78 //?} else { 79 79 /*@Inject(method = "finalizeSpawn", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/animal/Sheep;setColor(Lnet/minecraft/world/item/DyeColor;)V", shift = At.Shift.AFTER)) 80 80 *///?} 81 - private void injected(ServerLevelAccessor world, DifficultyInstance difficulty, 81 + private void customWool(ServerLevelAccessor world, DifficultyInstance difficulty, 82 82 //? if >1.21.2 { 83 83 net.minecraft.world.entity.EntitySpawnReason 84 84 //?} else {
+1 -1
src/main/java/net/lerariemann/infinity/mixin/options/ClientWorldMixin.java
··· 35 35 *///?} 36 36 37 37 @Inject(method = "<init>", at = @At("TAIL")) 38 - private void injected(ClientPacketListener connection, ClientLevel.ClientLevelData levelData, ResourceKey dimension, Holder dimensionTypeRegistration, int viewDistance, int simulationDistance, 38 + private void setClientInfinityOptions(ClientPacketListener connection, ClientLevel.ClientLevelData levelData, ResourceKey dimension, Holder dimensionTypeRegistration, int viewDistance, int simulationDistance, 39 39 //? if >1.21.2 { 40 40 LevelRenderer levelRenderer, boolean isDebug, long biomeZoomSeed, int seaLevel, CallbackInfo ci) { 41 41 //?} else {
+1 -1
src/main/java/net/lerariemann/infinity/mixin/options/DimensionTypeMixin.java
··· 14 14 public InfinityOptions infinity$options; 15 15 16 16 @ModifyArg(method = "timeOfDay", at = @At(value="INVOKE", target="Lnet/minecraft/util/Mth;frac(D)D"), index = 0) 17 - private double injected(double value) { 17 + private double customTimeOfDay(double value) { 18 18 try { 19 19 double timescale = infinity$getOptions().getTimeScale(); 20 20 return timescale*(value + 0.25) - 0.25;
+1 -1
src/main/java/net/lerariemann/infinity/mixin/options/FogRendererMixin.java
··· 24 24 public class FogRendererMixin { 25 25 @ModifyArg(method = "setupColor", at = @At(value = "INVOKE", target = "Lorg/joml/Vector3f;dot(Lorg/joml/Vector3fc;)F")) 26 26 *///?} 27 - private static Vector3fc inj(Vector3fc v, @Local(argsOnly = true, ordinal = 0) float partialTicks, @Local(argsOnly = true) ClientLevel level) { 27 + private static Vector3fc customFog(Vector3fc v, @Local(argsOnly = true, ordinal = 0) float partialTicks, @Local(argsOnly = true) ClientLevel level) { 28 28 float solarTilt = InfinityOptions.ofClient().getSolarTilt(); 29 29 if (solarTilt != -90.0F) { 30 30 boolean isSunset = Mth.sin(level.getSunAngle(partialTicks)) > 0.0F;
+1 -1
src/main/java/net/lerariemann/infinity/mixin/options/MinecraftClientMixin.java
··· 25 25 public InfinityOptions infinity$options; 26 26 27 27 @Inject(method = "<init>", at = @At("TAIL")) 28 - private void injected(GameConfig args, CallbackInfo ci) { 28 + private void resetOptions(GameConfig args, CallbackInfo ci) { 29 29 infinity$options = InfinityOptions.empty(); 30 30 } 31 31
+4 -4
src/main/java/net/lerariemann/infinity/mixin/options/PlayerManagerMixin.java
··· 49 49 @Inject(method="placeNewPlayer", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/MinecraftServer;overworld()Lnet/minecraft/server/level/ServerLevel;")) 50 50 //?} 51 51 //? if >1.21 { 52 - void inj(Connection connection, ServerPlayer player, CommonListenerCookie clientData, CallbackInfo ci) { 52 + void checkNeedsTpOut(Connection connection, ServerPlayer player, CommonListenerCookie clientData, CallbackInfo ci) { 53 53 //?} else { 54 54 /*void inj(Connection connection, ServerPlayer player, CallbackInfo ci) { 55 55 *///?} ··· 58 58 59 59 @Inject(method="placeNewPlayer", at = @At(value = "TAIL")) 60 60 //? if >1.21 { 61 - void inj2(Connection connection, ServerPlayer player, CommonListenerCookie clientData, CallbackInfo ci) { 61 + void tpOut(Connection connection, ServerPlayer player, CommonListenerCookie clientData, CallbackInfo ci) { 62 62 //?} else { 63 63 /*void inj2(Connection connection, ServerPlayer player, CallbackInfo ci) { 64 64 *///?} ··· 72 72 @Inject(method = "placeNewPlayer", at = @At(value="INVOKE", 73 73 target = "Lnet/minecraft/server/players/PlayerList;sendPlayerPermissionLevel(Lnet/minecraft/server/level/ServerPlayer;)V")) 74 74 //? if >1.21 { 75 - private void injected(Connection connection, ServerPlayer player, CommonListenerCookie clientData, CallbackInfo ci, @Local(ordinal=0) ServerLevel serverWorld2) { 75 + private void updatePlayer(Connection connection, ServerPlayer player, CommonListenerCookie clientData, CallbackInfo ci, @Local(ordinal=0) ServerLevel serverWorld2) { 76 76 //?} else { 77 77 /*private void injected(Connection connection, ServerPlayer player, CallbackInfo ci, @Local(ordinal=0) ServerLevel serverWorld2) { 78 78 *///?} ··· 89 89 } 90 90 91 91 @Inject(method="sendLevelInfo", at = @At("TAIL")) 92 - private void injected2(ServerPlayer player, ServerLevel world, CallbackInfo ci) { 92 + private void sendInfinityLevelInfo(ServerPlayer player, ServerLevel world, CallbackInfo ci) { 93 93 ModPayloads.sendShaderPayload(player, world); 94 94 ModPayloads.sendStarsPayload(player); 95 95 }
+3 -3
src/main/java/net/lerariemann/infinity/mixin/options/ServerWorldMixin.java
··· 62 62 63 63 @Inject(method = "<init>", at = @At("TAIL")) 64 64 //? if >1.21.9 { 65 - /*private void injected(MinecraftServer server, Executor dispatcher, LevelStorageSource.LevelStorageAccess storageSource, ServerLevelData levelData, ResourceKey<Level> worldKey, LevelStem levelStem, boolean isDebug, long biomeZoomSeed, List customSpawners, boolean tickTime, RandomSequences randomSequences, CallbackInfo ci) { 65 + /*private void timebomb(MinecraftServer server, Executor dispatcher, LevelStorageSource.LevelStorageAccess storageSource, ServerLevelData levelData, ResourceKey<Level> worldKey, LevelStem levelStem, boolean isDebug, long biomeZoomSeed, List customSpawners, boolean tickTime, RandomSequences randomSequences, CallbackInfo ci) { 66 66 *///?} else { 67 - private void injected(MinecraftServer server, Executor workerExecutor, LevelStorageSource.LevelStorageAccess session, ServerLevelData properties, ResourceKey<Level> worldKey, LevelStem dimensionOptions, ChunkProgressListener worldGenerationProgressListener, boolean debugWorld, long seed, List<CustomSpawner> spawners, boolean shouldTickTime, RandomSequences randomSequencesState, CallbackInfo ci) { 67 + private void timebomb(MinecraftServer server, Executor workerExecutor, LevelStorageSource.LevelStorageAccess session, ServerLevelData properties, ResourceKey<Level> worldKey, LevelStem dimensionOptions, ChunkProgressListener worldGenerationProgressListener, boolean debugWorld, long seed, List<CustomSpawner> spawners, boolean shouldTickTime, RandomSequences randomSequencesState, CallbackInfo ci) { 68 68 //?} 69 69 infinity$options = InfinityOptions.generate(server, worldKey.location()); 70 70 DimensionType t = dimensionType(); ··· 73 73 } 74 74 75 75 @Inject(method = "tick", at = @At("TAIL")) 76 - private void injected2(BooleanSupplier shouldKeepTicking, CallbackInfo ci) { 76 + private void addTimebombProgress(BooleanSupplier shouldKeepTicking, CallbackInfo ci) { 77 77 if (InfinityMethods.isInfinity(dimension()) && infinity$timebombProgress > 0) infinity$timebombProgress++; 78 78 } 79 79
+1 -1
src/main/java/net/lerariemann/infinity/mixin/options/SoundSystemMixin.java
··· 9 9 @Mixin(SoundEngine.class) 10 10 public class SoundSystemMixin { 11 11 @ModifyExpressionValue(method = "calculatePitch", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/resources/sounds/SoundInstance;getPitch()F")) 12 - float inj(float original) { 12 + float customPitch(float original) { 13 13 InfinityOptions options = InfinityOptions.ofClient(); 14 14 return (!options.isEmpty()) ? options.getSoundPitch().apply(original) : original; 15 15 }
+1 -1
src/main/java/net/lerariemann/infinity/mixin/options/WorldRendererMixin.java
··· 138 138 //? if >1.21.2 { 139 139 @Unique SkyRenderer infinity$sky; 140 140 @Inject(method = "<init>", at = @At("TAIL")) 141 - void inj(Minecraft minecraft, EntityRenderDispatcher entityRenderDispatcher, BlockEntityRenderDispatcher blockEntityRenderDispatcher, RenderBuffers renderBuffers, CallbackInfo ci) { 141 + void customSky(Minecraft minecraft, EntityRenderDispatcher entityRenderDispatcher, BlockEntityRenderDispatcher blockEntityRenderDispatcher, RenderBuffers renderBuffers, CallbackInfo ci) { 142 142 if (this.level != null) infinity$sky = new SkyRenderer(infinity$options(), this.level); 143 143 } 144 144 //?}
+1 -1
src/main/java/net/lerariemann/infinity/mixin/qol/CoralParentBlockMixin.java
··· 15 15 public class CoralParentBlockMixin { 16 16 @Inject(method = "scanForWater(Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/world/level/BlockGetter;Lnet/minecraft/core/BlockPos;)Z", 17 17 at = @At("HEAD"), cancellable = true) 18 - private static void inj(BlockState state, BlockGetter world, BlockPos pos, CallbackInfoReturnable<Boolean> cir) { 18 + private static void noParentCoralDecay(BlockState state, BlockGetter world, BlockPos pos, CallbackInfoReturnable<Boolean> cir) { 19 19 if (InfinityMethods.isBiomeInfinity(world, pos)) cir.setReturnValue(true); 20 20 } 21 21 }
+1 -1
src/main/java/net/lerariemann/infinity/mixin/qol/EnderDragonEntityMixin.java
··· 20 20 /* Don't destroy blocks in infdims */ 21 21 @Inject(method = "checkWalls", at = @At(value = "HEAD", 22 22 target = "Lnet/minecraft/world/level/GameRules;getBoolean(Lnet/minecraft/world/level/GameRules$Key;)Z"), cancellable = true) 23 - void inj( 23 + void safeDragons( 24 24 //? if >1.21.3 { 25 25 ServerLevel level, 26 26 //?}
+1 -1
src/main/java/net/lerariemann/infinity/mixin/qol/KeyboardMixin.java
··· 11 11 public class KeyboardMixin { 12 12 /* disable f4 being a hardcoded toggle postprocessing shaders key, as the mod makes it rebindable */ 13 13 @WrapOperation(method="keyPress", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/GameRenderer;togglePostEffect()V")) 14 - void inj(GameRenderer instance, Operation<Void> original) { 14 + void disableF4(GameRenderer instance, Operation<Void> original) { 15 15 } 16 16 }
+1 -1
src/main/java/net/lerariemann/infinity/mixin/qol/LavaFluidMixin.java
··· 34 34 35 35 @ModifyExpressionValue(method = "spreadTo", at = @At(value = "INVOKE", 36 36 target = "Lnet/minecraft/world/level/block/Block;defaultBlockState()Lnet/minecraft/world/level/block/state/BlockState;")) 37 - BlockState inj(BlockState original, @Local(argsOnly = true) LevelAccessor w, @Local(argsOnly = true) BlockPos p) { 37 + BlockState customCobbleGen(BlockState original, @Local(argsOnly = true) LevelAccessor w, @Local(argsOnly = true) BlockPos p) { 38 38 if (w.getBlockState(p).is(ModBlocks.IRIDESCENCE.get())) { 39 39 return Iridescence.getRandomColorBlock(w, "glazed_terracotta").defaultBlockState(); 40 40 }