25w34b, broken item and be shapes rendered
This commit is contained in:
1 parent
efadc4dadf
commit
5269fee801
5 files changed
+65
-37
No files matched your search
+1
-1
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check https://fabricmc.net/develop/
|
# check https://fabricmc.net/develop/
|
||||||
minecraft_version=25w33a
|
minecraft_version=25w34b
|
||||||
loader_version=0.16.14
|
loader_version=0.16.14
|
||||||
jsr305_version=3.0.2
|
jsr305_version=3.0.2
|
||||||
fabric_version=0.119.5+1.21.5
|
fabric_version=0.119.5+1.21.5
|
||||||
|
|||||||
@@ -30,16 +30,15 @@ import net.minecraft.resources.ResourceKey;
|
|||||||
import net.minecraft.server.MinecraftServer;
|
import net.minecraft.server.MinecraftServer;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.server.players.NameAndId;
|
import net.minecraft.server.players.NameAndId;
|
||||||
|
import net.minecraft.server.players.OldUsersConverter;
|
||||||
import net.minecraft.server.players.PlayerList;
|
import net.minecraft.server.players.PlayerList;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.level.GameType;
|
import net.minecraft.world.level.GameType;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.phys.Vec2;
|
import net.minecraft.world.phys.Vec2;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.LinkedHashSet;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Set;
|
|
||||||
import java.util.function.Consumer;
|
import java.util.function.Consumer;
|
||||||
|
|
||||||
import static net.minecraft.commands.Commands.argument;
|
import static net.minecraft.commands.Commands.argument;
|
||||||
@@ -201,7 +200,20 @@ public class PlayerCommand
|
|||||||
Messenger.m(context.getSource(), "r Player ", "rb " + playerName, "r is already logged on");
|
Messenger.m(context.getSource(), "r Player ", "rb " + playerName, "r is already logged on");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
NameAndId profile = server.nameToIdCache().get(playerName).orElse(null);
|
UUID uuid = OldUsersConverter.convertMobOwnerIfNecessary(server, playerName);
|
||||||
|
if (uuid == null)
|
||||||
|
{
|
||||||
|
if (!CarpetSettings.allowSpawningOfflinePlayers)
|
||||||
|
{
|
||||||
|
Messenger.m(context.getSource(), "r Player "+playerName+" is either banned by Mojang, or auth servers are down. " +
|
||||||
|
"Banned players can only be summoned in Singleplayer and in servers in off-line mode.");
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
uuid = UUIDUtil.createOfflinePlayerUUID(playerName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//GameProfile profile = new GameProfile(uuid, playerName);
|
||||||
|
NameAndId profile = server.services().nameToIdCache().get(uuid).orElse(null);
|
||||||
if (profile == null)
|
if (profile == null)
|
||||||
{
|
{
|
||||||
if (!CarpetSettings.allowSpawningOfflinePlayers)
|
if (!CarpetSettings.allowSpawningOfflinePlayers)
|
||||||
|
|||||||
@@ -4,10 +4,12 @@ import carpet.CarpetSettings;
|
|||||||
import carpet.fakes.PistonBlockEntityInterface;
|
import carpet.fakes.PistonBlockEntityInterface;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
|
import net.minecraft.client.renderer.SubmitNodeCollector;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderDispatcher;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRendererProvider;
|
||||||
import net.minecraft.client.renderer.blockentity.PistonHeadRenderer;
|
import net.minecraft.client.renderer.blockentity.PistonHeadRenderer;
|
||||||
|
import net.minecraft.client.renderer.feature.ModelFeatureRenderer;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.piston.PistonMovingBlockEntity;
|
import net.minecraft.world.level.block.piston.PistonMovingBlockEntity;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
@@ -27,10 +29,10 @@ public abstract class PistonHeadRenderer_movableBEMixin implements BlockEntityRe
|
|||||||
dispatcher = arguments.blockEntityRenderDispatcher();
|
dispatcher = arguments.blockEntityRenderDispatcher();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(method = "render", at = @At(value = "INVOKE",
|
@Inject(method = "submit(Lnet/minecraft/world/level/block/piston/PistonMovingBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;IILnet/minecraft/world/phys/Vec3;Lnet/minecraft/client/renderer/feature/ModelFeatureRenderer$CrumblingOverlay;Lnet/minecraft/client/renderer/SubmitNodeCollector;)V", at = @At(value = "INVOKE",
|
||||||
target = "Lnet/minecraft/client/renderer/blockentity/PistonHeadRenderer;renderBlock(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/MultiBufferSource;Lnet/minecraft/world/level/Level;ZI)V",
|
target = "Lnet/minecraft/client/renderer/blockentity/PistonHeadRenderer;submitMovingBlock(Lcom/mojang/blaze3d/vertex/PoseStack;Lnet/minecraft/client/renderer/SubmitNodeCollector;Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;Lnet/minecraft/core/Holder;Lnet/minecraft/world/level/Level;)V",
|
||||||
ordinal = 3))
|
ordinal = 3))
|
||||||
private void updateRenderBool(PistonMovingBlockEntity pistonBlockEntity_1, float float_1, PoseStack matrixStack_1, MultiBufferSource layeredVertexConsumerStorage_1, int int_1, int int_2, Vec3 cameraPos, CallbackInfo ci)
|
private void updateRenderBool(PistonMovingBlockEntity pistonBlockEntity_1, float f, PoseStack poseStack, int i, int j, Vec3 vec3, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay, SubmitNodeCollector submitNodeCollector, CallbackInfo ci)
|
||||||
//private void updateRenderBool(PistonBlockEntity pistonBlockEntity_1, double double_1, double double_2, double double_3, float float_1, class_4587 class_4587_1, class_4597 class_4597_1, int int_1, CallbackInfo ci)
|
//private void updateRenderBool(PistonBlockEntity pistonBlockEntity_1, double double_1, double double_2, double double_3, float float_1, class_4587 class_4587_1, class_4597 class_4597_1, int int_1, CallbackInfo ci)
|
||||||
{
|
{
|
||||||
if (!((PistonBlockEntityInterface) pistonBlockEntity_1).isRenderModeSet())
|
if (!((PistonBlockEntityInterface) pistonBlockEntity_1).isRenderModeSet())
|
||||||
@@ -38,8 +40,9 @@ public abstract class PistonHeadRenderer_movableBEMixin implements BlockEntityRe
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Inject(method = "render", at = @At("RETURN"), locals = LocalCapture.NO_CAPTURE)
|
@Inject(method = "submit(Lnet/minecraft/world/level/block/piston/PistonMovingBlockEntity;FLcom/mojang/blaze3d/vertex/PoseStack;IILnet/minecraft/world/phys/Vec3;Lnet/minecraft/client/renderer/feature/ModelFeatureRenderer$CrumblingOverlay;Lnet/minecraft/client/renderer/SubmitNodeCollector;)V", at = @At("RETURN"), locals = LocalCapture.NO_CAPTURE)
|
||||||
private void endMethod3576(PistonMovingBlockEntity pistonBlockEntity_1, float partialTicks, PoseStack matrixStack_1, MultiBufferSource layeredVertexConsumerStorage_1, int int_1, int init_2, Vec3 cameraPos, CallbackInfo ci)
|
private void endMethod(PistonMovingBlockEntity pistonBlockEntity_1, float partialTicks, PoseStack matrixStack_1, int i, int j, Vec3 vec3, ModelFeatureRenderer.CrumblingOverlay crumblingOverlay, SubmitNodeCollector submitNodeCollector, CallbackInfo ci)
|
||||||
|
//private void endMethod3576(PistonMovingBlockEntity pistonBlockEntity_1, float partialTicks, PoseStack matrixStack_1, MultiBufferSource layeredVertexConsumerStorage_1, int int_1, int init_2, Vec3 cameraPos, CallbackInfo ci)
|
||||||
{
|
{
|
||||||
if (((PistonBlockEntityInterface) pistonBlockEntity_1).getRenderCarriedBlockEntity())
|
if (((PistonBlockEntityInterface) pistonBlockEntity_1).getRenderCarriedBlockEntity())
|
||||||
{
|
{
|
||||||
@@ -53,7 +56,7 @@ public abstract class PistonHeadRenderer_movableBEMixin implements BlockEntityRe
|
|||||||
pistonBlockEntity_1.getYOff(partialTicks),
|
pistonBlockEntity_1.getYOff(partialTicks),
|
||||||
pistonBlockEntity_1.getZOff(partialTicks)
|
pistonBlockEntity_1.getZOff(partialTicks)
|
||||||
);
|
);
|
||||||
dispatcher.render(carriedBlockEntity, partialTicks, matrixStack_1, layeredVertexConsumerStorage_1);
|
dispatcher.submit(carriedBlockEntity, partialTicks, matrixStack_1, crumblingOverlay, submitNodeCollector);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import net.minecraft.server.level.ServerPlayer;
|
|||||||
import net.minecraft.server.network.CommonListenerCookie;
|
import net.minecraft.server.network.CommonListenerCookie;
|
||||||
import net.minecraft.server.players.CachedUserNameToIdResolver;
|
import net.minecraft.server.players.CachedUserNameToIdResolver;
|
||||||
import net.minecraft.server.players.NameAndId;
|
import net.minecraft.server.players.NameAndId;
|
||||||
|
import net.minecraft.server.players.OldUsersConverter;
|
||||||
import net.minecraft.world.damagesource.DamageSource;
|
import net.minecraft.world.damagesource.DamageSource;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EquipmentSlot;
|
import net.minecraft.world.entity.EquipmentSlot;
|
||||||
@@ -43,6 +44,7 @@ import carpet.utils.Messenger;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
import java.util.concurrent.CompletableFuture;
|
import java.util.concurrent.CompletableFuture;
|
||||||
|
|
||||||
@SuppressWarnings("EntityConstructor")
|
@SuppressWarnings("EntityConstructor")
|
||||||
@@ -58,24 +60,21 @@ public class EntityPlayerMPFake extends ServerPlayer
|
|||||||
{
|
{
|
||||||
//prolly half of that crap is not necessary, but it works
|
//prolly half of that crap is not necessary, but it works
|
||||||
ServerLevel worldIn = server.getLevel(dimensionId);
|
ServerLevel worldIn = server.getLevel(dimensionId);
|
||||||
server.nameToIdCache().resolveOfflineUsers(false);
|
server.services().nameToIdCache().resolveOfflineUsers(false);
|
||||||
GameProfile gameprofile;
|
GameProfile gameprofile;
|
||||||
try {
|
|
||||||
NameAndId res = server.nameToIdCache().get(username).orElseThrow(); //findByName .orElse(null)
|
UUID uuid = OldUsersConverter.convertMobOwnerIfNecessary(server, username);
|
||||||
gameprofile = new GameProfile(res.id(), res.name());
|
//NameAndId res = server.services().nameToIdCache().get(username).orElseThrow(); //findByName .orElse(null)
|
||||||
}
|
if (uuid == null && CarpetSettings.allowSpawningOfflinePlayers) {
|
||||||
finally {
|
server.services().nameToIdCache().resolveOfflineUsers(server.isDedicatedServer() && server.usesAuthentication());
|
||||||
server.nameToIdCache().resolveOfflineUsers(server.isDedicatedServer() && server.usesAuthentication());
|
uuid = UUIDUtil.createOfflinePlayerUUID(username);
|
||||||
}
|
|
||||||
if (gameprofile == null)
|
|
||||||
{
|
|
||||||
if (!CarpetSettings.allowSpawningOfflinePlayers)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
gameprofile = new GameProfile(UUIDUtil.createOfflinePlayerUUID(username), username);
|
|
||||||
}
|
}
|
||||||
}
|
if (uuid == null) {
|
||||||
|
return false; // no uuid, no player
|
||||||
|
}
|
||||||
|
gameprofile = new GameProfile(uuid, username);
|
||||||
|
|
||||||
|
|
||||||
//GameProfile finalGP = gameprofile;
|
//GameProfile finalGP = gameprofile;
|
||||||
|
|
||||||
// We need to mark this player as spawning so that we do not
|
// We need to mark this player as spawning so that we do not
|
||||||
@@ -84,7 +83,7 @@ public class EntityPlayerMPFake extends ServerPlayer
|
|||||||
String name = gameprofile.getName();
|
String name = gameprofile.getName();
|
||||||
spawning.add(name);
|
spawning.add(name);
|
||||||
|
|
||||||
fetchGameProfile(name).whenCompleteAsync((p, t) -> {
|
fetchGameProfile(server, gameprofile.getId()).whenCompleteAsync((p, t) -> {
|
||||||
// Always remove the name, even if exception occurs
|
// Always remove the name, even if exception occurs
|
||||||
spawning.remove(name);
|
spawning.remove(name);
|
||||||
if (t != null)
|
if (t != null)
|
||||||
@@ -92,7 +91,13 @@ public class EntityPlayerMPFake extends ServerPlayer
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
GameProfile current = p.gameProfile();
|
GameProfile current;
|
||||||
|
if (p.getName().isEmpty()) {
|
||||||
|
current = gameprofile;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
current = p;
|
||||||
|
}
|
||||||
|
|
||||||
EntityPlayerMPFake instance = new EntityPlayerMPFake(server, worldIn, current, ClientInformation.createDefault(), false);
|
EntityPlayerMPFake instance = new EntityPlayerMPFake(server, worldIn, current, ClientInformation.createDefault(), false);
|
||||||
instance.fixStartingPosition = () -> instance.snapTo(pos.x, pos.y, pos.z, (float) yaw, (float) pitch);
|
instance.fixStartingPosition = () -> instance.snapTo(pos.x, pos.y, pos.z, (float) yaw, (float) pitch);
|
||||||
@@ -111,9 +116,9 @@ public class EntityPlayerMPFake extends ServerPlayer
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static CompletableFuture<ResolvableProfile> fetchGameProfile(final String name) {
|
private static CompletableFuture<GameProfile> fetchGameProfile(MinecraftServer server, final UUID name) {
|
||||||
final ResolvableProfile resolvableProfile = new ResolvableProfile(Optional.of(name), Optional.empty(), new PropertyMap());
|
final ResolvableProfile resolvableProfile = ResolvableProfile.createUnresolved(name);
|
||||||
return resolvableProfile.resolve();
|
return resolvableProfile.resolveProfile(server.services().profileResolver());
|
||||||
}
|
}
|
||||||
|
|
||||||
public static EntityPlayerMPFake createShadow(MinecraftServer server, ServerPlayer player)
|
public static EntityPlayerMPFake createShadow(MinecraftServer server, ServerPlayer player)
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import carpet.script.CarpetScriptServer;
|
|||||||
import carpet.script.external.Carpet;
|
import carpet.script.external.Carpet;
|
||||||
import carpet.script.utils.shapes.ShapeDirection;
|
import carpet.script.utils.shapes.ShapeDirection;
|
||||||
|
|
||||||
|
import com.mojang.blaze3d.platform.Lighting;
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import com.mojang.blaze3d.vertex.BufferBuilder;
|
import com.mojang.blaze3d.vertex.BufferBuilder;
|
||||||
import com.mojang.blaze3d.vertex.ByteBufferBuilder;
|
import com.mojang.blaze3d.vertex.ByteBufferBuilder;
|
||||||
@@ -32,6 +33,8 @@ import net.minecraft.client.renderer.LightTexture;
|
|||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.RenderType;
|
import net.minecraft.client.renderer.RenderType;
|
||||||
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
import net.minecraft.client.renderer.blockentity.BlockEntityRenderer;
|
||||||
|
import net.minecraft.client.renderer.entity.state.EntityRenderState;
|
||||||
|
import net.minecraft.client.renderer.item.ItemStackRenderState;
|
||||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.Direction;
|
import net.minecraft.core.Direction;
|
||||||
@@ -438,8 +441,8 @@ public class ShapesRenderer
|
|||||||
BlockEntityRenderer<BlockEntity> blockEntityRenderer = client.getBlockEntityRenderDispatcher().getRenderer(BlockEntity);
|
BlockEntityRenderer<BlockEntity> blockEntityRenderer = client.getBlockEntityRenderDispatcher().getRenderer(BlockEntity);
|
||||||
if (blockEntityRenderer != null)
|
if (blockEntityRenderer != null)
|
||||||
{
|
{
|
||||||
blockEntityRenderer.render(BlockEntity, partialTick,
|
blockEntityRenderer.submit(BlockEntity, partialTick,
|
||||||
matrices, immediate, light, OverlayTexture.NO_OVERLAY, camera1.getPosition());
|
matrices, light, OverlayTexture.NO_OVERLAY, camera1.getPosition(), null, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -449,8 +452,13 @@ public class ShapesRenderer
|
|||||||
if (shape.item != null)
|
if (shape.item != null)
|
||||||
{
|
{
|
||||||
// draw the item
|
// draw the item
|
||||||
client.getItemRenderer().renderStatic(shape.item, transformType, light,
|
|
||||||
OverlayTexture.NO_OVERLAY, matrices, immediate, client.level, (int) shape.key(client.level.registryAccess()));
|
final ItemStackRenderState itemState = new ItemStackRenderState();
|
||||||
|
client.getItemModelResolver().updateForTopItem(itemState, shape.item, ItemDisplayContext.FIXED, client.level, null, 0);
|
||||||
|
itemState.submit(matrices, client.gameRenderer.getFeatureRenderDispatcher().getSubmitNodeStorage(), light, OverlayTexture.NO_OVERLAY, EntityRenderState.NO_OUTLINE);
|
||||||
|
|
||||||
|
//client.getItemRenderer().renderStatic(shape.item, transformType, light,
|
||||||
|
// OverlayTexture.NO_OVERLAY, matrices, immediate, client.level, (int) shape.key(client.level.registryAccess()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
matrices.popPose();
|
matrices.popPose();
|
||||||
|
|||||||
Reference in new issue
Block a user