diff --git a/gradle.properties b/gradle.properties index 1fe0c893..0777db32 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G # Fabric Properties # check https://fabricmc.net/develop/ - minecraft_version=25w05a + minecraft_version=25w06a loader_version=0.16.10 jsr305_version=3.0.2 fabric_version=0.110.5+1.21.4 diff --git a/src/main/java/carpet/helpers/EntityPlayerActionPack.java b/src/main/java/carpet/helpers/EntityPlayerActionPack.java index 4bdd93bf..8595b57f 100644 --- a/src/main/java/carpet/helpers/EntityPlayerActionPack.java +++ b/src/main/java/carpet/helpers/EntityPlayerActionPack.java @@ -274,14 +274,14 @@ public class EntityPlayerActionPack else // one slot { if (selectedSlot == -1) - selectedSlot = inv.selected; + selectedSlot = inv.getSelectedSlot(); dropItemFromSlot(selectedSlot, dropAll); } } public void setSlot(int slot) { - player.getInventory().selected = slot-1; + player.getInventory().setSelectedSlot(slot-1); player.connection.send(new ClientboundSetHeldSlotPacket(slot-1)); } diff --git a/src/main/java/carpet/mixins/Player_antiCheatDisabledMixin.java b/src/main/java/carpet/mixins/Player_antiCheatDisabledMixin.java index 9dc4676a..2a4b6ed0 100644 --- a/src/main/java/carpet/mixins/Player_antiCheatDisabledMixin.java +++ b/src/main/java/carpet/mixins/Player_antiCheatDisabledMixin.java @@ -2,11 +2,15 @@ package carpet.mixins; import carpet.CarpetSettings; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; //import net.minecraft.world.item.ElytraItem; import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.Items; +import net.minecraft.world.level.Level; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; @@ -14,18 +18,23 @@ import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Mixin(Player.class) -public abstract class Player_antiCheatDisabledMixin +public abstract class Player_antiCheatDisabledMixin extends LivingEntity { - @Shadow public abstract ItemStack getItemBySlot(EquipmentSlot equipmentSlot_1); + protected Player_antiCheatDisabledMixin(final EntityType entityType, final Level level) + { + super(entityType, level); + } @Shadow public abstract void startFallFlying(); + @Shadow public abstract Inventory getInventory(); + @Inject(method = "tryToStartFallFlying", at = @At("HEAD"), cancellable = true) private void allowDeploys(CallbackInfoReturnable cir) { if (CarpetSettings.antiCheatDisabled && (Object)this instanceof ServerPlayer sp && sp.getServer().isDedicatedServer()) { - ItemStack itemStack_1 = getItemBySlot(EquipmentSlot.CHEST); + ItemStack itemStack_1 = equipment.get(EquipmentSlot.CHEST); if (itemStack_1.getItem() == Items.ELYTRA && !itemStack_1.nextDamageWillBreak()) { startFallFlying(); cir.setReturnValue(true); diff --git a/src/main/java/carpet/mixins/ServerChunkCacheMixin.java b/src/main/java/carpet/mixins/ServerChunkCacheMixin.java index 8510da44..ce5c0107 100644 --- a/src/main/java/carpet/mixins/ServerChunkCacheMixin.java +++ b/src/main/java/carpet/mixins/ServerChunkCacheMixin.java @@ -27,7 +27,7 @@ public abstract class ServerChunkCacheMixin @Shadow @Final private DistanceManager distanceManager; - @Redirect(method = "tickChunks(Lnet/minecraft/util/profiling/ProfilerFiller;JLjava/util/List;)V", at = @At( + @Redirect(method = "tickChunks(Lnet/minecraft/util/profiling/ProfilerFiller;J)V", at = @At( value = "INVOKE", target = "Lnet/minecraft/server/level/DistanceManager;getNaturalSpawnChunkCount()I" )) @@ -54,7 +54,7 @@ public abstract class ServerChunkCacheMixin } - @Inject(method = "tickChunks(Lnet/minecraft/util/profiling/ProfilerFiller;JLjava/util/List;)V", at = @At("RETURN")) + @Inject(method = "tickChunks(Lnet/minecraft/util/profiling/ProfilerFiller;J)V", at = @At("RETURN")) private void onFinishSpawnWorldCycle(CallbackInfo ci) { LevelData levelData = this.level.getLevelData(); // levelProperies class diff --git a/src/main/java/carpet/mixins/ServerChunkCache_profilerMixin.java b/src/main/java/carpet/mixins/ServerChunkCache_profilerMixin.java index 201885e1..23d4c904 100644 --- a/src/main/java/carpet/mixins/ServerChunkCache_profilerMixin.java +++ b/src/main/java/carpet/mixins/ServerChunkCache_profilerMixin.java @@ -19,13 +19,13 @@ public abstract class ServerChunkCache_profilerMixin CarpetProfiler.ProfilerToken currentSection; - @Inject(method = "tickChunks(Lnet/minecraft/util/profiling/ProfilerFiller;JLjava/util/List;)V", at = @At("HEAD")) + @Inject(method = "tickChunks(Lnet/minecraft/util/profiling/ProfilerFiller;J)V", at = @At("HEAD")) private void startSpawningSection(CallbackInfo ci) { currentSection = CarpetProfiler.start_section(level, "Spawning", CarpetProfiler.TYPE.GENERAL); } - @Inject(method = "tickChunks(Lnet/minecraft/util/profiling/ProfilerFiller;JLjava/util/List;)V", at = @At("RETURN")) + @Inject(method = "tickChunks(Lnet/minecraft/util/profiling/ProfilerFiller;J)V", at = @At("RETURN")) private void stopSpawningSection(CallbackInfo ci) { if (currentSection != null) diff --git a/src/main/java/carpet/mixins/ServerGamePacketListenerImpl_scarpetEventsMixin.java b/src/main/java/carpet/mixins/ServerGamePacketListenerImpl_scarpetEventsMixin.java index e940f70f..6fd5eb02 100644 --- a/src/main/java/carpet/mixins/ServerGamePacketListenerImpl_scarpetEventsMixin.java +++ b/src/main/java/carpet/mixins/ServerGamePacketListenerImpl_scarpetEventsMixin.java @@ -269,7 +269,7 @@ public class ServerGamePacketListenerImpl_scarpetEventsMixin { if (PLAYER_SWITCHES_SLOT.isNeeded() && player.getServer() != null && player.getServer().isSameThread()) { - PLAYER_SWITCHES_SLOT.onSlotSwitch(player, player.getInventory().selected, packet.getSlot()); + PLAYER_SWITCHES_SLOT.onSlotSwitch(player, player.getInventory().getSelectedSlot(), packet.getSlot()); } } diff --git a/src/main/java/carpet/mixins/ServerLevel_scarpetMixin.java b/src/main/java/carpet/mixins/ServerLevel_scarpetMixin.java index fdb12025..db8d929c 100644 --- a/src/main/java/carpet/mixins/ServerLevel_scarpetMixin.java +++ b/src/main/java/carpet/mixins/ServerLevel_scarpetMixin.java @@ -51,13 +51,13 @@ public abstract class ServerLevel_scarpetMixin extends Level implements ServerWo super(writableLevelData, resourceKey, registryAccess, holder, bl, bl2, l, i); } - @Inject(method = "tickChunk", locals = LocalCapture.CAPTURE_FAILHARD, at = @At( + @Inject(method = "tickThunder", locals = LocalCapture.CAPTURE_FAILHARD, at = @At( value = "INVOKE", target = "Lnet/minecraft/server/level/ServerLevel;addFreshEntity(Lnet/minecraft/world/entity/Entity;)Z", shift = At.Shift.BEFORE, ordinal = 1 )) - private void onNaturalLightinig(LevelChunk chunk, int randomTickSpeed, CallbackInfo ci, + private void onNaturalLightinig(LevelChunk chunk, CallbackInfo ci, //ChunkPos chunkPos, boolean bl, int i, int j, Profiler profiler, BlockPos blockPos, boolean bl2) ChunkPos chunkPos, boolean bl, int i, int j, ProfilerFiller profiler, BlockPos blockPos, DifficultyInstance localDifficulty, boolean bl2, LightningBolt lightningEntity) { diff --git a/src/main/java/carpet/script/utils/ShapesRenderer.java b/src/main/java/carpet/script/utils/ShapesRenderer.java index 54884f37..0f30ab68 100644 --- a/src/main/java/carpet/script/utils/ShapesRenderer.java +++ b/src/main/java/carpet/script/utils/ShapesRenderer.java @@ -6,11 +6,12 @@ import carpet.script.utils.shapes.ShapeDirection; import com.mojang.blaze3d.systems.RenderSystem; import com.mojang.blaze3d.vertex.BufferBuilder; -import com.mojang.blaze3d.vertex.BufferUploader; import com.mojang.blaze3d.vertex.ByteBufferBuilder; import com.mojang.blaze3d.vertex.DefaultVertexFormat; +import com.mojang.blaze3d.vertex.MeshData; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.Tesselator; +import com.mojang.blaze3d.vertex.VertexBuffer; import com.mojang.blaze3d.vertex.VertexFormat; import com.mojang.blaze3d.vertex.VertexFormat.Mode; import com.mojang.math.Axis; @@ -617,6 +618,14 @@ public class ShapesRenderer } } + private static void drawWithShader(MeshData mesh) { + VertexBuffer buffre = mesh.drawState().format().getImmediateDrawVertexBuffer(); + buffre.bind(); + buffre.upload(mesh); + buffre.drawWithShader(RenderSystem.getModelViewMatrix(), RenderSystem.getProjectionMatrix(), RenderSystem.getShader()); + } + + public static class RenderedPolyface extends RenderedShape { private static final VertexFormat.Mode[] faceIndices = new VertexFormat.Mode[]{ @@ -654,7 +663,7 @@ public class ShapesRenderer } builder.addVertex((float) (vec.x() - cx), (float) (vec.y() - cy), (float) (vec.z() - cz)).setColor(shape.fr, shape.fg, shape.fb, shape.fa); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); RenderSystem.disableCull(); RenderSystem.depthMask(false); @@ -690,7 +699,7 @@ public class ShapesRenderer builder.addVertex((float) (vec.x() - cx), (float) (vec.y() - cy), (float) (vec.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); } builder.addVertex((float) (vec0.x() - cx), (float) (vec0.y() - cy), (float) (vec0.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); if (shape.inneredges) { BufferBuilder builderr = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); @@ -705,7 +714,7 @@ public class ShapesRenderer builderr.addVertex((float) (vec.x() - cx), (float) (vec.y() - cy), (float) (vec.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); builderr.addVertex((float) (vec0.x() - cx), (float) (vec0.y() - cy), (float) (vec0.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); } - BufferUploader.drawWithShader(builderr.buildOrThrow()); + drawWithShader(builderr.buildOrThrow()); } return; } @@ -750,7 +759,7 @@ public class ShapesRenderer builder.addVertex((float) (vec.x() - cx), (float) (vec.y() - cy), (float) (vec.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); } } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); return; } if (shape.mode == 4) @@ -784,7 +793,7 @@ public class ShapesRenderer builder.addVertex((float) (vecC.x() - cx), (float) (vecC.y() - cy), (float) (vecC.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); builder.addVertex((float) (vecA.x() - cx), (float) (vecA.y() - cy), (float) (vecA.z() - cz)).setColor(shape.r, shape.g, shape.b, shape.a); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } } } @@ -873,7 +882,7 @@ public class ShapesRenderer BufferBuilder builder = tesselator.begin(VertexFormat.Mode.DEBUG_LINES, DefaultVertexFormat.POSITION_COLOR); builder.addVertex(x1, y1, z1).setColor(red1, grn1, blu1, alpha); builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha); - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } public static void drawBoxWireGLLines( @@ -926,7 +935,7 @@ public class ShapesRenderer builder.addVertex(x2, y2, z1).setColor(red1, grn1, blu1, alpha); builder.addVertex(x2, y2, z2).setColor(red1, grn1, blu1, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } public static void drawBoxFaces( @@ -987,7 +996,7 @@ public class ShapesRenderer builder.addVertex(x1, y2, z2).setColor(red1, grn1, blu1, alpha); } } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } public static void drawCylinderWireframe(Tesselator tesselator, @@ -1020,7 +1029,7 @@ public class ShapesRenderer float z = r * Mth.sin(theta); builder.addVertex(x + cx, y + cy, z + cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } if (!isFlat) @@ -1038,7 +1047,7 @@ public class ShapesRenderer builder.addVertex(cx + x, cy + h, cz - z).setColor(red, grn, blu, alpha); builder.addVertex(cx - x, cy + h, cz + z).setColor(red, grn, blu, alpha); builder.addVertex(cx - x, cy + 0, cz + z).setColor(red, grn, blu, alpha); - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } } else @@ -1052,7 +1061,7 @@ public class ShapesRenderer builder.addVertex(cx - x, cy, cz + z).setColor(red, grn, blu, alpha); builder.addVertex(cx + x, cy, cz - z).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } } @@ -1070,7 +1079,7 @@ public class ShapesRenderer float y = r * Mth.sin(theta); builder.addVertex(x + cx, y + cy, z + cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } if (!isFlat) @@ -1087,7 +1096,7 @@ public class ShapesRenderer builder.addVertex(cx + 0, cy + y, cz - z).setColor(red, grn, blu, alpha); builder.addVertex(cx + h, cy + y, cz - z).setColor(red, grn, blu, alpha); builder.addVertex(cx + h, cy - y, cz + z).setColor(red, grn, blu, alpha); - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } } else @@ -1101,7 +1110,7 @@ public class ShapesRenderer builder.addVertex(cx, cy - y, cz + z).setColor(red, grn, blu, alpha); builder.addVertex(cx, cy + y, cz - z).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } } else if (axis == Direction.Axis.Z) @@ -1118,7 +1127,7 @@ public class ShapesRenderer float x = r * Mth.sin(theta); builder.addVertex(x + cx, y + cy, z + cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } if (!isFlat) { @@ -1134,7 +1143,7 @@ public class ShapesRenderer builder.addVertex(cx - x, cy + y, cz + 0).setColor(red, grn, blu, alpha); builder.addVertex(cx - x, cy + y, cz + h).setColor(red, grn, blu, alpha); builder.addVertex(cx + x, cy - y, cz + h).setColor(red, grn, blu, alpha); - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } } else @@ -1148,7 +1157,7 @@ public class ShapesRenderer builder.addVertex(cx + x, cy - y, cz).setColor(red, grn, blu, alpha); builder.addVertex(cx - x, cy + y, cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } } @@ -1175,7 +1184,7 @@ public class ShapesRenderer float z = r * Mth.sin(theta); builder.addVertex(x + cx, cy, z + cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); if (!isFlat) { BufferBuilder builderr = tesselator.begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); @@ -1187,7 +1196,7 @@ public class ShapesRenderer float z = r * Mth.sin(theta); builderr.addVertex(x + cx, cy + h, z + cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builderr.buildOrThrow()); + drawWithShader(builderr.buildOrThrow()); BufferBuilder builderrr = tesselator.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); // quad strip to quads float xp = r * 1; @@ -1204,7 +1213,7 @@ public class ShapesRenderer xp = x; zp = z; } - BufferUploader.drawWithShader(builderrr.buildOrThrow()); + drawWithShader(builderrr.buildOrThrow()); } } @@ -1219,7 +1228,7 @@ public class ShapesRenderer float z = r * Mth.sin(theta); builder.addVertex(cx, cy + y, z + cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); if (!isFlat) { BufferBuilder builderr = tesselator.begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); @@ -1231,7 +1240,7 @@ public class ShapesRenderer float z = r * Mth.sin(theta); builderr.addVertex(cx + h, cy + y, cz + z).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builderr.buildOrThrow()); + drawWithShader(builderr.buildOrThrow()); BufferBuilder builderrr = tesselator.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); // quad strip to quads float yp = r * 1; @@ -1248,7 +1257,7 @@ public class ShapesRenderer yp = y; zp = z; } - BufferUploader.drawWithShader(builderrr.buildOrThrow()); + drawWithShader(builderrr.buildOrThrow()); } } else if (axis == Direction.Axis.Z) @@ -1262,7 +1271,7 @@ public class ShapesRenderer float y = r * Mth.sin(theta); builder.addVertex(x + cx, cy + y, cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); if (!isFlat) { BufferBuilder builderr = tesselator.begin(VertexFormat.Mode.TRIANGLE_FAN, DefaultVertexFormat.POSITION_COLOR); @@ -1274,7 +1283,7 @@ public class ShapesRenderer float y = r * Mth.sin(theta); builderr.addVertex(x + cx, cy + y, cz + h).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builderr.buildOrThrow()); + drawWithShader(builderr.buildOrThrow()); BufferBuilder builderrr = tesselator.begin(VertexFormat.Mode.QUADS, DefaultVertexFormat.POSITION_COLOR); // quad strip to quads float xp = r; @@ -1291,7 +1300,7 @@ public class ShapesRenderer xp = x; yp = y; } - BufferUploader.drawWithShader(builderrr.buildOrThrow()); + drawWithShader(builderrr.buildOrThrow()); } } } @@ -1316,7 +1325,7 @@ public class ShapesRenderer float y = r * Mth.cos(phi); builder.addVertex(x + cx, y + cy, z + cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } for (int j = 0; j <= num_steps180; j++) { @@ -1331,7 +1340,7 @@ public class ShapesRenderer float y = r * Mth.cos(phi); builder.addVertex(x + cx, y + cy, z + cz).setColor(red, grn, blu, alpha); } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } } @@ -1373,7 +1382,7 @@ public class ShapesRenderer zbp = zp; yp = y; } - BufferUploader.drawWithShader(builder.buildOrThrow()); + drawWithShader(builder.buildOrThrow()); } } } diff --git a/src/main/java/carpet/script/value/EntityValue.java b/src/main/java/carpet/script/value/EntityValue.java index 55ca1f38..d6a19a1e 100644 --- a/src/main/java/carpet/script/value/EntityValue.java +++ b/src/main/java/carpet/script/value/EntityValue.java @@ -700,7 +700,7 @@ public class EntityValue extends Value return Value.NULL; }); - put("selected_slot", (e, a) -> e instanceof Player p ? new NumericValue(p.getInventory().selected) : Value.NULL); + put("selected_slot", (e, a) -> e instanceof Player p ? new NumericValue(p.getInventory().getSelectedSlot()) : Value.NULL); put("active_block", (e, a) -> { if (e instanceof ServerPlayer sp)