Skip to content

Commit a066d52

Browse files
Version 1.3.8.2
1 parent 58a89d0 commit a066d52

File tree

92 files changed

+2515
-490
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+2515
-490
lines changed

api/api/api.api

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -424,13 +424,13 @@ public abstract interface class gg/essential/api/utils/GuiUtil {
424424
public abstract fun openScreen (Lnet/minecraft/client/gui/screens/Screen;)V
425425
@1.17.1-forge,1.18.2-forge,1.19.2-forge,1.19.3-forge,1.19.4-forge,1.20.1-forge,1.20.2-forge,1.20.4-forge,1.20.4-neoforge,1.20.6-forge,1.20.6-neoforge,1.21.1-forge,1.21.1-neoforge,1.21.3-forge,1.21.3-neoforge,1.21.4-forge,1.21.4-neoforge,1.21.5-forge,1.21.5-neoforge
426426
public abstract fun openedScreen ()Lnet/minecraft/client/gui/screens/Screen;
427-
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric
427+
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric,1.21.6-fabric
428428
public static fun getOpenedScreen ()Lnet/minecraft/client/gui/screen/Screen;
429-
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric
429+
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric,1.21.6-fabric
430430
public static fun open (Lnet/minecraft/client/gui/screen/Screen;)V
431-
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric
431+
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric,1.21.6-fabric
432432
public abstract fun openScreen (Lnet/minecraft/client/gui/screen/Screen;)V
433-
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric
433+
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric,1.21.6-fabric
434434
public abstract fun openedScreen ()Lnet/minecraft/client/gui/screen/Screen;
435435
@1.12.2-forge,1.8.9-forge
436436
public static fun getOpenedScreen ()Lnet/minecraft/client/gui/GuiScreen;
@@ -447,9 +447,9 @@ public final class gg/essential/api/utils/GuiUtil$Companion {
447447
public final fun getOpenedScreen ()Lnet/minecraft/client/gui/screens/Screen;
448448
@1.17.1-forge,1.18.2-forge,1.19.2-forge,1.19.3-forge,1.19.4-forge,1.20.1-forge,1.20.2-forge,1.20.4-forge,1.20.4-neoforge,1.20.6-forge,1.20.6-neoforge,1.21.1-forge,1.21.1-neoforge,1.21.3-forge,1.21.3-neoforge,1.21.4-forge,1.21.4-neoforge,1.21.5-forge,1.21.5-neoforge
449449
public final fun open (Lnet/minecraft/client/gui/screens/Screen;)V
450-
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric
450+
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric,1.21.6-fabric
451451
public final fun getOpenedScreen ()Lnet/minecraft/client/gui/screen/Screen;
452-
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric
452+
@1.16.2-fabric,1.16.2-forge,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric,1.21.6-fabric
453453
public final fun open (Lnet/minecraft/client/gui/screen/Screen;)V
454454
@1.12.2-forge,1.8.9-forge
455455
public final fun getOpenedScreen ()Lnet/minecraft/client/gui/GuiScreen;
@@ -513,7 +513,7 @@ public final class gg/essential/api/utils/KotlinAdapter : net/minecraftforge/fml
513513
public abstract interface class gg/essential/api/utils/MinecraftUtils {
514514
@1.17.1-forge,1.18.2-forge,1.19.2-forge,1.19.3-forge,1.19.4-forge,1.20.1-forge,1.20.2-forge,1.20.4-forge,1.20.4-neoforge,1.20.6-forge,1.20.6-neoforge,1.21.1-forge,1.21.1-neoforge,1.21.3-forge,1.21.3-neoforge,1.21.4-forge,1.21.4-neoforge,1.21.5-forge,1.21.5-neoforge
515515
public abstract fun getResourceImage (Lnet/minecraft/resources/ResourceLocation;)Ljava/awt/image/BufferedImage;
516-
@1.16.2-fabric,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric
516+
@1.16.2-fabric,1.17.1-fabric,1.18.1-fabric,1.18.2-fabric,1.19-fabric,1.19.2-fabric,1.19.3-fabric,1.19.4-fabric,1.20-fabric,1.20.1-fabric,1.20.2-fabric,1.20.4-fabric,1.20.6-fabric,1.21.1-fabric,1.21.3-fabric,1.21.4-fabric,1.21.5-fabric,1.21.6-fabric
517517
public abstract fun getResourceImage (Lnet/minecraft/util/Identifier;)Ljava/awt/image/BufferedImage;
518518
@1.12.2-forge,1.16.2-forge,1.8.9-forge
519519
public abstract fun getResourceImage (Lnet/minecraft/util/ResourceLocation;)Ljava/awt/image/BufferedImage;

build-logic/src/main/kotlin/essential/preprocessor.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ fun Project.configurePreprocessTree(versions: File) {
2020
configure<RootPreprocessExtension> {
2121
strictExtraMappings.set(true)
2222

23+
val fabric12106 = createNode("1.21.6-fabric", 12106, "yarn")
2324
val neoForge12105 = createNode("1.21.5-neoforge", 12105, "srg")
2425
val forge12105 = createNode("1.21.5-forge", 12105, "srg")
2526
val fabric12105 = createNode("1.21.5-fabric", 12105, "yarn")
@@ -60,6 +61,7 @@ fun Project.configurePreprocessTree(versions: File) {
6061
val forge11202 = createNode("1.12.2-forge", 11202, "srg")
6162
val forge10809 = createNode("1.8.9-forge", 10809, "srg")
6263

64+
fabric12106.link(fabric12105, versions.resolve("1.21.6-1.21.5.txt"))
6365
neoForge12105.link(fabric12105)
6466
forge12105.link(fabric12105)
6567
fabric12105.link(fabric12104)

build.gradle.kts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ dependencies {
8787
}
8888
if (platform.mcVersion >= 12105 && (platform.isFabric || platform.isNeoForge)) {
8989
repositories.modrinth()
90-
modCompileOnly("maven.modrinth:iris:1.8.11+$platform")
90+
modCompileOnly("maven.modrinth:iris:1.8.11+1.21.5-${platform.loaderStr}")
9191
}
9292

9393
testImplementation(kotlin("test"))
@@ -125,6 +125,7 @@ dependencies {
125125
12103 -> "0.106.0+1.21.2"
126126
12104 -> "0.110.0+1.21.4"
127127
12105 -> "0.119.0+1.21.5"
128+
12106 -> "0.126.0+1.21.6"
128129
else -> error("No fabric API version configured!")
129130
}
130131
include(modImplementation(fabricApi.module("fabric-api-base", fapiVersion))!!)

changelog/release-1.3.8.2.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Title: Bug Patch
2+
Summary: Minor bug fixes
3+
4+
## New Versions
5+
- Added support for 1.21.6 Fabric
6+
7+
## Compatibility
8+
- Added support for cosmetics, emotes and skins to be recorded and played back by the ReplayMod

elementa/statev2/src/main/kotlin/gg/essential/gui/elementa/state/v2/set.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,4 +55,5 @@ fun <T> MutableSetState<T>.add(element: T) = set { it.add(element) }
5555
fun <T> MutableSetState<T>.addAll(toAdd: Collection<T>) = set { it.addAll(toAdd) }
5656
fun <T> MutableSetState<T>.setAll(newSet: Set<T>) = set { it.applyChanges(TrackedSet.Change.estimate(it, newSet)) }
5757
fun <T> MutableSetState<T>.remove(element: T) = set { it.remove(element) }
58+
fun <T> MutableSetState<T>.removeAll(toRemove: Collection<T>) = set { it.removeAll(toRemove) }
5859
fun <T> MutableSetState<T>.clear() = set { it.clear() }

gradle.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
essential.defaults.loom=0
2-
essential.defaults.loom.fabric-loader=net.fabricmc:fabric-loader:0.16.10
2+
essential.defaults.loom.fabric-loader=net.fabricmc:fabric-loader:0.16.13
33
kotlin.stdlib.default.dependency=false
44
org.gradle.daemon=false
55
org.gradle.parallel=true
@@ -10,4 +10,4 @@ minecraftVersion=11202
1010
# TODO remove once upgrading to Loom 1.10
1111
# fabric-api 1.21.5 was built with Loom 1.10, seems to work well enough in dev with our current 1.7 though
1212
loom.ignoreDependencyLoomVersionValidation=true
13-
version=1.3.8.1
13+
version=1.3.8.2

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[versions]
2-
universalcraft = "406"
2+
universalcraft = "412"
33
elementa = "708"
44
vigilance = "306"
55
mixinextras = "0.4.0"

gui/essential/src/main/java/gg/essential/handlers/MojangSkinManager.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ public MojangSkinManager(BooleanSupplier delayChanges) {
6161

6262
protected abstract void onReAuth(Runnable callback);
6363
protected abstract CompletableFuture<Skin> getSkinFromMinecraft();
64-
protected abstract void applySkinToGame(Skin skin);
6564

6665
@NotNull
6766
public CompletableFuture<Skin> getActiveSkin() {
@@ -124,7 +123,6 @@ private synchronized Skin updateSkinNow(boolean notification, boolean userSet) {
124123
.map(ApiSkinKt::toMod);
125124
if (maybeSkin.isPresent()) {
126125
Skin skin = maybeSkin.get();
127-
applySkinToGame(skin);
128126
activeSkin = CompletableFuture.completedFuture(skin);
129127
if (notification) {
130128
Notifications.INSTANCE.push("Skin", "Skin updated successfully");

gui/essential/src/main/java/gg/essential/network/connectionmanager/subscription/SubscriptionManager.java

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,40 @@
1212
package gg.essential.network.connectionmanager.subscription;
1313

1414
import gg.essential.connectionmanager.common.packet.subscription.SubscriptionUpdatePacket;
15+
import gg.essential.gui.elementa.state.v2.MutableState;
16+
import gg.essential.gui.elementa.state.v2.State;
17+
import gg.essential.gui.elementa.state.v2.collections.MutableTrackedSet;
18+
import gg.essential.gui.elementa.state.v2.collections.TrackedSet;
1519
import gg.essential.network.CMConnection;
1620
import gg.essential.network.connectionmanager.NetworkedManager;
1721
import gg.essential.network.connectionmanager.queue.PacketQueue;
1822
import gg.essential.network.connectionmanager.queue.SequentialPacketQueue;
1923
import gg.essential.util.USession;
24+
import kotlin.collections.SetsKt;
2025
import org.jetbrains.annotations.NotNull;
2126

2227
import java.util.*;
2328

29+
import static gg.essential.gui.elementa.state.v2.SetKt.addAll;
30+
import static gg.essential.gui.elementa.state.v2.SetKt.clear;
31+
import static gg.essential.gui.elementa.state.v2.SetKt.mutableSetState;
32+
import static gg.essential.gui.elementa.state.v2.SetKt.removeAll;
33+
import static gg.essential.gui.elementa.state.v2.SetKt.toSetState;
34+
2435
public class SubscriptionManager implements NetworkedManager {
2536

2637
@NotNull
2738
private final PacketQueue packetQueue;
2839

2940
private final List<Listener> listeners = new ArrayList<>();
3041

31-
private final Set<UUID> subscriptions = new HashSet<>();
42+
private final MutableState<MutableTrackedSet<UUID>> subscriptions = mutableSetState();
43+
private final State<TrackedSet<UUID>> subscriptionsAndSelf = toSetState(observer -> {
44+
Set<UUID> combined = new LinkedHashSet<>();
45+
combined.add(USession.Companion.getActive().get(observer).getUuid());
46+
combined.addAll(subscriptions.get(observer));
47+
return combined;
48+
});
3249

3350
public SubscriptionManager(@NotNull CMConnection cmConnection) {
3451
this.packetQueue = new SequentialPacketQueue.Builder(cmConnection)
@@ -41,13 +58,21 @@ public boolean isSubscribedOrSelf(@NotNull UUID uuid) {
4158
}
4259

4360
public boolean isSubscribed(@NotNull UUID uuid) {
44-
return this.subscriptions.contains(uuid);
61+
return this.subscriptions.getUntracked().contains(uuid);
62+
}
63+
64+
public State<TrackedSet<UUID>> getSubscriptionsAndSelf() {
65+
return subscriptionsAndSelf;
4566
}
4667

4768
public void subscribeToFeeds(@NotNull Set<UUID> uuids) {
48-
uuids.remove(USession.Companion.activeNow().getUuid());
69+
UUID ownUuid = USession.Companion.activeNow().getUuid();
70+
if (uuids.contains(ownUuid)) {
71+
subscribeToFeeds(SetsKt.minus(uuids, ownUuid));
72+
return;
73+
}
4974

50-
this.subscriptions.addAll(uuids);
75+
addAll(this.subscriptions, uuids);
5176
this.packetQueue.enqueue(new SubscriptionUpdatePacket(uuids.toArray(new UUID[0]), true), response -> {
5277
for (Listener listener : this.listeners) {
5378
listener.onSubscriptionAdded(uuids);
@@ -56,9 +81,13 @@ public void subscribeToFeeds(@NotNull Set<UUID> uuids) {
5681
}
5782

5883
public void unSubscribeFromFeeds(@NotNull Set<UUID> uuids) {
59-
uuids.remove(USession.Companion.activeNow().getUuid());
84+
UUID ownUuid = USession.Companion.activeNow().getUuid();
85+
if (uuids.contains(ownUuid)) {
86+
unSubscribeFromFeeds(SetsKt.minus(uuids, ownUuid));
87+
return;
88+
}
6089

61-
this.subscriptions.removeAll(uuids);
90+
removeAll(this.subscriptions, uuids);
6291
this.packetQueue.enqueue(new SubscriptionUpdatePacket(uuids.toArray(new UUID[0]), false), response -> {
6392
for (Listener listener : this.listeners) {
6493
listener.onSubscriptionRemoved(uuids);
@@ -71,7 +100,7 @@ public void onConnected() {
71100
this.packetQueue.reset();
72101

73102
// Clear all subscriptions, they are no longer valid as we may have missed updates
74-
Set<UUID> uuids = new HashSet<>(this.subscriptions);
103+
Set<UUID> uuids = this.subscriptions.getUntracked();
75104

76105
resetState();
77106

@@ -81,9 +110,9 @@ public void onConnected() {
81110

82111
@Override
83112
public void resetState() {
84-
Set<UUID> uuids = new HashSet<>(this.subscriptions);
113+
Set<UUID> uuids = this.subscriptions.getUntracked();
85114

86-
this.subscriptions.clear();
115+
clear(this.subscriptions);
87116

88117
for (Listener listener : this.listeners) {
89118
listener.onSubscriptionRemoved(uuids);

gui/essential/src/main/kotlin/gg/essential/config/EssentialConfig.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ object EssentialConfig : Vigilant2(), GuiEssentialPlatform.Config {
125125
val ownCosmeticsHiddenStateWithSource = mutableStateOf(Pair(false, false))
126126
var ownCosmeticsHiddenState = ownCosmeticsHiddenStateWithSource.bimap({ it.first }, { it to false })
127127
var ownCosmeticsHidden by ownCosmeticsHiddenState
128+
var ownCosmeticsVisible by !ownCosmeticsHiddenState
128129

129130
val hideCosmeticsWhenServerOverridesSkinState = property("Cosmetics.General.Hide cosmetics on server skins", false)
130131
var hideCosmeticsWhenServerOverridesSkin: Boolean by hideCosmeticsWhenServerOverridesSkinState

0 commit comments

Comments
 (0)