mirror of
https://github.com/FabricMC/fabric.git
synced 2025-03-25 22:39:50 -04:00
21w08a
This commit is contained in:
parent
f9d6353a62
commit
7268309e55
8 changed files with 39 additions and 31 deletions
build.gradle
fabric-events-interaction-v0
build.gradle
src/main/java/net/fabricmc/fabric/mixin/event/interaction
fabric-networking-api-v1
fabric-structure-api-v1
|
@ -19,8 +19,8 @@ plugins {
|
|||
def ENV = System.getenv()
|
||||
|
||||
class Globals {
|
||||
static def baseVersion = "0.31.0"
|
||||
static def mcVersion = "21w07a"
|
||||
static def baseVersion = "0.31.1"
|
||||
static def mcVersion = "21w08a"
|
||||
static def yarnVersion = "+build.1"
|
||||
static def loaderVersion = "0.10.5+build.213"
|
||||
static def preRelease = true
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
archivesBaseName = "fabric-events-interaction-v0"
|
||||
version = getSubprojectVersion(project, "0.4.4")
|
||||
version = getSubprojectVersion(project, "0.4.5")
|
||||
|
||||
moduleDependencies(project, [
|
||||
'fabric-api-base'
|
||||
|
|
|
@ -119,7 +119,7 @@ public class MixinClientPlayerInteractionManager {
|
|||
|
||||
if (result != ActionResult.PASS) {
|
||||
if (result == ActionResult.SUCCESS) {
|
||||
this.networkHandler.sendPacket(new PlayerInteractEntityC2SPacket(entity, player.isSneaking()));
|
||||
this.networkHandler.sendPacket(PlayerInteractEntityC2SPacket.method_34206(entity, player.isSneaking()));
|
||||
}
|
||||
|
||||
info.cancel();
|
||||
|
@ -133,7 +133,7 @@ public class MixinClientPlayerInteractionManager {
|
|||
if (result != ActionResult.PASS) {
|
||||
if (result == ActionResult.SUCCESS) {
|
||||
Vec3d hitVec = hitResult.getPos().subtract(entity.getX(), entity.getY(), entity.getZ());
|
||||
this.networkHandler.sendPacket(new PlayerInteractEntityC2SPacket(entity, hand, hitVec, player.isSneaking()));
|
||||
this.networkHandler.sendPacket(PlayerInteractEntityC2SPacket.method_34208(entity, player.isSneaking(), hand, hitVec));
|
||||
}
|
||||
|
||||
info.setReturnValue(result);
|
||||
|
|
|
@ -23,34 +23,35 @@ import org.spongepowered.asm.mixin.injection.Inject;
|
|||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.server.network.ServerPlayNetworkHandler;
|
||||
import net.minecraft.server.network.ServerPlayerEntity;
|
||||
import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket;
|
||||
import net.minecraft.entity.player.PlayerEntity;
|
||||
import net.minecraft.util.ActionResult;
|
||||
import net.minecraft.util.Hand;
|
||||
import net.minecraft.util.hit.EntityHitResult;
|
||||
import net.minecraft.util.math.Vec3d;
|
||||
import net.minecraft.server.network.ServerPlayNetworkHandler;
|
||||
import net.minecraft.network.packet.c2s.play.PlayerInteractEntityC2SPacket;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraft.server.world.ServerWorld;
|
||||
|
||||
import net.fabricmc.fabric.api.event.player.UseEntityCallback;
|
||||
|
||||
@Mixin(ServerPlayNetworkHandler.class)
|
||||
public class MixinServerPlayNetworkHandler {
|
||||
@Shadow
|
||||
public ServerPlayerEntity player;
|
||||
@Mixin(targets = "net/minecraft/server/network/ServerPlayNetworkHandler$1")
|
||||
public abstract class MixinServerPlayNetworkHandler implements PlayerInteractEntityC2SPacket.class_5908 {
|
||||
@Shadow(aliases = {"field_28963"})
|
||||
public ServerPlayNetworkHandler serverPlayNetworkHandler;
|
||||
|
||||
@Inject(method = "onPlayerInteractEntity", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/Entity;interactAt(Lnet/minecraft/entity/player/PlayerEntity;Lnet/minecraft/util/math/Vec3d;Lnet/minecraft/util/Hand;)Lnet/minecraft/util/ActionResult;"), cancellable = true)
|
||||
public void onPlayerInteractEntity(PlayerInteractEntityC2SPacket packet, CallbackInfo info) {
|
||||
@Shadow(aliases = {"field_28962"})
|
||||
public Entity entity;
|
||||
|
||||
@Inject(method = "method_34220", at = @At(value = "HEAD"), cancellable = true)
|
||||
public void onPlayerInteractEntity(Hand hand, Vec3d hitPosition, CallbackInfo info) {
|
||||
PlayerEntity player = serverPlayNetworkHandler.player;
|
||||
World world = player.getEntityWorld();
|
||||
Entity entity = packet.getEntity((ServerWorld) world);
|
||||
|
||||
if (entity != null) {
|
||||
EntityHitResult hitResult = new EntityHitResult(entity, packet.getHitPosition().add(entity.getX(), entity.getY(), entity.getZ()));
|
||||
EntityHitResult hitResult = new EntityHitResult(entity, hitPosition.add(entity.getX(), entity.getY(), entity.getZ()));
|
||||
ActionResult result = UseEntityCallback.EVENT.invoker().interact(player, world, hand, entity, hitResult);
|
||||
|
||||
ActionResult result = UseEntityCallback.EVENT.invoker().interact(player, world, packet.getHand(), entity, hitResult);
|
||||
|
||||
if (result != ActionResult.PASS) {
|
||||
info.cancel();
|
||||
}
|
||||
if (result != ActionResult.PASS) {
|
||||
info.cancel();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
archivesBaseName = "fabric-networking-api-v1"
|
||||
version = getSubprojectVersion(project, "1.0.4")
|
||||
version = getSubprojectVersion(project, "1.0.5")
|
||||
|
||||
moduleDependencies(project, [
|
||||
'fabric-api-base'
|
||||
|
|
|
@ -162,7 +162,14 @@ public final class ServerLoginNetworkAddon extends AbstractNetworkAddon<ServerLo
|
|||
@Override
|
||||
public Packet<?> createPacket(Identifier channelName, PacketByteBuf buf) {
|
||||
int queryId = this.queryIdFactory.nextId();
|
||||
LoginQueryRequestS2CPacket ret = new LoginQueryRequestS2CPacket();
|
||||
|
||||
// Create the packet with a dummy packet buffer and then overwrite the contents after, a bit of a hack but should be ok.
|
||||
PacketByteBuf dummy = PacketByteBufs.create();
|
||||
dummy.writeVarInt(-1);
|
||||
dummy.writeIdentifier(new Identifier("fabric", "temp"));
|
||||
dummy.writeByte(1);
|
||||
|
||||
LoginQueryRequestS2CPacket ret = new LoginQueryRequestS2CPacket(dummy);
|
||||
// The constructor for creating a non-empty response was removed by proguard
|
||||
LoginQueryRequestS2CPacketAccessor access = (LoginQueryRequestS2CPacketAccessor) ret;
|
||||
access.setQueryId(queryId);
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
archivesBaseName = "fabric-structure-api-v1"
|
||||
version = getSubprojectVersion(project, "1.1.5")
|
||||
version = getSubprojectVersion(project, "1.1.6")
|
||||
|
|
|
@ -76,14 +76,14 @@ public class StructureTest {
|
|||
}
|
||||
|
||||
public static class Start extends StructureStart<DefaultFeatureConfig> {
|
||||
public Start(StructureFeature<DefaultFeatureConfig> feature, int chunkX, int chunkZ, BlockBox box, int references, long seed) {
|
||||
super(feature, chunkX, chunkZ, box, references, seed);
|
||||
public Start(StructureFeature<DefaultFeatureConfig> feature, ChunkPos chunkPos, BlockBox blockBox, int i, long l) {
|
||||
super(feature, chunkPos, blockBox, i, l);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, StructureManager manager, int chunkX, int chunkZ, Biome biome, DefaultFeatureConfig config, HeightLimitView heightLimitView) {
|
||||
int blockX = chunkX * 16;
|
||||
int blockZ = chunkZ * 16;
|
||||
public void init(DynamicRegistryManager registryManager, ChunkGenerator chunkGenerator, StructureManager manager, ChunkPos chunkPos, Biome biome, DefaultFeatureConfig featureConfig, HeightLimitView heightLimitView) {
|
||||
int blockX = chunkPos.getStartX();
|
||||
int blockZ = chunkPos.getStartZ();
|
||||
int blockY = chunkGenerator.getHeight(blockX, blockZ, Heightmap.Type.WORLD_SURFACE_WG, heightLimitView);
|
||||
|
||||
TestStructureGenerator generator = new TestStructureGenerator(random, blockX, blockY, blockZ);
|
||||
|
|
Loading…
Add table
Reference in a new issue