Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 12 additions & 7 deletions api/ctjs.api
Original file line number Diff line number Diff line change
Expand Up @@ -3018,7 +3018,6 @@ public final class com/v5/api/V5Auth {
public final class com/v5/event/Context {
public field camera Lnet/minecraft/client/render/Camera;
public field consumers Lnet/minecraft/client/render/VertexConsumerProvider;
public field frustum Lnet/minecraft/client/render/Frustum;
public fun <init> ()V
public final fun getCamera ()Lnet/minecraft/client/render/Camera;
public final fun getConsumers ()Lnet/minecraft/client/render/VertexConsumerProvider;
Expand Down Expand Up @@ -3120,6 +3119,10 @@ public class com/v5/mixins/BlockModelRendererMixin {
public fun <init> ()V
}

public abstract class com/v5/mixins/BlockRenderLayersMixin {
public fun <init> ()V
}

public abstract class com/v5/mixins/CameraMixin {
public fun <init> ()V
protected abstract fun setPos (Lnet/minecraft/util/math/Vec3d;)V
Expand Down Expand Up @@ -3204,10 +3207,6 @@ public class com/v5/mixins/PlayerListHudMixin {
public fun <init> ()V
}

public abstract class com/v5/mixins/RenderLayersMixin {
public fun <init> ()V
}

public abstract class com/v5/mixins/ScreenPanoramaMixin {
public fun <init> ()V
}
Expand Down Expand Up @@ -3610,8 +3609,8 @@ public final class com/v5/render/objects/RenderLayers {
public static final field INSTANCE Lcom/v5/render/objects/RenderLayers;
public static final field LINE_LIST Lnet/minecraft/client/render/RenderLayer;
public static final field LINE_LIST_ESP Lnet/minecraft/client/render/RenderLayer;
public static final field TRIANGLE_STRIP Lnet/minecraft/client/render/RenderLayer$MultiPhase;
public static final field TRIANGLE_STRIP_ESP Lnet/minecraft/client/render/RenderLayer$MultiPhase;
public static final field TRIANGLE_STRIP Lnet/minecraft/client/render/RenderLayer;
public static final field TRIANGLE_STRIP_ESP Lnet/minecraft/client/render/RenderLayer;
}

public final class com/v5/render/objects/RenderPipelines {
Expand Down Expand Up @@ -3751,6 +3750,12 @@ public final class com/v5/swift/integration/HypixelManager {
public final fun onDisconnect ()V
}

public final class com/v5/swift/integration/WynncraftManager {
public static final field INSTANCE Lcom/v5/swift/integration/WynncraftManager;
public final fun init ()V
public final fun onDisconnect ()V
}

public final class com/v5/swift/io/WorldSerializer {
public static final field INSTANCE Lcom/v5/swift/io/WorldSerializer;
public final fun load (Ljava/lang/String;)Ljava/util/concurrent/ConcurrentHashMap;
Expand Down
21 changes: 13 additions & 8 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import org.jetbrains.dokka.versioning.VersioningPlugin
import org.jetbrains.kotlin.gradle.dsl.JvmTarget
import java.net.HttpURLConnection
import java.net.URL
import java.io.ByteArrayOutputStream

buildscript {
dependencies {
Expand Down Expand Up @@ -113,6 +112,14 @@ apiValidation {
}

tasks {
named("check") {
dependsOn("apiDump")
}

named("apiCheck") {
enabled = false
}

processResources {
val flkVersion = libs.versions.fabric.kotlin.get()
val yarnVersion = libs.versions.yarn.get()
Expand Down Expand Up @@ -190,7 +197,7 @@ tasks {

sourceLink {
localDirectory.set(file("src/main/kotlin"))
remoteUrl.set(URL("https://github.com/ChatTriggers/ctjs/blob/$branch/src/main/kotlin"))
remoteUrl.set(URL("https://github.com/Synnerz/ctjs/blob/$branch/src/main/kotlin"))
remoteLineSuffix.set("#L")
}

Expand Down Expand Up @@ -251,10 +258,8 @@ fun downloadFile(url: String): ByteArray {
}

fun getBranch(): String {
val stdout = ByteArrayOutputStream()
exec {
commandLine("git", "rev-parse", "HEAD")
standardOutput = stdout
}
return stdout.toString().trim()
val process = ProcessBuilder("git", "rev-parse", "HEAD")
.redirectErrorStream(true)
.start()
return process.inputStream.bufferedReader().use { it.readText().trim() }
}
15 changes: 7 additions & 8 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
[versions]
# Library versions
minecraft = "1.21.10"
yarn = "1.21.10+build.1"
minecraft = "1.21.11"
yarn="1.21.11+build.3"
lwjgl = "3.3.3"


loader = "0.17.2"
fabric-api = "0.134.1+1.21.10"
loader = "0.17.3"
fabric-api = "0.140.0+1.21.11"
fabric-kotlin = "1.13.2+kotlin.2.1.20"

mapping-io = "0.6.1"
Expand All @@ -16,7 +15,7 @@ textarea = "3.2.0"
serialization = "1.5.1"
koffee = "315bc11234"

universalcraft = "436"
universalcraft = "475"
elementa = "710"
vigilance = "312"

Expand All @@ -26,7 +25,7 @@ dokka = "1.9.20"

# Plugin Versions
kotlin = "2.1.20"
loom = "1.12.0-alpha.37"
loom = "1.15.5"
validator = "0.17.0"
ksp = "2.1.20-1.0.32"

Expand All @@ -47,7 +46,7 @@ textarea = { module = "com.fifesoft:rsyntaxtextarea", version.ref = "textarea" }
serialization = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization" }
koffee = { module = "com.github.ChatTriggers:koffee", version.ref = "koffee" }

universalcraft = { module = "gg.essential:universalcraft-1.21.9-fabric", version.ref = "universalcraft" }
universalcraft = { module = "gg.essential:universalcraft-1.21.11-fabric", version.ref = "universalcraft" }
elementa = { module = "gg.essential:elementa", version.ref = "elementa" }
vigilance = { module = "gg.essential:vigilance", version.ref = "vigilance" }

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ private void injectClear(boolean clearHistory, CallbackInfo ci) {
method = "addMessage(Lnet/minecraft/client/gui/hud/ChatHudLine;)V",
at = @At(
value = "INVOKE",
target = "Ljava/util/List;remove(I)Ljava/lang/Object;",
target = "Ljava/util/List;removeLast()Ljava/lang/Object;",
shift = At.Shift.BEFORE
)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ private void beforeRender(ObjectAllocator allocator, RenderTickCounter tickCount
}

@Inject(method = "method_62214", at = @At("RETURN"))
private void afterRender(GpuBufferSlice gpuBufferSlice, WorldRenderState worldRenderState, Profiler profiler, Matrix4f matrix4f, Handle handle, Handle handle2, boolean bl, Frustum frustum, Handle handle3, Handle handle4, CallbackInfo ci) {
private void afterRender(GpuBufferSlice gpuBufferSlice, WorldRenderState worldRenderState, Profiler profiler, Matrix4f matrix4f, Handle handle, Handle handle2, boolean bl, Handle handle3, Handle handle4, CallbackInfo ci) {
WorldListener.INSTANCE.triggerRenderLast();
}
}
22 changes: 10 additions & 12 deletions src/main/java/com/v5/mixins/AbstractBlockStateMixin.java
Original file line number Diff line number Diff line change
@@ -1,24 +1,22 @@
package com.v5.mixins;

import com.v5.qol.Xray;
import net.minecraft.block.AbstractBlock.AbstractBlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.BlockView;
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.callback.CallbackInfoReturnable;
import net.minecraft.block.AbstractBlock.AbstractBlockState;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.BlockView;



@Mixin(AbstractBlockState.class)
public class AbstractBlockStateMixin {

@Inject(at = @At("TAIL"), method = {
"getAmbientOcclusionLightLevel(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)F" }, cancellable = true)
private void onGetAmbientOcclusionLightLevel(BlockView blockView, BlockPos blockPos, CallbackInfoReturnable<Float> cir) {
if (Xray.isEnabled) {
cir.setReturnValue(1F);
}
}
@Inject(at = @At("TAIL"), method = {
"getAmbientOcclusionLightLevel(Lnet/minecraft/world/BlockView;Lnet/minecraft/util/math/BlockPos;)F"}, cancellable = true)
private void onGetAmbientOcclusionLightLevel(BlockView blockView, BlockPos blockPos, CallbackInfoReturnable<Float> cir) {
if (Xray.isEnabled) {
cir.setReturnValue(1F);
}
}
}
47 changes: 22 additions & 25 deletions src/main/java/com/v5/mixins/AbstractTerrainRenderContextMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,29 @@
@SuppressWarnings("UnstableApiUsage")
@Mixin(AbstractTerrainRenderContext.class)
public abstract class AbstractTerrainRenderContextMixin {
@Final
@Shadow(remap = false)
protected BlockRenderInfo blockInfo;
@Final
@Shadow(remap = false)
protected BlockRenderInfo blockInfo;

@Inject(method = "bufferQuad", at = @At(value = "INVOKE", target = "Lnet/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractTerrainRenderContext;bufferQuad(Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;Lnet/minecraft/client/render/VertexConsumer;)V"), cancellable = true)
private void cancelRenders(MutableQuadViewImpl quad, CallbackInfo ci) {
if (Xray.isEnabled) {
Block block = blockInfo.blockState.getBlock();
int alpha = Xray.returnAlpha(blockInfo.blockPos, blockInfo.blockState);
@Inject(method = "bufferQuad", at = @At(value = "INVOKE", target = "Lnet/fabricmc/fabric/impl/client/indigo/renderer/render/AbstractTerrainRenderContext;bufferQuad(Lnet/fabricmc/fabric/impl/client/indigo/renderer/mesh/MutableQuadViewImpl;Lnet/minecraft/client/render/VertexConsumer;)V"), cancellable = true)
private void cancelRenders(MutableQuadViewImpl quad, CallbackInfo ci) {
if (Xray.isEnabled) {
Block block = blockInfo.blockState.getBlock();
int alpha = Xray.returnAlpha(blockInfo.blockPos, blockInfo.blockState);
if (!(block instanceof StainedGlassPaneBlock || block instanceof StainedGlassBlock)) {
if (alpha == 0) ci.cancel();
else if (alpha != -1) {
for (int i = 0; i < 4; i++) {
quad.color(i, setAlpha(quad.color(i), alpha));
}
}
}
}
}

if (block instanceof StainedGlassPaneBlock || block instanceof StainedGlassBlock) {
// do nothing / render
} else {
if (alpha == 0) ci.cancel();
else if (alpha != -1) {
for (int i = 0; i < 4; i++) {
quad.color(i, setAlpha(quad.color(i), alpha));
}
}
}
}
}

@Unique
private int setAlpha(int color, int alpha) {
return ((alpha & 0xFF) << 24) | (color & 0x00FFFFFF);
}
@Unique
private int setAlpha(int color, int alpha) {
return ((alpha & 0xFF) << 24) | (color & 0x00FFFFFF);
}
}

3 changes: 2 additions & 1 deletion src/main/java/com/v5/mixins/BlockModelRendererMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,10 @@ private void onRenderSmooth(BlockRenderView world, List<BlockModelPart> parts, B
}
}

@ModifyArgs(method = "renderQuad", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/VertexConsumer;quad(Lnet/minecraft/client/util/math/MatrixStack$Entry;Lnet/minecraft/client/render/model/BakedQuad;[FFFFF[IIZ)V"))
@ModifyArgs(method = "renderQuad", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/VertexConsumer;quad(Lnet/minecraft/client/util/math/MatrixStack$Entry;Lnet/minecraft/client/render/model/BakedQuad;[FFFFF[II)V"))
private void modifyXrayAlpha(final Args args) {
final int alpha = alphas.get();
args.set(6, alpha == -1 ? args.get(6) : alpha / 255f);
}

}
39 changes: 39 additions & 0 deletions src/main/java/com/v5/mixins/BlockRenderLayersMixin.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package com.v5.mixins;

import com.v5.qol.Xray;
import net.minecraft.block.BlockState;
import net.minecraft.block.Blocks;
import net.minecraft.client.render.BlockRenderLayer;
import net.minecraft.client.render.BlockRenderLayers;
import net.minecraft.fluid.FluidState;
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.callback.CallbackInfoReturnable;

@Mixin(BlockRenderLayers.class)
public abstract class BlockRenderLayersMixin {
@Inject(method = "getBlockLayer", at = @At("HEAD"), cancellable = true)
private static void onGetBlockLayer(BlockState state, CallbackInfoReturnable<BlockRenderLayer> cir) {
if (Xray.isEnabled) {
int alpha = Xray.returnAlpha(null, state);
if (state.isOf(Blocks.GOLD_BLOCK) || state.isOf(Blocks.BEDROCK))
return;

if (alpha > 0 && alpha < 255) {
cir.setReturnValue(BlockRenderLayer.TRANSLUCENT);
}
}
}

@Inject(method = "getFluidLayer", at = @At("HEAD"), cancellable = true)
private static void onGetFluidLayer(FluidState state, CallbackInfoReturnable<BlockRenderLayer> cir) {
int alpha = Xray.returnAlpha(null, state.getBlockState());
if (Xray.isEnabled) {
if (alpha > 0 && alpha < 255) {
cir.setReturnValue(BlockRenderLayer.TRANSLUCENT);
}
}
}
}

10 changes: 2 additions & 8 deletions src/main/java/com/v5/mixins/CameraMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.util.math.Vec3d;
import net.minecraft.world.BlockView;
import net.minecraft.world.World;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
Expand All @@ -17,13 +17,7 @@ public abstract class CameraMixin {
protected abstract void setPos(Vec3d pos);

@Inject(method = "update", at = @At("TAIL"))
private void v5$applyCameraOverride(
BlockView area,
Entity focusedEntity,
boolean thirdPerson,
boolean inverseView,
float tickProgress,
CallbackInfo ci) {
private void v5$applyCameraOverride(World area, Entity focusedEntity, boolean thirdPerson, boolean inverseView, float tickProgress, CallbackInfo ci) {
Object override = V5MixinStorage.get("cameraOverridePos", null);
if (override instanceof Vec3d pos) {
this.setPos(pos);
Expand Down
14 changes: 8 additions & 6 deletions src/main/java/com/v5/mixins/GameRendererMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.v5.render.NVGRenderer;
import net.minecraft.client.render.GameRenderer;
import net.minecraft.client.render.RenderTickCounter;
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;
Expand All @@ -13,12 +14,13 @@
public class GameRendererMixin {

@ModifyExpressionValue(
method = "render",
at =
@At(
value = "FIELD",
target =
"Lnet/minecraft/client/option/GameOptions;pauseOnLostFocus:Z"))
method = "render",
at = @At(
value = "FIELD",
target = "Lnet/minecraft/client/option/GameOptions;pauseOnLostFocus:Z",
opcode = Opcodes.GETFIELD
)
)
private boolean v5$render(boolean original) {
return false;
}
Expand Down
Loading
Loading