Update to 1.20.3

This commit is contained in:
hhhzzzsss 2023-12-06 20:34:44 -06:00
parent 8fd31327b4
commit 6d2051d47d
8 changed files with 68 additions and 47 deletions

View file

@ -4,15 +4,15 @@ org.gradle.parallel=true
# Fabric Properties
# check these on https://fabricmc.net/use
minecraft_version=1.20.1
yarn_mappings=1.20.1+build.2
loader_version=0.14.21
minecraft_version=1.20.3
yarn_mappings=1.20.3+build.1
loader_version=0.15.0
# Mod Properties
mod_version = 3.1.1
mod_version = 3.1.2
maven_group = com.github.hhhzzzsss
archives_base_name = song-player
# Dependencies
# currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api
fabric_version=0.83.1+1.20.1
fabric_version=0.91.1+1.20.3

View file

@ -41,7 +41,7 @@ public class FakePlayerEntity extends OtherClientPlayerEntity {
capeY = getY();
capeZ = getZ();
world.addEntity(getId(), this);
world.addEntity(this);
}
public void resetPlayerPosition() {

View file

@ -6,7 +6,7 @@ import net.minecraft.command.CommandSource;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NbtList;
import net.minecraft.nbt.NbtString;
import net.minecraft.text.LiteralTextContent;
import net.minecraft.text.PlainTextContent;
import net.minecraft.text.MutableText;
import net.minecraft.text.Style;
import net.minecraft.text.Text;
@ -216,19 +216,19 @@ public class Util {
}
public static MutableText getStyledText(String str, Style style) {
MutableText text = MutableText.of(new LiteralTextContent(str));
MutableText text = MutableText.of(PlainTextContent.of(str));
text.setStyle(style);
return text;
}
public static void setItemName(ItemStack stack, Text text) {
stack.getOrCreateSubNbt(ItemStack.DISPLAY_KEY).putString(ItemStack.NAME_KEY, Text.Serializer.toJson(text));
stack.getOrCreateSubNbt(ItemStack.DISPLAY_KEY).putString(ItemStack.NAME_KEY, Text.Serialization.toJsonString(text));
}
public static void setItemLore(ItemStack stack, Text... loreLines) {
NbtList lore = new NbtList();
for (Text line : loreLines) {
lore.add(NbtString.of(Text.Serializer.toJson(line)));
lore.add(NbtString.of(Text.Serialization.toJsonString(line)));
}
stack.getOrCreateSubNbt(ItemStack.DISPLAY_KEY).put(ItemStack.LORE_KEY, lore);
}

View file

@ -54,7 +54,7 @@ public class SongItemConfirmationScreen extends Screen {
@Override
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
this.renderBackground(context);
this.renderBackground(context, mouseX, mouseY, delta);
context.drawCenteredTextWithShadow(textRenderer, this.title, this.width / 2, 40, 0xFFFFFF);

View file

@ -0,0 +1,55 @@
package com.github.hhhzzzsss.songplayer.mixin;
import com.github.hhhzzzsss.songplayer.Config;
import com.github.hhhzzzsss.songplayer.SongPlayer;
import com.github.hhhzzzsss.songplayer.playing.SongHandler;
import com.github.hhhzzzsss.songplayer.playing.Stage;
import net.minecraft.client.network.ClientCommonNetworkHandler;
import net.minecraft.entity.EntityPose;
import net.minecraft.network.ClientConnection;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(ClientCommonNetworkHandler.class)
public class ClientCommonNetworkHandlerMixin {
@Shadow
private final ClientConnection connection;
public ClientCommonNetworkHandlerMixin() {
connection = null;
}
@Inject(at = @At("HEAD"), method = "sendPacket(Lnet/minecraft/network/packet/Packet;)V", cancellable = true)
private void onSendPacket(Packet<?> packet, CallbackInfo ci) {
Stage stage = SongHandler.getInstance().stage;
if (stage != null && packet instanceof PlayerMoveC2SPacket) {
if (!Config.getConfig().rotate) {
connection.send(new PlayerMoveC2SPacket.Full(stage.position.getX() + 0.5, stage.position.getY(), stage.position.getZ() + 0.5, SongPlayer.MC.player.getYaw(), SongPlayer.MC.player.getPitch(), true));
if (SongPlayer.fakePlayer != null) {
SongPlayer.fakePlayer.copyStagePosAndPlayerLook();
}
}
ci.cancel();
}
else if (packet instanceof ClientCommandC2SPacket) {
ClientCommandC2SPacket.Mode mode = ((ClientCommandC2SPacket) packet).getMode();
if (SongPlayer.fakePlayer != null) {
if (mode == ClientCommandC2SPacket.Mode.PRESS_SHIFT_KEY) {
SongPlayer.fakePlayer.setSneaking(true);
SongPlayer.fakePlayer.setPose(EntityPose.CROUCHING);
}
else if (mode == ClientCommandC2SPacket.Mode.RELEASE_SHIFT_KEY) {
SongPlayer.fakePlayer.setSneaking(false);
SongPlayer.fakePlayer.setPose(EntityPose.STANDING);
}
}
}
}
}

View file

@ -23,41 +23,6 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(ClientPlayNetworkHandler.class)
public class ClientPlayNetworkHandlerMixin {
@Shadow
private final ClientConnection connection;
public ClientPlayNetworkHandlerMixin() {
connection = null;
}
@Inject(at = @At("HEAD"), method = "sendPacket(Lnet/minecraft/network/packet/Packet;)V", cancellable = true)
private void onSendPacket(Packet<?> packet, CallbackInfo ci) {
Stage stage = SongHandler.getInstance().stage;
if (stage != null && packet instanceof PlayerMoveC2SPacket) {
if (!Config.getConfig().rotate) {
connection.send(new PlayerMoveC2SPacket.Full(stage.position.getX() + 0.5, stage.position.getY(), stage.position.getZ() + 0.5, SongPlayer.MC.player.getYaw(), SongPlayer.MC.player.getPitch(), true));
if (SongPlayer.fakePlayer != null) {
SongPlayer.fakePlayer.copyStagePosAndPlayerLook();
}
}
ci.cancel();
}
else if (packet instanceof ClientCommandC2SPacket) {
ClientCommandC2SPacket.Mode mode = ((ClientCommandC2SPacket) packet).getMode();
if (SongPlayer.fakePlayer != null) {
if (mode == ClientCommandC2SPacket.Mode.PRESS_SHIFT_KEY) {
SongPlayer.fakePlayer.setSneaking(true);
SongPlayer.fakePlayer.setPose(EntityPose.CROUCHING);
}
else if (mode == ClientCommandC2SPacket.Mode.RELEASE_SHIFT_KEY) {
SongPlayer.fakePlayer.setSneaking(false);
SongPlayer.fakePlayer.setPose(EntityPose.STANDING);
}
}
}
}
@Inject(at = @At("HEAD"), method = "sendChatMessage(Ljava/lang/String;)V", cancellable=true)
private void onSendChatMessage(String content, CallbackInfo ci) {
boolean isCommand = CommandProcessor.processChatMessage(content);

View file

@ -28,7 +28,7 @@
"depends": {
"fabricloader": ">=0.14.11",
"fabric": "*",
"minecraft": "1.20.x",
"minecraft": "1.20.3",
"java": ">=17"
},
"suggests": {

View file

@ -7,6 +7,7 @@
],
"client": [
"ChatInputSuggestorMixin",
"ClientCommonNetworkHandlerMixin",
"ClientPlayerInteractionManagerAccessor",
"ClientPlayNetworkHandlerAccessor",
"ClientPlayNetworkHandlerMixin",