Skip to content

Commit 58d061a

Browse files
authored
Merge pull request #9 from RappyLabyAddons/development
release v1.0.5
2 parents e465996 + e41950a commit 58d061a

23 files changed

Lines changed: 392 additions & 36 deletions

File tree

.github/workflows/build.yml

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,41 +2,34 @@ name: LabyAddon Build
22

33
on:
44
push:
5-
branches: [ "master" ]
5+
branches: [ "master", "main" ]
66
pull_request:
7-
branches: [ "master" ]
7+
branches: [ "master", "main" ]
88
workflow_dispatch:
99

1010
jobs:
1111
build:
1212
runs-on: ubuntu-latest
1313
steps:
14-
- uses: actions/checkout@v4
14+
- uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
1515
- name: Set up JDK 25
16-
uses: actions/setup-java@v4
16+
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
1717
with:
1818
distribution: 'corretto'
1919
java-version: '25'
20-
- name: Cache Gradle dependencies
21-
uses: actions/cache@v4
20+
- name: Set up Gradle
21+
uses: gradle/actions/setup-gradle@5e2ebd065dc2488b7a6ad670704656cbbe1e8f60 # v6.1.1
2222
with:
23-
path: ~/.gradle/caches
24-
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
25-
restore-keys: |
26-
gradle-${{ runner.os }}-
27-
- name: Cache Gradle wrapper
28-
uses: actions/cache@v4
29-
with:
30-
path: ~/.gradle/wrapper
31-
key: gradle-wrapper-${{ runner.os }}-${{ hashFiles('**/gradle/wrapper/gradle-wrapper.properties') }}
32-
restore-keys: |
33-
gradle-wrapper-${{ runner.os }}-
23+
validate-wrappers: true
24+
cache-read-only: ${{ github.ref != format('refs/heads/{0}', github.event.repository.default_branch) }}
3425
- name: Grant execute permission for gradlew
3526
run: chmod +x gradlew
3627
- name: Build with Gradle
3728
run: ./gradlew build --full-stacktrace
29+
- name: Create Release Artifact
30+
run: ./gradlew createReleaseJar
3831
- name: Upload Artifact
39-
uses: actions/upload-artifact@v4
32+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
4033
with:
4134
name: Artifacts
42-
path: build/libs/*-release.jar
35+
path: build/libs/*-release.jar

core/src/main/java/com/rappytv/nametagresizer/core/NametagResizerAddon.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.rappytv.nametagresizer.core.listener.NametagSizeListener;
55
import net.labymod.api.Laby;
66
import net.labymod.api.addon.LabyAddon;
7+
import net.labymod.api.feature.BuiltinCategories;
78
import net.labymod.api.models.addon.annotation.AddonMain;
89
import net.labymod.api.revision.SimpleRevision;
910
import net.labymod.api.util.version.SemanticVersion;
@@ -23,6 +24,7 @@ protected void preConfigurationLoad() {
2324
@Override
2425
protected void enable() {
2526
this.registerSettingCategory();
27+
this.placeInModsCategory(BuiltinCategories.GAME);
2628

2729
this.registerListener(new KeyListener(this));
2830
this.registerListener(new NametagSizeListener(this));

core/src/main/java/com/rappytv/nametagresizer/core/NametagResizerConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public static class NametagSizeConfig extends Config {
5050
@SliderSetting(min = SIZE_MIN, max = SIZE_MAX)
5151
private final ConfigProperty<Integer> nametagSize = new ConfigProperty<>(4);
5252

53-
@SettingSection(value = "hotkeys", center = true)
53+
@SettingSection("hotkeys")
5454
@IntroducedIn(namespace = "nametagresizer", value = "1.0.1")
5555
@SpriteSlot(x = 3)
5656
@KeyBindSetting
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.rappytv.nametagresizer.v26_1;
2+
3+
public class RenderStateAccessor {
4+
5+
private static boolean player = false;
6+
7+
public static boolean isPlayer() {
8+
return player;
9+
}
10+
11+
public static void setPlayer(boolean player) {
12+
RenderStateAccessor.player = player;
13+
}
14+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.rappytv.nametagresizer.v26_1.mixins;
2+
3+
import com.mojang.blaze3d.vertex.PoseStack;
4+
import com.rappytv.nametagresizer.v26_1.RenderStateAccessor;
5+
import net.minecraft.client.renderer.SubmitNodeCollector;
6+
import net.minecraft.client.renderer.entity.player.AvatarRenderer;
7+
import net.minecraft.client.renderer.entity.state.AvatarRenderState;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12+
13+
@Mixin(AvatarRenderer.class)
14+
public class MixinAvatarRenderer {
15+
16+
@Inject(
17+
method = "submitNameDisplay(Lnet/minecraft/client/renderer/entity/state/AvatarRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;)V",
18+
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/player/AvatarRenderer;submitNameDisplay(Lnet/minecraft/client/renderer/entity/state/EntityRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;I)V")
19+
)
20+
private void submitNameDisplay(AvatarRenderState state, PoseStack poseStack,
21+
SubmitNodeCollector submitNodeCollector,
22+
net.minecraft.client.renderer.state.level.CameraRenderState camera, CallbackInfo ci) {
23+
RenderStateAccessor.setPlayer(true);
24+
}
25+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.rappytv.nametagresizer.v26_1.mixins;
2+
3+
import com.mojang.blaze3d.vertex.PoseStack;
4+
import com.rappytv.nametagresizer.v26_1.RenderStateAccessor;
5+
import net.minecraft.client.renderer.SubmitNodeCollector;
6+
import net.minecraft.client.renderer.entity.EntityRenderer;
7+
import net.minecraft.client.renderer.entity.state.EntityRenderState;
8+
import net.minecraft.client.renderer.state.level.CameraRenderState;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
import org.spongepowered.asm.mixin.injection.Inject;
12+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
13+
14+
@Mixin(EntityRenderer.class)
15+
public class MixinEntityRenderer {
16+
17+
@Inject(
18+
method = "submitNameDisplay(Lnet/minecraft/client/renderer/entity/state/EntityRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;)V",
19+
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/EntityRenderer;submitNameDisplay(Lnet/minecraft/client/renderer/entity/state/EntityRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;I)V")
20+
)
21+
public void submitNameDisplay(EntityRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera, CallbackInfo ci) {
22+
RenderStateAccessor.setPlayer(false);
23+
}
24+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.rappytv.nametagresizer.v26_1.mixins;
2+
3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
5+
import com.mojang.blaze3d.vertex.PoseStack;
6+
import com.rappytv.nametagresizer.api.event.NametagSizeEvent;
7+
import com.rappytv.nametagresizer.v26_1.RenderStateAccessor;
8+
import net.labymod.api.Laby;
9+
import net.minecraft.client.renderer.feature.NameTagFeatureRenderer;
10+
import org.spongepowered.asm.mixin.Mixin;
11+
import org.spongepowered.asm.mixin.injection.At;
12+
13+
@Mixin(NameTagFeatureRenderer.Storage.class)
14+
public class MixinNameTagFeatureRendererStorage {
15+
16+
@WrapOperation(method = "add", at = @At(value = "INVOKE", target = "Lcom/mojang/blaze3d/vertex/PoseStack;scale(FFF)V"))
17+
private void modifyScale(PoseStack stack, float x, float y, float z, Operation<Void> original) {
18+
NametagSizeEvent event = new NametagSizeEvent(RenderStateAccessor.isPlayer(), x, y, z);
19+
Laby.fireEvent(event);
20+
stack.scale(event.getX(), event.getY(), event.getZ());
21+
}
22+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.rappytv.nametagresizer.v26_1_1;
2+
3+
public class RenderStateAccessor {
4+
5+
private static boolean player = false;
6+
7+
public static boolean isPlayer() {
8+
return player;
9+
}
10+
11+
public static void setPlayer(boolean player) {
12+
RenderStateAccessor.player = player;
13+
}
14+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.rappytv.nametagresizer.v26_1_1.mixins;
2+
3+
import com.mojang.blaze3d.vertex.PoseStack;
4+
import com.rappytv.nametagresizer.v26_1_1.RenderStateAccessor;
5+
import net.minecraft.client.renderer.SubmitNodeCollector;
6+
import net.minecraft.client.renderer.entity.player.AvatarRenderer;
7+
import net.minecraft.client.renderer.entity.state.AvatarRenderState;
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.injection.At;
10+
import org.spongepowered.asm.mixin.injection.Inject;
11+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
12+
13+
@Mixin(AvatarRenderer.class)
14+
public class MixinAvatarRenderer {
15+
16+
@Inject(
17+
method = "submitNameDisplay(Lnet/minecraft/client/renderer/entity/state/AvatarRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;)V",
18+
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/player/AvatarRenderer;submitNameDisplay(Lnet/minecraft/client/renderer/entity/state/EntityRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;I)V")
19+
)
20+
private void submitNameDisplay(AvatarRenderState state, PoseStack poseStack,
21+
SubmitNodeCollector submitNodeCollector,
22+
net.minecraft.client.renderer.state.level.CameraRenderState camera, CallbackInfo ci) {
23+
RenderStateAccessor.setPlayer(true);
24+
}
25+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.rappytv.nametagresizer.v26_1_1.mixins;
2+
3+
import com.mojang.blaze3d.vertex.PoseStack;
4+
import com.rappytv.nametagresizer.v26_1_1.RenderStateAccessor;
5+
import net.minecraft.client.renderer.SubmitNodeCollector;
6+
import net.minecraft.client.renderer.entity.EntityRenderer;
7+
import net.minecraft.client.renderer.entity.state.EntityRenderState;
8+
import net.minecraft.client.renderer.state.level.CameraRenderState;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
import org.spongepowered.asm.mixin.injection.Inject;
12+
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
13+
14+
@Mixin(EntityRenderer.class)
15+
public class MixinEntityRenderer {
16+
17+
@Inject(
18+
method = "submitNameDisplay(Lnet/minecraft/client/renderer/entity/state/EntityRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;)V",
19+
at = @At(value = "INVOKE", target = "Lnet/minecraft/client/renderer/entity/EntityRenderer;submitNameDisplay(Lnet/minecraft/client/renderer/entity/state/EntityRenderState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/client/renderer/state/level/CameraRenderState;I)V")
20+
)
21+
public void submitNameDisplay(EntityRenderState state, PoseStack poseStack, SubmitNodeCollector submitNodeCollector, CameraRenderState camera, CallbackInfo ci) {
22+
RenderStateAccessor.setPlayer(false);
23+
}
24+
}

0 commit comments

Comments
 (0)