This commit is contained in:
gnembon committed 2024-09-04 20:23:21 +02:00
1 parent 00e48df363
commit 72b298ea5f
8 files changed
+29 -22

No files matched your search

+1 -1
View File
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check https://fabricmc.net/develop/ # check https://fabricmc.net/develop/
minecraft_version=24w35a minecraft_version=24w36a
loader_version=0.15.11 loader_version=0.15.11
jsr305_version=3.0.2 jsr305_version=3.0.2
fabric_version=0.102.0+1.21 fabric_version=0.102.0+1.21
@@ -23,7 +23,7 @@ import net.minecraft.server.level.ChunkLevel;
import net.minecraft.server.level.ChunkMap; import net.minecraft.server.level.ChunkMap;
import net.minecraft.server.level.ChunkMap.DistanceManager; import net.minecraft.server.level.ChunkMap.DistanceManager;
import net.minecraft.server.level.ChunkResult; import net.minecraft.server.level.ChunkResult;
import net.minecraft.server.level.ChunkTaskPriorityQueueSorter; //import net.minecraft.server.level.ChunkTaskPriorityQueueSorter;
import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerLevel;
import net.minecraft.server.level.ThreadedLevelLightEngine; import net.minecraft.server.level.ThreadedLevelLightEngine;
import net.minecraft.server.level.TicketType; import net.minecraft.server.level.TicketType;
@@ -76,9 +76,9 @@ public abstract class ChunkMap_scarpetChunkCreationMixin implements ThreadedAnvi
@Final @Final
private ThreadedLevelLightEngine lightEngine; private ThreadedLevelLightEngine lightEngine;
@Shadow //@Shadow
@Final //@Final
private ChunkTaskPriorityQueueSorter queueSorter; //private ChunkTaskPriorityQueueSorter queueSorter;
@Shadow @Shadow
@Final @Final
@@ -4,7 +4,7 @@ import carpet.CarpetSettings;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.EquipmentSlot;
import net.minecraft.world.entity.player.Player; import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ElytraItem; //import net.minecraft.world.item.ElytraItem;
import net.minecraft.world.item.ItemStack; import net.minecraft.world.item.ItemStack;
import net.minecraft.world.item.Items; import net.minecraft.world.item.Items;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
@@ -26,7 +26,7 @@ public abstract class Player_antiCheatDisabledMixin
if (CarpetSettings.antiCheatDisabled && (Object)this instanceof ServerPlayer sp && sp.getServer().isDedicatedServer()) if (CarpetSettings.antiCheatDisabled && (Object)this instanceof ServerPlayer sp && sp.getServer().isDedicatedServer())
{ {
ItemStack itemStack_1 = getItemBySlot(EquipmentSlot.CHEST); ItemStack itemStack_1 = getItemBySlot(EquipmentSlot.CHEST);
if (itemStack_1.getItem() == Items.ELYTRA && ElytraItem.isFlyEnabled(itemStack_1)) { if (itemStack_1.getItem() == Items.ELYTRA && !itemStack_1.nextDamageWillBreak()) {
startFallFlying(); startFallFlying();
cir.setReturnValue(true); cir.setReturnValue(true);
} }
@@ -2,6 +2,7 @@ package carpet.mixins;
import carpet.fakes.EntityInterface; import carpet.fakes.EntityInterface;
import net.minecraft.network.protocol.game.ServerboundChatCommandPacket; import net.minecraft.network.protocol.game.ServerboundChatCommandPacket;
import net.minecraft.world.entity.player.Input;
import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.At;
@@ -57,12 +58,14 @@ public class ServerGamePacketListenerImpl_scarpetEventsMixin
{ {
// todo this may not ride on the right thread moment, so needs to be checked // todo this may not ride on the right thread moment, so needs to be checked
if (!((EntityInterface)player.getVehicle()).isPermanentVehicle()) // won't since that method makes sure its not null Input input = p.input();
player.setShiftKeyDown(p.isShiftKeyDown());
if (PLAYER_RIDES.isNeeded() && (p.getXxa() != 0.0F || p.getZza() != 0.0F || p.isJumping() || p.isShiftKeyDown())) if (player.getVehicle() != null && !((EntityInterface)player.getVehicle()).isPermanentVehicle()) // won't since that method makes sure its not null
player.setShiftKeyDown(p.input().shift());
if (PLAYER_RIDES.isNeeded() && (input.jump() || input.shift() || input.forward() || input.backward() || input.left() || input.right()))
{ {
PLAYER_RIDES.onMountControls(player, p.getXxa(), p.getZza(), p.isJumping(), p.isShiftKeyDown()); PLAYER_RIDES.onMountControls(player, input.left() == input.right() ? 0 : (input.left() ? -1 : 1 ), input.forward() == input.backward() ? 0 : (input.forward() ? 1 : -1), input.jump(), input.shift());
} }
} }
@@ -37,6 +37,7 @@ import carpet.fakes.ServerPlayerInterface;
import carpet.utils.Messenger; import carpet.utils.Messenger;
import java.util.Optional; import java.util.Optional;
import java.util.Set;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
@SuppressWarnings("EntityConstructor") @SuppressWarnings("EntityConstructor")
@@ -77,7 +78,7 @@ public class EntityPlayerMPFake extends ServerPlayer
EntityPlayerMPFake instance = new EntityPlayerMPFake(server, worldIn, current, ClientInformation.createDefault(), false); EntityPlayerMPFake instance = new EntityPlayerMPFake(server, worldIn, current, ClientInformation.createDefault(), false);
instance.fixStartingPosition = () -> instance.moveTo(pos.x, pos.y, pos.z, (float) yaw, (float) pitch); instance.fixStartingPosition = () -> instance.moveTo(pos.x, pos.y, pos.z, (float) yaw, (float) pitch);
server.getPlayerList().placeNewPlayer(new FakeClientConnection(PacketFlow.SERVERBOUND), instance, new CommonListenerCookie(current, 0, instance.clientInformation(), false)); server.getPlayerList().placeNewPlayer(new FakeClientConnection(PacketFlow.SERVERBOUND), instance, new CommonListenerCookie(current, 0, instance.clientInformation(), false));
instance.teleportTo(worldIn, pos.x, pos.y, pos.z, (float) yaw, (float) pitch, true); instance.teleportTo(worldIn, pos.x, pos.y, pos.z, Set.of(), (float) yaw, (float) pitch, true);
instance.setHealth(20.0F); instance.setHealth(20.0F);
instance.unsetRemoved(); instance.unsetRemoved();
instance.getAttribute(Attributes.STEP_HEIGHT).setBaseValue(0.6F); instance.getAttribute(Attributes.STEP_HEIGHT).setBaseValue(0.6F);
@@ -151,7 +152,7 @@ public class EntityPlayerMPFake extends ServerPlayer
if (reason.getContents() instanceof TranslatableContents text && text.getKey().equals("multiplayer.disconnect.duplicate_login")) { if (reason.getContents() instanceof TranslatableContents text && text.getKey().equals("multiplayer.disconnect.duplicate_login")) {
this.connection.onDisconnect(new DisconnectionDetails(reason)); this.connection.onDisconnect(new DisconnectionDetails(reason));
} else { } else {
this.server.tell(new TickTask(this.server.getTickCount(), () -> { this.server.schedule(new TickTask(this.server.getTickCount(), () -> {
this.connection.onDisconnect(new DisconnectionDetails(reason)); this.connection.onDisconnect(new DisconnectionDetails(reason));
})); }));
} }
@@ -8,7 +8,8 @@ import net.minecraft.server.MinecraftServer;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
import net.minecraft.server.network.CommonListenerCookie; import net.minecraft.server.network.CommonListenerCookie;
import net.minecraft.server.network.ServerGamePacketListenerImpl; import net.minecraft.server.network.ServerGamePacketListenerImpl;
import net.minecraft.world.entity.RelativeMovement; import net.minecraft.world.entity.PositionMoveRotation;
import net.minecraft.world.entity.Relative;
import java.util.Set; import java.util.Set;
public class NetHandlerPlayServerFake extends ServerGamePacketListenerImpl public class NetHandlerPlayServerFake extends ServerGamePacketListenerImpl
@@ -33,9 +34,9 @@ public class NetHandlerPlayServerFake extends ServerGamePacketListenerImpl
} }
@Override @Override
public void teleport(double d, double e, double f, float g, float h, Set<RelativeMovement> set) public void teleport(PositionMoveRotation positionMoveRotation, Set<Relative> set)
{ {
super.teleport(d, e, f, g, h, set); super.teleport(positionMoveRotation, set);
if (player.serverLevel().getPlayerByUUID(player.getUUID()) != null) { if (player.serverLevel().getPlayerByUUID(player.getUUID()) != null) {
resetPosition(); resetPosition();
player.serverLevel().getChunkSource().move(player); player.serverLevel().getChunkSource().move(player);
@@ -49,7 +49,8 @@ import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.MobCategory; import net.minecraft.world.entity.MobCategory;
import net.minecraft.world.entity.PathfinderMob; import net.minecraft.world.entity.PathfinderMob;
import net.minecraft.world.entity.Pose; import net.minecraft.world.entity.Pose;
import net.minecraft.world.entity.RelativeMovement; import net.minecraft.world.entity.PositionMoveRotation;
import net.minecraft.world.entity.Relative;
import net.minecraft.world.entity.ai.Brain; import net.minecraft.world.entity.ai.Brain;
import net.minecraft.world.entity.ai.attributes.Attribute; import net.minecraft.world.entity.ai.attributes.Attribute;
import net.minecraft.world.entity.ai.attributes.AttributeMap; import net.minecraft.world.entity.ai.attributes.AttributeMap;
@@ -899,10 +900,11 @@ public class EntityValue extends Value
if (e instanceof ServerPlayer sp) if (e instanceof ServerPlayer sp)
{ {
// this forces position but doesn't angles for some reason. Need both in the API in the future. // this forces position but doesn't angles for some reason. Need both in the API in the future.
EnumSet<RelativeMovement> set = EnumSet.noneOf(RelativeMovement.class); EnumSet<Relative> set = EnumSet.noneOf(Relative.class);
set.add(RelativeMovement.X_ROT); set.add(Relative.X_ROT);
set.add(RelativeMovement.Y_ROT); set.add(Relative.Y_ROT);
sp.connection.teleport(x, y, z, yaw, pitch, set);
sp.connection.teleport(new PositionMoveRotation(new Vec3(x, y, z), Vec3.ZERO, yaw, pitch), set);
} }
else else
{ {
@@ -23,7 +23,7 @@ public final class CommandHelper {
{ {
return; return;
} }
server.tell(new TickTask(server.getTickCount(), () -> server.schedule(new TickTask(server.getTickCount(), () ->
{ {
try { try {
for (ServerPlayer player : server.getPlayerList().getPlayers()) { for (ServerPlayer player : server.getPlayerList().getPlayers()) {