Mixin Fixes
This commit is contained in:
parent
e104752c6d
commit
e25ab5698d
14 changed files with 45 additions and 69 deletions
|
@ -1,5 +1,6 @@
|
|||
package ru.betterend.mixin.client;
|
||||
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
|
@ -18,6 +19,7 @@ import ru.bclib.client.gui.BlockSignEditScreen;
|
|||
@Mixin(ClientPacketListener.class)
|
||||
public class ClientPlayNetworkHandlerMixin
|
||||
{
|
||||
@Final
|
||||
@Shadow
|
||||
private Minecraft minecraft;
|
||||
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
package ru.betterend.mixin.client;
|
||||
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.gen.Accessor;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import net.minecraft.client.renderer.block.model.BlockModelDefinition;
|
||||
|
||||
@Mixin(BlockModelDefinition.Context.class)
|
||||
public interface ContextGsonAccessor {
|
||||
@Accessor
|
||||
Gson getGson();
|
||||
}
|
|
@ -1,16 +1,14 @@
|
|||
package ru.betterend.mixin.client;
|
||||
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.client.renderer.entity.HumanoidMobRenderer;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.world.entity.Mob;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
||||
import net.minecraft.client.renderer.entity.HumanoidMobRenderer;
|
||||
import net.minecraft.client.renderer.entity.MobRenderer;
|
||||
import net.minecraft.world.entity.Mob;
|
||||
import ru.betterend.client.render.ArmoredElytraLayer;
|
||||
|
||||
@Mixin(HumanoidMobRenderer.class)
|
||||
|
|
|
@ -1,16 +1,14 @@
|
|||
package ru.betterend.mixin.client;
|
||||
|
||||
import net.minecraft.client.model.PlayerModel;
|
||||
import net.minecraft.client.player.AbstractClientPlayer;
|
||||
import net.minecraft.client.renderer.entity.EntityRendererProvider;
|
||||
import net.minecraft.client.renderer.entity.LivingEntityRenderer;
|
||||
import net.minecraft.client.renderer.entity.player.PlayerRenderer;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import net.minecraft.client.model.PlayerModel;
|
||||
import net.minecraft.client.player.AbstractClientPlayer;
|
||||
import net.minecraft.client.renderer.entity.EntityRenderDispatcher;
|
||||
import net.minecraft.client.renderer.entity.LivingEntityRenderer;
|
||||
import net.minecraft.client.renderer.entity.player.PlayerRenderer;
|
||||
import ru.betterend.client.render.ArmoredElytraLayer;
|
||||
|
||||
@Mixin(PlayerRenderer.class)
|
||||
|
|
|
@ -65,7 +65,7 @@ public abstract class AnvilMenuMixin extends ItemCombinerMenu implements AnvilSc
|
|||
}
|
||||
|
||||
@Inject(method = "onTake", at = @At("HEAD"), cancellable = true)
|
||||
protected void be_onTakeOutput(Player player, ItemStack stack, CallbackInfoReturnable<ItemStack> info) {
|
||||
protected void be_onTakeOutput(Player player, ItemStack stack, CallbackInfo info) {
|
||||
if (be_currentRecipe != null) {
|
||||
inputSlots.getItem(0).shrink(be_currentRecipe.getInputCount());
|
||||
stack = be_currentRecipe.craft(inputSlots, player);
|
||||
|
@ -85,7 +85,8 @@ public abstract class AnvilMenuMixin extends ItemCombinerMenu implements AnvilSc
|
|||
world.levelEvent(1030, blockPos, 0);
|
||||
}
|
||||
});
|
||||
info.setReturnValue(stack);
|
||||
//TODO: no more return, does this still work?
|
||||
//info.setReturnValue(stack);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ public abstract class ChorusPlantBlockMixin extends Block {
|
|||
}
|
||||
}
|
||||
|
||||
@Inject(method = "getStateForPlacement", at = @At("RETURN"), cancellable = true)
|
||||
@Inject(method = "getStateForPlacement(Lnet/minecraft/world/item/context/BlockPlaceContext;)Lnet/minecraft/world/level/block/state/BlockState;", at = @At("RETURN"), cancellable = true)
|
||||
private void be_getStateForPlacement(BlockPlaceContext ctx, CallbackInfoReturnable<BlockState> info) {
|
||||
BlockPos pos = ctx.getClickedPos();
|
||||
Level world = ctx.getLevel();
|
||||
|
|
|
@ -27,11 +27,7 @@ public class ChunkBiomeContainerMixin implements IBiomeArray {
|
|||
|
||||
@Final
|
||||
@Shadow
|
||||
public static int HORIZONTAL_MASK;
|
||||
|
||||
@Final
|
||||
@Shadow
|
||||
public static int VERTICAL_MASK;
|
||||
private static int HORIZONTAL_MASK;
|
||||
|
||||
@Override
|
||||
public void be_setBiome(Biome biome, BlockPos pos) {
|
||||
|
@ -78,9 +74,12 @@ public class ChunkBiomeContainerMixin implements IBiomeArray {
|
|||
biomes[index] = biome;
|
||||
}
|
||||
|
||||
@Shadow @Final private int quartMinY;
|
||||
@Shadow @Final private int quartHeight;
|
||||
|
||||
private int be_getArrayIndex(int biomeX, int biomeY, int biomeZ) {
|
||||
int i = biomeX & HORIZONTAL_MASK;
|
||||
int j = Mth.clamp(biomeY, 0, VERTICAL_MASK);
|
||||
int j = Mth.clamp(biomeY - this.quartMinY, 0, this.quartHeight);
|
||||
int k = biomeZ & HORIZONTAL_MASK;
|
||||
return j << WIDTH_BITS + WIDTH_BITS | k << WIDTH_BITS | i;
|
||||
}
|
||||
|
|
|
@ -19,9 +19,9 @@ import ru.betterend.interfaces.TeleportingEntity;
|
|||
@Mixin(Entity.class)
|
||||
public abstract class EntityMixin implements TeleportingEntity {
|
||||
@Shadow
|
||||
public float yRot;
|
||||
private float yRot;
|
||||
@Shadow
|
||||
public float xRot;
|
||||
private float xRot;
|
||||
|
||||
@Shadow
|
||||
public Level level;
|
||||
|
|
|
@ -22,7 +22,7 @@ import net.minecraft.world.level.storage.WorldData;
|
|||
import ru.betterend.world.generator.GeneratorOptions;
|
||||
|
||||
@Mixin(MinecraftServer.class)
|
||||
public class MinecraftServerMixin {
|
||||
public abstract class MinecraftServerMixin {
|
||||
@Shadow
|
||||
private ServerResources resources;
|
||||
|
||||
|
@ -35,7 +35,7 @@ public class MinecraftServerMixin {
|
|||
protected WorldData worldData;
|
||||
|
||||
@Inject(method = "overworld", at = @At(value = "HEAD"), cancellable = true)
|
||||
private final void be_overworld(CallbackInfoReturnable<ServerLevel> info) {
|
||||
private void be_overworld(CallbackInfoReturnable<ServerLevel> info) {
|
||||
if (GeneratorOptions.swapOverworldToEnd()) {
|
||||
ServerLevel world = levels.get(Level.END);
|
||||
if (world == null) {
|
||||
|
@ -47,7 +47,7 @@ public class MinecraftServerMixin {
|
|||
}
|
||||
|
||||
@Inject(method = "createLevels", at = @At(value = "TAIL"))
|
||||
private final void be_createLevels(ChunkProgressListener worldGenerationProgressListener, CallbackInfo info) {
|
||||
private void be_createLevels(ChunkProgressListener worldGenerationProgressListener, CallbackInfo info) {
|
||||
if (GeneratorOptions.swapOverworldToEnd()) {
|
||||
ServerLevel world = levels.get(Level.END);
|
||||
if (world == null) {
|
||||
|
@ -57,20 +57,20 @@ public class MinecraftServerMixin {
|
|||
ServerLevelData serverWorldProperties = worldData.overworldData();
|
||||
net.minecraft.world.level.levelgen.WorldGenSettings generatorOptions = worldData.worldGenSettings();
|
||||
boolean bl = generatorOptions.isDebug();
|
||||
setInitialSpawn(world, serverWorldProperties, generatorOptions.generateBonusChest(), bl, true);
|
||||
setInitialSpawn(world, serverWorldProperties, generatorOptions.generateBonusChest(), bl);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Shadow private static void setInitialSpawn(ServerLevel serverLevel, ServerLevelData serverLevelData, boolean bl, boolean bl2) {};
|
||||
|
||||
@Inject(method = "setInitialSpawn", at = @At(value = "HEAD"), cancellable = true)
|
||||
private static void be_setInitialSpawn(ServerLevel world, ServerLevelData serverWorldProperties, boolean bonusChest, boolean debugWorld, boolean bl, CallbackInfo info) {
|
||||
private static void be_setInitialSpawn(ServerLevel world, ServerLevelData serverWorldProperties, boolean bonusChest, boolean debugWorld, CallbackInfo info) {
|
||||
if (GeneratorOptions.swapOverworldToEnd() && world.dimension() == Level.OVERWORLD) {
|
||||
info.cancel();
|
||||
}
|
||||
}
|
||||
|
||||
@Shadow
|
||||
private static void setInitialSpawn(ServerLevel world, ServerLevelData serverWorldProperties, boolean bonusChest, boolean debugWorld, boolean bl) {}
|
||||
|
||||
|
||||
@Shadow
|
||||
public PlayerList getPlayerList() {
|
||||
return null;
|
||||
|
|
|
@ -32,8 +32,8 @@ public abstract class NoiseBasedChunkGeneratorMixin extends ChunkGenerator {
|
|||
TerrainGenerator.initNoise(seed);
|
||||
}
|
||||
|
||||
@Inject(method = "fillNoiseColumn([DII)V", at = @At("HEAD"), cancellable = true, allow = 2)
|
||||
private void be_fillNoiseColumn(double[] buffer, int x, int z, CallbackInfo info) {
|
||||
@Inject(method = "fillNoiseColumn([DIIII)V", at = @At("HEAD"), cancellable = true, allow = 2)
|
||||
private void be_fillNoiseColumn(double[] buffer, int x, int z, int k, int l, CallbackInfo info) {
|
||||
if (GeneratorOptions.useNewGenerator() && settings.get().stable(NoiseGeneratorSettings.END)) {
|
||||
TerrainGenerator.fillTerrainDensity(buffer, x, z, getBiomeSource());
|
||||
info.cancel();
|
||||
|
|
|
@ -163,9 +163,9 @@ public class PlayerListMixin {
|
|||
this.broadcastAll(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.ADD_PLAYER,
|
||||
new ServerPlayer[] { serverPlayer }));
|
||||
|
||||
for (int i = 0; i < this.players.size(); ++i) {
|
||||
for (ServerPlayer player : this.players) {
|
||||
serverPlayer.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.ADD_PLAYER,
|
||||
new ServerPlayer[] { (ServerPlayer) this.players.get(i) }));
|
||||
new ServerPlayer[]{(ServerPlayer) player}));
|
||||
}
|
||||
|
||||
serverLevel3.addNewPlayer(serverPlayer);
|
||||
|
@ -176,10 +176,7 @@ public class PlayerListMixin {
|
|||
this.server.isResourcePackRequired(), this.server.getResourcePackPrompt());
|
||||
}
|
||||
|
||||
Iterator<?> var24 = serverPlayer.getActiveEffects().iterator();
|
||||
|
||||
while (var24.hasNext()) {
|
||||
MobEffectInstance statusEffectInstance = (MobEffectInstance) var24.next();
|
||||
for (MobEffectInstance statusEffectInstance : serverPlayer.getActiveEffects()) {
|
||||
serverPlayNetworkHandler
|
||||
.send(new ClientboundUpdateMobEffectPacket(serverPlayer.getId(), statusEffectInstance));
|
||||
}
|
||||
|
|
|
@ -132,7 +132,7 @@ public abstract class ServerPlayerMixin extends Player implements TeleportingEnt
|
|||
}
|
||||
|
||||
@Shadow
|
||||
abstract ServerLevel getLevel();
|
||||
public abstract ServerLevel getLevel();
|
||||
|
||||
@Shadow
|
||||
abstract void triggerDimensionChangeTriggers(ServerLevel origin);
|
||||
|
|
|
@ -7,8 +7,6 @@ import org.spongepowered.asm.mixin.Shadow;
|
|||
import ru.betterend.util.ShuffelingListExtended;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
@Mixin(ShufflingList.class)
|
||||
public abstract class ShuffelingListMixin<U> implements ShuffelingListExtended<U> {
|
||||
|
|
|
@ -1,38 +1,35 @@
|
|||
package ru.betterend.mixin.common;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.core.Vec3i;
|
||||
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
import net.minecraft.core.BlockPos;
|
||||
import net.minecraft.core.BlockPos.MutableBlockPos;
|
||||
import net.minecraft.core.Vec3i;
|
||||
import net.minecraft.nbt.CompoundTag;
|
||||
import net.minecraft.util.Mth;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.boss.enderdragon.EndCrystal;
|
||||
import net.minecraft.world.level.ServerLevelAccessor;
|
||||
import net.minecraft.world.level.WorldGenLevel;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import net.minecraft.world.level.block.IronBarsBlock;
|
||||
import net.minecraft.world.level.block.state.BlockState;
|
||||
import net.minecraft.world.level.chunk.ChunkGenerator;
|
||||
import net.minecraft.world.level.levelgen.Heightmap.Types;
|
||||
import net.minecraft.world.level.levelgen.feature.FeaturePlaceContext;
|
||||
import net.minecraft.world.level.levelgen.feature.SpikeFeature;
|
||||
import net.minecraft.world.level.levelgen.feature.configurations.SpikeConfiguration;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructurePlaceSettings;
|
||||
import net.minecraft.world.level.levelgen.structure.templatesystem.StructureTemplate;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
import ru.bclib.api.WorldDataAPI;
|
||||
import ru.bclib.util.BlocksHelper;
|
||||
import ru.bclib.util.StructureHelper;
|
||||
import ru.betterend.BetterEnd;
|
||||
import ru.betterend.world.generator.GeneratorOptions;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
@Mixin(SpikeFeature.class)
|
||||
public class SpikeFeatureMixin {
|
||||
@Inject(method = "place", at = @At("HEAD"), cancellable = true)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue