aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/dulkirfabric/mixin/render/GameMenuScreenMixin.java3
-rw-r--r--src/main/java/com/dulkirfabric/mixin/render/GameRendererMixin.java17
-rw-r--r--src/main/java/com/dulkirfabric/mixin/render/InGameHudMixin.java45
-rw-r--r--src/main/kotlin/com/dulkirfabric/config/DulkirConfig.kt12
-rw-r--r--src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt18
-rw-r--r--src/main/kotlin/com/dulkirfabric/util/Utils.kt3
6 files changed, 59 insertions, 39 deletions
diff --git a/src/main/java/com/dulkirfabric/mixin/render/GameMenuScreenMixin.java b/src/main/java/com/dulkirfabric/mixin/render/GameMenuScreenMixin.java
index 6f09e51..86a4ecf 100644
--- a/src/main/java/com/dulkirfabric/mixin/render/GameMenuScreenMixin.java
+++ b/src/main/java/com/dulkirfabric/mixin/render/GameMenuScreenMixin.java
@@ -32,7 +32,8 @@ import java.util.function.Supplier;
@Mixin(GameMenuScreen.class)
public abstract class GameMenuScreenMixin extends ScreenMixin {
- private final Text buttonText = MutableText.of(new LiteralTextContent("Dulkir")).formatted(Formatting.BOLD, Formatting.YELLOW);
+ private final Text buttonText = MutableText.of(new PlainTextContent.Literal("Dulkir"))
+ .formatted(Formatting.BOLD, Formatting.YELLOW);
@Shadow
protected abstract ButtonWidget createButton(Text text, Supplier<Screen> screenSupplier);
diff --git a/src/main/java/com/dulkirfabric/mixin/render/GameRendererMixin.java b/src/main/java/com/dulkirfabric/mixin/render/GameRendererMixin.java
index 78b4dbd..40ac4af 100644
--- a/src/main/java/com/dulkirfabric/mixin/render/GameRendererMixin.java
+++ b/src/main/java/com/dulkirfabric/mixin/render/GameRendererMixin.java
@@ -2,18 +2,15 @@ package com.dulkirfabric.mixin.render;
import com.dulkirfabric.features.InventoryScale;
+import com.llamalad7.mixinextras.sugar.Local;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.render.GameRenderer;
-import net.minecraft.client.util.Window;
-import net.minecraft.client.util.math.MatrixStack;
-import org.joml.Matrix4f;
import org.objectweb.asm.Opcodes;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.ModifyArg;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
-import org.spongepowered.asm.mixin.injection.callback.LocalCapture;
@Mixin(value = GameRenderer.class, priority = 1001)
public class GameRendererMixin {
@@ -37,9 +34,8 @@ public class GameRendererMixin {
opcode = Opcodes.GETFIELD,
target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;",
shift = At.Shift.BEFORE,
- ordinal = 1), locals = LocalCapture.CAPTURE_FAILHARD)
- public void onScreenRenderPre(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int i, int j,
- Window window, Matrix4f matrix4f, MatrixStack matrixStack, DrawContext drawContext) {
+ ordinal = 1))
+ public void onScreenRenderPre(float tickDelta, long startTime, boolean tick, CallbackInfo ci, @Local DrawContext drawContext) {
drawContext.getMatrices().push();
drawContext.getMatrices().scale(InventoryScale.INSTANCE.getScale(), InventoryScale.INSTANCE.getScale(), 1f);
}
@@ -49,10 +45,9 @@ public class GameRendererMixin {
opcode = Opcodes.GETFIELD,
target = "Lnet/minecraft/client/MinecraftClient;currentScreen:Lnet/minecraft/client/gui/screen/Screen;",
shift = At.Shift.AFTER,
- ordinal = 3), locals = LocalCapture.CAPTURE_FAILHARD
+ ordinal = 3)
)
- public void onScreenRenderPost(float tickDelta, long startTime, boolean tick, CallbackInfo ci, int i, int j,
- Window window, Matrix4f matrix4f, MatrixStack matrixStack, DrawContext drawContext) {
- drawContext.getMatrices().pop();
+ public void onScreenRenderPost(float tickDelta, long startTime, boolean tick, CallbackInfo ci, @Local DrawContext drawContext) {
+ drawContext.getMatrices().pop();
}
} \ No newline at end of file
diff --git a/src/main/java/com/dulkirfabric/mixin/render/InGameHudMixin.java b/src/main/java/com/dulkirfabric/mixin/render/InGameHudMixin.java
index 7f90b3b..995b8af 100644
--- a/src/main/java/com/dulkirfabric/mixin/render/InGameHudMixin.java
+++ b/src/main/java/com/dulkirfabric/mixin/render/InGameHudMixin.java
@@ -6,6 +6,7 @@ import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.minecraft.client.font.TextRenderer;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.hud.InGameHud;
+import net.minecraft.text.Text;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
@@ -15,21 +16,36 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
@Mixin(InGameHud.class)
public class InGameHudMixin {
- @Inject(method = "renderStatusEffectOverlay", at = @At("HEAD"), cancellable = true)
+ @Inject(
+ method = "renderStatusEffectOverlay",
+ at = @At("HEAD"),
+ cancellable = true
+ )
public void onRenderStatusEffectOverlay(DrawContext context, CallbackInfo ci) {
if (DulkirConfig.ConfigVars.getConfigOptions().getStatusEffectHidden()) {
ci.cancel();
}
}
- @Redirect(method = "renderScoreboardSidebar(Lnet/minecraft/client/gui/DrawContext;Lnet/minecraft/scoreboard/ScoreboardObjective;)V",
- at = @At(value = "INVOKE", target = "Lnet/minecraft/client/gui/DrawContext;drawText(Lnet/minecraft/client/font/TextRenderer;Ljava/lang/String;IIIZ)I"))
- public int renderScoreBoardSidebar(DrawContext instance, TextRenderer textRenderer, String text, int x, int y, int color, boolean shadow) {
+ @Redirect(
+ method = "method_55440([Lnet/minecraft/client/gui/hud/InGameHud$SidebarEntry;ILnet/minecraft/client/gui/DrawContext;Lnet/minecraft/text/Text;I)V",
+ at = @At(
+ value = "INVOKE",
+ target = "Lnet/minecraft/client/gui/DrawContext;drawText(Lnet/minecraft/client/font/TextRenderer;Lnet/minecraft/text/Text;IIIZ)I",
+ ordinal = 2
+ )
+ )
+ public int removeScoreBoardNumbers(DrawContext instance, TextRenderer textRenderer, Text text, int x, int y, int color, boolean shadow) {
return 0;
}
- @ModifyExpressionValue(method = "renderStatusBars(Lnet/minecraft/client/gui/DrawContext;)V",
- at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;getArmor()I"))
+ @ModifyExpressionValue(
+ method = "renderStatusBars(Lnet/minecraft/client/gui/DrawContext;)V",
+ at = @At(
+ value = "INVOKE",
+ target = "Lnet/minecraft/entity/player/PlayerEntity;getArmor()I"
+ )
+ )
public int onGrabArmorAmount(int original) {
if (DulkirConfig.ConfigVars.getConfigOptions().getHideArmorOverlay() && Utils.INSTANCE.isInSkyblock()) {
return 0;
@@ -37,17 +53,24 @@ public class InGameHudMixin {
return original;
}
- @ModifyExpressionValue(method = "renderStatusBars(Lnet/minecraft/client/gui/DrawContext;)V",
- at = @At(value = "INVOKE",
- target = "Lnet/minecraft/client/gui/hud/InGameHud;getHeartCount(Lnet/minecraft/entity/LivingEntity;)I"))
+ @ModifyExpressionValue(
+ method = "renderStatusBars(Lnet/minecraft/client/gui/DrawContext;)V",
+ at = @At(
+ value = "INVOKE",
+ target = "Lnet/minecraft/client/gui/hud/InGameHud;getHeartCount(Lnet/minecraft/entity/LivingEntity;)I"
+ )
+ )
public int onCheckForRiding(int original) {
if (DulkirConfig.ConfigVars.getConfigOptions().getHideHungerOverlay() && Utils.INSTANCE.isInSkyblock())
return 1;
return original;
}
- @Inject(method = "renderHeldItemTooltip",
- at = @At("HEAD"), cancellable = true)
+ @Inject(
+ method = "renderHeldItemTooltip",
+ at = @At("HEAD"),
+ cancellable = true
+ )
public void changeItemDisplay (DrawContext context, CallbackInfo ci) {
if (DulkirConfig.ConfigVars.getConfigOptions().getHideHeldItemTooltip())
ci.cancel();
diff --git a/src/main/kotlin/com/dulkirfabric/config/DulkirConfig.kt b/src/main/kotlin/com/dulkirfabric/config/DulkirConfig.kt
index 93db1a0..ccd5dd2 100644
--- a/src/main/kotlin/com/dulkirfabric/config/DulkirConfig.kt
+++ b/src/main/kotlin/com/dulkirfabric/config/DulkirConfig.kt
@@ -21,15 +21,17 @@ import com.dulkirfabric.util.render.AnimationPreset
import com.dulkirfabric.util.render.HudElement
import kotlinx.serialization.Serializable
import kotlinx.serialization.UseSerializers
-import kotlinx.serialization.decodeFromString
import kotlinx.serialization.encodeToString
import kotlinx.serialization.json.Json
import me.shedaniel.clothconfig2.api.ConfigBuilder
import moe.nea.jarvis.api.Point
import net.minecraft.client.gui.screen.Screen
-import net.minecraft.client.util.InputUtil
-import net.minecraft.client.util.InputUtil.*
-import net.minecraft.text.*
+import net.minecraft.client.util.InputUtil.Key
+import net.minecraft.client.util.InputUtil.UNKNOWN_KEY
+import net.minecraft.text.MutableText
+import net.minecraft.text.PlainTextContent.Literal
+import net.minecraft.text.Text
+import net.minecraft.text.TextColor
import net.minecraft.util.Formatting
import net.minecraft.util.Identifier
import java.io.File
@@ -37,7 +39,7 @@ import java.io.File
class DulkirConfig {
private val buttonText: Text =
- MutableText.of(LiteralTextContent("Dulkir")).formatted(Formatting.BOLD, Formatting.YELLOW)
+ MutableText.of(Literal("Dulkir")).formatted(Formatting.BOLD, Formatting.YELLOW)
var screen: Screen = buildScreen(null)
fun buildScreen(parentScreen: Screen? = null): Screen {
diff --git a/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt b/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt
index c62cbab..d8acd4b 100644
--- a/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt
+++ b/src/main/kotlin/com/dulkirfabric/util/ScoreBoardUtils.kt
@@ -23,12 +23,12 @@ object ScoreBoardUtils {
fun getLines(): MutableList<String>? {
val scoreboard = DulkirModFabric.mc.player?.scoreboard ?: return null
// This returns null if we're not in skyblock curiously
- val sidebarObjective = scoreboard.getObjective("SBScoreboard") ?: return null
- val scores = scoreboard.getAllPlayerScores(sidebarObjective)
+ val sidebarObjective = scoreboard.getNullableObjective("SBScoreboard") ?: return null
+ val scores = scoreboard.getScoreboardEntries(sidebarObjective)
val lines: MutableList<String> = ArrayList()
for (score in scores.reversed()) {
- val team = scoreboard.getPlayerTeam(score.playerName)
- var str = Team.decorateName(team, Text.literal(score.playerName)).string
+ val team = scoreboard.getTeam(score.owner)
+ var str = Team.decorateName(team, Text.literal(score.owner)).string
.replace("ยง[^a-f0-9]".toRegex(), "")
lines.add(str)
}
@@ -42,12 +42,12 @@ object ScoreBoardUtils {
fun getLinesWithColor(): MutableList<String>? {
val scoreboard = DulkirModFabric.mc.player?.scoreboard ?: return null
// This returns null if we're not in skyblock curiously
- val sidebarObjective = scoreboard.getObjective("SBScoreboard") ?: return null
- val scores = scoreboard.getAllPlayerScores(sidebarObjective)
+ val sidebarObjective = scoreboard.getNullableObjective("SBScoreboard") ?: return null
+ val scores = scoreboard.getScoreboardEntries(sidebarObjective)
val lines: MutableList<String> = ArrayList()
for (score in scores.reversed()) {
- val team = scoreboard.getPlayerTeam(score.playerName)
- lines.add(Team.decorateName(team, Text.literal(score.playerName)).formattedString())
+ val team = scoreboard.getTeam(score.owner)
+ lines.add(Team.decorateName(team, Text.literal(score.owner)).formattedString())
}
return lines
}
@@ -97,7 +97,7 @@ object ScoreBoardUtils {
if (event.sound.id.path != "entity.wither.shoot") return
if (event.sound.pitch != 0.6984127f) return
if (event.sound.volume != .5f) return
- SlayerBossEvents.Spawn(slayerType?: return err()).post()
+ SlayerBossEvents.Spawn(slayerType ?: return err()).post()
}
fun err() {
diff --git a/src/main/kotlin/com/dulkirfabric/util/Utils.kt b/src/main/kotlin/com/dulkirfabric/util/Utils.kt
index a0fec78..342dc48 100644
--- a/src/main/kotlin/com/dulkirfabric/util/Utils.kt
+++ b/src/main/kotlin/com/dulkirfabric/util/Utils.kt
@@ -6,7 +6,6 @@ import com.dulkirfabric.events.WorldLoadEvent
import com.dulkirfabric.events.chat.ChatEvents
import meteordevelopment.orbit.EventHandler
import net.minecraft.block.entity.SkullBlockEntity
-import net.minecraft.client.texture.PlayerSkinProvider
import net.minecraft.entity.Entity
import net.minecraft.item.ItemStack
import net.minecraft.nbt.NbtHelper
@@ -74,6 +73,6 @@ object Utils {
fun getSkullTexture(itemStack: ItemStack): String? {
return itemStack.getSubNbt(SkullBlockEntity.SKULL_OWNER_KEY)?.let(NbtHelper::toGameProfile)?.properties?.get(
- PlayerSkinProvider.TEXTURES)?.first()?.value
+ "textures")?.first()?.value
}
} \ No newline at end of file