From f25b525833c6414544c780e2a933a46a772a1f4a Mon Sep 17 00:00:00 2001 From: enjarai Date: Mon, 29 Apr 2024 12:40:35 +0200 Subject: [PATCH 01/18] Switch to cicada dummy entity --- gradle.properties | 2 +- .../showmeyourskin/ShowMeYourSkinClient.java | 2 +- .../client/cursed/CursedRegistry.java | 222 ------------------ .../client/cursed/CursedRegistryEntry.java | 71 ------ .../cursed/DummyClientPlayNetworkHandler.java | 115 --------- .../cursed/DummyClientPlayerEntity.java | 88 ------- .../client/cursed/DummyClientWorld.java | 40 ---- .../gui/ServerIntegratedConfigScreen.java | 2 +- .../gui/widget/ArmorConfigWindow.java | 62 +---- .../gui/widget/ConfigEntryWidget.java | 2 +- .../gui/widget/PlayerSelectorEntry.java | 2 +- .../gui/widget/PlayerSelectorWidget.java | 2 +- .../mixin/LivingEntityRendererMixin.java | 2 +- 13 files changed, 14 insertions(+), 598 deletions(-) delete mode 100644 src/main/java/nl/enjarai/showmeyourskin/client/cursed/CursedRegistry.java delete mode 100644 src/main/java/nl/enjarai/showmeyourskin/client/cursed/CursedRegistryEntry.java delete mode 100644 src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientPlayNetworkHandler.java delete mode 100644 src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientPlayerEntity.java delete mode 100644 src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientWorld.java diff --git a/gradle.properties b/gradle.properties index a5e14c0..b6e413c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -23,6 +23,6 @@ git_branch=master fabric_version=0.91.2+1.20.4 # https://modrinth.com/mod/modmenu/versions modmenu_version=9.0.0-pre.1 -cicada_version=0.6.2+1.20.2-and-above +cicada_version=0.7.0+1.20.2-and-above # https://github.com/OnyxStudios/Cardinal-Components-API/releases cardinal_components_version=5.4.0 \ No newline at end of file diff --git a/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkinClient.java b/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkinClient.java index 811334c..fb176de 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkinClient.java +++ b/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkinClient.java @@ -10,10 +10,10 @@ import net.minecraft.client.gui.screen.Screen; import net.minecraft.nbt.NbtCompound; import nl.enjarai.cicada.api.conversation.ConversationManager; +import nl.enjarai.cicada.api.cursed.DummyClientPlayerEntity; import nl.enjarai.cicada.api.util.CicadaEntrypoint; import nl.enjarai.cicada.api.util.JsonSource; import nl.enjarai.showmeyourskin.client.ModKeyBindings; -import nl.enjarai.showmeyourskin.client.cursed.DummyClientPlayerEntity; import nl.enjarai.showmeyourskin.config.ArmorConfig; import nl.enjarai.showmeyourskin.config.ModConfig; import nl.enjarai.showmeyourskin.config.SyncedModConfig; diff --git a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/CursedRegistry.java b/src/main/java/nl/enjarai/showmeyourskin/client/cursed/CursedRegistry.java deleted file mode 100644 index 20fcc95..0000000 --- a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/CursedRegistry.java +++ /dev/null @@ -1,222 +0,0 @@ -package nl.enjarai.showmeyourskin.client.cursed; - -import com.mojang.datafixers.util.Pair; -import com.mojang.serialization.Lifecycle; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryWrapper; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.registry.entry.RegistryEntryList; -import net.minecraft.registry.entry.RegistryEntryOwner; -import net.minecraft.registry.tag.TagKey; -import net.minecraft.util.Identifier; -import net.minecraft.util.math.random.Random; -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; - -import java.util.*; -import java.util.stream.Stream; - -@SuppressWarnings("deprecation") -public record CursedRegistry(RegistryKey> registryKey, Identifier defaultId, T defaultValue) implements Registry, RegistryEntryOwner { - - @Override - public RegistryKey> getKey() { - return registryKey; - } - - @Nullable - @Override - public Identifier getId(T value) { - return defaultId; - } - - @Override - public Optional> getKey(T entry) { - return Optional.empty(); - } - - @Override - public int getRawId(@Nullable T value) { - return 0; - } - - @Nullable - @Override - public T get(int index) { - return defaultValue; - } - - @Override - public int size() { - return 1; - } - - @Nullable - @Override - public T get(@Nullable RegistryKey key) { - return defaultValue; - } - - @Nullable - @Override - public T get(@Nullable Identifier id) { - return defaultValue; - } - - @Override - public Lifecycle getEntryLifecycle(T entry) { - return Lifecycle.experimental(); - } - - @Override - public Lifecycle getLifecycle() { - return Lifecycle.experimental(); - } - - @Override - public Set getIds() { - return Set.of(defaultId); - } - - @Override - public Set, T>> getEntrySet() { - return Set.of(); - } - - @Override - public Set> getKeys() { - return Set.of(); - } - - @Override - public Optional> getRandom(Random random) { - return Optional.empty(); - } - - @Override - public boolean containsId(Identifier id) { - return true; - } - - @Override - public boolean contains(RegistryKey key) { - return true; - } - - @Override - public Registry freeze() { - return this; - } - - @Override - public RegistryEntry.Reference createEntry(T value) { - return RegistryEntry.Reference.intrusive(this, value); - } - - @Override - public Optional> getEntry(int rawId) { - return Optional.empty(); - } - - @Override - public Optional> getEntry(RegistryKey key) { - return Optional.of(RegistryEntry.Reference.standAlone(this, key)); - } - - @Override - public RegistryEntry getEntry(T value) { - return RegistryEntry.of(value); - } - - @Override - public Stream> streamEntries() { - return null; - } - - @Override - public Optional> getEntryList(TagKey tag) { - return Optional.empty(); - } - - @Override - public RegistryEntryList.Named getOrCreateEntryList(TagKey tag) { - return RegistryEntryList.of(this, tag); - } - - @Override - public Stream, RegistryEntryList.Named>> streamTagsAndEntries() { - return Stream.empty(); - } - - @Override - public Stream> streamTags() { - return Stream.empty(); - } - - @Override - public void clearTags() { - - } - - @Override - public void populateTags(Map, List>> tagEntries) { - - } - - @Override - public RegistryEntryOwner getEntryOwner() { - return this; - } - - @Override - public RegistryWrapper.Impl getReadOnlyWrapper() { - return new RegistryWrapper.Impl() { - @Override - public RegistryKey> getRegistryKey() { - return CursedRegistry.this.registryKey; - } - - @Override - public Lifecycle getLifecycle() { - return Lifecycle.experimental(); - } - - @Override - public Stream> streamEntries() { - return Stream.empty(); - } - - @Override - public Stream> streamTags() { - return Stream.empty(); - } - - @Override - public Optional> getOptional(RegistryKey key) { - return Optional.empty(); - } - - @Override - public Optional> getOptional(TagKey tag) { - return Optional.empty(); - } - }; - } - - @NotNull - @Override - public Iterator iterator() { - return new Iterator() { - @Override - public boolean hasNext() { - return false; - } - - @Override - public T next() { - return null; - } - }; - } -} diff --git a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/CursedRegistryEntry.java b/src/main/java/nl/enjarai/showmeyourskin/client/cursed/CursedRegistryEntry.java deleted file mode 100644 index cd594d5..0000000 --- a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/CursedRegistryEntry.java +++ /dev/null @@ -1,71 +0,0 @@ -package nl.enjarai.showmeyourskin.client.cursed; - -import com.mojang.datafixers.util.Either; -import net.minecraft.registry.Registry; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.registry.entry.RegistryEntryOwner; -import net.minecraft.registry.tag.TagKey; -import net.minecraft.util.Identifier; -import nl.enjarai.showmeyourskin.ShowMeYourSkin; - -import java.util.Optional; -import java.util.function.Predicate; -import java.util.stream.Stream; - -public record CursedRegistryEntry(T value, RegistryKey> key) implements RegistryEntry { - @Override - public boolean hasKeyAndValue() { - return true; - } - - @Override - public boolean matchesId(Identifier id) { - return false; - } - - @Override - public boolean matchesKey(RegistryKey key) { - return false; - } - - @Override - public boolean isIn(TagKey tag) { - return false; - } - - @Override - public boolean matches(Predicate> predicate) { - return false; - } - - @Override - public Either, T> getKeyOrValue() { - return Either.right(this.value); - } - - @Override - public Optional> getKey() { - return Optional.of(RegistryKey.of(key, ShowMeYourSkin.id("dummy"))); - } - - @Override - public Type getType() { - return Type.DIRECT; - } - - @Override - public String toString() { - return "CursedRegistryEntry(THIS IS FROM SHOW ME YOUR SKIN, SORRY IN ADVANCE FOR ANY ISSUES CAUSED){" + this.value + "}"; - } - - @Override - public boolean ownerEquals(RegistryEntryOwner owner) { - return true; - } - - @Override - public Stream> streamTags() { - return Stream.of(); - } -} diff --git a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientPlayNetworkHandler.java b/src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientPlayNetworkHandler.java deleted file mode 100644 index 67e595b..0000000 --- a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientPlayNetworkHandler.java +++ /dev/null @@ -1,115 +0,0 @@ -package nl.enjarai.showmeyourskin.client.cursed; - -import com.mojang.serialization.Lifecycle; -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientConnectionState; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.network.ServerInfo; -import net.minecraft.entity.damage.DamageScaling; -import net.minecraft.entity.damage.DamageType; -import net.minecraft.network.ClientConnection; -import net.minecraft.network.NetworkSide; -import net.minecraft.registry.*; -import net.minecraft.registry.entry.RegistryEntry; -import net.minecraft.registry.tag.BlockTags; -import net.minecraft.resource.featuretoggle.FeatureSet; -import net.minecraft.util.math.intprovider.UniformIntProvider; -import net.minecraft.world.biome.Biome; -import net.minecraft.world.dimension.DimensionType; -import net.minecraft.world.dimension.DimensionTypes; -import nl.enjarai.showmeyourskin.ShowMeYourSkin; - -import java.time.Duration; -import java.util.Optional; -import java.util.OptionalLong; -import java.util.stream.Stream; - -public class DummyClientPlayNetworkHandler extends ClientPlayNetworkHandler { - public static final Registry CURSED_DIMENSION_TYPE_REGISTRY = new SimpleRegistry<>(RegistryKeys.DIMENSION_TYPE, Lifecycle.stable()); - static { - Registry.register(CURSED_DIMENSION_TYPE_REGISTRY, ShowMeYourSkin.id("dummy"), new DimensionType( - OptionalLong.of(6000L), - true, - false, - false, - true, - 1.0, - true, - false, - -64, - 384, - 384, - BlockTags.INFINIBURN_OVERWORLD, - DimensionTypes.OVERWORLD_ID, - 0.0f, - new DimensionType.MonsterSettings( - false, - true, - UniformIntProvider.create(0, 7), - 0 - ) - )); - } - - private static DummyClientPlayNetworkHandler instance; - - public static DummyClientPlayNetworkHandler getInstance() { - if (instance == null) instance = new DummyClientPlayNetworkHandler(); - return instance; - } - - private static final Registry cursedBiomeRegistry = new SimpleDefaultedRegistry<>("dummy", RegistryKeys.BIOME, Lifecycle.stable(), true) { - @Override - public RegistryEntry.Reference entryOf(RegistryKey key) { - return null; - } - }; - - private static final DynamicRegistryManager.Immutable cursedRegistryManager = new DynamicRegistryManager.Immutable() { - private final CursedRegistry damageTypes = new CursedRegistry<>(RegistryKeys.DAMAGE_TYPE, ShowMeYourSkin.id("fake_damage"), - new DamageType("", DamageScaling.NEVER, 0)); - - @SuppressWarnings({"unchecked", "rawtypes"}) - @Override - public Optional getOptional(RegistryKey key) { - var x = Registries.REGISTRIES.get(key); - if (x != null) { - return Optional.of(x); - } else if (RegistryKeys.DAMAGE_TYPE.equals(key)) { - return Optional.of(damageTypes); - } else if (RegistryKeys.BIOME.equals(key)) { - return Optional.of(cursedBiomeRegistry); - } else if (RegistryKeys.DIMENSION_TYPE.equals(key)) { - return Optional.of(CURSED_DIMENSION_TYPE_REGISTRY); - } - - return Optional.empty(); - } - - @Override - public Stream> streamAllRegistries() { - return Stream.empty(); - } - }; - - private DummyClientPlayNetworkHandler() { - super( - MinecraftClient.getInstance(), - new ClientConnection(NetworkSide.CLIENTBOUND), - new ClientConnectionState( - MinecraftClient.getInstance().getGameProfile(), - MinecraftClient.getInstance().getTelemetryManager().createWorldSession(true, Duration.ZERO, null), - cursedRegistryManager.toImmutable(), - FeatureSet.empty(), - "", - new ServerInfo("", "", ServerInfo.ServerType.OTHER), - null - ) - ); - } - - @Override - public DynamicRegistryManager.Immutable getRegistryManager() { - return cursedRegistryManager; - } -} diff --git a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientPlayerEntity.java b/src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientPlayerEntity.java deleted file mode 100644 index 0aa924c..0000000 --- a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientPlayerEntity.java +++ /dev/null @@ -1,88 +0,0 @@ -package nl.enjarai.showmeyourskin.client.cursed; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.network.ClientPlayNetworkHandler; -import net.minecraft.client.network.ClientPlayerEntity; -import net.minecraft.client.network.PlayerListEntry; -import net.minecraft.client.render.entity.PlayerModelPart; -import net.minecraft.client.util.DefaultSkinHelper; -import net.minecraft.client.util.SkinTextures; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.entity.EquipmentSlot; -import net.minecraft.entity.player.PlayerEntity; -import net.minecraft.item.ItemStack; -import net.minecraft.text.Text; -import org.jetbrains.annotations.Nullable; - -import java.util.UUID; -import java.util.function.Function; - -public class DummyClientPlayerEntity extends ClientPlayerEntity { - private static DummyClientPlayerEntity instance; - private SkinTextures skinTextures = null; - private PlayerEntity player = null; - public Function equippedStackSupplier = slot -> ItemStack.EMPTY; - - public static DummyClientPlayerEntity getInstance() { - if (instance == null) instance = new DummyClientPlayerEntity() { - @Override - public Text getName() { - return Text.translatable("gui.showmeyourskin.armorScreen.global"); - } - }; - return instance; - } - - private DummyClientPlayerEntity() { - super(MinecraftClient.getInstance(), DummyClientWorld.getInstance(), DummyClientPlayNetworkHandler.getInstance(), null, null,false, false); - setUuid(UUID.randomUUID()); - MinecraftClient.getInstance().getSkinProvider().fetchSkinTextures(getGameProfile()).thenAccept((textures) -> { - skinTextures = textures; - }); - } - - public DummyClientPlayerEntity(@Nullable PlayerEntity player, UUID uuid, SkinTextures skinTextures) { - this(player, uuid, skinTextures, DummyClientWorld.getInstance(), DummyClientPlayNetworkHandler.getInstance()); - } - - public DummyClientPlayerEntity(@Nullable PlayerEntity player, UUID uuid, SkinTextures skinTextures, ClientWorld world, ClientPlayNetworkHandler networkHandler) { - super(MinecraftClient.getInstance(), world, networkHandler, null, null,false, false); - this.player = player; - setUuid(uuid); - this.skinTextures = skinTextures; - } - - @Override - public boolean isPartVisible(PlayerModelPart modelPart) { - return true; - } - - @Override - public SkinTextures getSkinTextures() { - return skinTextures == null ? DefaultSkinHelper.getSkinTextures(this.getUuid()) : skinTextures; - } - - @Nullable - @Override - protected PlayerListEntry getPlayerListEntry() { - return null; - } - - @Override - public boolean isSpectator() { - return false; - } - - @Override - public boolean isCreative() { - return true; - } - - @Override - public ItemStack getEquippedStack(EquipmentSlot slot) { - if (player != null) { - return player.getEquippedStack(slot); - } - return equippedStackSupplier.apply(slot); - } -} diff --git a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientWorld.java b/src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientWorld.java deleted file mode 100644 index 4084126..0000000 --- a/src/main/java/nl/enjarai/showmeyourskin/client/cursed/DummyClientWorld.java +++ /dev/null @@ -1,40 +0,0 @@ -package nl.enjarai.showmeyourskin.client.cursed; - -import net.minecraft.client.MinecraftClient; -import net.minecraft.client.world.ClientWorld; -import net.minecraft.registry.DynamicRegistryManager; -import net.minecraft.registry.RegistryKey; -import net.minecraft.registry.RegistryKeys; -import net.minecraft.world.Difficulty; -import nl.enjarai.showmeyourskin.ShowMeYourSkin; - -public class DummyClientWorld extends ClientWorld { - - private static DummyClientWorld instance; - - public static DummyClientWorld getInstance() { - if (instance == null) instance = new DummyClientWorld(); - return instance; - } - - private DummyClientWorld() { - super( - DummyClientPlayNetworkHandler.getInstance(), - new Properties(Difficulty.EASY, false, true), - RegistryKey.of(RegistryKeys.WORLD, ShowMeYourSkin.id("dummy")), - DummyClientPlayNetworkHandler.CURSED_DIMENSION_TYPE_REGISTRY.entryOf( - RegistryKey.of(RegistryKeys.DIMENSION_TYPE, ShowMeYourSkin.id("dummy"))), - 0, - 0, - () -> MinecraftClient.getInstance().getProfiler(), - MinecraftClient.getInstance().worldRenderer, - false, - 0L - ); - } - - @Override - public DynamicRegistryManager getRegistryManager() { - return super.getRegistryManager(); - } -} diff --git a/src/main/java/nl/enjarai/showmeyourskin/gui/ServerIntegratedConfigScreen.java b/src/main/java/nl/enjarai/showmeyourskin/gui/ServerIntegratedConfigScreen.java index bc7d765..e9ac56b 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/gui/ServerIntegratedConfigScreen.java +++ b/src/main/java/nl/enjarai/showmeyourskin/gui/ServerIntegratedConfigScreen.java @@ -4,9 +4,9 @@ import net.minecraft.client.gui.screen.ButtonTextures; import net.minecraft.client.gui.screen.Screen; import net.minecraft.text.Text; +import nl.enjarai.cicada.api.cursed.DummyClientPlayerEntity; import nl.enjarai.showmeyourskin.Components; import nl.enjarai.showmeyourskin.ShowMeYourSkinClient; -import nl.enjarai.showmeyourskin.client.cursed.DummyClientPlayerEntity; import nl.enjarai.showmeyourskin.config.ModConfig; import nl.enjarai.showmeyourskin.gui.widget.ArmorConfigWindow; import nl.enjarai.showmeyourskin.gui.widget.PressButtonWidget; diff --git a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java index ad20894..56f8d34 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java +++ b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java @@ -31,10 +31,11 @@ import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; import net.minecraft.util.math.RotationAxis; +import nl.enjarai.cicada.api.cursed.DummyClientPlayerEntity; +import nl.enjarai.cicada.api.screen.DrawUtils; import nl.enjarai.showmeyourskin.ShowMeYourSkin; import nl.enjarai.showmeyourskin.ShowMeYourSkinClient; import nl.enjarai.showmeyourskin.client.cursed.AlwaysGlintingStack; -import nl.enjarai.showmeyourskin.client.cursed.DummyClientPlayerEntity; import nl.enjarai.showmeyourskin.config.ArmorConfig; import nl.enjarai.showmeyourskin.config.HideableEquipment; import nl.enjarai.showmeyourskin.config.ModConfig; @@ -226,7 +227,11 @@ public void render(DrawContext context, int mouseX, int mouseY, float delta) { getWindowRight() - 112, getWindowTop() + 8, getWindowRight() - 5, getWindowTop() + 168 ); - drawEntity(matrices, 0, 0, 70, -mouseX + playerX, -mouseY + playerY - 110, player); + DrawUtils.drawEntityFollowingMouse( + matrices, 0, 0, 70, + getCurrentPlayerRotation(), mouseX - playerX, mouseY - playerY, + player + ); context.disableScissor(); matrices.pop(); @@ -395,59 +400,6 @@ public SelectionType getType() { return SelectionType.NONE; } - public void drawEntity(MatrixStack matrices, int x, int y, int size, double mouseX, double mouseY, LivingEntity entity) { - float f = (float) (Math.atan(mouseX / 40.0F) * Math.sin((getCurrentPlayerRotation() / 180.0 + 0.5) * Math.PI)); - float g = (float)Math.atan(mouseY / 40.0F); - Quaternionf quaternionf = (new Quaternionf()).rotateZ(3.1415927F); - Quaternionf quaternionf2 = (new Quaternionf()).rotateX(g * 20.0F * 0.017453292F); - quaternionf.mul(quaternionf2); - float h = entity.bodyYaw; - float i = entity.getYaw(); - float j = entity.getPitch(); - float k = entity.prevHeadYaw; - float l = entity.headYaw; - entity.bodyYaw = 180.0F + f * 20.0F; - entity.setYaw(180.0F + f * 40.0F); - entity.setPitch(-g * 20.0F); - entity.headYaw = entity.getYaw(); - entity.prevHeadYaw = entity.getYaw(); - drawEntity(matrices, x, y, size, quaternionf, quaternionf2, entity); - entity.bodyYaw = h; - entity.setYaw(i); - entity.setPitch(j); - entity.prevHeadYaw = k; - entity.headYaw = l; - } - - @SuppressWarnings("deprecation") - public static void drawEntity(MatrixStack matrices, int x, int y, int size, Quaternionf quaternionf, @Nullable Quaternionf quaternionf2, LivingEntity entity) { - MatrixStack matrixStack = RenderSystem.getModelViewStack(); - matrixStack.push(); - matrixStack.translate(0.0, 0.0, 1000.0); - RenderSystem.applyModelViewMatrix(); - matrices.push(); - matrices.translate(x, y, -950.0); - matrices.multiplyPositionMatrix(new Matrix4f().scaling(size, size, -size)); - matrices.translate(0, -1, 0); - matrices.multiply(quaternionf); - matrices.translate(0, -1, 0); - DiffuseLighting.method_34742(); - EntityRenderDispatcher entityRenderDispatcher = MinecraftClient.getInstance().getEntityRenderDispatcher(); - if (quaternionf2 != null) { - quaternionf2.conjugate(); - entityRenderDispatcher.setRotation(quaternionf2); - } - entityRenderDispatcher.setRenderShadows(false); - VertexConsumerProvider.Immediate immediate = MinecraftClient.getInstance().getBufferBuilders().getEntityVertexConsumers(); - RenderSystem.runAsFancy(() -> entityRenderDispatcher.render(entity, 0.0, 0.0, 0.0, 0.0f, 1.0f, matrices, immediate, 0xF000F0)); - immediate.draw(); - entityRenderDispatcher.setRenderShadows(true); - matrices.pop(); - DiffuseLighting.enableGuiDepthLighting(); - matrixStack.pop(); - RenderSystem.applyModelViewMatrix(); - } - private static ItemStack getDummyArmor(EquipmentSlot slot) { return switch (slot) { case HEAD -> HEAD_ARMOR; diff --git a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ConfigEntryWidget.java b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ConfigEntryWidget.java index 5cb5178..715ce37 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ConfigEntryWidget.java +++ b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ConfigEntryWidget.java @@ -10,8 +10,8 @@ import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; import net.minecraft.util.Identifier; +import nl.enjarai.cicada.api.cursed.DummyClientPlayerEntity; import nl.enjarai.showmeyourskin.ShowMeYourSkin; -import nl.enjarai.showmeyourskin.client.cursed.DummyClientPlayerEntity; import nl.enjarai.showmeyourskin.config.ArmorConfig; import nl.enjarai.showmeyourskin.config.ModConfig; diff --git a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PlayerSelectorEntry.java b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PlayerSelectorEntry.java index 5dc2e63..858fa62 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PlayerSelectorEntry.java +++ b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PlayerSelectorEntry.java @@ -13,8 +13,8 @@ import net.minecraft.client.util.SkinTextures; import net.minecraft.sound.SoundEvents; import net.minecraft.text.Text; +import nl.enjarai.cicada.api.cursed.DummyClientPlayerEntity; import nl.enjarai.showmeyourskin.ShowMeYourSkin; -import nl.enjarai.showmeyourskin.client.cursed.DummyClientPlayerEntity; import nl.enjarai.showmeyourskin.config.ModConfig; import java.util.List; diff --git a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PlayerSelectorWidget.java b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PlayerSelectorWidget.java index 04164b5..2aab1eb 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PlayerSelectorWidget.java +++ b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PlayerSelectorWidget.java @@ -6,7 +6,7 @@ import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; import net.minecraft.client.network.PlayerListEntry; import net.minecraft.text.Text; -import nl.enjarai.showmeyourskin.client.cursed.DummyClientPlayerEntity; +import nl.enjarai.cicada.api.cursed.DummyClientPlayerEntity; import org.jetbrains.annotations.Nullable; import java.util.List; diff --git a/src/main/java/nl/enjarai/showmeyourskin/mixin/LivingEntityRendererMixin.java b/src/main/java/nl/enjarai/showmeyourskin/mixin/LivingEntityRendererMixin.java index 7f90c72..a4dd135 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/mixin/LivingEntityRendererMixin.java +++ b/src/main/java/nl/enjarai/showmeyourskin/mixin/LivingEntityRendererMixin.java @@ -2,7 +2,7 @@ import net.minecraft.client.render.entity.LivingEntityRenderer; import net.minecraft.entity.LivingEntity; -import nl.enjarai.showmeyourskin.client.cursed.DummyClientPlayerEntity; +import nl.enjarai.cicada.api.cursed.DummyClientPlayerEntity; import nl.enjarai.showmeyourskin.config.ModConfig; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; From eb69a5ac2dd3a99032b55494b0bc60ba3a693a81 Mon Sep 17 00:00:00 2001 From: enjarai Date: Mon, 29 Apr 2024 16:24:29 +0200 Subject: [PATCH 02/18] Update to 1.20.5 (merge ours) --- build.gradle | 12 +++--- gradle.properties | 16 ++++---- gradle/wrapper/gradle-wrapper.properties | 2 +- .../nl/enjarai/showmeyourskin/Components.java | 10 ++--- .../showmeyourskin/ShowMeYourSkin.java | 37 +++++++++++-------- .../showmeyourskin/ShowMeYourSkinClient.java | 17 ++++----- .../showmeyourskin/config/ArmorConfig.java | 15 +++++++- .../config/HideableEquipment.java | 11 ++++++ .../config/SyncedModConfig.java | 8 ++++ .../gui/widget/ArmorConfigWindow.java | 14 ++----- .../armor/ArmorFeatureRendererMixin.java | 15 ++++---- .../showmeyourskin/net/ConfigSyncPacket.java | 18 +++++++++ .../showmeyourskin/net/HandshakeClient.java | 32 +++++----------- .../showmeyourskin/net/HandshakeServer.java | 28 ++++---------- .../net/SettingsUpdatePacket.java | 18 +++++++++ .../showmeyourskin/net/SyncConfirmPacket.java | 18 +++++++++ .../util/ArmorConfigComponent.java | 13 ++++--- src/main/resources/fabric.mod.json | 2 +- 18 files changed, 171 insertions(+), 115 deletions(-) create mode 100644 src/main/java/nl/enjarai/showmeyourskin/net/ConfigSyncPacket.java create mode 100644 src/main/java/nl/enjarai/showmeyourskin/net/SettingsUpdatePacket.java create mode 100644 src/main/java/nl/enjarai/showmeyourskin/net/SyncConfirmPacket.java diff --git a/build.gradle b/build.gradle index 797a390..07b471a 100644 --- a/build.gradle +++ b/build.gradle @@ -1,11 +1,11 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' id "me.modmuss50.mod-publish-plugin" version "0.4.4" } -sourceCompatibility = JavaVersion.VERSION_17 -targetCompatibility = JavaVersion.VERSION_17 +sourceCompatibility = JavaVersion.VERSION_21 +targetCompatibility = JavaVersion.VERSION_21 archivesBaseName = project.archives_base_name version = project.mod_version @@ -18,8 +18,8 @@ repositories { // See https://docs.gradle.org/current/userguide/declaring_repositories.html // for more information about repositories. - maven { url = "https://maven.enjarai.nl/releases" } - maven { url = "https://maven.enjarai.nl/mirrors" } + maven { url = "https://maven.enjarai.dev/releases" } + maven { url = "https://maven.enjarai.dev/mirrors" } // Mod Menu repository maven { url "https://maven.terraformersmc.com" } @@ -67,7 +67,7 @@ version = "$version+$minecraft_version" tasks.withType(JavaCompile).configureEach { // Minecraft 1.18 (1.18-pre2) upwards uses Java 17. - it.options.release = 17 + it.options.release = 21 } java { diff --git a/gradle.properties b/gradle.properties index b6e413c..91491ac 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,26 +3,26 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.20.4 -yarn_mappings=1.20.4+build.3 +minecraft_version=1.20.5 +yarn_mappings=1.20.5+build.1 loader_version=0.15.2 # Mod Properties -mod_version = 1.9.0 +mod_version = 1.10.0 maven_group = nl.enjarai archives_base_name = show-me-your-skin -publish_target_min=1.20.3 -publish_target_max=1.20.4 +publish_target_min=1.20.5 +publish_target_max=1.20.5 mod_modrinth=bD7YqcA3 mod_curseforge=622010 mod_github=enjarai/show-me-your-skin git_branch=master # Dependencies -fabric_version=0.91.2+1.20.4 +fabric_version=0.97.8+1.20.5 # https://modrinth.com/mod/modmenu/versions -modmenu_version=9.0.0-pre.1 +modmenu_version=10.0.0-beta.1 cicada_version=0.7.0+1.20.2-and-above # https://github.com/OnyxStudios/Cardinal-Components-API/releases -cardinal_components_version=5.4.0 \ No newline at end of file +cardinal_components_version=6.0.0-beta.3 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index db9a6b8..17655d0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/nl/enjarai/showmeyourskin/Components.java b/src/main/java/nl/enjarai/showmeyourskin/Components.java index ffc6ed6..5eb63c7 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/Components.java +++ b/src/main/java/nl/enjarai/showmeyourskin/Components.java @@ -1,12 +1,12 @@ package nl.enjarai.showmeyourskin; -import dev.onyxstudios.cca.api.v3.component.ComponentKey; -import dev.onyxstudios.cca.api.v3.component.ComponentRegistry; -import dev.onyxstudios.cca.api.v3.entity.EntityComponentFactoryRegistry; -import dev.onyxstudios.cca.api.v3.entity.EntityComponentInitializer; -import dev.onyxstudios.cca.api.v3.entity.RespawnCopyStrategy; import nl.enjarai.showmeyourskin.config.ArmorConfig; import nl.enjarai.showmeyourskin.util.ArmorConfigComponent; +import org.ladysnake.cca.api.v3.component.ComponentKey; +import org.ladysnake.cca.api.v3.component.ComponentRegistry; +import org.ladysnake.cca.api.v3.entity.EntityComponentFactoryRegistry; +import org.ladysnake.cca.api.v3.entity.EntityComponentInitializer; +import org.ladysnake.cca.api.v3.entity.RespawnCopyStrategy; public class Components implements EntityComponentInitializer { public static final ComponentKey ARMOR_CONFIG = diff --git a/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkin.java b/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkin.java index fa0247d..6a7424d 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkin.java +++ b/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkin.java @@ -1,6 +1,7 @@ package nl.enjarai.showmeyourskin; import net.fabricmc.api.ModInitializer; +import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; import net.minecraft.server.network.ServerPlayNetworkHandler; @@ -8,7 +9,10 @@ import nl.enjarai.cicada.api.util.ProperLogger; import nl.enjarai.showmeyourskin.config.SyncedModConfig; import nl.enjarai.showmeyourskin.config.SyncedModConfigServer; +import nl.enjarai.showmeyourskin.net.ConfigSyncPacket; import nl.enjarai.showmeyourskin.net.HandshakeServer; +import nl.enjarai.showmeyourskin.net.SettingsUpdatePacket; +import nl.enjarai.showmeyourskin.net.SyncConfirmPacket; import org.slf4j.Logger; public class ShowMeYourSkin implements ModInitializer { @@ -17,8 +21,8 @@ public class ShowMeYourSkin implements ModInitializer { public static final Identifier UPDATE_C2S_CHANNEL = id("update"); public static final Identifier CONFIG_SYNC_CHANNEL = id("config_sync"); - public static final HandshakeServer HANDSHAKE_SERVER = - new HandshakeServer<>(SyncedModConfig.CODEC, () -> SyncedModConfigServer.INSTANCE); + public static final HandshakeServer HANDSHAKE_SERVER = + new HandshakeServer(() -> SyncedModConfigServer.INSTANCE); @Override public void onInitialize() { @@ -28,19 +32,23 @@ public void onInitialize() { } private static void initHandshake() { + PayloadTypeRegistry.playS2C().register(ConfigSyncPacket.PACKET_ID, ConfigSyncPacket.PACKET_CODEC); + PayloadTypeRegistry.playC2S().register(SyncConfirmPacket.PACKET_ID, SyncConfirmPacket.PACKET_CODEC); + PayloadTypeRegistry.playC2S().register(SettingsUpdatePacket.PACKET_ID, SettingsUpdatePacket.PACKET_CODEC); + PayloadTypeRegistry.playS2C().register(SettingsUpdatePacket.PACKET_ID, SettingsUpdatePacket.PACKET_CODEC); + ServerPlayConnectionEvents.INIT.register((handler, server) -> { - ServerPlayNetworking.registerReceiver(handler, CONFIG_SYNC_CHANNEL, (server1, player, handler1, buf, responseSender) -> { - if (HANDSHAKE_SERVER.clientReplied(player, buf) == HandshakeServer.HandshakeState.ACCEPTED) { - startListeningForUpdates(handler1); + ServerPlayNetworking.registerReceiver(handler, SyncConfirmPacket.PACKET_ID, (packet, ctx) -> { + if (HANDSHAKE_SERVER.clientReplied(ctx.player(), packet) == HandshakeServer.HandshakeState.ACCEPTED) { + startListeningForUpdates(handler); - for (var playerEntity : server1.getPlayerManager().getPlayerList()) { + for (var playerEntity : server.getPlayerManager().getPlayerList()) { Components.ARMOR_CONFIG.sync(playerEntity); } } }); - ServerPlayNetworking.send(handler.getPlayer(), CONFIG_SYNC_CHANNEL, - HANDSHAKE_SERVER.getConfigSyncBuf(handler.getPlayer())); + ServerPlayNetworking.send(handler.getPlayer(), HANDSHAKE_SERVER.getSyncPacket(handler.getPlayer())); HANDSHAKE_SERVER.configSentToClient(handler.getPlayer()); @@ -53,14 +61,11 @@ private static void initHandshake() { } private static void startListeningForUpdates(ServerPlayNetworkHandler handler) { - ServerPlayNetworking.registerReceiver(handler, UPDATE_C2S_CHANNEL, (server, player, handler1, buf, responseSender) -> { - var nbt = buf.readNbt(); - if (nbt != null) { - var component = player.getComponent(Components.ARMOR_CONFIG); - component.setFromNbt(nbt); - component.ensureValid(); - Components.ARMOR_CONFIG.sync(player); - } + ServerPlayNetworking.registerReceiver(handler, SettingsUpdatePacket.PACKET_ID, (packet, ctx) -> { + var component = Components.ARMOR_CONFIG.get(ctx.player()); + component.setConfig(packet.settings()); + component.ensureValid(); + Components.ARMOR_CONFIG.sync(ctx.player()); }); } diff --git a/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkinClient.java b/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkinClient.java index fb176de..59f148c 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkinClient.java +++ b/src/main/java/nl/enjarai/showmeyourskin/ShowMeYourSkinClient.java @@ -20,12 +20,14 @@ import nl.enjarai.showmeyourskin.gui.ClientConfigScreen; import nl.enjarai.showmeyourskin.gui.ConfigScreen; import nl.enjarai.showmeyourskin.gui.ServerIntegratedConfigScreen; +import nl.enjarai.showmeyourskin.net.ConfigSyncPacket; import nl.enjarai.showmeyourskin.net.HandshakeClient; +import nl.enjarai.showmeyourskin.net.SettingsUpdatePacket; import org.jetbrains.annotations.Nullable; public class ShowMeYourSkinClient implements ClientModInitializer, CicadaEntrypoint { - public static final HandshakeClient HANDSHAKE_CLIENT = - new HandshakeClient<>(SyncedModConfig.CODEC, config -> {}); + public static final HandshakeClient HANDSHAKE_CLIENT = + new HandshakeClient(config -> {}); @Override public void onInitializeClient() { @@ -43,9 +45,8 @@ public void onInitializeClient() { private void initHandshake() { ClientPlayConnectionEvents.INIT.register((handler, client) -> { - ClientPlayNetworking.registerReceiver(ShowMeYourSkin.CONFIG_SYNC_CHANNEL, (client1, handler1, buf, responseSender) -> { - var returnBuf = HANDSHAKE_CLIENT.handleConfigSync(buf); - responseSender.sendPacket(ShowMeYourSkin.CONFIG_SYNC_CHANNEL, returnBuf); + ClientPlayNetworking.registerReceiver(ConfigSyncPacket.PACKET_ID, (packet, ctx) -> { + ctx.responseSender().sendPacket(HANDSHAKE_CLIENT.handleConfigSync(packet)); }); }); @@ -60,11 +61,7 @@ public static void syncToServer(ArmorConfig config) { var component = player.getComponent(Components.ARMOR_CONFIG); component.setConfig(config); - var buf = PacketByteBufs.create(); - var nbt = new NbtCompound(); - component.writeToNbt(nbt); - buf.writeNbt(nbt); - ClientPlayNetworking.send(ShowMeYourSkin.UPDATE_C2S_CHANNEL, buf); + ClientPlayNetworking.send(new SettingsUpdatePacket(config)); } } diff --git a/src/main/java/nl/enjarai/showmeyourskin/config/ArmorConfig.java b/src/main/java/nl/enjarai/showmeyourskin/config/ArmorConfig.java index fe6a4f5..c6892ba 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/config/ArmorConfig.java +++ b/src/main/java/nl/enjarai/showmeyourskin/config/ArmorConfig.java @@ -2,9 +2,12 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Items; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.codec.PacketCodecs; import java.util.HashMap; import java.util.Map; @@ -12,6 +15,7 @@ import java.util.stream.Collectors; public class ArmorConfig { + public static final ArmorConfig VANILLA_VALUES = new ArmorConfig(); public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Codec.BOOL.fieldOf("showInCombat").forGetter(config -> config.showInCombat), Codec.BOOL.fieldOf("showNameTag").forGetter(config -> config.showNameTag), @@ -19,7 +23,14 @@ public class ArmorConfig { Codec.unboundedMap(HideableEquipment.getSlotCodec(), ArmorPieceConfig.CODEC).fieldOf("trims").forGetter(config -> config.trims), Codec.unboundedMap(HideableEquipment.getCodec(), ArmorPieceConfig.CODEC).fieldOf("glints").forGetter(config -> config.glints) ).apply(instance, ArmorConfig::new)); - public static final ArmorConfig VANILLA_VALUES = new ArmorConfig(); + public static final PacketCodec PACKET_CODEC = PacketCodec.tuple( + PacketCodecs.BOOL, c -> c.showInCombat, + PacketCodecs.BOOL, c -> c.showNameTag, + PacketCodecs.map(HashMap::new, HideableEquipment.getPacketCodec(), ArmorPieceConfig.PACKET_CODEC, VANILLA_VALUES.pieces.size()), ArmorConfig::getPieces, + PacketCodecs.map(HashMap::new, HideableEquipment.getPacketSlotCodec(), ArmorPieceConfig.PACKET_CODEC, VANILLA_VALUES.trims.size()), ArmorConfig::getTrims, + PacketCodecs.map(HashMap::new, HideableEquipment.getPacketCodec(), ArmorPieceConfig.PACKET_CODEC, VANILLA_VALUES.glints.size()), ArmorConfig::getGlints, + ArmorConfig::new + ); public final HashMap pieces = new HashMap<>(); public final HashMap trims = new HashMap<>(); @@ -147,6 +158,8 @@ public int hashCode() { public static class ArmorPieceConfig { public static final Codec CODEC = Codec.BYTE.fieldOf("transparency") .codec().xmap(ArmorPieceConfig::new, ArmorPieceConfig::getTransparency); + public static final PacketCodec PACKET_CODEC = + PacketCodecs.BYTE.xmap(ArmorPieceConfig::new, ArmorPieceConfig::getTransparency); public static final ArmorPieceConfig VANILLA_VALUES = new ArmorPieceConfig(); public byte transparency = 100; diff --git a/src/main/java/nl/enjarai/showmeyourskin/config/HideableEquipment.java b/src/main/java/nl/enjarai/showmeyourskin/config/HideableEquipment.java index dd5fac1..d3e5f49 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/config/HideableEquipment.java +++ b/src/main/java/nl/enjarai/showmeyourskin/config/HideableEquipment.java @@ -1,7 +1,10 @@ package nl.enjarai.showmeyourskin.config; import com.mojang.serialization.Codec; +import io.netty.buffer.ByteBuf; import net.minecraft.entity.EquipmentSlot; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.codec.PacketCodecs; import org.jetbrains.annotations.Nullable; public enum HideableEquipment { @@ -62,4 +65,12 @@ public static Codec getCodec() { public static Codec getSlotCodec() { return Codec.STRING.xmap(EquipmentSlot::byName, EquipmentSlot::getName); } + + public static PacketCodec getPacketCodec() { + return PacketCodecs.STRING.xmap(HideableEquipment::fromId, HideableEquipment::getId); + } + + public static PacketCodec getPacketSlotCodec() { + return PacketCodecs.STRING.xmap(EquipmentSlot::byName, EquipmentSlot::getName); + } } diff --git a/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfig.java b/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfig.java index db09c10..966e24b 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfig.java +++ b/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfig.java @@ -2,12 +2,20 @@ import com.mojang.serialization.Codec; import com.mojang.serialization.codecs.RecordCodecBuilder; +import net.minecraft.network.RegistryByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.codec.PacketCodecs; public interface SyncedModConfig { Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Codec.BOOL.optionalFieldOf("allowNotShowInCombat", true).forGetter(SyncedModConfig::allowNotShowInCombat), Codec.BOOL.optionalFieldOf("allowNotShowNameTag", true).forGetter(SyncedModConfig::allowNotShowNameTag) ).apply(instance, SyncedModConfigClient::new)); + PacketCodec PACKET_CODEC = PacketCodec.tuple( + PacketCodecs.BOOL, SyncedModConfig::allowNotShowInCombat, + PacketCodecs.BOOL, SyncedModConfig::allowNotShowNameTag, + SyncedModConfigClient::new + ); boolean allowNotShowInCombat(); diff --git a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java index 56f8d34..920056d 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java +++ b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java @@ -18,6 +18,8 @@ import net.minecraft.client.sound.PositionedSoundInstance; import net.minecraft.client.sound.SoundManager; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.component.DataComponentTypes; +import net.minecraft.component.type.BannerPatternsComponent; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; import net.minecraft.item.BlockItem; @@ -67,14 +69,6 @@ public class ArmorConfigWindow extends AbstractParentElement implements Drawable private static final ItemStack ELYTRA = new AlwaysGlintingStack(Items.ELYTRA); private static final ItemStack HAT = new AlwaysGlintingStack(Items.CREEPER_HEAD); - static { - var shieldNbt = new NbtCompound(); - NbtList nbtList = new BannerPattern.Patterns().add(BannerPatterns.RHOMBUS, DyeColor.CYAN).toNbt(); - shieldNbt.put("Patterns", nbtList); - shieldNbt.putInt("Base", DyeColor.WHITE.getId()); - BlockItem.setBlockEntityNbt(SHIELD, BlockEntityType.BANNER, shieldNbt); - } - private final List buttons = Lists.newArrayList(); private final List children = Lists.newArrayList(); private final List sliderSetTabs = Lists.newArrayList(); @@ -115,7 +109,7 @@ public ArmorConfigWindow(Screen parent, int x, int y, Text name, DummyClientPlay sliders.add(getGlintButton(HideableEquipment.CHEST, 94, 35)); sliders.add(getGlintButton(HideableEquipment.LEGS, 94, 59)); sliders.add(getGlintButton(HideableEquipment.FEET, 94, 83)); - }, ArmorConfigWindow::getDummyArmor, 0, SoundEvents.ITEM_ARMOR_EQUIP_NETHERITE)) + }, ArmorConfigWindow::getDummyArmor, 0, SoundEvents.ITEM_ARMOR_EQUIP_NETHERITE.value())) ); sliderSetTabs.add(new SliderSetTab(getWindowLeft() - 25, getWindowTop() + 42, 16, 240, new SliderSet(this, getWindowLeft(), getWindowTop(), sliders -> { @@ -129,7 +123,7 @@ public ArmorConfigWindow(Screen parent, int x, int y, Text name, DummyClientPlay sliders.add(getGlintButton(HideableEquipment.ELYTRA, 94, 11)); sliders.add(getGlintButton(HideableEquipment.SHIELD, 94, 35)); sliders.add(getGlintButton(HideableEquipment.HAT, 94, 59)); - }, ArmorConfigWindow::getDummyEquipment, -180, SoundEvents.ITEM_ARMOR_EQUIP_ELYTRA)) + }, ArmorConfigWindow::getDummyEquipment, -180, SoundEvents.ITEM_ARMOR_EQUIP_ELYTRA.value())) ); selectTab(sliderSetTabs.get(tabIndex)); diff --git a/src/main/java/nl/enjarai/showmeyourskin/mixin/armor/ArmorFeatureRendererMixin.java b/src/main/java/nl/enjarai/showmeyourskin/mixin/armor/ArmorFeatureRendererMixin.java index 39c24e6..b409cf6 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/mixin/armor/ArmorFeatureRendererMixin.java +++ b/src/main/java/nl/enjarai/showmeyourskin/mixin/armor/ArmorFeatureRendererMixin.java @@ -11,11 +11,13 @@ import net.minecraft.client.texture.Sprite; import net.minecraft.client.texture.SpriteAtlasTexture; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.component.DataComponentTypes; import net.minecraft.entity.EquipmentSlot; import net.minecraft.entity.LivingEntity; import net.minecraft.item.ArmorItem; import net.minecraft.item.ArmorMaterial; import net.minecraft.item.trim.ArmorTrim; +import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.Identifier; import nl.enjarai.showmeyourskin.client.ModRenderLayers; import nl.enjarai.showmeyourskin.compat.armored_elytra.ArmoredElytraCompat; @@ -35,8 +37,6 @@ @Mixin(value = ArmorFeatureRenderer.class, priority = 500) public abstract class ArmorFeatureRendererMixin, A extends BipedEntityModel> { - @Shadow protected abstract Identifier getArmorTexture(ArmorItem item, boolean legs, @Nullable String overlay); - @Shadow @Final private SpriteAtlasTexture armorTrimsAtlas; @Unique @@ -72,14 +72,14 @@ public abstract class ArmorFeatureRendererMixin 0) { VertexConsumer vertexConsumer = vertexConsumers.getBuffer( - ModRenderLayers.ARMOR_TRANSLUCENT_NO_CULL.apply(getArmorTexture(item, secondTextureLayer, overlay))); + ModRenderLayers.ARMOR_TRANSLUCENT_NO_CULL.apply(overlay)); model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, red, green, blue, t); } @@ -103,7 +103,7 @@ public abstract class ArmorFeatureRendererMixin armorMaterial, MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, ArmorTrim trim, A model, boolean leggings, CallbackInfo ci) { if (FabricLoader.getInstance().isModLoaded("allthetrims")) return; var ctx = trimContextQueue.poll(); @@ -113,8 +113,7 @@ public abstract class ArmorFeatureRendererMixin 0) { - Sprite sprite = armorTrimsAtlas.getSprite( - leggings ? trim.getLeggingsModelId(material) : trim.getGenericModelId(material)); + Sprite sprite = this.armorTrimsAtlas.getSprite(leggings ? trim.getLeggingsModelId(armorMaterial) : trim.getGenericModelId(armorMaterial)); VertexConsumer vertexConsumer = sprite.getTextureSpecificVertexConsumer(vertexConsumers .getBuffer(ModRenderLayers.ARMOR_TRANSLUCENT_NO_CULL.apply(TexturedRenderLayers.ARMOR_TRIMS_ATLAS_TEXTURE))); model.render(matrices, vertexConsumer, light, OverlayTexture.DEFAULT_UV, 1, 1, 1, t); diff --git a/src/main/java/nl/enjarai/showmeyourskin/net/ConfigSyncPacket.java b/src/main/java/nl/enjarai/showmeyourskin/net/ConfigSyncPacket.java new file mode 100644 index 0000000..a7a6a2f --- /dev/null +++ b/src/main/java/nl/enjarai/showmeyourskin/net/ConfigSyncPacket.java @@ -0,0 +1,18 @@ +package nl.enjarai.showmeyourskin.net; + +import net.minecraft.network.RegistryByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.packet.CustomPayload; +import nl.enjarai.showmeyourskin.ShowMeYourSkin; +import nl.enjarai.showmeyourskin.config.SyncedModConfig; + +public record ConfigSyncPacket(SyncedModConfig config) implements CustomPayload { + public static final Id PACKET_ID = new Id<>(ShowMeYourSkin.id("config_sync")); + public static final PacketCodec PACKET_CODEC = + SyncedModConfig.PACKET_CODEC.xmap(ConfigSyncPacket::new, ConfigSyncPacket::config); + + @Override + public Id getId() { + return PACKET_ID; + } +} diff --git a/src/main/java/nl/enjarai/showmeyourskin/net/HandshakeClient.java b/src/main/java/nl/enjarai/showmeyourskin/net/HandshakeClient.java index 0e01f65..eee957f 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/net/HandshakeClient.java +++ b/src/main/java/nl/enjarai/showmeyourskin/net/HandshakeClient.java @@ -1,21 +1,16 @@ package nl.enjarai.showmeyourskin.net; -import com.mojang.serialization.Codec; -import io.netty.buffer.Unpooled; -import net.minecraft.nbt.NbtOps; -import net.minecraft.network.PacketByteBuf; import nl.enjarai.showmeyourskin.ShowMeYourSkin; +import nl.enjarai.showmeyourskin.config.SyncedModConfig; import java.util.Optional; import java.util.function.Consumer; -public class HandshakeClient { - private final Codec transferCodec; - private final Consumer updateCallback; - private T serverConfig = null; +public class HandshakeClient { + private final Consumer updateCallback; + private SyncedModConfig serverConfig = null; - public HandshakeClient(Codec transferCodec, Consumer updateCallback) { - this.transferCodec = transferCodec; + public HandshakeClient(Consumer updateCallback) { this.updateCallback = updateCallback; } @@ -23,28 +18,19 @@ public HandshakeClient(Codec transferCodec, Consumer updateCallback) { * Returns the server config if the client has received one for this server, * returns an empty optional in any other case. */ - public Optional getConfig() { + public Optional getConfig() { return Optional.ofNullable(serverConfig); } - public PacketByteBuf handleConfigSync(PacketByteBuf buf) { - var data = buf.readNbt(); - try { - serverConfig = transferCodec.parse(NbtOps.INSTANCE, data) - .getOrThrow(false, ShowMeYourSkin.LOGGER::error); - } catch (RuntimeException e) { - serverConfig = null; - ShowMeYourSkin.LOGGER.error("Failed to parse config from server", e); - } + public SyncConfirmPacket handleConfigSync(ConfigSyncPacket packet) { + serverConfig = packet.config(); if (serverConfig != null) { updateCallback.accept(serverConfig); ShowMeYourSkin.LOGGER.info("Received config from server"); } - var returnBuf = new PacketByteBuf(Unpooled.buffer()); - returnBuf.writeBoolean(serverConfig != null); - return returnBuf; + return new SyncConfirmPacket(serverConfig != null); } public void reset() { diff --git a/src/main/java/nl/enjarai/showmeyourskin/net/HandshakeServer.java b/src/main/java/nl/enjarai/showmeyourskin/net/HandshakeServer.java index f8e2690..bbf7484 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/net/HandshakeServer.java +++ b/src/main/java/nl/enjarai/showmeyourskin/net/HandshakeServer.java @@ -7,18 +7,17 @@ import net.minecraft.network.PacketByteBuf; import net.minecraft.server.network.ServerPlayerEntity; import nl.enjarai.showmeyourskin.ShowMeYourSkin; +import nl.enjarai.showmeyourskin.config.SyncedModConfig; import java.util.Map; import java.util.WeakHashMap; import java.util.function.Supplier; -public class HandshakeServer { - private final Codec transferCodec; - private final Supplier configSupplier; +public class HandshakeServer { + private final Supplier configSupplier; private final Map syncStates = new WeakHashMap<>(); - public HandshakeServer(Codec transferCodec, Supplier configSupplier) { - this.transferCodec = transferCodec; + public HandshakeServer(Supplier configSupplier) { this.configSupplier = configSupplier; } @@ -26,30 +25,19 @@ public HandshakeState getHandshakeState(ServerPlayerEntity player) { return syncStates.getOrDefault(player, HandshakeState.NOT_SENT); } - public PacketByteBuf getConfigSyncBuf(ServerPlayerEntity player) { - var buf = new PacketByteBuf(Unpooled.buffer()); - - var config = configSupplier.get(); - var data = transferCodec.encodeStart(NbtOps.INSTANCE, config); - try { - buf.writeNbt((NbtCompound) data.getOrThrow(false, ShowMeYourSkin.LOGGER::error)); - } catch (RuntimeException e) { - ShowMeYourSkin.LOGGER.error("Failed to encode config", e); - buf.writeNbt(new NbtCompound()); - } - - return buf; + public ConfigSyncPacket getSyncPacket(ServerPlayerEntity player) { + return new ConfigSyncPacket(configSupplier.get()); } public void configSentToClient(ServerPlayerEntity player) { syncStates.put(player, HandshakeState.SENT); } - public HandshakeState clientReplied(ServerPlayerEntity player, PacketByteBuf buf) { + public HandshakeState clientReplied(ServerPlayerEntity player, SyncConfirmPacket packet) { var state = getHandshakeState(player); if (state == HandshakeState.SENT) { - if (buf.readBoolean()) { + if (packet.success()) { syncStates.put(player, HandshakeState.ACCEPTED); ShowMeYourSkin.LOGGER.info("Client of {} accepted server config.", player.getName().getString()); return HandshakeState.ACCEPTED; diff --git a/src/main/java/nl/enjarai/showmeyourskin/net/SettingsUpdatePacket.java b/src/main/java/nl/enjarai/showmeyourskin/net/SettingsUpdatePacket.java new file mode 100644 index 0000000..ff80eec --- /dev/null +++ b/src/main/java/nl/enjarai/showmeyourskin/net/SettingsUpdatePacket.java @@ -0,0 +1,18 @@ +package nl.enjarai.showmeyourskin.net; + +import io.netty.buffer.ByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.packet.CustomPayload; +import nl.enjarai.showmeyourskin.ShowMeYourSkin; +import nl.enjarai.showmeyourskin.config.ArmorConfig; + +public record SettingsUpdatePacket(ArmorConfig settings) implements CustomPayload { + public static final Id PACKET_ID = new Id<>(ShowMeYourSkin.id("settings_update")); + public static final PacketCodec PACKET_CODEC = + ArmorConfig.PACKET_CODEC.xmap(SettingsUpdatePacket::new, SettingsUpdatePacket::settings); + + @Override + public Id getId() { + return PACKET_ID; + } +} diff --git a/src/main/java/nl/enjarai/showmeyourskin/net/SyncConfirmPacket.java b/src/main/java/nl/enjarai/showmeyourskin/net/SyncConfirmPacket.java new file mode 100644 index 0000000..0c13e0a --- /dev/null +++ b/src/main/java/nl/enjarai/showmeyourskin/net/SyncConfirmPacket.java @@ -0,0 +1,18 @@ +package nl.enjarai.showmeyourskin.net; + +import io.netty.buffer.ByteBuf; +import net.minecraft.network.codec.PacketCodec; +import net.minecraft.network.codec.PacketCodecs; +import net.minecraft.network.packet.CustomPayload; +import nl.enjarai.showmeyourskin.ShowMeYourSkin; + +public record SyncConfirmPacket(boolean success) implements CustomPayload { + public static final Id PACKET_ID = new Id<>(ShowMeYourSkin.id("sync_confirm")); + public static final PacketCodec PACKET_CODEC = + PacketCodecs.BOOL.xmap(SyncConfirmPacket::new, SyncConfirmPacket::success); + + @Override + public Id getId() { + return PACKET_ID; + } +} diff --git a/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java b/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java index c17e41d..696670b 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java +++ b/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java @@ -1,15 +1,16 @@ package nl.enjarai.showmeyourskin.util; -import dev.onyxstudios.cca.api.v3.component.ComponentV3; -import dev.onyxstudios.cca.api.v3.component.sync.AutoSyncedComponent; import net.minecraft.nbt.NbtCompound; import net.minecraft.nbt.NbtOps; +import net.minecraft.registry.RegistryWrapper; import net.minecraft.server.network.ServerPlayerEntity; import nl.enjarai.showmeyourskin.ShowMeYourSkin; import nl.enjarai.showmeyourskin.config.ArmorConfig; import nl.enjarai.showmeyourskin.config.SyncedModConfigServer; import nl.enjarai.showmeyourskin.net.HandshakeServer; import org.jetbrains.annotations.NotNull; +import org.ladysnake.cca.api.v3.component.ComponentV3; +import org.ladysnake.cca.api.v3.component.sync.AutoSyncedComponent; public class ArmorConfigComponent implements ComponentV3, AutoSyncedComponent { private ArmorConfig config; @@ -19,14 +20,14 @@ public ArmorConfigComponent(ArmorConfig config) { } @Override - public void readFromNbt(NbtCompound tag) { + public void readFromNbt(NbtCompound tag, RegistryWrapper.WrapperLookup registryLookup) { if (tag.contains("config")) { ArmorConfig.CODEC.decode(NbtOps.INSTANCE, tag.getCompound("config")).result().ifPresent(pair -> config = pair.getFirst()); } } @Override - public void writeToNbt(@NotNull NbtCompound tag) { + public void writeToNbt(@NotNull NbtCompound tag, RegistryWrapper.WrapperLookup registryLookup) { ArmorConfig.CODEC.encodeStart(NbtOps.INSTANCE, config).result().ifPresent(nbt -> tag.put("config", nbt)); } @@ -38,8 +39,8 @@ public void setConfig(ArmorConfig config) { this.config = config; } - public void setFromNbt(NbtCompound tag) { - readFromNbt(tag); + public void setFromNbt(NbtCompound tag, RegistryWrapper.WrapperLookup registryLookup) { + readFromNbt(tag, registryLookup); } public void ensureValid() { diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index 6b0ba93..f1c89b0 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -45,7 +45,7 @@ "depends": { "fabricloader": ">=0.15.0", "fabric-api": "*", - "minecraft": ">=1.20.3- <=1.20.4", + "minecraft": ">=1.20.5- <=1.20.6", "cicada": ">=0.6.0 <1.0.0", "cardinal-components-base": "*", "cardinal-components-entity": "*" From 9dcb1a6044409af8348f1acb813c06405df546c0 Mon Sep 17 00:00:00 2001 From: enjarai Date: Mon, 29 Apr 2024 16:26:16 +0200 Subject: [PATCH 03/18] This *should* be backported actually --- src/main/resources/fabric.mod.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index f1c89b0..4b2feee 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -9,7 +9,7 @@ "enjarai" ], "contact": { - "homepage": "https://enjarai.nl/", + "homepage": "https://enjarai.dev/", "sources": "https://github.com/enjarai/show-me-your-skin", "issues": "https://github.com/enjarai/show-me-your-skin/issues" }, @@ -46,7 +46,7 @@ "fabricloader": ">=0.15.0", "fabric-api": "*", "minecraft": ">=1.20.5- <=1.20.6", - "cicada": ">=0.6.0 <1.0.0", + "cicada": ">=0.7.0 <1.0.0", "cardinal-components-base": "*", "cardinal-components-entity": "*" }, From 31b052b806cdcc21287c2edc31054f95466fc8a9 Mon Sep 17 00:00:00 2001 From: enjarai Date: Tue, 30 Apr 2024 17:26:04 +0200 Subject: [PATCH 04/18] More port! (merge ours pls kthnx) --- CHANGELOG.md | 5 ++--- gradle.properties | 6 +++--- .../shield/BannerBlockEntityRendererMixin.java | 15 ++++++++------- .../shield/BuiltinModelItemRendererMixin.java | 6 +++--- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a33ef3..01acce5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,2 @@ -- Fixed compatibility with Wildfire's Female Gender Mod (Thanks @celestialfault) -- Removed CICADA as an included jar, it must now be downloaded separately. - - This allows me to update it separately from any dependent mods, hopefully providing a more stable experience. \ No newline at end of file +- Moved out of world entity rendering code to CICADA for easier maintenance. +- Updated to 1.20.5-1.20.6. \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 91491ac..daff815 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ org.gradle.jvmargs=-Xmx1G # check these on https://fabricmc.net/develop minecraft_version=1.20.5 yarn_mappings=1.20.5+build.1 -loader_version=0.15.2 +loader_version=0.15.10 # Mod Properties mod_version = 1.10.0 @@ -13,7 +13,7 @@ maven_group = nl.enjarai archives_base_name = show-me-your-skin publish_target_min=1.20.5 -publish_target_max=1.20.5 +publish_target_max=1.20.6 mod_modrinth=bD7YqcA3 mod_curseforge=622010 mod_github=enjarai/show-me-your-skin @@ -23,6 +23,6 @@ git_branch=master fabric_version=0.97.8+1.20.5 # https://modrinth.com/mod/modmenu/versions modmenu_version=10.0.0-beta.1 -cicada_version=0.7.0+1.20.2-and-above +cicada_version=0.7.1+1.20.5-and-above # https://github.com/OnyxStudios/Cardinal-Components-API/releases cardinal_components_version=6.0.0-beta.3 \ No newline at end of file diff --git a/src/main/java/nl/enjarai/showmeyourskin/mixin/shield/BannerBlockEntityRendererMixin.java b/src/main/java/nl/enjarai/showmeyourskin/mixin/shield/BannerBlockEntityRendererMixin.java index 88a0fa0..f8af97f 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/mixin/shield/BannerBlockEntityRendererMixin.java +++ b/src/main/java/nl/enjarai/showmeyourskin/mixin/shield/BannerBlockEntityRendererMixin.java @@ -1,6 +1,6 @@ package nl.enjarai.showmeyourskin.mixin.shield; -import com.llamalad7.mixinextras.injector.WrapWithCondition; +import com.llamalad7.mixinextras.injector.v2.WrapWithCondition; import com.mojang.datafixers.util.Pair; import net.minecraft.block.entity.BannerPattern; import net.minecraft.client.model.ModelPart; @@ -10,6 +10,7 @@ import net.minecraft.client.render.block.entity.BannerBlockEntityRenderer; import net.minecraft.client.util.SpriteIdentifier; import net.minecraft.client.util.math.MatrixStack; +import net.minecraft.component.type.BannerPatternsComponent; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.DyeColor; @@ -31,11 +32,11 @@ public abstract class BannerBlockEntityRendererMixin { private static final ThreadLocal showmeyourskin$isShield = ThreadLocal.withInitial(() -> false); @Inject( - method = "renderCanvas(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/SpriteIdentifier;ZLjava/util/List;Z)V", + method = "renderCanvas(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/SpriteIdentifier;ZLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Z)V", at = @At("HEAD"), cancellable = true ) - private static void showmeyourskin$captureBannerCanvasContext(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, ModelPart canvas, SpriteIdentifier baseSprite, boolean isBanner, List, DyeColor>> patterns, boolean glint, CallbackInfo ci) { + private static void showmeyourskin$captureBannerCanvasContext(MatrixStack matrices, VertexConsumerProvider vertexConsumers, int light, int overlay, ModelPart canvas, SpriteIdentifier baseSprite, boolean isBanner, DyeColor color, BannerPatternsComponent patterns, boolean glint, CallbackInfo ci) { showmeyourskin$isShield.set(!isBanner); if (!isBanner) { @@ -52,7 +53,7 @@ public abstract class BannerBlockEntityRendererMixin { } @ModifyArg( - method = "renderCanvas(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/SpriteIdentifier;ZLjava/util/List;Z)V", + method = "renderCanvas(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/SpriteIdentifier;ZLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Z)V", at = @At( value = "INVOKE", target = "Lnet/minecraft/client/util/SpriteIdentifier;getVertexConsumer(Lnet/minecraft/client/render/VertexConsumerProvider;Ljava/util/function/Function;Z)Lnet/minecraft/client/render/VertexConsumer;" @@ -76,7 +77,7 @@ public abstract class BannerBlockEntityRendererMixin { } @WrapWithCondition( - method = "renderCanvas(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/SpriteIdentifier;ZLjava/util/List;Z)V", + method = "renderCanvas(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/SpriteIdentifier;ZLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Z)V", at = @At( value = "INVOKE", target = "Lnet/minecraft/client/model/ModelPart;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;II)V" @@ -107,7 +108,7 @@ public abstract class BannerBlockEntityRendererMixin { } @ModifyArg( - method = "method_43789", + method = "renderLayer", at = @At( value = "INVOKE", target = "Lnet/minecraft/client/util/SpriteIdentifier;getVertexConsumer(Lnet/minecraft/client/render/VertexConsumerProvider;Ljava/util/function/Function;)Lnet/minecraft/client/render/VertexConsumer;" @@ -131,7 +132,7 @@ public abstract class BannerBlockEntityRendererMixin { } @ModifyArg( - method = "method_43789", + method = "renderLayer", at = @At( value = "INVOKE", target = "Lnet/minecraft/client/model/ModelPart;render(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumer;IIFFFF)V" diff --git a/src/main/java/nl/enjarai/showmeyourskin/mixin/shield/BuiltinModelItemRendererMixin.java b/src/main/java/nl/enjarai/showmeyourskin/mixin/shield/BuiltinModelItemRendererMixin.java index 83f6b90..55d520c 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/mixin/shield/BuiltinModelItemRendererMixin.java +++ b/src/main/java/nl/enjarai/showmeyourskin/mixin/shield/BuiltinModelItemRendererMixin.java @@ -49,9 +49,9 @@ public abstract class BuiltinModelItemRendererMixin { method = "render", at = @At( value = "INVOKE", - target = "Lnet/minecraft/client/render/block/entity/BannerBlockEntityRenderer;renderCanvas(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/SpriteIdentifier;ZLjava/util/List;Z)V" + target = "Lnet/minecraft/client/render/block/entity/BannerBlockEntityRenderer;renderCanvas(Lnet/minecraft/client/util/math/MatrixStack;Lnet/minecraft/client/render/VertexConsumerProvider;IILnet/minecraft/client/model/ModelPart;Lnet/minecraft/client/util/SpriteIdentifier;ZLnet/minecraft/util/DyeColor;Lnet/minecraft/component/type/BannerPatternsComponent;Z)V" ), - index = 8 + index = 9 ) private boolean showmeyourskin$modifyGlint2(boolean original) { return original && showmeyourskin$getShieldGlint(); @@ -61,7 +61,7 @@ public abstract class BuiltinModelItemRendererMixin { method = "render", at = @At( value = "INVOKE", - target = "Lnet/minecraft/item/BlockItem;getBlockEntityNbt(Lnet/minecraft/item/ItemStack;)Lnet/minecraft/nbt/NbtCompound;" + target = "Lnet/minecraft/item/ItemStack;getOrDefault(Lnet/minecraft/component/DataComponentType;Ljava/lang/Object;)Ljava/lang/Object;" ), cancellable = true ) From a95801d791b50ff273d2aa651478d79efabddf40 Mon Sep 17 00:00:00 2001 From: enjarai Date: Mon, 20 May 2024 10:32:54 +0200 Subject: [PATCH 05/18] The fucks CCA been doin --- CHANGELOG.md | 3 +-- build.gradle | 4 ++-- gradle.properties | 4 ++-- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 01acce5..9f4c63c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1 @@ -- Moved out of world entity rendering code to CICADA for easier maintenance. -- Updated to 1.20.5-1.20.6. \ No newline at end of file +- Fixed Cardinal Components jar inclusion, it no longer needs to be downloaded separately. \ No newline at end of file diff --git a/build.gradle b/build.gradle index 07b471a..6277ac7 100644 --- a/build.gradle +++ b/build.gradle @@ -48,8 +48,8 @@ dependencies { modImplementation "com.terraformersmc:modmenu:${modmenu_version}" // Cardinal Components for shrimple™ server syncing. - include modImplementation("dev.onyxstudios.cardinal-components-api:cardinal-components-base:${project.cardinal_components_version}") - include modImplementation("dev.onyxstudios.cardinal-components-api:cardinal-components-entity:${project.cardinal_components_version}") + modImplementation(include("org.ladysnake.cardinal-components-api:cardinal-components-base:${project.cardinal_components_version}")) + modImplementation(include("org.ladysnake.cardinal-components-api:cardinal-components-entity:${project.cardinal_components_version}")) // Make it easier to test skin compat. // modImplementation 'com.ptsmods:devlogin:2.1' diff --git a/gradle.properties b/gradle.properties index daff815..c10f60f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ yarn_mappings=1.20.5+build.1 loader_version=0.15.10 # Mod Properties -mod_version = 1.10.0 +mod_version = 1.10.1 maven_group = nl.enjarai archives_base_name = show-me-your-skin @@ -25,4 +25,4 @@ fabric_version=0.97.8+1.20.5 modmenu_version=10.0.0-beta.1 cicada_version=0.7.1+1.20.5-and-above # https://github.com/OnyxStudios/Cardinal-Components-API/releases -cardinal_components_version=6.0.0-beta.3 \ No newline at end of file +cardinal_components_version=6.0.0-pre2 \ No newline at end of file From 5f531563f1a5825ef43478a57ca47c61ac20ae9e Mon Sep 17 00:00:00 2001 From: Santiago Hernandez <73335686+TheLegendofSaram@users.noreply.github.com> Date: Thu, 30 May 2024 19:04:04 -0400 Subject: [PATCH 06/18] Mexican Spanish translation --- .../assets/showmeyourskin/lang/es_mx.json | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/resources/assets/showmeyourskin/lang/es_mx.json diff --git a/src/main/resources/assets/showmeyourskin/lang/es_mx.json b/src/main/resources/assets/showmeyourskin/lang/es_mx.json new file mode 100644 index 0000000..ee69423 --- /dev/null +++ b/src/main/resources/assets/showmeyourskin/lang/es_mx.json @@ -0,0 +1,32 @@ +{ + "category.showmeyourskin.showmeyourskin": "Show Me Your Skin!", + "key.showmeyourskin.open_settings": "Open Armor Config", + "key.showmeyourskin.global_toggle": "Toggle Mod", + "key.showmeyourskin.global_toggle.enable": "§aEnabled §rarmor rendering customisation.", + "key.showmeyourskin.global_toggle.disable": "§cDisabled §rarmor rendering customisation.", + "gui.showmeyourskin.armorScreen.title": "Armor Config", + "gui.showmeyourskin.armorScreen.title.serverIntegrated": "Armor Config (Server)", + "gui.showmeyourskin.armorScreen.title.serverOverrides": "Armor Config (Local Overrides)", + "gui.showmeyourskin.armorScreen.globalToggleTooltip": "Global toggle, press %1$s to toggle ingame.", + "gui.showmeyourskin.armorScreen.overridesEnabled": "Enable local overrides.\n(not visible to other players)", + "gui.showmeyourskin.armorScreen.overridesConfigure": "Configure local overrides.\n(not visible to other players)", + "gui.showmeyourskin.armorScreen.global": "Global", + "gui.showmeyourskin.armorScreen.synced": "Synced", + "gui.showmeyourskin.armorScreen.overridden": "Overridden", + "gui.showmeyourskin.armorScreen.playerName": "%s", + "gui.showmeyourskin.armorScreen.playerSelector": "Armor Config", + "gui.showmeyourskin.armorScreen.piece.head": "Helmet: %d%%", + "gui.showmeyourskin.armorScreen.piece.chest": "Chestplate: %d%%", + "gui.showmeyourskin.armorScreen.piece.legs": "Leggings: %d%%", + "gui.showmeyourskin.armorScreen.piece.feet": "Boots: %d%%", + "gui.showmeyourskin.armorScreen.piece.elytra": "Elytra: %d%%", + "gui.showmeyourskin.armorScreen.piece.shield": "Shield: %d%%", + "gui.showmeyourskin.armorScreen.piece.hat": "Hat: %d%%", + "gui.showmeyourskin.armorScreen.glintTooltip": "Enable enchantment glint", + "gui.showmeyourskin.armorScreen.combatTooltip": "Automatically disable transparency in combat", + "gui.showmeyourskin.armorScreen.nameTagTooltip": "Show player name tag", + "gui.showmeyourskin.armorScreen.showElytraTooltip": "Show Elytra", + "gui.showmeyourskin.armorScreen.shieldGlintTooltip": "Show enchantment glint on shield", + "gui.showmeyourskin.armorScreen.openButtonTooltip": "Open armor transparency override", + "gui.showmeyourskin.armorScreen.deleteButtonTooltip": "Delete transparency override" +} \ No newline at end of file From f42b9bbc0ea35d2000a26dc265b6c61e2067bc15 Mon Sep 17 00:00:00 2001 From: Santiago Hernandez <73335686+TheLegendofSaram@users.noreply.github.com> Date: Fri, 31 May 2024 14:29:26 -0400 Subject: [PATCH 07/18] Update --- .../assets/showmeyourskin/lang/es_mx.json | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/main/resources/assets/showmeyourskin/lang/es_mx.json b/src/main/resources/assets/showmeyourskin/lang/es_mx.json index ee69423..6e1c888 100644 --- a/src/main/resources/assets/showmeyourskin/lang/es_mx.json +++ b/src/main/resources/assets/showmeyourskin/lang/es_mx.json @@ -1,32 +1,32 @@ { "category.showmeyourskin.showmeyourskin": "Show Me Your Skin!", - "key.showmeyourskin.open_settings": "Open Armor Config", - "key.showmeyourskin.global_toggle": "Toggle Mod", - "key.showmeyourskin.global_toggle.enable": "§aEnabled §rarmor rendering customisation.", - "key.showmeyourskin.global_toggle.disable": "§cDisabled §rarmor rendering customisation.", - "gui.showmeyourskin.armorScreen.title": "Armor Config", - "gui.showmeyourskin.armorScreen.title.serverIntegrated": "Armor Config (Server)", - "gui.showmeyourskin.armorScreen.title.serverOverrides": "Armor Config (Local Overrides)", - "gui.showmeyourskin.armorScreen.globalToggleTooltip": "Global toggle, press %1$s to toggle ingame.", - "gui.showmeyourskin.armorScreen.overridesEnabled": "Enable local overrides.\n(not visible to other players)", - "gui.showmeyourskin.armorScreen.overridesConfigure": "Configure local overrides.\n(not visible to other players)", + "key.showmeyourskin.open_settings": "Abrir configuración de armadura", + "key.showmeyourskin.global_toggle": "Alternar Mod", + "key.showmeyourskin.global_toggle.enable": "§aHabilitado§r personalización de armadura.", + "key.showmeyourskin.global_toggle.disable": "§cDeshabilitado§r personalización de armadura.", + "gui.showmeyourskin.armorScreen.title": "Configuración de Armadura", + "gui.showmeyourskin.armorScreen.title.serverIntegrated": "Configuración de Armadura (Servidor)", + "gui.showmeyourskin.armorScreen.title.serverOverrides": "Configuración de Armadura (Anulaciones Locales)", + "gui.showmeyourskin.armorScreen.globalToggleTooltip": "Alternar globalmente, presiona %1$s para alternar en el juego.", + "gui.showmeyourskin.armorScreen.overridesEnabled": "Habilitar anulaciones locales.\n(no visible para otros jugadores)", + "gui.showmeyourskin.armorScreen.overridesConfigure": "Configurar anulaciones locales.\n(no visible para otros jugadores)", "gui.showmeyourskin.armorScreen.global": "Global", - "gui.showmeyourskin.armorScreen.synced": "Synced", - "gui.showmeyourskin.armorScreen.overridden": "Overridden", + "gui.showmeyourskin.armorScreen.synced": "Sincronizado", + "gui.showmeyourskin.armorScreen.overridden": "Anulado", "gui.showmeyourskin.armorScreen.playerName": "%s", - "gui.showmeyourskin.armorScreen.playerSelector": "Armor Config", - "gui.showmeyourskin.armorScreen.piece.head": "Helmet: %d%%", - "gui.showmeyourskin.armorScreen.piece.chest": "Chestplate: %d%%", - "gui.showmeyourskin.armorScreen.piece.legs": "Leggings: %d%%", - "gui.showmeyourskin.armorScreen.piece.feet": "Boots: %d%%", + "gui.showmeyourskin.armorScreen.playerSelector": "Configuración de Armadura", + "gui.showmeyourskin.armorScreen.piece.head": "Yelmo: %d%%", + "gui.showmeyourskin.armorScreen.piece.chest": "Pechera: %d%%", + "gui.showmeyourskin.armorScreen.piece.legs": "Grebas: %d%%", + "gui.showmeyourskin.armorScreen.piece.feet": "Botas: %d%%", "gui.showmeyourskin.armorScreen.piece.elytra": "Elytra: %d%%", - "gui.showmeyourskin.armorScreen.piece.shield": "Shield: %d%%", - "gui.showmeyourskin.armorScreen.piece.hat": "Hat: %d%%", - "gui.showmeyourskin.armorScreen.glintTooltip": "Enable enchantment glint", - "gui.showmeyourskin.armorScreen.combatTooltip": "Automatically disable transparency in combat", - "gui.showmeyourskin.armorScreen.nameTagTooltip": "Show player name tag", - "gui.showmeyourskin.armorScreen.showElytraTooltip": "Show Elytra", - "gui.showmeyourskin.armorScreen.shieldGlintTooltip": "Show enchantment glint on shield", - "gui.showmeyourskin.armorScreen.openButtonTooltip": "Open armor transparency override", - "gui.showmeyourskin.armorScreen.deleteButtonTooltip": "Delete transparency override" + "gui.showmeyourskin.armorScreen.piece.shield": "Escudo: %d%%", + "gui.showmeyourskin.armorScreen.piece.hat": "Sombrero: %d%%", + "gui.showmeyourskin.armorScreen.glintTooltip": "Habilitar brillo de encantamiento", + "gui.showmeyourskin.armorScreen.combatTooltip": "Desactivar automáticamente la transparencia en combate", + "gui.showmeyourskin.armorScreen.nameTagTooltip": "Mostrar etiqueta de nombre del jugador", + "gui.showmeyourskin.armorScreen.showElytraTooltip": "Mostrar Elytra", + "gui.showmeyourskin.armorScreen.shieldGlintTooltip": "Mostrar brillo de encantamiento en el escudo", + "gui.showmeyourskin.armorScreen.openButtonTooltip": "Abrir anulación de transparencia de armadura", + "gui.showmeyourskin.armorScreen.deleteButtonTooltip": "Eliminar anulación de transparencia" } \ No newline at end of file From 705ed228940ac2b488467252ada7edaef30f913a Mon Sep 17 00:00:00 2001 From: enjarai Date: Sat, 1 Jun 2024 12:54:35 +0200 Subject: [PATCH 08/18] Fix some 1.20.6 CCA shenanigans --- .../nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java b/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java index 696670b..2c404c6 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java +++ b/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java @@ -52,4 +52,9 @@ public void ensureValid() { public boolean shouldSyncWith(ServerPlayerEntity player) { return ShowMeYourSkin.HANDSHAKE_SERVER.getHandshakeState(player) != HandshakeServer.HandshakeState.FAILED; } + + @Override + public boolean isRequiredOnClient() { + return false; + } } From ed7b297ed0f035c4ba0fd236714f8505f5f4f257 Mon Sep 17 00:00:00 2001 From: enjarai Date: Sat, 1 Jun 2024 12:56:02 +0200 Subject: [PATCH 09/18] Version Vumpers --- CHANGELOG.md | 3 ++- gradle.properties | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f4c63c..24acde3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1,2 @@ -- Fixed Cardinal Components jar inclusion, it no longer needs to be downloaded separately. \ No newline at end of file +- Fixed an issue preventing vanilla clients from joining servers with the mod installed. +- Added Mexican Spanish translations (Thanks @TheLegendofSaram) diff --git a/gradle.properties b/gradle.properties index c10f60f..0d8e42b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ yarn_mappings=1.20.5+build.1 loader_version=0.15.10 # Mod Properties -mod_version = 1.10.1 +mod_version = 1.10.2 maven_group = nl.enjarai archives_base_name = show-me-your-skin From c6d8b243e6ffc132296f64645601121d9b102b08 Mon Sep 17 00:00:00 2001 From: enjarai Date: Sat, 1 Jun 2024 12:57:57 +0200 Subject: [PATCH 10/18] Enough --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8762b40..f0e03ce 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: matrix: # Use these Java versions java: [ - 17, # Current Java LTS & minimum supported by Minecraft + 21, # Current Java LTS & minimum supported by Minecraft ] # and run on both Linux and Windows os: [ubuntu-20.04, windows-2022] From f62d300e4eb5854fe4631f75bb2480f6d60fb93d Mon Sep 17 00:00:00 2001 From: Emin Date: Sat, 1 Jun 2024 19:25:27 +0300 Subject: [PATCH 11/18] Add flying check to elytra renderer --- .../elytra/ElytraFeatureRendererMixin.java | 35 ++++++++++++------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java b/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java index 58f332e..a3fc76a 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java +++ b/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java @@ -38,9 +38,10 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, T livingEntity, float f, float g, float h, float j, float k, float l, CallbackInfo ci) { if (livingEntity instanceof PlayerEntity player) { - if (ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA) <= 0) { - ci.cancel(); - } + if ( + !player.isFallFlying() && + ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA) <= 0 + ) ci.cancel(); } } @@ -54,7 +55,9 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { ) private boolean showmeyourskin$hideElytraGlint(boolean original, @Local(argsOnly = true) LivingEntity entity) { if (entity instanceof PlayerEntity player) { - return original && ModConfig.INSTANCE.getApplicableGlintTransparency(player.getUuid(), HideableEquipment.ELYTRA) > 0; + if (!player.isFallFlying()) { + return original && ModConfig.INSTANCE.getApplicableGlintTransparency(player.getUuid(), HideableEquipment.ELYTRA) > 0; + } } return original; @@ -71,9 +74,11 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { VertexConsumerProvider vertexConsumerProvider, RenderLayer renderLayer, boolean solid, boolean hasGlint, Operation original, @Local(argsOnly = true) LivingEntity entity) { if (entity instanceof PlayerEntity player) { - var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA); - if (transparency < 1) { - return ItemRenderer.getDirectItemGlintConsumer(vertexConsumerProvider, renderLayer, solid, hasGlint); + if (!player.isFallFlying()) { + var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA); + if (transparency < 1) { + return ItemRenderer.getDirectItemGlintConsumer(vertexConsumerProvider, renderLayer, solid, hasGlint); + } } } @@ -90,9 +95,11 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { private RenderLayer showmeyourskin$enableElytraTransparency2( Identifier texture, Operation original, @Local(argsOnly = true) LivingEntity entity) { if (entity instanceof PlayerEntity player) { - var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA); - if (transparency < 1) { - return RenderLayer.getEntityTranslucent(texture); + if (!player.isFallFlying()) { + var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA); + if (transparency < 1) { + return RenderLayer.getEntityTranslucent(texture); + } } } @@ -109,9 +116,11 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { ) private float showmeyourskin$applyElytraTransparency(float original, @Local(argsOnly = true) LivingEntity entity) { if (entity instanceof PlayerEntity player) { - var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA); - if (transparency < 1) { - return transparency; + if (!player.isFallFlying()) { + var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA); + if (transparency < 1) { + return transparency; + } } } From 32c5095f7b126161ff45995619d2eb8dc8df4af0 Mon Sep 17 00:00:00 2001 From: Emin Date: Sat, 1 Jun 2024 20:21:17 +0300 Subject: [PATCH 12/18] Respect user's glint choice --- .../mixin/elytra/ElytraFeatureRendererMixin.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java b/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java index a3fc76a..b8e4d65 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java +++ b/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java @@ -55,9 +55,7 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { ) private boolean showmeyourskin$hideElytraGlint(boolean original, @Local(argsOnly = true) LivingEntity entity) { if (entity instanceof PlayerEntity player) { - if (!player.isFallFlying()) { - return original && ModConfig.INSTANCE.getApplicableGlintTransparency(player.getUuid(), HideableEquipment.ELYTRA) > 0; - } + return original && ModConfig.INSTANCE.getApplicableGlintTransparency(player.getUuid(), HideableEquipment.ELYTRA) > 0; } return original; From 952c7d20d0ae3496ddf70e7bf2748740f7029596 Mon Sep 17 00:00:00 2001 From: Emin Date: Sat, 1 Jun 2024 20:56:41 +0300 Subject: [PATCH 13/18] Add toggle for forcing elytra when flying --- .../showmeyourskin/config/ArmorConfig.java | 9 ++++++++- .../showmeyourskin/config/SyncedModConfig.java | 6 +++++- .../config/SyncedModConfigClient.java | 2 +- .../config/SyncedModConfigServer.java | 5 +++++ .../gui/widget/ArmorConfigWindow.java | 11 ++++++++++- .../mixin/elytra/ElytraFeatureRendererMixin.java | 15 ++++++++------- .../util/ArmorConfigComponent.java | 1 + .../sprites/button/force_elytra_when_flying.png | Bin 0 -> 273 bytes .../button/force_elytra_when_flying_disabled.png | Bin 0 -> 274 bytes 9 files changed, 38 insertions(+), 11 deletions(-) create mode 100644 src/main/resources/assets/showmeyourskin/textures/gui/sprites/button/force_elytra_when_flying.png create mode 100644 src/main/resources/assets/showmeyourskin/textures/gui/sprites/button/force_elytra_when_flying_disabled.png diff --git a/src/main/java/nl/enjarai/showmeyourskin/config/ArmorConfig.java b/src/main/java/nl/enjarai/showmeyourskin/config/ArmorConfig.java index c6892ba..fb6e20f 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/config/ArmorConfig.java +++ b/src/main/java/nl/enjarai/showmeyourskin/config/ArmorConfig.java @@ -19,6 +19,7 @@ public class ArmorConfig { public static final Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Codec.BOOL.fieldOf("showInCombat").forGetter(config -> config.showInCombat), Codec.BOOL.fieldOf("showNameTag").forGetter(config -> config.showNameTag), + Codec.BOOL.fieldOf("forceElytraWhenFlying").forGetter(config -> config.forceElytraWhenFlying), Codec.unboundedMap(HideableEquipment.getCodec(), ArmorPieceConfig.CODEC).fieldOf("pieces").forGetter(config -> config.pieces), Codec.unboundedMap(HideableEquipment.getSlotCodec(), ArmorPieceConfig.CODEC).fieldOf("trims").forGetter(config -> config.trims), Codec.unboundedMap(HideableEquipment.getCodec(), ArmorPieceConfig.CODEC).fieldOf("glints").forGetter(config -> config.glints) @@ -26,6 +27,7 @@ public class ArmorConfig { public static final PacketCodec PACKET_CODEC = PacketCodec.tuple( PacketCodecs.BOOL, c -> c.showInCombat, PacketCodecs.BOOL, c -> c.showNameTag, + PacketCodecs.BOOL, c -> c.forceElytraWhenFlying, PacketCodecs.map(HashMap::new, HideableEquipment.getPacketCodec(), ArmorPieceConfig.PACKET_CODEC, VANILLA_VALUES.pieces.size()), ArmorConfig::getPieces, PacketCodecs.map(HashMap::new, HideableEquipment.getPacketSlotCodec(), ArmorPieceConfig.PACKET_CODEC, VANILLA_VALUES.trims.size()), ArmorConfig::getTrims, PacketCodecs.map(HashMap::new, HideableEquipment.getPacketCodec(), ArmorPieceConfig.PACKET_CODEC, VANILLA_VALUES.glints.size()), ArmorConfig::getGlints, @@ -37,6 +39,7 @@ public class ArmorConfig { public final HashMap glints = new HashMap<>(); public boolean showInCombat = true; public boolean showNameTag = true; + public boolean forceElytraWhenFlying = true; public ArmorConfig() { pieces.put(HideableEquipment.HEAD, new ArmorPieceConfig()); @@ -61,10 +64,11 @@ public ArmorConfig() { glints.put(HideableEquipment.HAT, new ArmorPieceConfig()); } - public ArmorConfig(boolean showInCombat, boolean showNameTag, Map pieces, Map trims, Map glints) { + public ArmorConfig(boolean showInCombat, boolean showNameTag, boolean forceElytraWhenFlying, Map pieces, Map trims, Map glints) { this(); this.showInCombat = showInCombat; this.showNameTag = showNameTag; + this.forceElytraWhenFlying = forceElytraWhenFlying; this.pieces.putAll(pieces); this.trims.putAll(trims); this.glints.putAll(glints); @@ -125,6 +129,7 @@ public ArmorConfig copy() { return new ArmorConfig( showInCombat, showNameTag, + forceElytraWhenFlying, pieces.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().copy())), trims.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().copy())), glints.entrySet().stream().collect(Collectors.toMap(Map.Entry::getKey, e -> e.getValue().copy())) @@ -140,6 +145,7 @@ public boolean equals(Object o) { if (showInCombat != that.showInCombat) return false; if (showNameTag != that.showNameTag) return false; + if (forceElytraWhenFlying != that.forceElytraWhenFlying) return false; if (!pieces.equals(that.pieces)) return false; if (!trims.equals(that.trims)) return false; return glints.equals(that.glints); @@ -152,6 +158,7 @@ public int hashCode() { result = 31 * result + glints.hashCode(); result = 31 * result + (showInCombat ? 1 : 0); result = 31 * result + (showNameTag ? 1 : 0); + result = 31 * result + (forceElytraWhenFlying ? 1 : 0); return result; } diff --git a/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfig.java b/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfig.java index 966e24b..305e6ef 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfig.java +++ b/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfig.java @@ -9,15 +9,19 @@ public interface SyncedModConfig { Codec CODEC = RecordCodecBuilder.create(instance -> instance.group( Codec.BOOL.optionalFieldOf("allowNotShowInCombat", true).forGetter(SyncedModConfig::allowNotShowInCombat), - Codec.BOOL.optionalFieldOf("allowNotShowNameTag", true).forGetter(SyncedModConfig::allowNotShowNameTag) + Codec.BOOL.optionalFieldOf("allowNotShowNameTag", true).forGetter(SyncedModConfig::allowNotShowNameTag), + Codec.BOOL.optionalFieldOf("allowNotForceElytraWhenFlying", true).forGetter(SyncedModConfig::allowNotForceElytraWhenFlying) ).apply(instance, SyncedModConfigClient::new)); PacketCodec PACKET_CODEC = PacketCodec.tuple( PacketCodecs.BOOL, SyncedModConfig::allowNotShowInCombat, PacketCodecs.BOOL, SyncedModConfig::allowNotShowNameTag, + PacketCodecs.BOOL, SyncedModConfig::allowNotForceElytraWhenFlying, SyncedModConfigClient::new ); boolean allowNotShowInCombat(); boolean allowNotShowNameTag(); + + boolean allowNotForceElytraWhenFlying(); } diff --git a/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfigClient.java b/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfigClient.java index 00572de..8c93ae5 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfigClient.java +++ b/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfigClient.java @@ -1,4 +1,4 @@ package nl.enjarai.showmeyourskin.config; -public record SyncedModConfigClient(boolean allowNotShowInCombat, boolean allowNotShowNameTag) implements SyncedModConfig { +public record SyncedModConfigClient(boolean allowNotShowInCombat, boolean allowNotShowNameTag, boolean allowNotForceElytraWhenFlying) implements SyncedModConfig { } diff --git a/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfigServer.java b/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfigServer.java index 94c7170..6163da2 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfigServer.java +++ b/src/main/java/nl/enjarai/showmeyourskin/config/SyncedModConfigServer.java @@ -22,6 +22,7 @@ public class SyncedModConfigServer implements SyncedModConfig { public boolean allowNotShowInCombat = false; public boolean allowNotShowNameTag = false; + public boolean allowNotForceElytraWhenFlying = false; public static void load() { INSTANCE = loadConfigFile(CONFIG_FILE); @@ -81,4 +82,8 @@ public boolean allowNotShowInCombat() { public boolean allowNotShowNameTag() { return allowNotShowNameTag; } + + public boolean allowNotForceElytraWhenFlying() { + return allowNotForceElytraWhenFlying; + } } diff --git a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java index 920056d..492eafc 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java +++ b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/ArmorConfigWindow.java @@ -60,6 +60,7 @@ public class ArmorConfigWindow extends AbstractParentElement implements Drawable protected static final ButtonTextures TOGGLE_GLINT_BUTTON_TEXTURES = ToggleButtonWidget.createTextures("show_glint"); protected static final ButtonTextures SHOW_IN_COMBAT_BUTTON_TEXTURES = ToggleButtonWidget.createTextures("show_in_combat"); protected static final ButtonTextures SHOW_NAME_TAG_BUTTON_TEXTURES = ToggleButtonWidget.createTextures("show_nametag"); + protected static final ButtonTextures FORCE_ELYTRA_WHEN_FLYING_BUTTON_TEXTURES = ToggleButtonWidget.createTextures("force_elytra_when_flying"); private static final ItemStack HEAD_ARMOR = new AlwaysGlintingStack(Items.NETHERITE_HELMET); private static final ItemStack CHEST_ARMOR = new AlwaysGlintingStack(Items.NETHERITE_CHESTPLATE); @@ -139,12 +140,20 @@ public ArmorConfigWindow(Screen parent, int x, int y, Text name, DummyClientPlay if (!hideOptions || serverConfig.get().allowNotShowNameTag()) { buttons.add(new ToggleButtonWidget( - getWindowLeft() + 14, getWindowTop() + 141, 20, 20, + getWindowLeft() + 40, getWindowTop() + 115, 20, 20, SHOW_NAME_TAG_BUTTON_TEXTURES, armorConfig.showNameTag, (btn, b) -> armorConfig.showNameTag = b, NAME_TAG_TOOLTIP )); } + if (!hideOptions || serverConfig.get().allowNotForceElytraWhenFlying()) { + buttons.add(new ToggleButtonWidget( + getWindowLeft() + 66, getWindowTop() + 115, 20, 20, + FORCE_ELYTRA_WHEN_FLYING_BUTTON_TEXTURES, + armorConfig.forceElytraWhenFlying, (btn, b) -> armorConfig.forceElytraWhenFlying = b, NAME_TAG_TOOLTIP + )); + } + children.addAll(buttons); } diff --git a/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java b/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java index b8e4d65..56bfe62 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java +++ b/src/main/java/nl/enjarai/showmeyourskin/mixin/elytra/ElytraFeatureRendererMixin.java @@ -38,10 +38,11 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { MatrixStack matrixStack, VertexConsumerProvider vertexConsumerProvider, int i, T livingEntity, float f, float g, float h, float j, float k, float l, CallbackInfo ci) { if (livingEntity instanceof PlayerEntity player) { - if ( - !player.isFallFlying() && - ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA) <= 0 - ) ci.cancel(); + if (!player.isFallFlying() || !ModConfig.INSTANCE.getApplicable(player.getUuid()).forceElytraWhenFlying) { + if (ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA) <= 0) { + ci.cancel(); + } + } } } @@ -72,7 +73,7 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { VertexConsumerProvider vertexConsumerProvider, RenderLayer renderLayer, boolean solid, boolean hasGlint, Operation original, @Local(argsOnly = true) LivingEntity entity) { if (entity instanceof PlayerEntity player) { - if (!player.isFallFlying()) { + if (!player.isFallFlying() || !ModConfig.INSTANCE.getApplicable(player.getUuid()).forceElytraWhenFlying) { var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA); if (transparency < 1) { return ItemRenderer.getDirectItemGlintConsumer(vertexConsumerProvider, renderLayer, solid, hasGlint); @@ -93,7 +94,7 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { private RenderLayer showmeyourskin$enableElytraTransparency2( Identifier texture, Operation original, @Local(argsOnly = true) LivingEntity entity) { if (entity instanceof PlayerEntity player) { - if (!player.isFallFlying()) { + if (!player.isFallFlying() || !ModConfig.INSTANCE.getApplicable(player.getUuid()).forceElytraWhenFlying) { var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA); if (transparency < 1) { return RenderLayer.getEntityTranslucent(texture); @@ -114,7 +115,7 @@ public ElytraFeatureRendererMixin(FeatureRendererContext context) { ) private float showmeyourskin$applyElytraTransparency(float original, @Local(argsOnly = true) LivingEntity entity) { if (entity instanceof PlayerEntity player) { - if (!player.isFallFlying()) { + if (!player.isFallFlying() || !ModConfig.INSTANCE.getApplicable(player.getUuid()).forceElytraWhenFlying) { var transparency = ModConfig.INSTANCE.getApplicablePieceTransparency(player.getUuid(), HideableEquipment.ELYTRA); if (transparency < 1) { return transparency; diff --git a/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java b/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java index 2c404c6..176ea70 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java +++ b/src/main/java/nl/enjarai/showmeyourskin/util/ArmorConfigComponent.java @@ -46,6 +46,7 @@ public void setFromNbt(NbtCompound tag, RegistryWrapper.WrapperLookup registryLo public void ensureValid() { if (!SyncedModConfigServer.INSTANCE.allowNotShowInCombat()) getConfig().showInCombat = true; if (!SyncedModConfigServer.INSTANCE.allowNotShowNameTag()) getConfig().showNameTag = true; + if (!SyncedModConfigServer.INSTANCE.allowNotForceElytraWhenFlying()) getConfig().forceElytraWhenFlying = true; } @Override diff --git a/src/main/resources/assets/showmeyourskin/textures/gui/sprites/button/force_elytra_when_flying.png b/src/main/resources/assets/showmeyourskin/textures/gui/sprites/button/force_elytra_when_flying.png new file mode 100644 index 0000000000000000000000000000000000000000..fe78a6bf0fb32dfaaa0bfa2f8cd8d290bb934eef GIT binary patch literal 273 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQajKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCil21AIbUy}i9nO-+l7i|gxW^!IP>>FFuR>&?u}1j=vpyJrogI7@>3g8xGS zL$H5^5J<4VBeIx*f$uN~Gak=hkpdLV@^omdKI;Vst E03XO^m;e9( literal 0 HcmV?d00001 diff --git a/src/main/resources/assets/showmeyourskin/textures/gui/sprites/button/force_elytra_when_flying_disabled.png b/src/main/resources/assets/showmeyourskin/textures/gui/sprites/button/force_elytra_when_flying_disabled.png new file mode 100644 index 0000000000000000000000000000000000000000..8b8bda3ea8c7ffefcb69ed47b5132cdd40651cb5 GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQajKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCil21AIbU_4M=<6&2mw-2DChBO@b2LqlC%T^$@8fb!hFUta+!&XOR%;Qvs- z5bR$e1QIOph%9Dc;5!V$jK}j=qyPo8JzX3_G=jIDcI0zW Date: Tue, 4 Jun 2024 14:36:20 +0200 Subject: [PATCH 14/18] Im the stupid lmao --- .../showmeyourskin/gui/widget/PressButtonWidget.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PressButtonWidget.java b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PressButtonWidget.java index 6936474..61310ca 100644 --- a/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PressButtonWidget.java +++ b/src/main/java/nl/enjarai/showmeyourskin/gui/widget/PressButtonWidget.java @@ -4,6 +4,7 @@ import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.screen.ButtonTextures; import net.minecraft.client.gui.screen.narration.NarrationMessageBuilder; +import net.minecraft.client.gui.tooltip.Tooltip; import net.minecraft.client.gui.widget.PressableWidget; import net.minecraft.screen.ScreenTexts; import net.minecraft.text.Text; @@ -22,15 +23,15 @@ public class PressButtonWidget extends PressableWidget { protected final ButtonTextures textures; private final Consumer pressAction; - @Nullable - protected final Text tooltip; public PressButtonWidget(int x, int y, int width, int height, ButtonTextures textures, Consumer pressAction, @Nullable Text tooltip) { super(x, y, width, height, ScreenTexts.EMPTY); this.textures = textures; this.pressAction = pressAction; - this.tooltip = tooltip; + if (tooltip != null) { + setTooltip(Tooltip.of(tooltip)); + } } @Override From 8b30fd5588571a8e83df65c3748751054d05582d Mon Sep 17 00:00:00 2001 From: enjarai Date: Tue, 4 Jun 2024 14:49:03 +0200 Subject: [PATCH 15/18] God damn it CCA --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 0d8e42b..b699b11 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,4 +25,4 @@ fabric_version=0.97.8+1.20.5 modmenu_version=10.0.0-beta.1 cicada_version=0.7.1+1.20.5-and-above # https://github.com/OnyxStudios/Cardinal-Components-API/releases -cardinal_components_version=6.0.0-pre2 \ No newline at end of file +cardinal_components_version=6.0.0-rc1 \ No newline at end of file From 82e832f80466371e8959152b4e6f3a5871d27a05 Mon Sep 17 00:00:00 2001 From: enjarai Date: Wed, 5 Jun 2024 12:15:55 +0200 Subject: [PATCH 16/18] Brom --- CHANGELOG.md | 4 +- build.gradle | 26 +++++++----- gradle.properties | 16 ++++---- .../assets/showmeyourskin/lang/en_us.json | 32 --------------- .../assets/showmeyourskin/lang/en_us.yml | 40 +++++++++++++++++++ .../assets/showmeyourskin/lang/es_mx.json | 32 --------------- .../assets/showmeyourskin/lang/es_mx.yml | 40 +++++++++++++++++++ .../assets/showmeyourskin/lang/nl_nl.json | 23 ----------- .../assets/showmeyourskin/lang/nl_nl.yml | 30 ++++++++++++++ .../assets/showmeyourskin/lang/ru_ru.json | 31 -------------- .../assets/showmeyourskin/lang/ru_ru.yml | 39 ++++++++++++++++++ .../assets/showmeyourskin/lang/uk_ua.json | 20 ---------- .../assets/showmeyourskin/lang/uk_ua.yml | 27 +++++++++++++ .../assets/showmeyourskin/lang/zh_cn.json | 21 ---------- .../assets/showmeyourskin/lang/zh_cn.yml | 28 +++++++++++++ 15 files changed, 230 insertions(+), 179 deletions(-) delete mode 100644 src/main/resources/assets/showmeyourskin/lang/en_us.json create mode 100644 src/main/resources/assets/showmeyourskin/lang/en_us.yml delete mode 100644 src/main/resources/assets/showmeyourskin/lang/es_mx.json create mode 100644 src/main/resources/assets/showmeyourskin/lang/es_mx.yml delete mode 100644 src/main/resources/assets/showmeyourskin/lang/nl_nl.json create mode 100644 src/main/resources/assets/showmeyourskin/lang/nl_nl.yml delete mode 100644 src/main/resources/assets/showmeyourskin/lang/ru_ru.json create mode 100644 src/main/resources/assets/showmeyourskin/lang/ru_ru.yml delete mode 100644 src/main/resources/assets/showmeyourskin/lang/uk_ua.json create mode 100644 src/main/resources/assets/showmeyourskin/lang/uk_ua.yml delete mode 100644 src/main/resources/assets/showmeyourskin/lang/zh_cn.json create mode 100644 src/main/resources/assets/showmeyourskin/lang/zh_cn.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 24acde3..a4702d3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,2 +1,2 @@ -- Fixed an issue preventing vanilla clients from joining servers with the mod installed. -- Added Mexican Spanish translations (Thanks @TheLegendofSaram) +- Added an option to make Elytras reappear while flying. (Thanks @EminGT) +- Fixed button tooltips not appearing at all. \ No newline at end of file diff --git a/build.gradle b/build.gradle index 6277ac7..f47ad1e 100644 --- a/build.gradle +++ b/build.gradle @@ -2,6 +2,7 @@ plugins { id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' id "me.modmuss50.mod-publish-plugin" version "0.4.4" + id 'me.fallenbreath.yamlang' version '1.3.1' } sourceCompatibility = JavaVersion.VERSION_21 @@ -33,23 +34,23 @@ repositories { dependencies { // To change the versions see the gradle.properties file - minecraft "com.mojang:minecraft:${project.minecraft_version}" - mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" - modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" + minecraft "com.mojang:minecraft:${property("deps.minecraft")}" + mappings "net.fabricmc:yarn:${property("deps.yarn")}:v2" + modImplementation "net.fabricmc:fabric-loader:${property("deps.fabricloader")}" // Fabric API. This is technically optional, but you probably want it anyway. - modImplementation "net.fabricmc.fabric-api:fabric-api:${project.fabric_version}" + modImplementation "net.fabricmc.fabric-api:fabric-api:${property("deps.fabric-api")}" - modImplementation("nl.enjarai:cicada-lib:${project.cicada_version}") { + modImplementation("nl.enjarai:cicada-lib:${property("deps.cicada")}") { exclude group: "net.fabricmc.fabric-api" } // Mod Menu integration. - modImplementation "com.terraformersmc:modmenu:${modmenu_version}" + modImplementation "com.terraformersmc:modmenu:${property("deps.modmenu")}" // Cardinal Components for shrimple™ server syncing. - modImplementation(include("org.ladysnake.cardinal-components-api:cardinal-components-base:${project.cardinal_components_version}")) - modImplementation(include("org.ladysnake.cardinal-components-api:cardinal-components-entity:${project.cardinal_components_version}")) + modImplementation(include("org.ladysnake.cardinal-components-api:cardinal-components-base:${property("deps.cardinal-components-api")}")) + modImplementation(include("org.ladysnake.cardinal-components-api:cardinal-components-entity:${property("deps.cardinal-components-api")}")) // Make it easier to test skin compat. // modImplementation 'com.ptsmods:devlogin:2.1' @@ -63,7 +64,7 @@ processResources { } } -version = "$version+$minecraft_version" +version = "$version+${property("deps.minecraft")}" tasks.withType(JavaCompile).configureEach { // Minecraft 1.18 (1.18-pre2) upwards uses Java 17. @@ -83,6 +84,11 @@ jar { } } +yamlang { + targetSourceSets = [sourceSets.main] + inputDir = "assets/showmeyourskin/lang" +} + // configure the maven publication publishing { publications { @@ -106,7 +112,7 @@ loom { publishMods { file = remapJar.archiveFile - displayName = "${property('mod_version')} for ${property('minecraft_version')}" + displayName = "${property('mod_version')} for ${property('deps.minecraft')}" version = project.version changelog = getRootProject().file("CHANGELOG.md").text type = STABLE diff --git a/gradle.properties b/gradle.properties index b699b11..e2ce71c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,12 +3,12 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.20.5 -yarn_mappings=1.20.5+build.1 -loader_version=0.15.10 +deps.minecraft=1.20.6 +deps.yarn=1.20.6+build.3 +deps.fabricloader=0.15.10 # Mod Properties -mod_version = 1.10.2 +mod_version = 1.11.0 maven_group = nl.enjarai archives_base_name = show-me-your-skin @@ -20,9 +20,9 @@ mod_github=enjarai/show-me-your-skin git_branch=master # Dependencies -fabric_version=0.97.8+1.20.5 +deps.fabric-api=0.99.4+1.20.6 # https://modrinth.com/mod/modmenu/versions -modmenu_version=10.0.0-beta.1 -cicada_version=0.7.1+1.20.5-and-above +deps.modmenu=10.0.0-beta.1 +deps.cicada=0.7.2+1.20.5-and-above # https://github.com/OnyxStudios/Cardinal-Components-API/releases -cardinal_components_version=6.0.0-rc1 \ No newline at end of file +deps.cardinal-components-api=6.0.0 \ No newline at end of file diff --git a/src/main/resources/assets/showmeyourskin/lang/en_us.json b/src/main/resources/assets/showmeyourskin/lang/en_us.json deleted file mode 100644 index ee69423..0000000 --- a/src/main/resources/assets/showmeyourskin/lang/en_us.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "category.showmeyourskin.showmeyourskin": "Show Me Your Skin!", - "key.showmeyourskin.open_settings": "Open Armor Config", - "key.showmeyourskin.global_toggle": "Toggle Mod", - "key.showmeyourskin.global_toggle.enable": "§aEnabled §rarmor rendering customisation.", - "key.showmeyourskin.global_toggle.disable": "§cDisabled §rarmor rendering customisation.", - "gui.showmeyourskin.armorScreen.title": "Armor Config", - "gui.showmeyourskin.armorScreen.title.serverIntegrated": "Armor Config (Server)", - "gui.showmeyourskin.armorScreen.title.serverOverrides": "Armor Config (Local Overrides)", - "gui.showmeyourskin.armorScreen.globalToggleTooltip": "Global toggle, press %1$s to toggle ingame.", - "gui.showmeyourskin.armorScreen.overridesEnabled": "Enable local overrides.\n(not visible to other players)", - "gui.showmeyourskin.armorScreen.overridesConfigure": "Configure local overrides.\n(not visible to other players)", - "gui.showmeyourskin.armorScreen.global": "Global", - "gui.showmeyourskin.armorScreen.synced": "Synced", - "gui.showmeyourskin.armorScreen.overridden": "Overridden", - "gui.showmeyourskin.armorScreen.playerName": "%s", - "gui.showmeyourskin.armorScreen.playerSelector": "Armor Config", - "gui.showmeyourskin.armorScreen.piece.head": "Helmet: %d%%", - "gui.showmeyourskin.armorScreen.piece.chest": "Chestplate: %d%%", - "gui.showmeyourskin.armorScreen.piece.legs": "Leggings: %d%%", - "gui.showmeyourskin.armorScreen.piece.feet": "Boots: %d%%", - "gui.showmeyourskin.armorScreen.piece.elytra": "Elytra: %d%%", - "gui.showmeyourskin.armorScreen.piece.shield": "Shield: %d%%", - "gui.showmeyourskin.armorScreen.piece.hat": "Hat: %d%%", - "gui.showmeyourskin.armorScreen.glintTooltip": "Enable enchantment glint", - "gui.showmeyourskin.armorScreen.combatTooltip": "Automatically disable transparency in combat", - "gui.showmeyourskin.armorScreen.nameTagTooltip": "Show player name tag", - "gui.showmeyourskin.armorScreen.showElytraTooltip": "Show Elytra", - "gui.showmeyourskin.armorScreen.shieldGlintTooltip": "Show enchantment glint on shield", - "gui.showmeyourskin.armorScreen.openButtonTooltip": "Open armor transparency override", - "gui.showmeyourskin.armorScreen.deleteButtonTooltip": "Delete transparency override" -} \ No newline at end of file diff --git a/src/main/resources/assets/showmeyourskin/lang/en_us.yml b/src/main/resources/assets/showmeyourskin/lang/en_us.yml new file mode 100644 index 0000000..ed27ad8 --- /dev/null +++ b/src/main/resources/assets/showmeyourskin/lang/en_us.yml @@ -0,0 +1,40 @@ +category: + showmeyourskin: + showmeyourskin: Show Me Your Skin! +key: + showmeyourskin: + open_settings: Open Armor Config + global_toggle: + .: Toggle Mod + enable: "§aEnabled §rarmor rendering customisation." + disable: "§cDisabled §rarmor rendering customisation." +gui: + showmeyourskin: + armorScreen: + title: + .: Armor Config + serverIntegrated: Armor Config (Server) + serverOverrides: Armor Config (Local Overrides) + globalToggleTooltip: Global toggle, press %1$s to toggle ingame. + overridesEnabled: "Enable local overrides.\n(not visible to other players)" + overridesConfigure: "Configure local overrides.\n(not visible to other players)" + global: Global + synced: Synced + overridden: Overridden + playerName: "%s" + playerSelector: Armor Config + piece: + head: "Helmet: %d%%" + chest: "Chestplate: %d%%" + legs: "Leggings: %d%%" + feet: "Boots: %d%%" + elytra: "Elytra: %d%%" + shield: "Shield: %d%%" + hat: "Hat: %d%%" + glintTooltip: Enable enchantment glint + combatTooltip: Automatically disable transparency in combat + nameTagTooltip: Show player name tag + showElytraTooltip: Show Elytra + shieldGlintTooltip: Show enchantment glint on shield + openButtonTooltip: Open armor transparency override + deleteButtonTooltip: Delete transparency override diff --git a/src/main/resources/assets/showmeyourskin/lang/es_mx.json b/src/main/resources/assets/showmeyourskin/lang/es_mx.json deleted file mode 100644 index 6e1c888..0000000 --- a/src/main/resources/assets/showmeyourskin/lang/es_mx.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "category.showmeyourskin.showmeyourskin": "Show Me Your Skin!", - "key.showmeyourskin.open_settings": "Abrir configuración de armadura", - "key.showmeyourskin.global_toggle": "Alternar Mod", - "key.showmeyourskin.global_toggle.enable": "§aHabilitado§r personalización de armadura.", - "key.showmeyourskin.global_toggle.disable": "§cDeshabilitado§r personalización de armadura.", - "gui.showmeyourskin.armorScreen.title": "Configuración de Armadura", - "gui.showmeyourskin.armorScreen.title.serverIntegrated": "Configuración de Armadura (Servidor)", - "gui.showmeyourskin.armorScreen.title.serverOverrides": "Configuración de Armadura (Anulaciones Locales)", - "gui.showmeyourskin.armorScreen.globalToggleTooltip": "Alternar globalmente, presiona %1$s para alternar en el juego.", - "gui.showmeyourskin.armorScreen.overridesEnabled": "Habilitar anulaciones locales.\n(no visible para otros jugadores)", - "gui.showmeyourskin.armorScreen.overridesConfigure": "Configurar anulaciones locales.\n(no visible para otros jugadores)", - "gui.showmeyourskin.armorScreen.global": "Global", - "gui.showmeyourskin.armorScreen.synced": "Sincronizado", - "gui.showmeyourskin.armorScreen.overridden": "Anulado", - "gui.showmeyourskin.armorScreen.playerName": "%s", - "gui.showmeyourskin.armorScreen.playerSelector": "Configuración de Armadura", - "gui.showmeyourskin.armorScreen.piece.head": "Yelmo: %d%%", - "gui.showmeyourskin.armorScreen.piece.chest": "Pechera: %d%%", - "gui.showmeyourskin.armorScreen.piece.legs": "Grebas: %d%%", - "gui.showmeyourskin.armorScreen.piece.feet": "Botas: %d%%", - "gui.showmeyourskin.armorScreen.piece.elytra": "Elytra: %d%%", - "gui.showmeyourskin.armorScreen.piece.shield": "Escudo: %d%%", - "gui.showmeyourskin.armorScreen.piece.hat": "Sombrero: %d%%", - "gui.showmeyourskin.armorScreen.glintTooltip": "Habilitar brillo de encantamiento", - "gui.showmeyourskin.armorScreen.combatTooltip": "Desactivar automáticamente la transparencia en combate", - "gui.showmeyourskin.armorScreen.nameTagTooltip": "Mostrar etiqueta de nombre del jugador", - "gui.showmeyourskin.armorScreen.showElytraTooltip": "Mostrar Elytra", - "gui.showmeyourskin.armorScreen.shieldGlintTooltip": "Mostrar brillo de encantamiento en el escudo", - "gui.showmeyourskin.armorScreen.openButtonTooltip": "Abrir anulación de transparencia de armadura", - "gui.showmeyourskin.armorScreen.deleteButtonTooltip": "Eliminar anulación de transparencia" -} \ No newline at end of file diff --git a/src/main/resources/assets/showmeyourskin/lang/es_mx.yml b/src/main/resources/assets/showmeyourskin/lang/es_mx.yml new file mode 100644 index 0000000..55ce23e --- /dev/null +++ b/src/main/resources/assets/showmeyourskin/lang/es_mx.yml @@ -0,0 +1,40 @@ +category: + showmeyourskin: + showmeyourskin: Show Me Your Skin! +key: + showmeyourskin: + open_settings: Abrir configuración de armadura + global_toggle: + .: Alternar Mod + enable: "§aHabilitado§r personalización de armadura." + disable: "§cDeshabilitado§r personalización de armadura." +gui: + showmeyourskin: + armorScreen: + title: + .: Configuración de Armadura + serverIntegrated: Configuración de Armadura (Servidor) + serverOverrides: Configuración de Armadura (Anulaciones Locales) + globalToggleTooltip: Alternar globalmente, presiona %1$s para alternar en el juego. + overridesEnabled: "Habilitar anulaciones locales.\n(no visible para otros jugadores)" + overridesConfigure: "Configurar anulaciones locales.\n(no visible para otros jugadores)" + global: Global + synced: Sincronizado + overridden: Anulado + playerName: "%s" + playerSelector: Configuración de Armadura + piece: + head: "Yelmo: %d%%" + chest: "Pechera: %d%%" + legs: "Grebas: %d%%" + feet: "Botas: %d%%" + elytra: "Elytra: %d%%" + shield: "Escudo: %d%%" + hat: "Sombrero: %d%%" + glintTooltip: Habilitar brillo de encantamiento + combatTooltip: Desactivar automáticamente la transparencia en combate + nameTagTooltip: Mostrar etiqueta de nombre del jugador + showElytraTooltip: Mostrar Elytra + shieldGlintTooltip: Mostrar brillo de encantamiento en el escudo + openButtonTooltip: Abrir anulación de transparencia de armadura + deleteButtonTooltip: Eliminar anulación de transparencia diff --git a/src/main/resources/assets/showmeyourskin/lang/nl_nl.json b/src/main/resources/assets/showmeyourskin/lang/nl_nl.json deleted file mode 100644 index 0803ff0..0000000 --- a/src/main/resources/assets/showmeyourskin/lang/nl_nl.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "category.showmeyourskin.showmeyourskin": "Show Me Your Skin!", - "key.showmeyourskin.open_settings": "Open Harnas Configuratie", - "key.showmeyourskin.global_toggle": "Globale Schakelaar", - "key.showmeyourskin.global_toggle.enable": "Harnas render aanpassingen aangezet.", - "key.showmeyourskin.global_toggle.disable": "Harnas render aanpassingen uitgezet.", - "gui.showmeyourskin.armorScreen.globalToggleTooltip": "Globale schakel, druk op %1$s om aan of uit te zetten in het spel.", - "gui.showmeyourskin.armorScreen.global": "Globaal", - "gui.showmeyourskin.armorScreen.playerSelector": "Harnas Configuratie", - "gui.showmeyourskin.armorScreen.piece.head": "Helm: %d%%", - "gui.showmeyourskin.armorScreen.piece.chest": "Kuras: %d%%", - "gui.showmeyourskin.armorScreen.piece.legs": "Beenstukken: %d%%", - "gui.showmeyourskin.armorScreen.piece.feet": "Laarzen: %d%%", - "gui.showmeyourskin.armorScreen.piece.elytra": "Dekschild: %d%%", - "gui.showmeyourskin.armorScreen.piece.shield": "Schild: %d%%", - "gui.showmeyourskin.armorScreen.glintTooltip": "Activeer betoveringsgloed", - "gui.showmeyourskin.armorScreen.combatTooltip": "Deactiveer automatisch de transparantie in een gevecht", - "gui.showmeyourskin.armorScreen.nameTagTooltip": "Laat het naamplaatje van de speler zien", - "gui.showmeyourskin.armorScreen.showElytraTooltip": "Laat Dekschild zien", - "gui.showmeyourskin.armorScreen.shieldGlintTooltip": "Betoveringsgloed laten zien op schild", - "gui.showmeyourskin.armorScreen.openButtonTooltip": "Open harnas transparantie overschrijving", - "gui.showmeyourskin.armorScreen.deleteButtonTooltip": "Verwijder transparantie overschrijving" -} \ No newline at end of file diff --git a/src/main/resources/assets/showmeyourskin/lang/nl_nl.yml b/src/main/resources/assets/showmeyourskin/lang/nl_nl.yml new file mode 100644 index 0000000..6375856 --- /dev/null +++ b/src/main/resources/assets/showmeyourskin/lang/nl_nl.yml @@ -0,0 +1,30 @@ +category: + showmeyourskin: + showmeyourskin: Show Me Your Skin! +key: + showmeyourskin: + open_settings: Open Harnas Configuratie + global_toggle: + .: Globale Schakelaar + enable: Harnas render aanpassingen aangezet. + disable: Harnas render aanpassingen uitgezet. +gui: + showmeyourskin: + armorScreen: + globalToggleTooltip: Globale schakel, druk op %1$s om aan of uit te zetten in het spel. + global: Globaal + playerSelector: Harnas Configuratie + piece: + head: "Helm: %d%%" + chest: "Kuras: %d%%" + legs: "Beenstukken: %d%%" + feet: "Laarzen: %d%%" + elytra: "Dekschild: %d%%" + shield: "Schild: %d%%" + glintTooltip: Activeer betoveringsgloed + combatTooltip: Deactiveer automatisch de transparantie in een gevecht + nameTagTooltip: Laat het naamplaatje van de speler zien + showElytraTooltip: Laat Dekschild zien + shieldGlintTooltip: Betoveringsgloed laten zien op schild + openButtonTooltip: Open harnas transparantie overschrijving + deleteButtonTooltip: Verwijder transparantie overschrijving diff --git a/src/main/resources/assets/showmeyourskin/lang/ru_ru.json b/src/main/resources/assets/showmeyourskin/lang/ru_ru.json deleted file mode 100644 index 8cbb8dc..0000000 --- a/src/main/resources/assets/showmeyourskin/lang/ru_ru.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "category.showmeyourskin.showmeyourskin": "Show Me Your Skin!", - "key.showmeyourskin.open_settings": "Открыть настройки брони", - "key.showmeyourskin.global_toggle": "Переключить режим", - "key.showmeyourskin.global_toggle.enable": "§aВключить §rперсонализацию отрисовки брони.", - "key.showmeyourskin.global_toggle.disable": "§cОтключить §rперсонализацию отрисовки брони.", - "gui.showmeyourskin.armorScreen.title": "Настройка брони", - "gui.showmeyourskin.armorScreen.title.serverIntegrated": "Настройка брони (Сервер)", - "gui.showmeyourskin.armorScreen.title.serverOverrides": "Настройка брони (Локальные переопределения)", - "gui.showmeyourskin.armorScreen.globalToggleTooltip": "Переключение на общие, нажмите %1$s для внутриигрового переключения.", - "gui.showmeyourskin.armorScreen.overridesEnabled": "Включить локальные переопределения.\n(не видно другим игрокам)", - "gui.showmeyourskin.armorScreen.overridesConfigure": "Настройка локальных переопределения.\n(не видно другим игрокам)", - "gui.showmeyourskin.armorScreen.global": "Общие", - "gui.showmeyourskin.armorScreen.synced": "Синхронизировано", - "gui.showmeyourskin.armorScreen.overridden": "Переопределено", - "gui.showmeyourskin.armorScreen.playerName": "%s", - "gui.showmeyourskin.armorScreen.playerSelector": "Настройка брони", - "gui.showmeyourskin.armorScreen.piece.head": "Шлем: %d%%", - "gui.showmeyourskin.armorScreen.piece.chest": "Нагрудник: %d%%", - "gui.showmeyourskin.armorScreen.piece.legs": "Поножи: %d%%", - "gui.showmeyourskin.armorScreen.piece.feet": "Ботинки: %d%%", - "gui.showmeyourskin.armorScreen.piece.elytra": "Элитры: %d%%", - "gui.showmeyourskin.armorScreen.piece.shield": "Щит: %d%%", - "gui.showmeyourskin.armorScreen.glintTooltip": "Включить мерцание чар", - "gui.showmeyourskin.armorScreen.combatTooltip": "Автоматически отключать прозрачность в бою", - "gui.showmeyourskin.armorScreen.nameTagTooltip": "Показать тэг имени игрока", - "gui.showmeyourskin.armorScreen.showElytraTooltip": "Показать элитры", - "gui.showmeyourskin.armorScreen.shieldGlintTooltip": "Показать на щите мерцание чара", - "gui.showmeyourskin.armorScreen.openButtonTooltip": "Открыть переопределение прозрачности брони", - "gui.showmeyourskin.armorScreen.deleteButtonTooltip": "Удалить переопеределение прозрачности" -} diff --git a/src/main/resources/assets/showmeyourskin/lang/ru_ru.yml b/src/main/resources/assets/showmeyourskin/lang/ru_ru.yml new file mode 100644 index 0000000..7895ddd --- /dev/null +++ b/src/main/resources/assets/showmeyourskin/lang/ru_ru.yml @@ -0,0 +1,39 @@ +category: + showmeyourskin: + showmeyourskin: Show Me Your Skin! +key: + showmeyourskin: + open_settings: Открыть настройки брони + global_toggle: + .: Переключить режим + enable: "§aВключить §rперсонализацию отрисовки брони." + disable: "§cОтключить §rперсонализацию отрисовки брони." +gui: + showmeyourskin: + armorScreen: + title: + .: Настройка брони + serverIntegrated: Настройка брони (Сервер) + serverOverrides: Настройка брони (Локальные переопределения) + globalToggleTooltip: Переключение на общие, нажмите %1$s для внутриигрового переключения. + overridesEnabled: "Включить локальные переопределения.\n(не видно другим игрокам)" + overridesConfigure: "Настройка локальных переопределения.\n(не видно другим игрокам)" + global: Общие + synced: Синхронизировано + overridden: Переопределено + playerName: "%s" + playerSelector: Настройка брони + piece: + head: "Шлем: %d%%" + chest: "Нагрудник: %d%%" + legs: "Поножи: %d%%" + feet: "Ботинки: %d%%" + elytra: "Элитры: %d%%" + shield: "Щит: %d%%" + glintTooltip: Включить мерцание чар + combatTooltip: Автоматически отключать прозрачность в бою + nameTagTooltip: Показать тэг имени игрока + showElytraTooltip: Показать элитры + shieldGlintTooltip: Показать на щите мерцание чара + openButtonTooltip: Открыть переопределение прозрачности брони + deleteButtonTooltip: Удалить переопределение прозрачности diff --git a/src/main/resources/assets/showmeyourskin/lang/uk_ua.json b/src/main/resources/assets/showmeyourskin/lang/uk_ua.json deleted file mode 100644 index 4b25482..0000000 --- a/src/main/resources/assets/showmeyourskin/lang/uk_ua.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "category.showmeyourskin.showmeyourskin": "Show Me Your Skin!", - "key.showmeyourskin.open_settings": "Відкрити глобальні параметри", - "key.showmeyourskin.global_toggle": "Переключити Мод", - "key.showmeyourskin.global_toggle.enable": "Включена настройка рендеринга броні.", - "key.showmeyourskin.global_toggle.disable": "Відключена настройка рендеринга броні.", - "gui.showmeyourskin.armorScreen.globalToggleTooltip": "Глобальне перемикання, натисніть %1$S, щоб переключитися в грі.", - "gui.showmeyourskin.armorScreen.global": "Глобальнi параметри", - "gui.showmeyourskin.armorScreen.playerSelector": "Налаштування бронi", - "gui.showmeyourskin.armorScreen.piece.head": "Шолом: %d%%", - "gui.showmeyourskin.armorScreen.piece.chest": "Нагрудник: %d%%", - "gui.showmeyourskin.armorScreen.piece.legs": "Наголінники: %d%%", - "gui.showmeyourskin.armorScreen.piece.feet": "Чоботи: %d%%", - "gui.showmeyourskin.armorScreen.glintTooltip": "Ефект зачаровування", - "gui.showmeyourskin.armorScreen.combatTooltip": "Автоматично вимикати прозорість в бою", - "gui.showmeyourskin.armorScreen.nameTagTooltip": "Показувати нік гравця", - "gui.showmeyourskin.armorScreen.showElytraTooltip": "Показувати елітри", - "gui.showmeyourskin.armorScreen.openButtonTooltip": "Відкрити параметри прозорості броні", - "gui.showmeyourskin.armorScreen.deleteButtonTooltip": "Скинути налаштування прозорості" -} \ No newline at end of file diff --git a/src/main/resources/assets/showmeyourskin/lang/uk_ua.yml b/src/main/resources/assets/showmeyourskin/lang/uk_ua.yml new file mode 100644 index 0000000..8b5090c --- /dev/null +++ b/src/main/resources/assets/showmeyourskin/lang/uk_ua.yml @@ -0,0 +1,27 @@ +category: + showmeyourskin: + showmeyourskin: Show Me Your Skin! +key: + showmeyourskin: + open_settings: Відкрити глобальні параметри + global_toggle: + .: Переключити Мод + enable: Включена настройка рендеринга броні. + disable: Відключена настройка рендеринга броні. +gui: + showmeyourskin: + armorScreen: + globalToggleTooltip: Глобальне перемикання, натисніть %1$S, щоб переключитися в грі. + global: Глобальнi параметри + playerSelector: Налаштування бронi + piece: + head: "Шолом: %d%%" + chest: "Нагрудник: %d%%" + legs: "Наголінники: %d%%" + feet: "Чоботи: %d%%" + glintTooltip: Ефект зачаровування + combatTooltip: Автоматично вимикати прозорість в бою + nameTagTooltip: Показувати нік гравця + showElytraTooltip: Показувати елітри + openButtonTooltip: Відкрити параметри прозорості броні + deleteButtonTooltip: Скинути налаштування прозорості diff --git a/src/main/resources/assets/showmeyourskin/lang/zh_cn.json b/src/main/resources/assets/showmeyourskin/lang/zh_cn.json deleted file mode 100644 index ec409bc..0000000 --- a/src/main/resources/assets/showmeyourskin/lang/zh_cn.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "category.showmeyourskin.showmeyourskin": "Show Me Your Skin!", - "key.showmeyourskin.open_settings": "打开护甲配置", - "key.showmeyourskin.global_toggle": "调整模组", - "key.showmeyourskin.global_toggle.enable": "启用自定义护甲渲染", - "key.showmeyourskin.global_toggle.disable": "禁用自定义护甲渲染", - "gui.showmeyourskin.armorScreen.globalToggleTooltip": "全局切换,按 %1$s 在游戏中切换。", - "gui.showmeyourskin.armorScreen.global": "全局", - "gui.showmeyourskin.armorScreen.playerSelector": "护甲配置", - "gui.showmeyourskin.armorScreen.piece.head": "头盔: %d%%", - "gui.showmeyourskin.armorScreen.piece.chest": "胸甲: %d%%", - "gui.showmeyourskin.armorScreen.piece.legs": "护腿: %d%%", - "gui.showmeyourskin.armorScreen.piece.feet": "靴子: %d%%", - "gui.showmeyourskin.armorScreen.glintTooltip": "启用附魔光效", - "gui.showmeyourskin.armorScreen.combatTooltip": "在战斗中自动禁用透明", - "gui.showmeyourskin.armorScreen.nameTagTooltip": "显示玩家姓名标签", - "gui.showmeyourskin.armorScreen.showElytraTooltip": "显示鞘翅", - "gui.showmeyourskin.armorScreen.shieldGlintTooltip": "在盾牌上显示附魔光效", - "gui.showmeyourskin.armorScreen.openButtonTooltip": "打开护甲透明", - "gui.showmeyourskin.armorScreen.deleteButtonTooltip": "删除透明" -} diff --git a/src/main/resources/assets/showmeyourskin/lang/zh_cn.yml b/src/main/resources/assets/showmeyourskin/lang/zh_cn.yml new file mode 100644 index 0000000..da0fc90 --- /dev/null +++ b/src/main/resources/assets/showmeyourskin/lang/zh_cn.yml @@ -0,0 +1,28 @@ +category: + showmeyourskin: + showmeyourskin: Show Me Your Skin! +key: + showmeyourskin: + open_settings: 打开护甲配置 + global_toggle: + .: 调整模组 + enable: 启用自定义护甲渲染 + disable: 禁用自定义护甲渲染 +gui: + showmeyourskin: + armorScreen: + globalToggleTooltip: 全局切换,按 %1$s 在游戏中切换。 + global: 全局 + playerSelector: 护甲配置 + piece: + head: "头盔: %d%%" + chest: "胸甲: %d%%" + legs: "护腿: %d%%" + feet: "靴子: %d%%" + glintTooltip: 启用附魔光效 + combatTooltip: 在战斗中自动禁用透明 + nameTagTooltip: 显示玩家姓名标签 + showElytraTooltip: 显示鞘翅 + shieldGlintTooltip: 在盾牌上显示附魔光效 + openButtonTooltip: 打开护甲透明 + deleteButtonTooltip: 删除透明 From 3414f54b21cad496a99d8a684eb261062b175897 Mon Sep 17 00:00:00 2001 From: enjarai Date: Wed, 5 Jun 2024 12:34:04 +0200 Subject: [PATCH 17/18] Post-ubermerge fixes --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 7a429d0..07b1614 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '1.4-SNAPSHOT' + id 'fabric-loom' version '1.6-SNAPSHOT' id 'maven-publish' id "me.modmuss50.mod-publish-plugin" version "0.4.4" id 'me.fallenbreath.yamlang' version '1.3.1' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index db9a6b8..17655d0 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 3ee8bace08d782823e9ea4c92b241d56ef22208c Mon Sep 17 00:00:00 2001 From: enjarai Date: Wed, 5 Jun 2024 12:34:24 +0200 Subject: [PATCH 18/18] Ah fuck this too --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index f690321..9451f59 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,7 +17,7 @@ publish_target_max=1.20.4 mod_modrinth=bD7YqcA3 mod_curseforge=622010 mod_github=enjarai/show-me-your-skin -git_branch=master +git_branch=1.20.4 # Dependencies deps.fabric-api=0.97.1+1.20.4