Updated to official mappings, enhanced entity rendering

This commit is contained in:
Tschipp 2021-06-05 21:37:19 +02:00
parent 80adff0ce3
commit 5e8ce8fc79
25 changed files with 553 additions and 518 deletions

View File

@ -34,7 +34,7 @@ if (System.getenv('BUILD_NUMBER') != null) {
} }
minecraft { minecraft {
mappings channel: 'snapshot', version: "${mcp_mappings}" mappings channel: 'official', version: "1.16.5"
runs { runs {
client { client {
@ -44,6 +44,9 @@ minecraft {
property 'forge.logging.console.level', 'debug' property 'forge.logging.console.level', 'debug'
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
mods { mods {
carryon { carryon {
source sourceSets.main source sourceSets.main
@ -58,6 +61,9 @@ minecraft {
property 'forge.logging.console.level', 'debug' property 'forge.logging.console.level', 'debug'
property 'mixin.env.remapRefMap', 'true'
property 'mixin.env.refMapRemappingFile', "${buildDir}/createSrgToMcp/output.srg"
mods { mods {
carryon { carryon {
source sourceSets.main source sourceSets.main

View File

@ -1,7 +1,7 @@
# Sets default memory used for gradle commands. Can be overridden by user or command line properties. # Sets default memory used for gradle commands. Can be overridden by user or command line properties.
# This is required to provide enough memory for the Minecraft decompilation process. # This is required to provide enough memory for the Minecraft decompilation process.
org.gradle.jvmargs=-Xmx3G org.gradle.jvmargs=-Xmx3G
version=1.15.3 version=1.15.4
minecraft_version=1.16.5 minecraft_version=1.16.5
mcp_mappings=20201028-1.16.3 mcp_mappings=20201028-1.16.3
forge_version=36.0.22 forge_version=36.0.22

View File

@ -1,5 +1,7 @@
package tschipp.carryon.client.event; package tschipp.carryon.client.event;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional; import java.util.Optional;
import com.mojang.blaze3d.matrix.MatrixStack; import com.mojang.blaze3d.matrix.MatrixStack;
@ -21,6 +23,7 @@ import net.minecraft.world.World;
import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.api.distmarker.OnlyIn;
import net.minecraftforge.client.event.RenderHandEvent; import net.minecraftforge.client.event.RenderHandEvent;
import net.minecraftforge.event.world.WorldEvent;
import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.ModList;
import tschipp.carryon.client.helper.CarryRenderHelper; import tschipp.carryon.client.helper.CarryRenderHelper;
@ -31,6 +34,31 @@ import tschipp.carryon.common.scripting.ScriptChecker;
public class RenderEntityEvents public class RenderEntityEvents
{ {
public static final Map<String, Entity> nbtEntityMap = new HashMap<>();
public static Entity getEntity(ItemStack carried, World world)
{
String nbt = ItemCarryonEntity.getPersistentData(carried).toString();
if(nbtEntityMap.containsKey(nbt))
{
return nbtEntityMap.get(nbt);
}
Entity entity = ItemCarryonEntity.getEntity(carried, world);
nbtEntityMap.put(nbt, entity);
return entity;
}
@OnlyIn(Dist.CLIENT)
@SubscribeEvent
public void onWorldUnload(WorldEvent.Unload event)
{
nbtEntityMap.clear();
}
/* /*
* Renders the Entity in First Person * Renders the Entity in First Person
*/ */
@ -38,45 +66,45 @@ public class RenderEntityEvents
@SubscribeEvent @SubscribeEvent
public void renderHand(RenderHandEvent event) public void renderHand(RenderHandEvent event)
{ {
World world = Minecraft.getInstance().world; World world = Minecraft.getInstance().level;
PlayerEntity player = Minecraft.getInstance().player; PlayerEntity player = Minecraft.getInstance().player;
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
int perspective = CarryRenderHelper.getPerspective(); int perspective = CarryRenderHelper.getPerspective();
float partialticks = event.getPartialTicks(); float partialticks = event.getPartialTicks();
MatrixStack matrix = event.getMatrixStack(); MatrixStack matrix = event.getMatrixStack();
int light = event.getLight(); int light = event.getLight();
IRenderTypeBuffer buffer = event.getBuffers(); IRenderTypeBuffer buffer = event.getBuffers();
EntityRendererManager manager = Minecraft.getInstance().getRenderManager(); EntityRendererManager manager = Minecraft.getInstance().getEntityRenderDispatcher();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)) if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack))
{ {
if(ModList.get().isLoaded("realrender") || ModList.get().isLoaded("rfpr")) if(ModList.get().isLoaded("realrender") || ModList.get().isLoaded("rfpr"))
return; return;
Entity entity = ItemCarryonEntity.getEntity(stack, world); Entity entity = getEntity(stack, world);
if (entity != null) if (entity != null)
{ {
Vector3d playerpos = CarryRenderHelper.getExactPos(player, partialticks); Vector3d playerpos = CarryRenderHelper.getExactPos(player, partialticks);
entity.setPosition(playerpos.x, playerpos.y, playerpos.z); entity.setPos(playerpos.x, playerpos.y, playerpos.z);
entity.rotationYaw = 0.0f; entity.yRot = 0.0f;
entity.prevRotationYaw = 0.0f; entity.yRotO = 0.0f;
entity.setRotationYawHead(0.0f); entity.setYHeadRot(0.0f);
float height = entity.getHeight(); float height = entity.getBbHeight();
float width = entity.getWidth(); float width = entity.getBbWidth();
matrix.push(); matrix.pushPose();
matrix.scale(0.8f, 0.8f, 0.8f); matrix.scale(0.8f, 0.8f, 0.8f);
matrix.rotate(Vector3f.YP.rotationDegrees(180)); matrix.mulPose(Vector3f.YP.rotationDegrees(180));
matrix.translate(0.0, -height - .1, width + 0.1); matrix.translate(0.0, -height - .1, width + 0.1);
RenderSystem.enableAlphaTest(); RenderSystem.enableAlphaTest();
if (perspective == 0) if (perspective == 0)
{ {
RenderHelper.enableStandardItemLighting(); RenderHelper.turnBackOn();
manager.setRenderShadow(false); manager.setRenderShadow(false);
CarryOnOverride carryOverride = ScriptChecker.getOverride(player); CarryOnOverride carryOverride = ScriptChecker.getOverride(player);
@ -89,7 +117,7 @@ public class RenderEntityEvents
{ {
Entity newEntity = null; Entity newEntity = null;
Optional<EntityType<?>> type = EntityType.byKey(entityname); Optional<EntityType<?>> type = EntityType.byString(entityname);
if(type.isPresent()) if(type.isPresent())
newEntity = type.get().create(world); newEntity = type.get().create(world);
@ -99,10 +127,10 @@ public class RenderEntityEvents
if (nbttag != null) if (nbttag != null)
newEntity.deserializeNBT(nbttag); newEntity.deserializeNBT(nbttag);
entity = newEntity; entity = newEntity;
entity.setPosition(playerpos.x, playerpos.y, playerpos.z); entity.setPos(playerpos.x, playerpos.y, playerpos.z);
entity.rotationYaw = 0.0f; entity.yRot = 0.0f;
entity.prevRotationYaw = 0.0f; entity.yRotO = 0.0f;
entity.setRotationYawHead(0.0f); entity.setYHeadRot(0.0f);
} }
} }
} }
@ -110,14 +138,14 @@ public class RenderEntityEvents
if(entity instanceof LivingEntity) if(entity instanceof LivingEntity)
((LivingEntity) entity).hurtTime = 0; ((LivingEntity) entity).hurtTime = 0;
manager.renderEntityStatic(entity, 0, 0, 0, 0f, 0, matrix, buffer, light); manager.render(entity, 0, 0, 0, 0f, 0, matrix, buffer, light);
manager.setRenderShadow(true); manager.setRenderShadow(true);
} }
RenderSystem.disableAlphaTest(); RenderSystem.disableAlphaTest();
matrix.pop(); matrix.popPose();
RenderHelper.disableStandardItemLighting(); RenderHelper.turnOff();
RenderSystem.disableRescaleNormal(); RenderSystem.disableRescaleNormal();
if (perspective == 0) if (perspective == 0)

View File

@ -86,7 +86,7 @@ public class RenderEvents
if (player != null) if (player != null)
{ {
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
{ {
@ -107,7 +107,7 @@ public class RenderEvents
if (player != null && event.side == LogicalSide.CLIENT) if (player != null && event.side == LogicalSide.CLIENT)
{ {
boolean keyPressed = CarryOnKeybinds.carryKey.isKeyDown(); boolean keyPressed = CarryOnKeybinds.carryKey.isDown();
boolean playerKeyPressed = CarryOnKeybinds.isKeyPressed(player); boolean playerKeyPressed = CarryOnKeybinds.isKeyPressed(player);
if (keyPressed && !playerKeyPressed) if (keyPressed && !playerKeyPressed)
@ -130,7 +130,7 @@ public class RenderEvents
if (event.getEntity() instanceof PlayerEntity) if (event.getEntity() instanceof PlayerEntity)
{ {
PlayerEntity player = (PlayerEntity) event.getEntity(); PlayerEntity player = (PlayerEntity) event.getEntity();
if (player.world.isRemote) if (player.level.isClientSide)
{ {
CarryOnKeybinds.setKeyPressed(player, false); CarryOnKeybinds.setKeyPressed(player, false);
CarryOn.network.sendToServer(new SyncKeybindPacket(false)); CarryOn.network.sendToServer(new SyncKeybindPacket(false));
@ -138,9 +138,9 @@ public class RenderEvents
if (CarryOn.FINGERPRINT_VIOLATED) if (CarryOn.FINGERPRINT_VIOLATED)
{ {
StringTextComponent cf = new StringTextComponent(TextFormatting.AQUA + "Curseforge" + TextFormatting.RED); StringTextComponent cf = new StringTextComponent(TextFormatting.AQUA + "Curseforge" + TextFormatting.RED);
cf.getStyle().setClickEvent(new ClickEvent(Action.OPEN_URL, "https://minecraft.curseforge.com/projects/carry-on")); cf.getStyle().withClickEvent(new ClickEvent(Action.OPEN_URL, "https://minecraft.curseforge.com/projects/carry-on"));
player.sendStatusMessage(new StringTextComponent(TextFormatting.RED + "[CarryOn] WARNING! Invalid fingerprint detected! The Carry On mod file may have been tampered with! If you didn't download the file from ").append(cf).appendString(TextFormatting.RED + " or through any kind of mod launcher, immediately delete the file and re-download it from ").append(cf), false); player.displayClientMessage(new StringTextComponent(TextFormatting.RED + "[CarryOn] WARNING! Invalid fingerprint detected! The Carry On mod file may have been tampered with! If you didn't download the file from ").append(cf).append(TextFormatting.RED + " or through any kind of mod launcher, immediately delete the file and re-download it from ").append(cf), false);
} }
} }
@ -161,13 +161,13 @@ public class RenderEvents
if (player != null && inventory) if (player != null && inventory)
{ {
ItemStack stack = player.getHeldItem(Hand.MAIN_HAND); ItemStack stack = player.getItemInHand(Hand.MAIN_HAND);
if (!stack.isEmpty() && ((stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack)) || (stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)))) if (!stack.isEmpty() && ((stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack)) || (stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack))))
{ {
Minecraft.getInstance().player.closeScreen(); Minecraft.getInstance().player.closeContainer();
Minecraft.getInstance().currentScreen = null; Minecraft.getInstance().screen = null;
Minecraft.getInstance().mouseHelper.grabMouse(); Minecraft.getInstance().mouseHandler.grabMouse();
} }
@ -182,43 +182,43 @@ public class RenderEvents
@SubscribeEvent @SubscribeEvent
public void inputEvent(KeyPressedEvent event) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException public void inputEvent(KeyPressedEvent event) throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException
{ {
GameSettings settings = Minecraft.getInstance().gameSettings; GameSettings settings = Minecraft.getInstance().options;
int key = event.key; int key = event.key;
int scancode = event.scancode; int scancode = event.scancode;
PlayerEntity player = Minecraft.getInstance().player; PlayerEntity player = Minecraft.getInstance().player;
if (player != null) if (player != null)
{ {
ItemStack stack = Minecraft.getInstance().player.getHeldItemMainhand(); ItemStack stack = Minecraft.getInstance().player.getMainHandItem();
if (!stack.isEmpty() && ((stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack)) || (stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)))) if (!stack.isEmpty() && ((stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack)) || (stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack))))
{ {
if (settings.keyBindDrop.matchesKey(key, scancode)) if (settings.keyDrop.matches(key, scancode))
{ {
event.setCanceled(true); event.setCanceled(true);
} }
if (settings.keyBindSwapHands.matchesKey(key, scancode)) if (settings.keySwapOffhand.matches(key, scancode))
{ {
event.setCanceled(true); event.setCanceled(true);
} }
if (settings.keyBindPickBlock.matchesKey(key, scancode)) if (settings.keyPickItem.matches(key, scancode))
{ {
event.setCanceled(true); event.setCanceled(true);
} }
for (KeyBinding keyBind : settings.keyBindsHotbar) for (KeyBinding keyBind : settings.keyHotbarSlots)
{ {
if (keyBind.matchesKey(key, scancode)) if (keyBind.matches(key, scancode))
{ {
event.setCanceled(true); event.setCanceled(true);
} }
} }
} }
int current = player.inventory.currentItem; int current = player.inventory.selected;
if (player.getPersistentData().contains("carrySlot") ? player.getPersistentData().getInt("carrySlot") != current : false) if (player.getPersistentData().contains("carrySlot") ? player.getPersistentData().getInt("carrySlot") != current : false)
{ {
player.inventory.currentItem = player.getPersistentData().getInt("carrySlot"); player.inventory.selected = player.getPersistentData().getInt("carrySlot");
} }
} }
} }
@ -231,11 +231,11 @@ public class RenderEvents
@SubscribeEvent @SubscribeEvent
public void renderHand(RenderHandEvent event) public void renderHand(RenderHandEvent event)
{ {
World world = Minecraft.getInstance().world; World world = Minecraft.getInstance().level;
PlayerEntity player = Minecraft.getInstance().player; PlayerEntity player = Minecraft.getInstance().player;
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
int perspective = CarryRenderHelper.getPerspective(); int perspective = CarryRenderHelper.getPerspective();
boolean f1 = Minecraft.getInstance().gameSettings.hideGUI; boolean f1 = Minecraft.getInstance().options.hideGui;
IRenderTypeBuffer buffer = event.getBuffers(); IRenderTypeBuffer buffer = event.getBuffers();
MatrixStack matrix = event.getMatrixStack(); MatrixStack matrix = event.getMatrixStack();
int light = event.getLight(); int light = event.getLight();
@ -250,7 +250,7 @@ public class RenderEvents
BlockState state = ItemCarryonBlock.getBlockState(stack); BlockState state = ItemCarryonBlock.getBlockState(stack);
ItemStack tileStack = ItemCarryonBlock.getItemStack(stack); ItemStack tileStack = ItemCarryonBlock.getItemStack(stack);
matrix.push(); matrix.pushPose();
matrix.scale(2.5f, 2.5f, 2.5f); matrix.scale(2.5f, 2.5f, 2.5f);
matrix.translate(0, -0.5, -1); matrix.translate(0, -0.5, -1);
RenderSystem.enableBlend(); RenderSystem.enableBlend();
@ -258,15 +258,15 @@ public class RenderEvents
if (Settings.facePlayer.get() ? !isChest(block) : isChest(block)) if (Settings.facePlayer.get() ? !isChest(block) : isChest(block))
{ {
matrix.rotate(Vector3f.YP.rotationDegrees(180)); matrix.mulPose(Vector3f.YP.rotationDegrees(180));
matrix.rotate(Vector3f.XN.rotationDegrees(8)); matrix.mulPose(Vector3f.XN.rotationDegrees(8));
} }
else else
{ {
matrix.rotate(Vector3f.XP.rotationDegrees(8)); matrix.mulPose(Vector3f.XP.rotationDegrees(8));
} }
IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : (tileStack.isEmpty() ? Minecraft.getInstance().getBlockRendererDispatcher().getModelForState(state) : Minecraft.getInstance().getItemRenderer().getItemModelWithOverrides(tileStack, world, player)); IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : (tileStack.isEmpty() ? Minecraft.getInstance().getBlockRenderer().getBlockModel(state) : Minecraft.getInstance().getItemRenderer().getModel(tileStack, world, player));
CarryOnOverride carryOverride = ScriptChecker.getOverride(player); CarryOnOverride carryOverride = ScriptChecker.getOverride(player);
if (carryOverride != null) if (carryOverride != null)
@ -280,12 +280,12 @@ public class RenderEvents
{ {
ItemStack s = new ItemStack(b, 1); ItemStack s = new ItemStack(b, 1);
s.setTag(carryOverride.getRenderNBT()); s.setTag(carryOverride.getRenderNBT());
model = Minecraft.getInstance().getItemRenderer().getItemModelWithOverrides(s, world, player); model = Minecraft.getInstance().getItemRenderer().getModel(s, world, player);
} }
} }
} }
Minecraft.getInstance().getTextureManager().bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE); Minecraft.getInstance().getTextureManager().bind(AtlasTexture.LOCATION_BLOCKS);
CarryRenderHelper.renderItem(state, tag, stack, tileStack, matrix, buffer, light, model); CarryRenderHelper.renderItem(state, tag, stack, tileStack, matrix, buffer, light, model);
@ -296,7 +296,7 @@ public class RenderEvents
RenderSystem.enableCull(); RenderSystem.enableCull();
RenderSystem.disableBlend(); RenderSystem.disableBlend();
matrix.pop(); matrix.popPose();
} }
} }
@ -315,25 +315,25 @@ public class RenderEvents
@SubscribeEvent @SubscribeEvent
public void onRenderWorld(RenderWorldLastEvent event) public void onRenderWorld(RenderWorldLastEvent event)
{ {
World world = Minecraft.getInstance().world; World world = Minecraft.getInstance().level;
float partialticks = event.getPartialTicks(); float partialticks = event.getPartialTicks();
Impl buffer = IRenderTypeBuffer.getImpl(Tessellator.getInstance().getBuffer()); Impl buffer = IRenderTypeBuffer.immediate(Tessellator.getInstance().getBuilder());
MatrixStack matrix = event.getMatrixStack(); MatrixStack matrix = event.getMatrixStack();
int light = 0; int light = 0;
int perspective = CarryRenderHelper.getPerspective(); int perspective = CarryRenderHelper.getPerspective();
EntityRendererManager manager = Minecraft.getInstance().getRenderManager(); EntityRendererManager manager = Minecraft.getInstance().getEntityRenderDispatcher();
RenderSystem.enableBlend(); RenderSystem.enableBlend();
RenderSystem.disableCull(); RenderSystem.disableCull();
RenderSystem.disableDepthTest(); RenderSystem.disableDepthTest();
for (PlayerEntity player : world.getPlayers()) for (PlayerEntity player : world.players())
{ {
if (perspective == 0 && player == Minecraft.getInstance().player) if (perspective == 0 && player == Minecraft.getInstance().player)
continue; continue;
light = Minecraft.getInstance().getRenderManager().getPackedLight(player, partialticks); light = Minecraft.getInstance().getEntityRenderDispatcher().getPackedLightCoords(player, partialticks);
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack)) if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack))
{ {
@ -344,7 +344,7 @@ public class RenderEvents
applyBlockTransformations(player, partialticks, matrix, block); applyBlockTransformations(player, partialticks, matrix, block);
IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : (tileItem.isEmpty() ? Minecraft.getInstance().getBlockRendererDispatcher().getModelForState(state) : Minecraft.getInstance().getItemRenderer().getItemModelWithOverrides(tileItem, world, player)); IBakedModel model = ModelOverridesHandler.hasCustomOverrideModel(state, tag) ? ModelOverridesHandler.getCustomOverrideModel(state, tag, world, player) : (tileItem.isEmpty() ? Minecraft.getInstance().getBlockRenderer().getBlockModel(state) : Minecraft.getInstance().getItemRenderer().getModel(tileItem, world, player));
CarryOnOverride carryOverride = ScriptChecker.getOverride(player); CarryOnOverride carryOverride = ScriptChecker.getOverride(player);
if (carryOverride != null) if (carryOverride != null)
@ -358,24 +358,24 @@ public class RenderEvents
{ {
ItemStack s = new ItemStack(b, 1); ItemStack s = new ItemStack(b, 1);
s.setTag(carryOverride.getRenderNBT()); s.setTag(carryOverride.getRenderNBT());
model = Minecraft.getInstance().getItemRenderer().getItemModelWithOverrides(s, world, player); model = Minecraft.getInstance().getItemRenderer().getModel(s, world, player);
} }
} }
} }
Minecraft.getInstance().getTextureManager().bindTexture(AtlasTexture.LOCATION_BLOCKS_TEXTURE); Minecraft.getInstance().getTextureManager().bind(AtlasTexture.LOCATION_BLOCKS);
CarryRenderHelper.renderItem(state, tag, stack, tileItem, matrix, buffer, light, model); CarryRenderHelper.renderItem(state, tag, stack, tileItem, matrix, buffer, light, model);
buffer.finish(); buffer.endBatch();
matrix.pop(); matrix.popPose();
drawArms(player, partialticks, matrix, buffer, light); drawArms(player, partialticks, matrix, buffer, light);
matrix.pop(); matrix.popPose();
} }
else if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)) else if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack))
{ {
Entity entity = ItemCarryonEntity.getEntity(stack, world); Entity entity = RenderEntityEvents.getEntity(stack, world);
if (entity != null) if (entity != null)
{ {
@ -393,7 +393,7 @@ public class RenderEvents
{ {
Entity newEntity = null; Entity newEntity = null;
Optional<EntityType<?>> type = EntityType.byKey(entityname); Optional<EntityType<?>> type = EntityType.byString(entityname);
if (type.isPresent()) if (type.isPresent())
newEntity = type.get().create(world); newEntity = type.get().create(world);
@ -403,11 +403,11 @@ public class RenderEvents
if (nbttag != null) if (nbttag != null)
newEntity.deserializeNBT(nbttag); newEntity.deserializeNBT(nbttag);
entity = newEntity; entity = newEntity;
entity.rotationYaw = 0.0f; entity.yRot = 0.0f;
entity.prevRotationYaw = 0.0f; entity.yRotO = 0.0f;
entity.setRotationYawHead(0.0f); entity.setYHeadRot(0.0f);
entity.rotationPitch = 0.0f; entity.xRot = 0.0f;
entity.prevRotationPitch = 0.0f; entity.xRotO = 0.0f;
} }
} }
} }
@ -415,16 +415,16 @@ public class RenderEvents
if (entity instanceof LivingEntity) if (entity instanceof LivingEntity)
((LivingEntity) entity).hurtTime = 0; ((LivingEntity) entity).hurtTime = 0;
manager.renderEntityStatic(entity, 0, 0, 0, 0f, 0, matrix, buffer, light); manager.render(entity, 0, 0, 0, 0f, 0, matrix, buffer, light);
buffer.finish(); buffer.endBatch();
matrix.pop(); matrix.popPose();
drawArms(player, partialticks, matrix, buffer, light); drawArms(player, partialticks, matrix, buffer, light);
manager.setRenderShadow(true); manager.setRenderShadow(true);
matrix.pop(); matrix.popPose();
} }
} }
@ -439,18 +439,18 @@ public class RenderEvents
int perspective = CarryRenderHelper.getPerspective(); int perspective = CarryRenderHelper.getPerspective();
Quaternion playerrot = CarryRenderHelper.getExactBodyRotation(player, partialticks); Quaternion playerrot = CarryRenderHelper.getExactBodyRotation(player, partialticks);
Vector3d playerpos = CarryRenderHelper.getExactPos(player, partialticks); Vector3d playerpos = CarryRenderHelper.getExactPos(player, partialticks);
Vector3d cameraPos = Minecraft.getInstance().gameRenderer.getActiveRenderInfo().getProjectedView(); Vector3d cameraPos = Minecraft.getInstance().gameRenderer.getMainCamera().getPosition();
Vector3d offset = playerpos.subtract(cameraPos); Vector3d offset = playerpos.subtract(cameraPos);
Pose pose = player.getPose(); Pose pose = player.getPose();
matrix.push(); matrix.pushPose();
matrix.translate(offset.x, offset.y, offset.z); matrix.translate(offset.x, offset.y, offset.z);
if (perspective == 2) if (perspective == 2)
playerrot.multiply(Vector3f.YP.rotationDegrees(180)); playerrot.mul(Vector3f.YP.rotationDegrees(180));
matrix.rotate(playerrot); matrix.mulPose(playerrot);
matrix.push(); matrix.pushPose();
matrix.scale(0.6f, 0.6f, 0.6f); matrix.scale(0.6f, 0.6f, 0.6f);
if (perspective == 2) if (perspective == 2)
@ -463,16 +463,16 @@ public class RenderEvents
if (pose == Pose.SWIMMING) if (pose == Pose.SWIMMING)
{ {
float f = player.getSwimAnimation(partialticks); float f = player.getSwimAmount(partialticks);
float f3 = player.isInWater() ? -90.0F - player.rotationPitch : -90.0F; float f3 = player.isInWater() ? -90.0F - player.xRot : -90.0F;
float f4 = MathHelper.lerp(f, 0.0F, f3); float f4 = MathHelper.lerp(f, 0.0F, f3);
if (perspective == 2) if (perspective == 2)
{ {
matrix.translate(0, 0, 1.35); matrix.translate(0, 0, 1.35);
matrix.rotate(Vector3f.XP.rotationDegrees(f4)); matrix.mulPose(Vector3f.XP.rotationDegrees(f4));
} }
else else
matrix.rotate(Vector3f.XN.rotationDegrees(f4)); matrix.mulPose(Vector3f.XN.rotationDegrees(f4));
matrix.translate(0, -1.5, -1.848); matrix.translate(0, -1.5, -1.848);
if (perspective == 2) if (perspective == 2)
@ -481,29 +481,29 @@ public class RenderEvents
if (pose == Pose.FALL_FLYING) if (pose == Pose.FALL_FLYING)
{ {
float f1 = (float) player.getTicksElytraFlying() + partialticks; float f1 = (float) player.getFallFlyingTicks() + partialticks;
float f2 = MathHelper.clamp(f1 * f1 / 100.0F, 0.0F, 1.0F); float f2 = MathHelper.clamp(f1 * f1 / 100.0F, 0.0F, 1.0F);
if (!player.isSpinAttacking()) if (!player.isAutoSpinAttack())
{ {
if (perspective == 2) if (perspective == 2)
matrix.translate(0, 0, 1.35); matrix.translate(0, 0, 1.35);
if (perspective == 2) if (perspective == 2)
matrix.rotate(Vector3f.XP.rotationDegrees(f2 * (-90.0F - player.rotationPitch))); matrix.mulPose(Vector3f.XP.rotationDegrees(f2 * (-90.0F - player.xRot)));
else else
matrix.rotate(Vector3f.XN.rotationDegrees(f2 * (-90.0F - player.rotationPitch))); matrix.mulPose(Vector3f.XN.rotationDegrees(f2 * (-90.0F - player.xRot)));
} }
Vector3d Vector3d = player.getLook(partialticks); Vector3d Vector3d = player.getViewVector(partialticks);
Vector3d Vector3d1 = player.getMotion(); Vector3d Vector3d1 = player.getDeltaMovement();
double d0 = Entity.horizontalMag(Vector3d1); double d0 = Entity.getHorizontalDistanceSqr(Vector3d1);
double d1 = Entity.horizontalMag(Vector3d); double d1 = Entity.getHorizontalDistanceSqr(Vector3d);
if (d0 > 0.0D && d1 > 0.0D) if (d0 > 0.0D && d1 > 0.0D)
{ {
double d2 = (Vector3d1.x * Vector3d.x + Vector3d1.z * Vector3d.z) / (Math.sqrt(d0) * Math.sqrt(d1)); double d2 = (Vector3d1.x * Vector3d.x + Vector3d1.z * Vector3d.z) / (Math.sqrt(d0) * Math.sqrt(d1));
double d3 = Vector3d1.x * Vector3d.z - Vector3d1.z * Vector3d.x; double d3 = Vector3d1.x * Vector3d.z - Vector3d1.z * Vector3d.x;
matrix.rotate(Vector3f.YP.rotation((float) (Math.signum(d3) * Math.acos(d2)))); matrix.mulPose(Vector3f.YP.rotation((float) (Math.signum(d3) * Math.acos(d2))));
} }
if (perspective != 2) if (perspective != 2)
@ -524,7 +524,7 @@ public class RenderEvents
{ {
if ((ModList.get().isLoaded("realrender") || ModList.get().isLoaded("rfpr")) && perspective == 0) if ((ModList.get().isLoaded("realrender") || ModList.get().isLoaded("rfpr")) && perspective == 0)
matrix.translate(0, 0, -0.4); matrix.translate(0, 0, -0.4);
matrix.rotate(Vector3f.YP.rotationDegrees(180)); matrix.mulPose(Vector3f.YP.rotationDegrees(180));
} }
else else
{ {
@ -546,24 +546,24 @@ public class RenderEvents
matrix.translate(0, -1.6, -0.65); matrix.translate(0, -1.6, -0.65);
matrix.scale(1.666f, 1.666f, 1.666f); matrix.scale(1.666f, 1.666f, 1.666f);
float height = entity.getHeight(); float height = entity.getBbHeight();
float width = entity.getWidth(); float width = entity.getBbWidth();
float multiplier = height * width; float multiplier = height * width;
entity.rotationYaw = 0.0f; entity.yRot = 0.0f;
entity.prevRotationYaw = 0.0f; entity.yRotO = 0.0f;
entity.setRotationYawHead(0.0f); entity.setYHeadRot(0.0f);
entity.rotationPitch = 0.0f; entity.xRot = 0.0f;
entity.prevRotationPitch = 0.0f; entity.xRotO = 0.0f;
if (perspective == 2) if (perspective == 2)
matrix.rotate(Vector3f.YP.rotationDegrees(180)); matrix.mulPose(Vector3f.YP.rotationDegrees(180));
matrix.scale((10 - multiplier) * 0.08f, (10 - multiplier) * 0.08f, (10 - multiplier) * 0.08f); matrix.scale((10 - multiplier) * 0.08f, (10 - multiplier) * 0.08f, (10 - multiplier) * 0.08f);
matrix.translate(0.0, height / 2 + -(height / 2) + 1, width - 0.1 < 0.7 ? width - 0.1 + (0.7 - (width - 0.1)) : width - 0.1); matrix.translate(0.0, height / 2 + -(height / 2) + 1, width - 0.1 < 0.7 ? width - 0.1 + (0.7 - (width - 0.1)) : width - 0.1);
if (pose == Pose.SWIMMING || pose == Pose.FALL_FLYING) if (pose == Pose.SWIMMING || pose == Pose.FALL_FLYING)
{ {
matrix.rotate(Vector3f.XN.rotationDegrees(90)); matrix.mulPose(Vector3f.XN.rotationDegrees(90));
matrix.translate(0, -0.2 * height, 0); matrix.translate(0, -0.2 * height, 0);
if (pose == Pose.FALL_FLYING) if (pose == Pose.FALL_FLYING)
@ -589,22 +589,22 @@ public class RenderEvents
if (handleMobends() && !ModList.get().isLoaded("obfuscate")) if (handleMobends() && !ModList.get().isLoaded("obfuscate"))
{ {
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)) if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack))
{ {
PlayerModel<AbstractClientPlayerEntity> model = getPlayerModel((AbstractClientPlayerEntity) player); PlayerModel<AbstractClientPlayerEntity> model = getPlayerModel((AbstractClientPlayerEntity) player);
AbstractClientPlayerEntity aplayer = (AbstractClientPlayerEntity) player; AbstractClientPlayerEntity aplayer = (AbstractClientPlayerEntity) player;
ResourceLocation skinLoc = aplayer.getLocationSkin(); ResourceLocation skinLoc = aplayer.getSkinTextureLocation();
matrix.push(); matrix.pushPose();
if (perspective == 2) if (perspective == 2)
matrix.rotate(Vector3f.YP.rotationDegrees(180)); matrix.mulPose(Vector3f.YP.rotationDegrees(180));
Minecraft.getInstance().getTextureManager().bindTexture(skinLoc); Minecraft.getInstance().getTextureManager().bind(skinLoc);
CarryOnOverride overrider = ScriptChecker.getOverride(player); CarryOnOverride overrider = ScriptChecker.getOverride(player);
IVertexBuilder builder = buffer.getBuffer(RenderType.getEntityCutout(skinLoc)); IVertexBuilder builder = buffer.getBuffer(RenderType.entityCutout(skinLoc));
if (overrider != null) if (overrider != null)
{ {
@ -620,38 +620,38 @@ public class RenderEvents
if (renderLeft && rotLeft != null) if (renderLeft && rotLeft != null)
{ {
renderArmPost(model.bipedLeftArm, (float) rotLeft[0], (float) rotLeft[2], false, doSneakCheck(player), light, matrix, builder); renderArmPost(model.leftArm, (float) rotLeft[0], (float) rotLeft[2], false, doSneakCheck(player), light, matrix, builder);
renderArmPost(model.bipedLeftArmwear, (float) rotLeft[0], (float) rotLeft[2], false, doSneakCheck(player), light, matrix, builder); renderArmPost(model.leftSleeve, (float) rotLeft[0], (float) rotLeft[2], false, doSneakCheck(player), light, matrix, builder);
} }
else if (renderLeft) else if (renderLeft)
{ {
renderArmPost(model.bipedLeftArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), false, doSneakCheck(player), light, matrix, builder); renderArmPost(model.leftArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), false, doSneakCheck(player), light, matrix, builder);
renderArmPost(model.bipedLeftArmwear, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), false, doSneakCheck(player), light, matrix, builder); renderArmPost(model.leftSleeve, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), false, doSneakCheck(player), light, matrix, builder);
} }
if (renderRight && rotRight != null) if (renderRight && rotRight != null)
{ {
renderArmPost(model.bipedRightArm, (float) rotRight[0], (float) rotRight[2], true, doSneakCheck(player), light, matrix, builder); renderArmPost(model.rightArm, (float) rotRight[0], (float) rotRight[2], true, doSneakCheck(player), light, matrix, builder);
renderArmPost(model.bipedRightArmwear, (float) rotRight[0], (float) rotRight[2], true, doSneakCheck(player), light, matrix, builder); renderArmPost(model.rightSleeve, (float) rotRight[0], (float) rotRight[2], true, doSneakCheck(player), light, matrix, builder);
} }
else if (renderRight) else if (renderRight)
{ {
renderArmPost(model.bipedRightArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), true, doSneakCheck(player), light, matrix, builder); renderArmPost(model.rightArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), true, doSneakCheck(player), light, matrix, builder);
renderArmPost(model.bipedRightArmwear, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), true, doSneakCheck(player), light, matrix, builder); renderArmPost(model.rightSleeve, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), true, doSneakCheck(player), light, matrix, builder);
} }
} }
else else
{ {
renderArmPost(model.bipedRightArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), true, doSneakCheck(player), light, matrix, builder); renderArmPost(model.rightArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), true, doSneakCheck(player), light, matrix, builder);
renderArmPost(model.bipedLeftArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), false, doSneakCheck(player), light, matrix, builder); renderArmPost(model.leftArm, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), false, doSneakCheck(player), light, matrix, builder);
renderArmPost(model.bipedLeftArmwear, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), false, doSneakCheck(player), light, matrix, builder); renderArmPost(model.leftSleeve, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), false, doSneakCheck(player), light, matrix, builder);
renderArmPost(model.bipedRightArmwear, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), true, doSneakCheck(player), light, matrix, builder); renderArmPost(model.rightSleeve, 2.0F + (doSneakCheck(player) ? 0f : 0.2f) - (stack.getItem() == RegistrationHandler.itemEntity ? 0.3f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), true, doSneakCheck(player), light, matrix, builder);
} }
if (buffer instanceof Impl) if (buffer instanceof Impl)
((Impl) buffer).finish(); ((Impl) buffer).endBatch();
matrix.pop(); matrix.popPose();
} }
} }
} }
@ -670,10 +670,10 @@ public class RenderEvents
{ {
PlayerEntity player = event.getPlayer(); PlayerEntity player = event.getPlayer();
Pose pose = player.getPose(); Pose pose = player.getPose();
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (pose != Pose.SWIMMING && pose != Pose.FALL_FLYING && !stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack))) if (pose != Pose.SWIMMING && pose != Pose.FALL_FLYING && !stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)))
{ {
PlayerModel<AbstractClientPlayerEntity> model = event.getRenderer().getEntityModel(); PlayerModel<AbstractClientPlayerEntity> model = event.getRenderer().getModel();
CarryOnOverride overrider = ScriptChecker.getOverride(player); CarryOnOverride overrider = ScriptChecker.getOverride(player);
if (overrider != null) if (overrider != null)
@ -683,23 +683,23 @@ public class RenderEvents
if (renderRight) if (renderRight)
{ {
renderArmPre(model.bipedRightArm); renderArmPre(model.rightArm);
renderArmPre(model.bipedRightArmwear); renderArmPre(model.rightSleeve);
} }
if (renderLeft) if (renderLeft)
{ {
renderArmPre(model.bipedLeftArm); renderArmPre(model.leftArm);
renderArmPre(model.bipedLeftArmwear); renderArmPre(model.leftSleeve);
} }
} }
else else
{ {
renderArmPre(model.bipedRightArm); renderArmPre(model.rightArm);
renderArmPre(model.bipedLeftArm); renderArmPre(model.leftArm);
renderArmPre(model.bipedLeftArmwear); renderArmPre(model.leftSleeve);
renderArmPre(model.bipedRightArmwear); renderArmPre(model.rightSleeve);
} }
} }
} }
@ -708,30 +708,30 @@ public class RenderEvents
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
private void renderArmPost(ModelRenderer arm, float x, float z, boolean right, boolean sneaking, int light, MatrixStack matrix, IVertexBuilder builder) private void renderArmPost(ModelRenderer arm, float x, float z, boolean right, boolean sneaking, int light, MatrixStack matrix, IVertexBuilder builder)
{ {
matrix.push(); matrix.pushPose();
arm.showModel = true; arm.visible = true;
if (right) if (right)
matrix.translate(0.015, 0, 0); matrix.translate(0.015, 0, 0);
else else
matrix.translate(-0.015, 0, 0); matrix.translate(-0.015, 0, 0);
if (!sneaking) if (!sneaking)
arm.rotationPointY = 20; arm.y = 20;
else else
arm.rotationPointY = 15; arm.y = 15;
arm.rotateAngleX = (float) x; arm.xRot = (float) x;
arm.rotateAngleY = (float) 0; arm.yRot = (float) 0;
arm.rotateAngleZ = (float) -z; arm.zRot = (float) -z;
arm.render(matrix, builder, light, 655360); arm.render(matrix, builder, light, 655360);
arm.rotationPointY = 2; arm.y = 2;
matrix.pop(); matrix.popPose();
} }
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
private void renderArmPre(ModelRenderer arm) private void renderArmPre(ModelRenderer arm)
{ {
arm.showModel = false; arm.visible = false;
} }
public boolean handleMobends() public boolean handleMobends()
@ -752,10 +752,10 @@ public class RenderEvents
public static boolean doSneakCheck(PlayerEntity player) public static boolean doSneakCheck(PlayerEntity player)
{ {
if (player.abilities.isFlying) if (player.abilities.flying)
return false; return false;
return (player.isSneaking() || player.isCrouching()); return (player.isShiftKeyDown() || player.isCrouching());
} }
public static boolean isChest(Block block) public static boolean isChest(Block block)
@ -767,14 +767,14 @@ public class RenderEvents
private static PlayerRenderer getRenderPlayer(AbstractClientPlayerEntity player) private static PlayerRenderer getRenderPlayer(AbstractClientPlayerEntity player)
{ {
Minecraft mc = Minecraft.getInstance(); Minecraft mc = Minecraft.getInstance();
EntityRendererManager manager = mc.getRenderManager(); EntityRendererManager manager = mc.getEntityRenderDispatcher();
return manager.getSkinMap().get(player.getSkinType()); return manager.getSkinMap().get(player.getModelName());
} }
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
private static PlayerModel<AbstractClientPlayerEntity> getPlayerModel(AbstractClientPlayerEntity player) private static PlayerModel<AbstractClientPlayerEntity> getPlayerModel(AbstractClientPlayerEntity player)
{ {
return getRenderPlayer(player).getEntityModel(); return getRenderPlayer(player).getModel();
} }
// @SubscribeEvent // @SubscribeEvent

View File

@ -22,15 +22,15 @@ public class CarryRenderHelper
{ {
public static Vector3d getExactPos(Entity entity, float partialticks) public static Vector3d getExactPos(Entity entity, float partialticks)
{ {
return new Vector3d(entity.lastTickPosX + (entity.getPosX() - entity.lastTickPosX) * partialticks, entity.lastTickPosY + (entity.getPosY() - entity.lastTickPosY) * partialticks, entity.lastTickPosZ + (entity.getPosZ() - entity.lastTickPosZ) * partialticks); return new Vector3d(entity.xOld + (entity.getX() - entity.xOld) * partialticks, entity.yOld + (entity.getY() - entity.yOld) * partialticks, entity.zOld + (entity.getZ() - entity.zOld) * partialticks);
} }
public static float getExactBodyRotationDegrees(LivingEntity entity, float partialticks) public static float getExactBodyRotationDegrees(LivingEntity entity, float partialticks)
{ {
if (entity.getRidingEntity() != null && entity.getRidingEntity() instanceof LivingEntity) if (entity.getVehicle() != null && entity.getVehicle() instanceof LivingEntity)
return -(entity.prevRotationYawHead + (entity.rotationYawHead - entity.prevRotationYawHead) * partialticks); return -(entity.yHeadRotO + (entity.yHeadRot - entity.yHeadRotO) * partialticks);
else else
return -(entity.prevRenderYawOffset + (entity.renderYawOffset - entity.prevRenderYawOffset) * partialticks); return -(entity.yBodyRotO + (entity.yBodyRot - entity.yBodyRotO) * partialticks);
} }
public static Quaternion getExactBodyRotation(LivingEntity entity, float partialticks) public static Quaternion getExactBodyRotation(LivingEntity entity, float partialticks)
@ -47,9 +47,9 @@ public class CarryRenderHelper
float[] scaled = ScriptParseHelper.getScaled(override.getRenderScaled()); float[] scaled = ScriptParseHelper.getScaled(override.getRenderScaled());
Quaternion rot = Vector3f.XP.rotationDegrees(rotation[0]); Quaternion rot = Vector3f.XP.rotationDegrees(rotation[0]);
rot.multiply(Vector3f.YP.rotationDegrees(rotation[1])); rot.mul(Vector3f.YP.rotationDegrees(rotation[1]));
rot.multiply(Vector3f.ZP.rotationDegrees(rotation[2])); rot.mul(Vector3f.ZP.rotationDegrees(rotation[2]));
matrix.rotate(rot); matrix.mulPose(rot);
matrix.translate(translation[0], translation[1], perspective == 1 && override.isBlock() ? -translation[2] : translation[2]); matrix.translate(translation[0], translation[1], perspective == 1 && override.isBlock() ? -translation[2] : translation[2]);
@ -64,18 +64,18 @@ public class CarryRenderHelper
if (override instanceof ItemStack) if (override instanceof ItemStack)
{ {
Minecraft.getInstance().getItemRenderer().renderItem((ItemStack) override, TransformType.NONE, false, matrix, buffer, light, 0xFFFFFF, model); Minecraft.getInstance().getItemRenderer().render((ItemStack) override, TransformType.NONE, false, matrix, buffer, light, 0xFFFFFF, model);
return; return;
} }
} }
Minecraft.getInstance().getItemRenderer().renderItem(tileStack.isEmpty() ? stack : tileStack, TransformType.NONE, false, matrix, buffer, light, 0xFFFFFF, model); Minecraft.getInstance().getItemRenderer().render(tileStack.isEmpty() ? stack : tileStack, TransformType.NONE, false, matrix, buffer, light, 0xFFFFFF, model);
} }
public static int getPerspective() public static int getPerspective()
{ {
boolean isThirdPerson = !Minecraft.getInstance().gameSettings.getPointOfView().func_243192_a(); //isThirdPerson boolean isThirdPerson = !Minecraft.getInstance().options.getCameraType().isFirstPerson(); //isThirdPerson
boolean isThirdPersonReverse = Minecraft.getInstance().gameSettings.getPointOfView().func_243193_b(); boolean isThirdPersonReverse = Minecraft.getInstance().options.getCameraType().isMirrored();
if (!isThirdPerson && !isThirdPersonReverse) if (!isThirdPerson && !isThirdPersonReverse)
return 0; return 0;

View File

@ -36,15 +36,15 @@ public class PositionClientEvents
IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY).orElse(new TEPosition()); IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY).orElse(new TEPosition());
if(cap.isBlockActivated()) if(cap.isBlockActivated())
{ {
World world = player.world; World world = player.level;
BlockPos pos = cap.getPos(); BlockPos pos = cap.getPos();
if(world != null) if(world != null)
{ {
TileEntity te = world.getTileEntity(pos); TileEntity te = world.getBlockEntity(pos);
if(te == null) if(te == null)
{ {
// player.openContainer = null; // player.openContainer = null;
Minecraft.getInstance().currentScreen = null; Minecraft.getInstance().screen = null;
// Minecraft.getInstance().fo; // Minecraft.getInstance().fo;
cap.setBlockActivated(false); cap.setBlockActivated(false);
cap.setPos(new BlockPos(0,0,0)); cap.setPos(new BlockPos(0,0,0));
@ -80,7 +80,7 @@ public class PositionClientEvents
if(player.getCapability(PositionProvider.POSITION_CAPABILITY).isPresent()) if(player.getCapability(PositionProvider.POSITION_CAPABILITY).isPresent())
{ {
IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY).orElse(new TEPosition()); IPosition cap = player.getCapability(PositionProvider.POSITION_CAPABILITY).orElse(new TEPosition());
if (cap.isBlockActivated() && Minecraft.getInstance().currentScreen == null) if (cap.isBlockActivated() && Minecraft.getInstance().screen == null)
{ {
cap.setBlockActivated(false); cap.setBlockActivated(false);
cap.setPos(new BlockPos(0, 0, 0)); cap.setPos(new BlockPos(0, 0, 0));

View File

@ -44,7 +44,7 @@ public class PositionCommonEvents
if (player instanceof FakePlayer) if (player instanceof FakePlayer)
return; return;
TileEntity te = world.getTileEntity(pos); TileEntity te = world.getBlockEntity(pos);
if (te != null) if (te != null)
{ {
if(player.getCapability(PositionProvider.POSITION_CAPABILITY).isPresent()) if(player.getCapability(PositionProvider.POSITION_CAPABILITY).isPresent())

View File

@ -33,10 +33,10 @@ public class CommandCarryOn
})) }))
.then(Commands.literal("clear").executes((cmd) -> { .then(Commands.literal("clear").executes((cmd) -> {
return handleClear(cmd.getSource(), Collections.singleton(cmd.getSource().asPlayer())); return handleClear(cmd.getSource(), Collections.singleton(cmd.getSource().getPlayerOrException()));
})) }))
.then(Commands.literal("clear").then(Commands.argument("target", EntityArgument.players()).requires(src -> src.hasPermissionLevel(2)).executes((cmd) -> { .then(Commands.literal("clear").then(Commands.argument("target", EntityArgument.players()).requires(src -> src.hasPermission(2)).executes((cmd) -> {
return handleClear(cmd.getSource(), EntityArgument.getPlayers(cmd, "target")); return handleClear(cmd.getSource(), EntityArgument.getPlayers(cmd, "target"));
}))) })))
@ -50,22 +50,22 @@ public class CommandCarryOn
{ {
try try
{ {
if (source.assertIsEntity() != null) if (source.getEntityOrException() != null)
{ {
ServerPlayerEntity player = source.asPlayer(); ServerPlayerEntity player = source.getPlayerOrException();
ItemStack main = player.getHeldItemMainhand(); ItemStack main = player.getMainHandItem();
if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemTile) if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemTile)
{ {
source.sendFeedback(new StringTextComponent("Block: " + ItemCarryonBlock.getBlock(main)), true); source.sendSuccess(new StringTextComponent("Block: " + ItemCarryonBlock.getBlock(main)), true);
source.sendFeedback(new StringTextComponent("BlockState: " + ItemCarryonBlock.getBlockState(main)), true); source.sendSuccess(new StringTextComponent("BlockState: " + ItemCarryonBlock.getBlockState(main)), true);
source.sendFeedback(new StringTextComponent("ItemStack: " + ItemCarryonBlock.getItemStack(main)), true); source.sendSuccess(new StringTextComponent("ItemStack: " + ItemCarryonBlock.getItemStack(main)), true);
if (ModelOverridesHandler.hasCustomOverrideModel(ItemCarryonBlock.getBlockState(main), ItemCarryonBlock.getTileData(main))) if (ModelOverridesHandler.hasCustomOverrideModel(ItemCarryonBlock.getBlockState(main), ItemCarryonBlock.getTileData(main)))
source.sendFeedback(new StringTextComponent("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemCarryonBlock.getBlockState(main), ItemCarryonBlock.getTileData(main))), true); source.sendSuccess(new StringTextComponent("Override Model: " + ModelOverridesHandler.getOverrideObject(ItemCarryonBlock.getBlockState(main), ItemCarryonBlock.getTileData(main))), true);
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonBlock.getBlockState(main))) if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonBlock.getBlockState(main)))
source.sendFeedback(new StringTextComponent("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonBlock.getBlockState(main))), true); source.sendSuccess(new StringTextComponent("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonBlock.getBlockState(main))), true);
CarryOn.LOGGER.info("Block: " + ItemCarryonBlock.getBlock(main)); CarryOn.LOGGER.info("Block: " + ItemCarryonBlock.getBlock(main));
CarryOn.LOGGER.info("BlockState: " + ItemCarryonBlock.getBlockState(main)); CarryOn.LOGGER.info("BlockState: " + ItemCarryonBlock.getBlockState(main));
@ -81,17 +81,17 @@ public class CommandCarryOn
} }
else if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity) else if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity)
{ {
source.sendFeedback(new StringTextComponent("Entity: " + ItemCarryonEntity.getEntity(main, player.world)), true); source.sendSuccess(new StringTextComponent("Entity: " + ItemCarryonEntity.getEntity(main, player.level)), true);
source.sendFeedback(new StringTextComponent("Entity Name: " + ItemCarryonEntity.getEntityName(main)), true); source.sendSuccess(new StringTextComponent("Entity Name: " + ItemCarryonEntity.getEntityName(main)), true);
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonEntity.getEntity(main, player.world))) if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonEntity.getEntity(main, player.level)))
source.sendFeedback(new StringTextComponent("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonEntity.getEntity(main, player.world))), true); source.sendSuccess(new StringTextComponent("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonEntity.getEntity(main, player.level))), true);
CarryOn.LOGGER.info("Entity: " + ItemCarryonEntity.getEntity(main, player.world)); CarryOn.LOGGER.info("Entity: " + ItemCarryonEntity.getEntity(main, player.level));
CarryOn.LOGGER.info("Entity Name: " + ItemCarryonEntity.getEntityName(main)); CarryOn.LOGGER.info("Entity Name: " + ItemCarryonEntity.getEntityName(main));
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonEntity.getEntity(main, player.world))) if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonEntity.getEntity(main, player.level)))
CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonEntity.getEntity(main, player.world))); CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonEntity.getEntity(main, player.level)));
return 1; return 1;
} }
@ -111,15 +111,15 @@ public class CommandCarryOn
for (ServerPlayerEntity player : players) for (ServerPlayerEntity player : players)
{ {
int cleared = 0; int cleared = 0;
cleared += player.inventory.func_234564_a_(stack -> !stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile, 64, player.container.func_234641_j_()); // TODO cleared += player.inventory.clearOrCountMatchingItems(stack -> !stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile, 64, player.inventoryMenu.getCraftSlots()); // TODO
cleared += player.inventory.func_234564_a_(stack -> !stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity, 64, player.container.func_234641_j_()); cleared += player.inventory.clearOrCountMatchingItems(stack -> !stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity, 64, player.inventoryMenu.getCraftSlots());
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(9, player.getEntityId())); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(9, player.getId()));
if (cleared != 1) if (cleared != 1)
source.sendFeedback(new StringTextComponent("Cleared " + cleared + " Items!"), true); source.sendSuccess(new StringTextComponent("Cleared " + cleared + " Items!"), true);
else else
source.sendFeedback(new StringTextComponent("Cleared " + cleared + " Item!"), true); source.sendSuccess(new StringTextComponent("Cleared " + cleared + " Item!"), true);
return 1; return 1;
} }

View File

@ -352,10 +352,11 @@ public class Configs {
"create:*", "create:*",
"magic_doorknob:*", "magic_doorknob:*",
"iceandfire:*", "iceandfire:*",
"ftbquests:*" "ftbquests:*",
"waystones:*"
}), (obj) -> obj instanceof String ? true : false); }), (obj) -> obj instanceof String);
forbiddenEntities = s forbiddenEntities = s
.comment("Entities that cannot be picked up") .comment("Entities that cannot be picked up")

View File

@ -43,13 +43,13 @@ public class ItemEntityEvents
public void onBlockClick(PlayerInteractEvent.RightClickBlock event) public void onBlockClick(PlayerInteractEvent.RightClickBlock event)
{ {
PlayerEntity player = event.getPlayer(); PlayerEntity player = event.getPlayer();
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)) if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack))
{ {
player.getPersistentData().remove("carrySlot"); player.getPersistentData().remove("carrySlot");
event.setUseBlock(Result.DENY); event.setUseBlock(Result.DENY);
if (!player.world.isRemote) if (!player.level.isClientSide)
{ {
CarryOnOverride override = ScriptChecker.getOverride(player); CarryOnOverride override = ScriptChecker.getOverride(player);
if (override != null) if (override != null)
@ -57,7 +57,7 @@ public class ItemEntityEvents
String command = override.getCommandPlace(); String command = override.getCommandPlace();
if (command != null) if (command != null)
player.getServer().getCommandManager().handleCommand(player.getServer().getCommandSource(), "/execute as " + player.getGameProfile().getName() + " run " + command); player.getServer().getCommands().performCommand(player.getServer().createCommandSourceStack(), "/execute as " + player.getGameProfile().getName() + " run " + command);
} }
} }
} }
@ -76,10 +76,10 @@ public class ItemEntityEvents
Item item = stack.getItem(); Item item = stack.getItem();
if (item == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)) if (item == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack))
{ {
BlockPos pos = eitem.getPosition(); BlockPos pos = eitem.blockPosition();
Entity entity = ItemCarryonEntity.getEntity(stack, world); Entity entity = ItemCarryonEntity.getEntity(stack, world);
entity.setPosition(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5); entity.setPos(pos.getX() + 0.5, pos.getY(), pos.getZ() + 0.5);
world.addEntity(entity); world.addFreshEntity(entity);
ItemCarryonEntity.clearEntityData(stack); ItemCarryonEntity.clearEntityData(stack);
eitem.setItem(ItemStack.EMPTY); eitem.setItem(ItemStack.EMPTY);
@ -94,20 +94,20 @@ public class ItemEntityEvents
if (player instanceof ServerPlayerEntity) if (player instanceof ServerPlayerEntity)
{ {
ItemStack main = player.getHeldItemMainhand(); ItemStack main = player.getMainHandItem();
ItemStack off = player.getHeldItemOffhand(); ItemStack off = player.getOffhandItem();
World world = event.getWorld(); World world = event.getWorld();
Entity entity = event.getTarget(); Entity entity = event.getTarget();
BlockPos pos = entity.getPosition(); BlockPos pos = entity.blockPosition();
if (main.isEmpty() && off.isEmpty() && CarryOnKeybinds.isKeyPressed(player)) if (main.isEmpty() && off.isEmpty() && CarryOnKeybinds.isKeyPressed(player))
{ {
ItemStack stack = new ItemStack(RegistrationHandler.itemEntity); ItemStack stack = new ItemStack(RegistrationHandler.itemEntity);
if (entity.hurtResistantTime == 0) if (entity.invulnerableTime == 0)
{ {
if (entity instanceof AnimalEntity) if (entity instanceof AnimalEntity)
((AnimalEntity) entity).clearLeashed(true, true); ((AnimalEntity) entity).dropLeash(true, true);
if (PickupHandler.canPlayerPickUpEntity((ServerPlayerEntity) player, entity)) if (PickupHandler.canPlayerPickUpEntity((ServerPlayerEntity) player, entity))
{ {
@ -127,15 +127,15 @@ public class ItemEntityEvents
if (override != null) if (override != null)
overrideHash = override.hashCode(); overrideHash = override.hashCode();
ItemEvents.sendPacket(player, player.inventory.currentItem, overrideHash); ItemEvents.sendPacket(player, player.inventory.selected, overrideHash);
if (entity instanceof LivingEntity) if (entity instanceof LivingEntity)
((LivingEntity) entity).setHealth(0); ((LivingEntity) entity).setHealth(0);
entity.removePassengers(); entity.ejectPassengers();
entity.setPosition(entity.getPosX(), 0, entity.getPosZ()); entity.setPos(entity.getX(), 0, entity.getZ());
entity.remove(); entity.remove();
player.setHeldItem(Hand.MAIN_HAND, stack); player.setItemInHand(Hand.MAIN_HAND, stack);
event.setCanceled(true); event.setCanceled(true);
event.setCancellationResult(ActionResultType.FAIL); event.setCancellationResult(ActionResultType.FAIL);
} }
@ -146,15 +146,15 @@ public class ItemEntityEvents
{ {
Entity entityHeld = ItemCarryonEntity.getEntity(main, world); Entity entityHeld = ItemCarryonEntity.getEntity(main, world);
if (entity.hurtResistantTime == 0 && entityHeld instanceof LivingEntity) if (entity.invulnerableTime == 0 && entityHeld instanceof LivingEntity)
{ {
if (!world.isRemote && entityHeld.getUniqueID() != entity.getUniqueID() && entity.isAlive()) if (!world.isClientSide && entityHeld.getUUID() != entity.getUUID() && entity.isAlive())
{ {
double sizeHeldEntity = entityHeld.getHeight() * entityHeld.getWidth(); double sizeHeldEntity = entityHeld.getBbHeight() * entityHeld.getBbWidth();
double distance = pos.distanceSq(player.getPosition()); double distance = pos.distSqr(player.blockPosition());
Entity lowestEntity = entity.getLowestRidingEntity(); Entity lowestEntity = entity.getRootVehicle();
int numPassengers = getAllPassengers(lowestEntity); int numPassengers = getAllPassengers(lowestEntity);
if (numPassengers < Settings.maxEntityStackLimit.get() - 1) if (numPassengers < Settings.maxEntityStackLimit.get() - 1)
{ {
@ -162,46 +162,46 @@ public class ItemEntityEvents
if (Settings.useWhitelistStacking.get() ? ListHandler.isStackingAllowed(topEntity) : !ListHandler.isStackingForbidden(topEntity)) if (Settings.useWhitelistStacking.get() ? ListHandler.isStackingAllowed(topEntity) : !ListHandler.isStackingForbidden(topEntity))
{ {
double sizeEntity = topEntity.getHeight() * topEntity.getWidth(); double sizeEntity = topEntity.getBbHeight() * topEntity.getBbWidth();
if ((Settings.entitySizeMattersStacking.get() && sizeHeldEntity <= sizeEntity) || !Settings.entitySizeMattersStacking.get()) if ((Settings.entitySizeMattersStacking.get() && sizeHeldEntity <= sizeEntity) || !Settings.entitySizeMattersStacking.get())
{ {
if (topEntity instanceof HorseEntity) if (topEntity instanceof HorseEntity)
{ {
HorseEntity horse = (HorseEntity) topEntity; HorseEntity horse = (HorseEntity) topEntity;
horse.setHorseTamed(true); horse.setTamed(true);
} }
if (distance < 6) if (distance < 6)
{ {
double tempX = entity.getPosX(); double tempX = entity.getX();
double tempY = entity.getPosY(); double tempY = entity.getY();
double tempZ = entity.getPosZ(); double tempZ = entity.getZ();
entityHeld.setPosition(tempX, tempY + 2.6, tempZ); entityHeld.setPos(tempX, tempY + 2.6, tempZ);
world.addEntity(entityHeld); world.addFreshEntity(entityHeld);
entityHeld.startRiding(topEntity, false); entityHeld.startRiding(topEntity, false);
entityHeld.setPositionAndUpdate(tempX, tempY, tempZ); entityHeld.teleportTo(tempX, tempY, tempZ);
} else } else
{ {
entityHeld.setPosition(entity.getPosX(), entity.getPosY(), entity.getPosZ()); entityHeld.setPos(entity.getX(), entity.getY(), entity.getZ());
world.addEntity(entityHeld); world.addFreshEntity(entityHeld);
entityHeld.startRiding(topEntity, false); entityHeld.startRiding(topEntity, false);
} }
ItemCarryonEntity.clearEntityData(main); ItemCarryonEntity.clearEntityData(main);
player.setHeldItem(Hand.MAIN_HAND, ItemStack.EMPTY); player.setItemInHand(Hand.MAIN_HAND, ItemStack.EMPTY);
ItemEvents.sendPacket(player, 9, 0); ItemEvents.sendPacket(player, 9, 0);
event.setCanceled(true); event.setCanceled(true);
event.setCancellationResult(ActionResultType.FAIL); event.setCancellationResult(ActionResultType.FAIL);
world.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(), SoundEvents.ENTITY_HORSE_SADDLE, SoundCategory.PLAYERS, 0.5F, 1.5F); world.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.HORSE_SADDLE, SoundCategory.PLAYERS, 0.5F, 1.5F);
} else } else
{ {
world.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(), SoundEvents.BLOCK_NOTE_BLOCK_BASS, SoundCategory.PLAYERS, 0.5F, 1.5F); world.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BASS, SoundCategory.PLAYERS, 0.5F, 1.5F);
return; return;
} }
} }
} else } else
{ {
world.playSound(null, player.getPosX(), player.getPosY(), player.getPosZ(), SoundEvents.BLOCK_NOTE_BLOCK_BASS, SoundCategory.PLAYERS, 0.5F, 1.5F); world.playSound(null, player.getX(), player.getY(), player.getZ(), SoundEvents.NOTE_BLOCK_BASS, SoundCategory.PLAYERS, 0.5F, 1.5F);
return; return;
} }
} }
@ -216,7 +216,7 @@ public class ItemEntityEvents
public static int getAllPassengers(Entity entity) public static int getAllPassengers(Entity entity)
{ {
int passengers = 0; int passengers = 0;
while (entity.isBeingRidden()) while (entity.isVehicle())
{ {
List<Entity> pass = entity.getPassengers(); List<Entity> pass = entity.getPassengers();
if (!pass.isEmpty()) if (!pass.isEmpty())
@ -232,7 +232,7 @@ public class ItemEntityEvents
public static Entity getTopPassenger(Entity entity) public static Entity getTopPassenger(Entity entity)
{ {
Entity top = entity; Entity top = entity;
while (entity.isBeingRidden()) while (entity.isVehicle())
{ {
List<Entity> pass = entity.getPassengers(); List<Entity> pass = entity.getPassengers();
if (!pass.isEmpty()) if (!pass.isEmpty())
@ -249,22 +249,22 @@ public class ItemEntityEvents
public void onLivingUpdate(LivingUpdateEvent event) public void onLivingUpdate(LivingUpdateEvent event)
{ {
LivingEntity entity = event.getEntityLiving(); LivingEntity entity = event.getEntityLiving();
World world = entity.world; World world = entity.level;
ItemStack main = entity.getHeldItemMainhand(); ItemStack main = entity.getMainHandItem();
if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(main)) if (!main.isEmpty() && main.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(main))
{ {
BlockPos pos = entity.getPosition(); BlockPos pos = entity.blockPosition();
BlockPos below = pos.offset(Direction.DOWN); BlockPos below = pos.relative(Direction.DOWN);
if (world.getBlockState(pos).getMaterial() == Material.WATER || world.getBlockState(below).getMaterial() == Material.WATER) if (world.getBlockState(pos).getMaterial() == Material.WATER || world.getBlockState(below).getMaterial() == Material.WATER)
{ {
Entity contained = ItemCarryonEntity.getEntity(main, world); Entity contained = ItemCarryonEntity.getEntity(main, world);
if (contained != null) if (contained != null)
{ {
float height = contained.getWidth(); float height = contained.getBbWidth();
float width = contained.getWidth(); float width = contained.getBbWidth();
entity.addVelocity(0, -0.01 * height * width, 0); entity.push(0, -0.01 * height * width, 0);
} }
} }
} }

View File

@ -72,13 +72,13 @@ public class ItemEvents
return; return;
PlayerEntity player = event.getPlayer(); PlayerEntity player = event.getPlayer();
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack)) if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack))
{ {
player.getPersistentData().remove("carrySlot"); player.getPersistentData().remove("carrySlot");
event.setUseBlock(Result.DENY); event.setUseBlock(Result.DENY);
if (!player.world.isRemote) if (!player.level.isClientSide)
{ {
CarryOnOverride override = ScriptChecker.getOverride(player); CarryOnOverride override = ScriptChecker.getOverride(player);
if (override != null) if (override != null)
@ -86,7 +86,7 @@ public class ItemEvents
String command = override.getCommandPlace(); String command = override.getCommandPlace();
if (command != null && !command.isEmpty()) if (command != null && !command.isEmpty())
player.getServer().getCommandManager().handleCommand(player.getServer().getCommandSource(), "/execute as " + player.getGameProfile().getName() + " run " + command); player.getServer().getCommands().performCommand(player.getServer().createCommandSourceStack(), "/execute as " + player.getGameProfile().getName() + " run " + command);
} }
} }
} }
@ -105,29 +105,29 @@ public class ItemEvents
Item item = stack.getItem(); Item item = stack.getItem();
if (item == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack)) if (item == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack))
{ {
BlockPos pos = eitem.getPosition(); BlockPos pos = eitem.blockPosition();
BlockPos finalPos = pos; BlockPos finalPos = pos;
BlockItemUseContext context = new DirectionalPlaceContext(world, pos, Direction.DOWN, stack, Direction.UP); BlockItemUseContext context = new DirectionalPlaceContext(world, pos, Direction.DOWN, stack, Direction.UP);
if (!world.getBlockState(pos).isReplaceable(context) || !context.canPlace()) if (!world.getBlockState(pos).canBeReplaced(context) || !context.canPlace())
{ {
for (Direction facing : Direction.values()) for (Direction facing : Direction.values())
{ {
BlockPos offsetPos = pos.offset(facing); BlockPos offsetPos = pos.relative(facing);
BlockItemUseContext newContext = new DirectionalPlaceContext(world, offsetPos, Direction.DOWN, stack, Direction.UP); BlockItemUseContext newContext = new DirectionalPlaceContext(world, offsetPos, Direction.DOWN, stack, Direction.UP);
if (world.getBlockState(offsetPos).isReplaceable(newContext) && newContext.canPlace()) if (world.getBlockState(offsetPos).canBeReplaced(newContext) && newContext.canPlace())
{ {
finalPos = offsetPos; finalPos = offsetPos;
break; break;
} }
} }
} }
world.setBlockState(finalPos, ItemCarryonBlock.getBlockState(stack)); world.setBlockAndUpdate(finalPos, ItemCarryonBlock.getBlockState(stack));
TileEntity tile = world.getTileEntity(finalPos); TileEntity tile = world.getBlockEntity(finalPos);
if (tile != null) if (tile != null)
{ {
tile.deserializeNBT(ItemCarryonBlock.getTileData(stack)); tile.deserializeNBT(ItemCarryonBlock.getTileData(stack));
tile.setPos(finalPos); tile.setPosition(finalPos);
} }
ItemCarryonBlock.clearTileData(stack); ItemCarryonBlock.clearTileData(stack);
eitem.setItem(ItemStack.EMPTY); eitem.setItem(ItemStack.EMPTY);
@ -148,25 +148,25 @@ public class ItemEvents
if (event.getPlayer() instanceof PlayerEntity) if (event.getPlayer() instanceof PlayerEntity)
{ {
PlayerEntity player = (PlayerEntity) event.getPlayer(); PlayerEntity player = (PlayerEntity) event.getPlayer();
World world = player.getEntityWorld(); World world = player.getCommandSenderWorld();
ItemStack carried = player.getHeldItemMainhand(); ItemStack carried = player.getMainHandItem();
if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity) if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity)
{ {
if (carried.getItem() == RegistrationHandler.itemTile) if (carried.getItem() == RegistrationHandler.itemTile)
{ {
CarryOnOverride override = ScriptChecker.inspectBlock(ItemCarryonBlock.getBlockState(carried), world, player.getPosition(), ItemCarryonBlock.getTileData(carried)); CarryOnOverride override = ScriptChecker.inspectBlock(ItemCarryonBlock.getBlockState(carried), world, player.blockPosition(), ItemCarryonBlock.getTileData(carried));
if (override != null) if (override != null)
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(player.inventory.currentItem, player.getEntityId(), override.hashCode())); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(player.inventory.selected, player.getId(), override.hashCode()));
else else
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(player.inventory.currentItem, player.getEntityId())); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(player.inventory.selected, player.getId()));
} else } else
{ {
CarryOnOverride override = ScriptChecker.inspectEntity(ItemCarryonEntity.getEntity(carried, world)); CarryOnOverride override = ScriptChecker.inspectEntity(ItemCarryonEntity.getEntity(carried, world));
if (override != null) if (override != null)
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(player.inventory.currentItem, player.getEntityId(), override.hashCode())); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(player.inventory.selected, player.getId(), override.hashCode()));
else else
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(player.inventory.currentItem, player.getEntityId())); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(player.inventory.selected, player.getId()));
} }
} }
@ -206,25 +206,25 @@ public class ItemEvents
if (e instanceof PlayerEntity && tracker instanceof ServerPlayerEntity) if (e instanceof PlayerEntity && tracker instanceof ServerPlayerEntity)
{ {
PlayerEntity player = (PlayerEntity) e; PlayerEntity player = (PlayerEntity) e;
World world = player.getEntityWorld(); World world = player.getCommandSenderWorld();
ItemStack carried = player.getHeldItemMainhand(); ItemStack carried = player.getMainHandItem();
if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity) if (!carried.isEmpty() && carried.getItem() == RegistrationHandler.itemTile || carried.getItem() == RegistrationHandler.itemEntity)
{ {
if (carried.getItem() == RegistrationHandler.itemTile) if (carried.getItem() == RegistrationHandler.itemTile)
{ {
CarryOnOverride override = ScriptChecker.inspectBlock(ItemCarryonBlock.getBlockState(carried), world, player.getPosition(), ItemCarryonBlock.getTileData(carried)); CarryOnOverride override = ScriptChecker.inspectBlock(ItemCarryonBlock.getBlockState(carried), world, player.blockPosition(), ItemCarryonBlock.getTileData(carried));
if (override != null) if (override != null)
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) tracker), new CarrySlotPacket(player.inventory.currentItem, player.getEntityId(), override.hashCode())); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) tracker), new CarrySlotPacket(player.inventory.selected, player.getId(), override.hashCode()));
else else
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) tracker), new CarrySlotPacket(player.inventory.currentItem, player.getEntityId())); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) tracker), new CarrySlotPacket(player.inventory.selected, player.getId()));
} else } else
{ {
CarryOnOverride override = ScriptChecker.inspectEntity(ItemCarryonEntity.getEntity(carried, world)); CarryOnOverride override = ScriptChecker.inspectEntity(ItemCarryonEntity.getEntity(carried, world));
if (override != null) if (override != null)
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) tracker), new CarrySlotPacket(player.inventory.currentItem, player.getEntityId(), override.hashCode())); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) tracker), new CarrySlotPacket(player.inventory.selected, player.getId(), override.hashCode()));
else else
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) tracker), new CarrySlotPacket(player.inventory.currentItem, player.getEntityId())); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) tracker), new CarrySlotPacket(player.inventory.selected, player.getId()));
} }
} }
@ -237,7 +237,7 @@ public class ItemEvents
PlayerEntity player = event.getPlayer(); PlayerEntity player = event.getPlayer();
if (player != null && !Settings.hitWhileCarrying.get()) if (player != null && !Settings.hitWhileCarrying.get())
{ {
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
event.setNewSpeed(0); event.setNewSpeed(0);
} }
@ -247,7 +247,7 @@ public class ItemEvents
public void attackEntity(AttackEntityEvent event) public void attackEntity(AttackEntityEvent event)
{ {
PlayerEntity player = event.getPlayer(); PlayerEntity player = event.getPlayer();
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && !Settings.hitWhileCarrying.get() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) if (!stack.isEmpty() && !Settings.hitWhileCarrying.get() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
{ {
event.setCanceled(true); event.setCanceled(true);
@ -260,7 +260,7 @@ public class ItemEvents
PlayerEntity player = event.getPlayer(); PlayerEntity player = event.getPlayer();
if (player != null && !Settings.hitWhileCarrying.get()) if (player != null && !Settings.hitWhileCarrying.get())
{ {
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
event.setCanceled(true); event.setCanceled(true);
} }
@ -273,15 +273,15 @@ public class ItemEvents
if (eliving instanceof PlayerEntity && Settings.dropCarriedWhenHit.get()) if (eliving instanceof PlayerEntity && Settings.dropCarriedWhenHit.get())
{ {
PlayerEntity player = (PlayerEntity) eliving; PlayerEntity player = (PlayerEntity) eliving;
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity)) if (!stack.isEmpty() && (stack.getItem() == RegistrationHandler.itemTile || stack.getItem() == RegistrationHandler.itemEntity))
{ {
if (!player.world.isRemote) if (!player.level.isClientSide)
{ {
player.setHeldItem(Hand.MAIN_HAND, ItemStack.EMPTY); player.setItemInHand(Hand.MAIN_HAND, ItemStack.EMPTY);
ItemEntity item = new ItemEntity(player.world, player.getPosX(), player.getPosY(), player.getPosZ(), stack); ItemEntity item = new ItemEntity(player.level, player.getX(), player.getY(), player.getZ(), stack);
sendPacket(player, 9, 0); sendPacket(player, 9, 0);
player.world.addEntity(item); player.level.addFreshEntity(item);
} }
} }
@ -296,11 +296,11 @@ public class ItemEvents
if(event.isCanceled()) if(event.isCanceled())
return; return;
if (!player.world.isRemote) if (!player.level.isClientSide)
{ {
ItemStack main = player.getHeldItemMainhand(); ItemStack main = player.getMainHandItem();
ItemStack off = player.getHeldItemOffhand(); ItemStack off = player.getOffhandItem();
World world = event.getWorld(); World world = event.getWorld();
BlockPos pos = event.getPos(); BlockPos pos = event.getPos();
BlockState state = world.getBlockState(pos); BlockState state = world.getBlockState(pos);
@ -310,11 +310,11 @@ public class ItemEvents
ItemStack stack = new ItemStack(RegistrationHandler.itemTile); ItemStack stack = new ItemStack(RegistrationHandler.itemTile);
TileEntity te = world.getTileEntity(pos); TileEntity te = world.getBlockEntity(pos);
if (PickupHandler.canPlayerPickUpBlock((ServerPlayerEntity) player, te, world, pos)) if (PickupHandler.canPlayerPickUpBlock((ServerPlayerEntity) player, te, world, pos))
{ {
player.closeScreen(); player.closeContainer();
world.playEvent(1010, pos, 0); world.levelEvent(1010, pos, 0);
if (ItemCarryonBlock.storeTileData(te, world, pos, state, stack)) if (ItemCarryonBlock.storeTileData(te, world, pos, state, stack))
@ -322,7 +322,7 @@ public class ItemEvents
BlockState statee = world.getBlockState(pos); BlockState statee = world.getBlockState(pos);
CompoundNBT tag = new CompoundNBT(); CompoundNBT tag = new CompoundNBT();
tag = world.getTileEntity(pos) != null ? world.getTileEntity(pos).write(tag) : new CompoundNBT(); tag = world.getBlockEntity(pos) != null ? world.getBlockEntity(pos).save(tag) : new CompoundNBT();
CarryOnOverride override = ScriptChecker.inspectBlock(state, world, pos, tag); CarryOnOverride override = ScriptChecker.inspectBlock(state, world, pos, tag);
int overrideHash = 0; int overrideHash = 0;
if (override != null) if (override != null)
@ -332,11 +332,11 @@ public class ItemEvents
try try
{ {
sendPacket(player, player.inventory.currentItem, overrideHash); sendPacket(player, player.inventory.selected, overrideHash);
world.removeTileEntity(pos); world.removeBlockEntity(pos);
world.removeBlock(pos, false); world.removeBlock(pos, false);
player.setHeldItem(Hand.MAIN_HAND, stack); player.setItemInHand(Hand.MAIN_HAND, stack);
event.setUseBlock(Result.DENY); event.setUseBlock(Result.DENY);
event.setUseItem(Result.DENY); event.setUseItem(Result.DENY);
event.setCanceled(true); event.setCanceled(true);
@ -345,10 +345,10 @@ public class ItemEvents
{ {
try try
{ {
sendPacket(player, player.inventory.currentItem, overrideHash); sendPacket(player, player.inventory.selected, overrideHash);
emptyTileEntity(te); emptyTileEntity(te);
world.removeBlock(pos,false); world.removeBlock(pos,false);
player.setHeldItem(Hand.MAIN_HAND, stack); player.setItemInHand(Hand.MAIN_HAND, stack);
event.setUseBlock(Result.DENY); event.setUseBlock(Result.DENY);
event.setUseItem(Result.DENY); event.setUseItem(Result.DENY);
event.setCanceled(true); event.setCanceled(true);
@ -356,16 +356,16 @@ public class ItemEvents
} catch (Exception ex) } catch (Exception ex)
{ {
sendPacket(player, 9, 0); sendPacket(player, 9, 0);
world.setBlockState(pos, statee); world.setBlockAndUpdate(pos, statee);
if (!tag.isEmpty()) if (!tag.isEmpty())
{ {
TileEntity.readTileEntity(statee, tag); TileEntity.loadStatic(statee, tag);
} }
player.sendStatusMessage(new StringTextComponent(TextFormatting.RED + "Error detected. Cannot pick up block."), false); player.displayClientMessage(new StringTextComponent(TextFormatting.RED + "Error detected. Cannot pick up block."), false);
StringTextComponent s = new StringTextComponent(TextFormatting.GOLD + "here"); StringTextComponent s = new StringTextComponent(TextFormatting.GOLD + "here");
s.getStyle().setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues")); s.getStyle().withClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues"));
player.sendStatusMessage(new StringTextComponent(TextFormatting.RED + "Please report this error ").append(s), false); player.displayClientMessage(new StringTextComponent(TextFormatting.RED + "Please report this error ").append(s), false);
} }
} }
@ -375,7 +375,7 @@ public class ItemEvents
String command = override.getCommandInit(); String command = override.getCommandInit();
if (command != null) if (command != null)
player.getServer().getCommandManager().handleCommand(player.getServer().getCommandSource(), "/execute as " + player.getGameProfile().getName() + " run " + command); player.getServer().getCommands().performCommand(player.getServer().createCommandSourceStack(), "/execute as " + player.getGameProfile().getName() + " run " + command);
} }
} }
@ -417,7 +417,7 @@ public class ItemEvents
if (te instanceof IInventory) if (te instanceof IInventory)
{ {
IInventory inv = (IInventory) te; IInventory inv = (IInventory) te;
inv.clear(); inv.clearContent();
} }
if (te instanceof IItemHandler) if (te instanceof IItemHandler)
@ -429,7 +429,7 @@ public class ItemEvents
} }
} }
te.markDirty(); te.setChanged();
} }
} }
@ -439,27 +439,27 @@ public class ItemEvents
PlayerEntity original = event.getOriginal(); PlayerEntity original = event.getOriginal();
PlayerEntity player = event.getPlayer(); PlayerEntity player = event.getPlayer();
boolean wasDead = event.isWasDeath(); boolean wasDead = event.isWasDeath();
GameRules rules = player.world.getGameRules(); GameRules rules = player.level.getGameRules();
boolean keepInv = rules.getBoolean(GameRules.KEEP_INVENTORY); boolean keepInv = rules.getBoolean(GameRules.RULE_KEEPINVENTORY);
boolean wasCarrying = player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemTile)) || player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemEntity)); boolean wasCarrying = player.inventory.contains(new ItemStack(RegistrationHandler.itemTile)) || player.inventory.contains(new ItemStack(RegistrationHandler.itemEntity));
if ((wasDead ? keepInv : true) && wasCarrying) if ((wasDead ? keepInv : true) && wasCarrying)
{ {
int carrySlot = original.inventory.currentItem; int carrySlot = original.inventory.selected;
ItemStack stack = player.inventory.removeStackFromSlot(carrySlot); ItemStack stack = player.inventory.removeItemNoUpdate(carrySlot);
World world = player.world; World world = player.level;
ItemEntity item = new ItemEntity(world, 0, 0, 0); ItemEntity item = new ItemEntity(world, 0, 0, 0);
item.setItem(stack); item.setItem(stack);
BlockPos pos = null; BlockPos pos = null;
Optional<BlockPos> bedpos = original.getBedPosition(); Optional<BlockPos> bedpos = original.getSleepingPos();
if(bedpos.isPresent()) if(bedpos.isPresent())
pos = bedpos.get(); pos = bedpos.get();
if (pos == null) if (pos == null)
pos = player.getPosition(); pos = player.blockPosition();
item.setPosition(pos.getX(), pos.getY(), pos.getZ()); item.setPos(pos.getX(), pos.getY(), pos.getZ());
world.addEntity(item); world.addFreshEntity(item);
} }
} }
@ -472,14 +472,14 @@ public class ItemEvents
{ {
PlayerEntity player = (PlayerEntity) entity; PlayerEntity player = (PlayerEntity) entity;
if (!entity.world.isRemote) if (!entity.level.isClientSide)
{ {
boolean hasCarried = player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemTile)) || player.inventory.hasItemStack(new ItemStack(RegistrationHandler.itemEntity)); boolean hasCarried = player.inventory.contains(new ItemStack(RegistrationHandler.itemTile)) || player.inventory.contains(new ItemStack(RegistrationHandler.itemEntity));
ItemStack inHand = player.getHeldItemMainhand(); ItemStack inHand = player.getMainHandItem();
if (hasCarried) if (hasCarried)
{ {
if ((inHand.getItem() != RegistrationHandler.itemTile && inHand.getItem() != RegistrationHandler.itemEntity) && player.getPortalCooldown() == 0) if ((inHand.getItem() != RegistrationHandler.itemTile && inHand.getItem() != RegistrationHandler.itemEntity) && player.getDimensionChangingDelay() == 0)
{ {
int slotBlock = getSlot(player, RegistrationHandler.itemTile); int slotBlock = getSlot(player, RegistrationHandler.itemTile);
int slotEntity = getSlot(player, RegistrationHandler.itemEntity); int slotEntity = getSlot(player, RegistrationHandler.itemEntity);
@ -489,17 +489,17 @@ public class ItemEvents
ItemEntity item = null; ItemEntity item = null;
if (slotBlock != -1) if (slotBlock != -1)
{ {
ItemStack dropped = player.inventory.removeStackFromSlot(slotBlock); ItemStack dropped = player.inventory.removeItemNoUpdate(slotBlock);
item = new ItemEntity(player.world, player.getPosX(), player.getPosY(), player.getPosZ(), dropped); item = new ItemEntity(player.level, player.getX(), player.getY(), player.getZ(), dropped);
} }
if (slotEntity != -1) if (slotEntity != -1)
{ {
ItemStack dropped = player.inventory.removeStackFromSlot(slotEntity); ItemStack dropped = player.inventory.removeItemNoUpdate(slotEntity);
item = new ItemEntity(player.world, player.getPosX(), player.getPosY(), player.getPosZ(), dropped); item = new ItemEntity(player.level, player.getX(), player.getY(), player.getZ(), dropped);
} }
if (item != null) if (item != null)
{ {
player.world.addEntity(item); player.level.addFreshEntity(item);
sendPacket(player, 9, 0); sendPacket(player, 9, 0);
} }
} }
@ -512,7 +512,7 @@ public class ItemEvents
String command = override.getCommandLoop(); String command = override.getCommandLoop();
if (command != null) if (command != null)
player.getServer().getCommandManager().handleCommand(player.getServer().getCommandSource(), "/execute as " + player.getGameProfile().getName() + " run " + command); player.getServer().getCommands().performCommand(player.getServer().createCommandSourceStack(), "/execute as " + player.getGameProfile().getName() + " run " + command);
} }
} }
@ -521,9 +521,9 @@ public class ItemEvents
public int getSlot(PlayerEntity player, Item item) public int getSlot(PlayerEntity player, Item item)
{ {
for (int i = 0; i < player.inventory.getSizeInventory(); i++) for (int i = 0; i < player.inventory.getContainerSize(); i++)
{ {
ItemStack stack = player.inventory.getStackInSlot(i); ItemStack stack = player.inventory.getItem(i);
if (stack.getItem() == item) if (stack.getItem() == item)
return i; return i;
} }
@ -534,8 +534,8 @@ public class ItemEvents
{ {
if (player instanceof ServerPlayerEntity) if (player instanceof ServerPlayerEntity)
{ {
CarryOn.network.send(PacketDistributor.NEAR.with(() -> new TargetPoint(player.getPosX(), player.getPosY(), player.getPosZ(), 128, player.world.getDimensionKey())), new CarrySlotPacket(currentItem, player.getEntityId(), hash)); CarryOn.network.send(PacketDistributor.NEAR.with(() -> new TargetPoint(player.getX(), player.getY(), player.getZ(), 128, player.level.dimension())), new CarrySlotPacket(currentItem, player.getId(), hash));
CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(currentItem, player.getEntityId(), hash)); CarryOn.network.send(PacketDistributor.PLAYER.with(() -> (ServerPlayerEntity) player), new CarrySlotPacket(currentItem, player.getId(), hash));
if (currentItem >= 9) if (currentItem >= 9)
{ {

View File

@ -276,17 +276,17 @@ public class ListHandler
} }
} }
ITagCollection<Block> blocktags = BlockTags.getCollection(); ITagCollection<Block> blocktags = BlockTags.getAllTags();
ITagCollection<EntityType<?>> entitytags = EntityTypeTags.getCollection(); ITagCollection<EntityType<?>> entitytags = EntityTypeTags.getAllTags();
System.out.println(blocktags.getRegisteredTags()); System.out.println(blocktags.getAvailableTags());
for (String s : forbidden) for (String s : forbidden)
{ {
if (s.startsWith("#")) if (s.startsWith("#"))
{ {
String sub = s.substring(1, s.length()); String sub = s.substring(1, s.length());
ITag<Block> tag = blocktags.get(new ResourceLocation(sub)); ITag<Block> tag = blocktags.getTag(new ResourceLocation(sub));
if (tag != null) if (tag != null)
FORBIDDEN_TILES_TAGS.add(tag); FORBIDDEN_TILES_TAGS.add(tag);
} }
@ -296,7 +296,7 @@ public class ListHandler
{ {
if (s.startsWith("#")) if (s.startsWith("#"))
{ {
ITag<Block> tag = blocktags.get(new ResourceLocation(s.substring(1, s.length()))); ITag<Block> tag = blocktags.getTag(new ResourceLocation(s.substring(1, s.length())));
if (tag != null) if (tag != null)
ALLOWED_TILES_TAGS.add(tag); ALLOWED_TILES_TAGS.add(tag);
} }
@ -306,7 +306,7 @@ public class ListHandler
{ {
if (s.startsWith("#")) if (s.startsWith("#"))
{ {
ITag<EntityType<?>> tag = entitytags.get(new ResourceLocation(s.substring(1, s.length()))); ITag<EntityType<?>> tag = entitytags.getTag(new ResourceLocation(s.substring(1, s.length())));
if (tag != null) if (tag != null)
FORBIDDEN_ENTITIES_TAGS.add(tag); FORBIDDEN_ENTITIES_TAGS.add(tag);
} }
@ -316,7 +316,7 @@ public class ListHandler
{ {
if (s.startsWith("#")) if (s.startsWith("#"))
{ {
ITag<EntityType<?>> tag = entitytags.get(new ResourceLocation(s.substring(1, s.length()))); ITag<EntityType<?>> tag = entitytags.getTag(new ResourceLocation(s.substring(1, s.length())));
if (tag != null) if (tag != null)
ALLOWED_ENTITIES_TAGS.add(tag); ALLOWED_ENTITIES_TAGS.add(tag);
} }
@ -326,7 +326,7 @@ public class ListHandler
{ {
if (s.startsWith("#")) if (s.startsWith("#"))
{ {
ITag<EntityType<?>> tag = entitytags.get(new ResourceLocation(s.substring(1, s.length()))); ITag<EntityType<?>> tag = entitytags.getTag(new ResourceLocation(s.substring(1, s.length())));
if (tag != null) if (tag != null)
FORBIDDEN_STACKING_TAGS.add(tag); FORBIDDEN_STACKING_TAGS.add(tag);
} }
@ -336,7 +336,7 @@ public class ListHandler
{ {
if (s.startsWith("#")) if (s.startsWith("#"))
{ {
ITag<EntityType<?>> tag = entitytags.get(new ResourceLocation(s.substring(1, s.length()))); ITag<EntityType<?>> tag = entitytags.getTag(new ResourceLocation(s.substring(1, s.length())));
if (tag != null) if (tag != null)
ALLOWED_STACKING_TAGS.add(tag); ALLOWED_STACKING_TAGS.add(tag);
} }

View File

@ -69,7 +69,7 @@ public class ModelOverridesHandler
toOverride = toOverride.replace(nbt, ""); toOverride = toOverride.replace(nbt, "");
try try
{ {
tag = JsonToNBT.getTagFromJson(nbt); tag = JsonToNBT.parseTag(nbt);
} }
catch (Exception e) catch (Exception e)
{ {
@ -135,7 +135,7 @@ public class ModelOverridesHandler
} }
else else
{ {
keyComp.putInt("stateid", Block.getStateId((BlockState) toOverrideObject)); keyComp.putInt("stateid", Block.getId((BlockState) toOverrideObject));
keyComp.putString("block", ((BlockState) toOverrideObject).getBlock().getRegistryName().toString()); keyComp.putString("block", ((BlockState) toOverrideObject).getBlock().getRegistryName().toString());
} }
OVERRIDE_OBJECTS.put(keyComp, overrideObject); OVERRIDE_OBJECTS.put(keyComp, overrideObject);
@ -161,7 +161,7 @@ public class ModelOverridesHandler
if (OVERRIDE_OBJECTS.isEmpty()) if (OVERRIDE_OBJECTS.isEmpty())
return false; return false;
int stateid = Block.getStateId(state); int stateid = Block.getId(state);
CompoundNBT[] keys = new CompoundNBT[OVERRIDE_OBJECTS.size()]; CompoundNBT[] keys = new CompoundNBT[OVERRIDE_OBJECTS.size()];
OVERRIDE_OBJECTS.keySet().toArray(keys); OVERRIDE_OBJECTS.keySet().toArray(keys);
for (CompoundNBT key : keys) for (CompoundNBT key : keys)
@ -171,15 +171,15 @@ public class ModelOverridesHandler
if (id == 0 ? block == state.getBlock() : id == stateid) if (id == 0 ? block == state.getBlock() : id == stateid)
{ {
CompoundNBT toCheckForCompound = key.getCompound("nbttag"); CompoundNBT toCheckForCompound = key.getCompound("nbttag");
Set<String> kSetToCheck = toCheckForCompound.keySet(); Set<String> kSetToCheck = toCheckForCompound.getAllKeys();
Set<String> kSetTile = tag.keySet(); Set<String> kSetTile = tag.getAllKeys();
boolean flag = true; boolean flag = true;
if (kSetTile.containsAll(kSetToCheck)) if (kSetTile.containsAll(kSetToCheck))
{ {
for (String skey : kSetToCheck) for (String skey : kSetToCheck)
{ {
if (!NBTUtil.areNBTEquals(tag.get(skey), toCheckForCompound.get(skey), true)) if (!NBTUtil.compareNbt(tag.get(skey), toCheckForCompound.get(skey), true))
flag = false; flag = false;
} }
if (flag) if (flag)
@ -194,7 +194,7 @@ public class ModelOverridesHandler
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
public static IBakedModel getCustomOverrideModel(BlockState state, CompoundNBT tag, World world, PlayerEntity player) public static IBakedModel getCustomOverrideModel(BlockState state, CompoundNBT tag, World world, PlayerEntity player)
{ {
int stateid = Block.getStateId(state); int stateid = Block.getId(state);
CompoundNBT[] keys = new CompoundNBT[OVERRIDE_OBJECTS.size()]; CompoundNBT[] keys = new CompoundNBT[OVERRIDE_OBJECTS.size()];
OVERRIDE_OBJECTS.keySet().toArray(keys); OVERRIDE_OBJECTS.keySet().toArray(keys);
for (CompoundNBT key : keys) for (CompoundNBT key : keys)
@ -204,15 +204,15 @@ public class ModelOverridesHandler
if (id == 0 ? block == state.getBlock() : id == stateid) if (id == 0 ? block == state.getBlock() : id == stateid)
{ {
CompoundNBT toCheckForCompound = key.getCompound("nbttag"); CompoundNBT toCheckForCompound = key.getCompound("nbttag");
Set<String> kSetToCheck = toCheckForCompound.keySet(); Set<String> kSetToCheck = toCheckForCompound.getAllKeys();
Set<String> kSetTile = tag.keySet(); Set<String> kSetTile = tag.getAllKeys();
boolean flag = true; boolean flag = true;
if (kSetTile.containsAll(kSetToCheck)) if (kSetTile.containsAll(kSetToCheck))
{ {
for (String skey : kSetToCheck) for (String skey : kSetToCheck)
{ {
if (!NBTUtil.areNBTEquals(tag.get(skey), toCheckForCompound.get(skey), true)) if (!NBTUtil.compareNbt(tag.get(skey), toCheckForCompound.get(skey), true))
flag = false; flag = false;
} }
if (flag) if (flag)
@ -223,9 +223,9 @@ public class ModelOverridesHandler
return null; return null;
if (override instanceof BlockState) if (override instanceof BlockState)
return Minecraft.getInstance().getBlockRendererDispatcher().getModelForState((BlockState) override); return Minecraft.getInstance().getBlockRenderer().getBlockModel((BlockState) override);
else else
return Minecraft.getInstance().getItemRenderer().getItemModelWithOverrides((ItemStack) override, world, player); return Minecraft.getInstance().getItemRenderer().getModel((ItemStack) override, world, player);
} }
} }
} }
@ -236,7 +236,7 @@ public class ModelOverridesHandler
public static Object getOverrideObject(BlockState state, CompoundNBT tag) public static Object getOverrideObject(BlockState state, CompoundNBT tag)
{ {
int stateid = Block.getStateId(state); int stateid = Block.getId(state);
CompoundNBT[] keys = new CompoundNBT[OVERRIDE_OBJECTS.size()]; CompoundNBT[] keys = new CompoundNBT[OVERRIDE_OBJECTS.size()];
OVERRIDE_OBJECTS.keySet().toArray(keys); OVERRIDE_OBJECTS.keySet().toArray(keys);
for (CompoundNBT key : keys) for (CompoundNBT key : keys)
@ -246,15 +246,15 @@ public class ModelOverridesHandler
if (id == 0 ? block == state.getBlock() : id == stateid) if (id == 0 ? block == state.getBlock() : id == stateid)
{ {
CompoundNBT toCheckForCompound = key.getCompound("nbttag"); CompoundNBT toCheckForCompound = key.getCompound("nbttag");
Set<String> kSetToCheck = toCheckForCompound.keySet(); Set<String> kSetToCheck = toCheckForCompound.getAllKeys();
Set<String> kSetTile = tag.keySet(); Set<String> kSetTile = tag.getAllKeys();
boolean flag = true; boolean flag = true;
if (kSetTile.containsAll(kSetToCheck)) if (kSetTile.containsAll(kSetToCheck))
{ {
for (String skey : kSetToCheck) for (String skey : kSetToCheck)
{ {
if (!NBTUtil.areNBTEquals(tag.get(skey), toCheckForCompound.get(skey), true)) if (!NBTUtil.compareNbt(tag.get(skey), toCheckForCompound.get(skey), true))
flag = false; flag = false;
} }
if (flag) if (flag)

View File

@ -31,14 +31,14 @@ public class PickupHandler
public static boolean canPlayerPickUpBlock(ServerPlayerEntity player, @Nullable TileEntity tile, World world, BlockPos pos) public static boolean canPlayerPickUpBlock(ServerPlayerEntity player, @Nullable TileEntity tile, World world, BlockPos pos)
{ {
if(player.interactionManager.getGameType() == GameType.SPECTATOR || player.interactionManager.getGameType() == GameType.ADVENTURE) if(player.gameMode.getGameModeForPlayer() == GameType.SPECTATOR || player.gameMode.getGameModeForPlayer() == GameType.ADVENTURE)
return false; return false;
BlockState state = world.getBlockState(pos); BlockState state = world.getBlockState(pos);
CompoundNBT tag = new CompoundNBT(); CompoundNBT tag = new CompoundNBT();
if (tile != null) if (tile != null)
tile.write(tag); tile.save(tag);
CarryOnOverride override = ScriptChecker.inspectBlock(world.getBlockState(pos), world, pos, tag); CarryOnOverride override = ScriptChecker.inspectBlock(world.getBlockState(pos), world, pos, tag);
if (override != null) if (override != null)
@ -62,9 +62,9 @@ public class PickupHandler
} }
} }
if ((state.getBlockHardness(world, pos) != -1 || player.isCreative())) if ((state.getDestroySpeed(world, pos) != -1 || player.isCreative()))
{ {
double distance = Vector3d.copy(pos).distanceTo(player.getPositionVec()); double distance = Vector3d.atLowerCornerOf(pos).distanceTo(player.position());
double maxDist = Settings.maxDistance.get(); double maxDist = Settings.maxDistance.get();
if (distance < maxDist) if (distance < maxDist)
@ -92,10 +92,10 @@ public class PickupHandler
public static boolean canPlayerPickUpEntity(ServerPlayerEntity player, Entity toPickUp) public static boolean canPlayerPickUpEntity(ServerPlayerEntity player, Entity toPickUp)
{ {
if(player.interactionManager.getGameType() == GameType.SPECTATOR || player.interactionManager.getGameType() == GameType.ADVENTURE) if(player.gameMode.getGameModeForPlayer() == GameType.SPECTATOR || player.gameMode.getGameModeForPlayer() == GameType.ADVENTURE)
return false; return false;
BlockPos pos = toPickUp.getPosition(); BlockPos pos = toPickUp.blockPosition();
if (toPickUp instanceof PlayerEntity) if (toPickUp instanceof PlayerEntity)
return false; return false;
@ -110,16 +110,16 @@ public class PickupHandler
if (toPickUp instanceof AgeableEntity && Settings.allowBabies.get()) if (toPickUp instanceof AgeableEntity && Settings.allowBabies.get())
{ {
AgeableEntity living = (AgeableEntity) toPickUp; AgeableEntity living = (AgeableEntity) toPickUp;
if (living.getGrowingAge() < 0 || living.isChild()) if (living.getAge() < 0 || living.isBaby())
{ {
double distance = pos.distanceSq(player.getPosition()); double distance = pos.distSqr(player.blockPosition());
if (distance < Math.pow(Settings.maxDistance.get(), 2)) if (distance < Math.pow(Settings.maxDistance.get(), 2))
{ {
if (toPickUp instanceof TameableEntity) if (toPickUp instanceof TameableEntity)
{ {
TameableEntity tame = (TameableEntity) toPickUp; TameableEntity tame = (TameableEntity) toPickUp;
if (tame.getOwnerId() != null && tame.getOwnerId() != PlayerEntity.getUUID(player.getGameProfile())) if (tame.getOwnerUUID() != null && tame.getOwnerUUID() != PlayerEntity.createPlayerUUID(player.getGameProfile()))
return false; return false;
} }
} }
@ -148,20 +148,20 @@ public class PickupHandler
} }
} }
if ((Settings.pickupHostileMobs.get() ? true : toPickUp.getType().getClassification() != EntityClassification.MONSTER || player.isCreative())) if ((Settings.pickupHostileMobs.get() ? true : toPickUp.getType().getCategory() != EntityClassification.MONSTER || player.isCreative()))
{ {
if ((Settings.pickupHostileMobs.get() ? true : toPickUp.getType().getClassification() != EntityClassification.MONSTER || player.isCreative())) if ((Settings.pickupHostileMobs.get() ? true : toPickUp.getType().getCategory() != EntityClassification.MONSTER || player.isCreative()))
{ {
if ((toPickUp.getHeight() <= Settings.maxEntityHeight.get() && toPickUp.getWidth() <= Settings.maxEntityWidth.get() || player.isCreative())) if ((toPickUp.getBbHeight() <= Settings.maxEntityHeight.get() && toPickUp.getBbWidth() <= Settings.maxEntityWidth.get() || player.isCreative()))
{ {
double distance = pos.distanceSq(player.getPosition()); double distance = pos.distSqr(player.blockPosition());
if (distance < Math.pow(Settings.maxDistance.get(), 2)) if (distance < Math.pow(Settings.maxDistance.get(), 2))
{ {
if (toPickUp instanceof TameableEntity) if (toPickUp instanceof TameableEntity)
{ {
TameableEntity tame = (TameableEntity) toPickUp; TameableEntity tame = (TameableEntity) toPickUp;
UUID owner = tame.getOwnerId(); UUID owner = tame.getOwnerUUID();
UUID playerID = PlayerEntity.getUUID(player.getGameProfile()); UUID playerID = PlayerEntity.createPlayerUUID(player.getGameProfile());
if (owner != null && !owner.equals(playerID)) if (owner != null && !owner.equals(playerID))
return false; return false;
} }

View File

@ -14,7 +14,7 @@ public class KeyboardCallbackWrapper
public void setup(Minecraft mc) public void setup(Minecraft mc)
{ {
oldCallback = GLFW.glfwSetKeyCallback(mc.getMainWindow().getHandle(), this::keyCallback); oldCallback = GLFW.glfwSetKeyCallback(mc.getWindow().getWindow(), this::keyCallback);
} }
private void keyCallback(long window, int key, int scancode, int action, int mods) private void keyCallback(long window, int key, int scancode, int action, int mods)

View File

@ -76,7 +76,7 @@ public class ScriptParseHelper
return true; return true;
boolean matching = true; boolean matching = true;
for (String key : toMatch.keySet()) for (String key : toMatch.getAllKeys())
{ {
INBT tag = toMatch.get(key); INBT tag = toMatch.get(key);
key = key.replace("\"", ""); key = key.replace("\"", "");
@ -142,7 +142,7 @@ public class ScriptParseHelper
if (cond == null || cond.isEmpty()) if (cond == null || cond.isEmpty())
return true; return true;
Scoreboard score = player.getWorldScoreboard(); Scoreboard score = player.getScoreboard();
String numb; String numb;
String scorename; String scorename;
int iE = cond.indexOf("="); int iE = cond.indexOf("=");
@ -157,13 +157,13 @@ public class ScriptParseHelper
numb = cond.substring(iL); numb = cond.substring(iL);
scorename = cond.replace(numb, ""); scorename = cond.replace(numb, "");
Map<ScoreObjective, Score> o = score.getObjectivesForEntity(player.getGameProfile().getName()); Map<ScoreObjective, Score> o = score.getPlayerScores(player.getGameProfile().getName());
if (o != null) if (o != null)
{ {
Score sc = o.get(score.getObjective(scorename)); Score sc = o.get(score.getObjective(scorename));
if (sc != null) if (sc != null)
{ {
int points = sc.getScorePoints(); int points = sc.getScore();
return matches(points, numb); return matches(points, numb);
} }
@ -179,7 +179,7 @@ public class ScriptParseHelper
BlockPos blockpos = new BlockPos(getValueFromString(cond, "x"), getValueFromString(cond, "y"), getValueFromString(cond, "z")); BlockPos blockpos = new BlockPos(getValueFromString(cond, "x"), getValueFromString(cond, "y"), getValueFromString(cond, "z"));
BlockPos expand = new BlockPos(getValueFromString(cond, "dx"), getValueFromString(cond, "dy"), getValueFromString(cond, "dz")); BlockPos expand = new BlockPos(getValueFromString(cond, "dx"), getValueFromString(cond, "dy"), getValueFromString(cond, "dz"));
BlockPos expanded = blockpos.add(expand); BlockPos expanded = blockpos.offset(expand);
boolean x = (pos.getX() >= blockpos.getX() && pos.getX() <= expanded.getX()) || blockpos.getX() == 0; boolean x = (pos.getX() >= blockpos.getX() && pos.getX() <= expanded.getX()) || blockpos.getX() == 0;
boolean y = (pos.getY() >= blockpos.getY() && pos.getY() <= expanded.getY()) || blockpos.getY() == 0; boolean y = (pos.getY() >= blockpos.getY() && pos.getY() <= expanded.getY()) || blockpos.getY() == 0;
@ -221,7 +221,7 @@ public class ScriptParseHelper
if(cond == null || cond.isEmpty()) if(cond == null || cond.isEmpty())
return true; return true;
Collection<EffectInstance> effects = player.getActivePotionEffects(); Collection<EffectInstance> effects = player.getActiveEffects();
String[] potions = cond.split(","); String[] potions = cond.split(",");
List<String> names = new ArrayList<String>(); List<String> names = new ArrayList<String>();
@ -257,7 +257,7 @@ public class ScriptParseHelper
for(EffectInstance effect : effects) for(EffectInstance effect : effects)
{ {
int amp = effect.getAmplifier(); int amp = effect.getAmplifier();
String name = effect.getPotion().getRegistryName().toString(); String name = effect.getEffect().getRegistryName().toString();
if(names.contains(name)) if(names.contains(name))
{ {
@ -282,7 +282,7 @@ public class ScriptParseHelper
case "air": case "air":
return material == Material.AIR; return material == Material.AIR;
case "anvil": case "anvil":
return material == Material.ANVIL; return material == Material.HEAVY_METAL;
case "barrier": case "barrier":
return material == Material.BARRIER; return material == Material.BARRIER;
case "cactus": case "cactus":
@ -290,7 +290,7 @@ public class ScriptParseHelper
case "cake": case "cake":
return material == Material.CAKE; return material == Material.CAKE;
case "carpet": case "carpet":
return material == Material.CARPET; return material == Material.CLOTH_DECORATION;
case "clay": case "clay":
return material == Material.CLAY; return material == Material.CLAY;
case "cloth": case "cloth":
@ -298,49 +298,49 @@ public class ScriptParseHelper
case "coral": case "coral":
return material == Material.CORAL; return material == Material.CORAL;
case "dragon_egg": case "dragon_egg":
return material == Material.DRAGON_EGG; return material == Material.EGG;
case "fire": case "fire":
return material == Material.FIRE; return material == Material.FIRE;
case "glass": case "glass":
return material == Material.GLASS; return material == Material.GLASS;
case "gourd": case "gourd":
return material == Material.GOURD; return material == Material.VEGETABLE;
case "grass": case "grass":
return material == Material.ORGANIC; return material == Material.GRASS;
case "ground": case "ground":
return material == Material.ORGANIC; return material == Material.GRASS;
case "ice": case "ice":
return material == Material.ICE; return material == Material.ICE;
case "iron": case "iron":
return material == Material.IRON; return material == Material.METAL;
case "lava": case "lava":
return material == Material.LAVA; return material == Material.LAVA;
case "leaves": case "leaves":
return material == Material.LEAVES; return material == Material.LEAVES;
case "packed_ice": case "packed_ice":
return material == Material.PACKED_ICE; return material == Material.ICE_SOLID;
case "piston": case "piston":
return material == Material.PISTON; return material == Material.PISTON;
case "plants": case "plants":
return material == Material.PLANTS; return material == Material.PLANT;
case "portal": case "portal":
return material == Material.PORTAL; return material == Material.PORTAL;
case "redstone_light": case "redstone_light":
return material == Material.REDSTONE_LIGHT; return material == Material.BUILDABLE_GLASS;
case "rock": case "rock":
return material == Material.ROCK; return material == Material.STONE;
case "sand": case "sand":
return material == Material.SAND; return material == Material.SAND;
case "snow": case "snow":
return material == Material.SNOW; return material == Material.TOP_SNOW;
case "sponge": case "sponge":
return material == Material.SPONGE; return material == Material.SPONGE;
case "structure_void": case "structure_void":
return material == Material.STRUCTURE_VOID; return material == Material.STRUCTURAL_AIR;
case "tnt": case "tnt":
return material == Material.TNT; return material == Material.EXPLOSIVE;
case "vine": case "vine":
return material == Material.PLANTS; return material == Material.PLANT;
case "water": case "water":
return material == Material.WATER; return material == Material.WATER;
case "web": case "web":

View File

@ -15,7 +15,7 @@ public class ScrollCallbackWrapper
public void setup(Minecraft mc) public void setup(Minecraft mc)
{ {
oldCallback = GLFW.glfwSetScrollCallback(mc.getMainWindow().getHandle(), this::scrollCallback); oldCallback = GLFW.glfwSetScrollCallback(mc.getWindow().getWindow(), this::scrollCallback);
} }
private void scrollCallback(long window, double xoffset, double yoffset) private void scrollCallback(long window, double xoffset, double yoffset)

View File

@ -114,7 +114,7 @@ public class StringParser
string = string.replace(nbt, ""); string = string.replace(nbt, "");
try try
{ {
tag = JsonToNBT.getTagFromJson(nbt); tag = JsonToNBT.parseTag(nbt);
} }
catch (Exception e) catch (Exception e)
{ {

View File

@ -50,12 +50,12 @@ public class ItemCarryonBlock extends Item
public ItemCarryonBlock() public ItemCarryonBlock()
{ {
super(new Item.Properties().maxStackSize(1)); super(new Item.Properties().stacksTo(1));
this.setRegistryName(CarryOn.MODID, "tile_item"); this.setRegistryName(CarryOn.MODID, "tile_item");
} }
@Override @Override
public ITextComponent getDisplayName(ItemStack stack) public ITextComponent getName(ItemStack stack)
{ {
if (hasTileData(stack)) if (hasTileData(stack))
{ {
@ -66,28 +66,28 @@ public class ItemCarryonBlock extends Item
{ {
Object override = ModelOverridesHandler.getOverrideObject(state, nbt); Object override = ModelOverridesHandler.getOverrideObject(state, nbt);
if (override instanceof ItemStack) if (override instanceof ItemStack)
return ((ItemStack) override).getDisplayName(); return ((ItemStack) override).getHoverName();
else else
{ {
BlockState ostate = (BlockState) override; BlockState ostate = (BlockState) override;
return ostate.getBlock().getTranslatedName(); return ostate.getBlock().getName();
} }
} }
return getItemStack(stack).getDisplayName(); return getItemStack(stack).getHoverName();
} }
return new StringTextComponent(""); return new StringTextComponent("");
} }
@Override @Override
public ActionResultType onItemUse(ItemUseContext context) public ActionResultType useOn(ItemUseContext context)
{ {
Direction facing = context.getFace(); Direction facing = context.getClickedFace();
PlayerEntity player = context.getPlayer(); PlayerEntity player = context.getPlayer();
World world = context.getWorld(); World world = context.getLevel();
BlockPos pos = context.getPos(); BlockPos pos = context.getClickedPos();
ItemStack stack = context.getItem(); ItemStack stack = context.getItemInHand();
if (ModList.get().isLoaded("betterplacement")) if (ModList.get().isLoaded("betterplacement"))
{ {
@ -99,23 +99,23 @@ public class ItemCarryonBlock extends Item
{ {
try try
{ {
Vector3d vec = player.getLookVec(); Vector3d vec = player.getLookAngle();
Direction facing2 = Direction.getFacingFromVector((float) vec.x, 0f, (float) vec.z); Direction facing2 = Direction.getNearest((float) vec.x, 0f, (float) vec.z);
BlockPos pos2 = pos; BlockPos pos2 = pos;
Block containedblock = getBlock(stack); Block containedblock = getBlock(stack);
BlockState containedstate = getBlockState(stack); BlockState containedstate = getBlockState(stack);
if (!world.getBlockState(pos2).isReplaceable(new BlockItemUseContext(context))) if (!world.getBlockState(pos2).canBeReplaced(new BlockItemUseContext(context)))
{ {
pos2 = pos.offset(facing); pos2 = pos.relative(facing);
} }
if (world.getBlockState(pos2).isReplaceable(new BlockItemUseContext(context)) && containedblock != null) if (world.getBlockState(pos2).canBeReplaced(new BlockItemUseContext(context)) && containedblock != null)
{ {
boolean canPlace = containedstate.isValidPosition(world, pos2); boolean canPlace = containedstate.canSurvive(world, pos2);
if (canPlace) if (canPlace)
{ {
if (player.canPlayerEdit(pos, facing, stack) && world.isBlockModifiable(player, pos2)) if (player.mayUseItemAt(pos, facing, stack) && world.mayInteract(player, pos2))
{ {
BlockState placementState = containedblock.getStateForPlacement(new BlockItemUseContext(context)); BlockState placementState = containedblock.getStateForPlacement(new BlockItemUseContext(context));
@ -139,13 +139,13 @@ public class ItemCarryonBlock extends Item
// } // }
// } // }
BlockSnapshot snapshot = BlockSnapshot.create(world.getDimensionKey(), world, pos2); BlockSnapshot snapshot = BlockSnapshot.create(world.dimension(), world, pos2);
EntityPlaceEvent event = new EntityPlaceEvent(snapshot, world.getBlockState(pos), player); EntityPlaceEvent event = new EntityPlaceEvent(snapshot, world.getBlockState(pos), player);
MinecraftForge.EVENT_BUS.post(event); MinecraftForge.EVENT_BUS.post(event);
if (!event.isCanceled()) if (!event.isCanceled())
{ {
world.setBlockState(pos2, actualState); world.setBlockAndUpdate(pos2, actualState);
// If the blockstate doesn't handle rotation, // If the blockstate doesn't handle rotation,
// try to // try to
@ -153,24 +153,24 @@ public class ItemCarryonBlock extends Item
if (!getTileData(stack).isEmpty()) if (!getTileData(stack).isEmpty())
{ {
CompoundNBT tag = getTileData(stack); CompoundNBT tag = getTileData(stack);
Set<String> keys = tag.keySet(); Set<String> keys = tag.getAllKeys();
keytester: for (String key : keys) keytester: for (String key : keys)
{ {
for (String facingKey : FACING_KEYS) for (String facingKey : FACING_KEYS)
{ {
if (key.toLowerCase().equals(facingKey)) if (key.toLowerCase().equals(facingKey))
{ {
byte type = tag.getTagId(key); byte type = tag.getTagType(key);
switch (type) switch (type)
{ {
case 8: case 8:
tag.putString(key, CharMatcher.javaUpperCase().matchesAllOf(tag.getString(key)) ? facing2.getOpposite().getName2().toUpperCase() : facing2.getOpposite().getName2()); tag.putString(key, CharMatcher.javaUpperCase().matchesAllOf(tag.getString(key)) ? facing2.getOpposite().getName().toUpperCase() : facing2.getOpposite().getName());
break; break;
case 3: case 3:
tag.putInt(key, facing2.getOpposite().getIndex()); tag.putInt(key, facing2.getOpposite().get3DDataValue());
break; break;
case 1: case 1:
tag.putByte(key, (byte) facing2.getOpposite().getIndex()); tag.putByte(key, (byte) facing2.getOpposite().get3DDataValue());
break; break;
default: default:
break; break;
@ -182,16 +182,16 @@ public class ItemCarryonBlock extends Item
} }
} }
TileEntity tile = world.getTileEntity(pos2); TileEntity tile = world.getBlockEntity(pos2);
if (tile != null) if (tile != null)
{ {
CompoundNBT data = getTileData(stack); CompoundNBT data = getTileData(stack);
updateTileLocation(data, pos2); updateTileLocation(data, pos2);
tile.read(actualState, data); tile.load(actualState, data);
} }
clearTileData(stack); clearTileData(stack);
player.playSound(actualState.getSoundType(world, pos2, player).getPlaceSound(), 1.0f, 0.5f); player.playSound(actualState.getSoundType(world, pos2, player).getPlaceSound(), 1.0f, 0.5f);
player.setHeldItem(Hand.MAIN_HAND, ItemStack.EMPTY); player.setItemInHand(Hand.MAIN_HAND, ItemStack.EMPTY);
player.getPersistentData().remove("overrideKey"); player.getPersistentData().remove("overrideKey");
ItemEvents.sendPacket(player, 9, 0); ItemEvents.sendPacket(player, 9, 0);
return ActionResultType.SUCCESS; return ActionResultType.SUCCESS;
@ -206,7 +206,7 @@ public class ItemCarryonBlock extends Item
{ {
e.printStackTrace(); e.printStackTrace();
if (world != null && world.isRemote) if (world != null && world.isClientSide)
{ {
CarryOn.LOGGER.info("Block: " + ItemCarryonBlock.getBlock(stack)); CarryOn.LOGGER.info("Block: " + ItemCarryonBlock.getBlock(stack));
CarryOn.LOGGER.info("BlockState: " + ItemCarryonBlock.getBlockState(stack)); CarryOn.LOGGER.info("BlockState: " + ItemCarryonBlock.getBlockState(stack));
@ -219,10 +219,10 @@ public class ItemCarryonBlock extends Item
if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonBlock.getBlockState(stack))) if (CustomPickupOverrideHandler.hasSpecialPickupConditions(ItemCarryonBlock.getBlockState(stack)))
CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonBlock.getBlockState(stack))); CarryOn.LOGGER.info("Custom Pickup Condition: " + CustomPickupOverrideHandler.getPickupCondition(ItemCarryonBlock.getBlockState(stack)));
player.sendStatusMessage(new StringTextComponent(TextFormatting.RED + "Error detected. Cannot place block. Execute \"/carryon clear\" to remove the item"), false); player.displayClientMessage(new StringTextComponent(TextFormatting.RED + "Error detected. Cannot place block. Execute \"/carryon clear\" to remove the item"), false);
StringTextComponent s = new StringTextComponent(TextFormatting.GOLD + "here"); StringTextComponent s = new StringTextComponent(TextFormatting.GOLD + "here");
s.getStyle().setClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues")); s.getStyle().withClickEvent(new ClickEvent(Action.OPEN_URL, "https://github.com/Tschipp/CarryOn/issues"));
player.sendStatusMessage(new StringTextComponent(TextFormatting.RED + "Please report this error ").append(s), false); player.displayClientMessage(new StringTextComponent(TextFormatting.RED + "Please report this error ").append(s), false);
} }
} }
@ -242,7 +242,7 @@ public class ItemCarryonBlock extends Item
if (entity instanceof PlayerEntity && Settings.slownessInCreative.get() ? false : ((PlayerEntity) entity).isCreative()) if (entity instanceof PlayerEntity && Settings.slownessInCreative.get() ? false : ((PlayerEntity) entity).isCreative())
return; return;
((LivingEntity) entity).addPotionEffect(new EffectInstance(Effects.SLOWNESS, 1, potionLevel(stack), false, false)); ((LivingEntity) entity).addEffect(new EffectInstance(Effects.MOVEMENT_SLOWDOWN, 1, potionLevel(stack), false, false));
} }
} }
else else
@ -268,7 +268,7 @@ public class ItemCarryonBlock extends Item
CompoundNBT tileTag = new CompoundNBT(); CompoundNBT tileTag = new CompoundNBT();
if (tile != null) if (tile != null)
tileTag = tile.write(tileTag); tileTag = tile.save(tileTag);
CompoundNBT tag = stack.hasTag() ? stack.getTag() : new CompoundNBT(); CompoundNBT tag = stack.hasTag() ? stack.getTag() : new CompoundNBT();
if (tag.contains(TILE_DATA_KEY)) if (tag.contains(TILE_DATA_KEY))
@ -282,7 +282,7 @@ public class ItemCarryonBlock extends Item
tag.putString("block", state.getBlock().getRegistryName().toString()); tag.putString("block", state.getBlock().getRegistryName().toString());
// Item item = Item.getItemFromBlock(state.getBlock()); // Item item = Item.getItemFromBlock(state.getBlock());
// tag.setInt("meta", drop.getItemDamage()); // tag.setInt("meta", drop.getItemDamage());
tag.putInt("stateid", Block.getStateId(state)); tag.putInt("stateid", Block.getId(state));
stack.setTag(tag); stack.setTag(tag);
return true; return true;
} }
@ -321,7 +321,7 @@ public class ItemCarryonBlock extends Item
{ {
CompoundNBT tag = stack.getTag(); CompoundNBT tag = stack.getTag();
int id = tag.getInt("stateid"); int id = tag.getInt("stateid");
return Block.getStateById(id).getBlock(); return Block.stateById(id).getBlock();
} }
return Blocks.AIR; return Blocks.AIR;
} }
@ -348,18 +348,18 @@ public class ItemCarryonBlock extends Item
{ {
CompoundNBT tag = stack.getTag(); CompoundNBT tag = stack.getTag();
int id = tag.getInt("stateid"); int id = tag.getInt("stateid");
return Block.getStateById(id); return Block.stateById(id);
} }
return Blocks.AIR.getDefaultState(); return Blocks.AIR.defaultBlockState();
} }
public static boolean isLocked(BlockPos pos, World world) public static boolean isLocked(BlockPos pos, World world)
{ {
TileEntity te = world.getTileEntity(pos); TileEntity te = world.getBlockEntity(pos);
if (te != null) if (te != null)
{ {
CompoundNBT tag = new CompoundNBT(); CompoundNBT tag = new CompoundNBT();
te.write(tag); te.save(tag);
return tag.contains("Lock") ? !tag.getString("Lock").equals("") : false; return tag.contains("Lock") ? !tag.getString("Lock").equals("") : false;
} }

View File

@ -39,23 +39,23 @@ public class ItemCarryonEntity extends Item {
static static
{ {
initGoals = ObfuscationReflectionHelper.findMethod(MobEntity.class, "func_184651_r"); initGoals = ObfuscationReflectionHelper.findMethod(MobEntity.class, "registerGoals");
initGoals.setAccessible(true); initGoals.setAccessible(true);
} }
public static final String ENTITY_DATA_KEY = "entityData"; public static final String ENTITY_DATA_KEY = "entityData";
public ItemCarryonEntity() { public ItemCarryonEntity() {
super(new Item.Properties().maxStackSize(1)); super(new Item.Properties().stacksTo(1));
this.setRegistryName(CarryOn.MODID, "entity_item"); this.setRegistryName(CarryOn.MODID, "entity_item");
} }
@Override @Override
public ITextComponent getDisplayName(ItemStack stack) public ITextComponent getName(ItemStack stack)
{ {
if (hasEntityData(stack)) { if (hasEntityData(stack)) {
return new TranslationTextComponent(getEntityType(stack).getTranslationKey()); return new TranslationTextComponent(getEntityType(stack).getDescriptionId());
} }
return new StringTextComponent(""); return new StringTextComponent("");
@ -92,13 +92,13 @@ public class ItemCarryonEntity extends Item {
} }
@Override @Override
public ActionResultType onItemUse(ItemUseContext context) { public ActionResultType useOn(ItemUseContext context) {
PlayerEntity player = context.getPlayer(); PlayerEntity player = context.getPlayer();
World world = context.getWorld(); World world = context.getLevel();
BlockPos pos = context.getPos(); BlockPos pos = context.getClickedPos();
Direction facing = context.getFace(); Direction facing = context.getClickedFace();
ItemStack stack = context.getItem(); ItemStack stack = context.getItemInHand();
BlockState state = world.getBlockState(pos); BlockState state = world.getBlockState(pos);
@ -110,21 +110,21 @@ public class ItemCarryonEntity extends Item {
if (hasEntityData(stack)) { if (hasEntityData(stack)) {
BlockPos finalPos = pos; BlockPos finalPos = pos;
if (!state.isReplaceable(new BlockItemUseContext(context))) { if (!state.canBeReplaced(new BlockItemUseContext(context))) {
finalPos = pos.offset(facing); finalPos = pos.relative(facing);
} }
Entity entity = getEntity(stack, world); Entity entity = getEntity(stack, world);
if (entity != null) { if (entity != null) {
if (!world.isRemote) { if (!world.isClientSide) {
entity.setPositionAndRotation(finalPos.getX() + 0.5, finalPos.getY(), finalPos.getZ() + 0.5, entity.absMoveTo(finalPos.getX() + 0.5, finalPos.getY(), finalPos.getZ() + 0.5,
180 + player.rotationYawHead, 0.0f); 180 + player.yHeadRot, 0.0f);
world.addEntity(entity); world.addFreshEntity(entity);
if (entity instanceof MobEntity) { if (entity instanceof MobEntity) {
((MobEntity) entity).playAmbientSound(); ((MobEntity) entity).playAmbientSound();
} }
clearEntityData(stack); clearEntityData(stack);
player.setHeldItem(Hand.MAIN_HAND, ItemStack.EMPTY); player.setItemInHand(Hand.MAIN_HAND, ItemStack.EMPTY);
ItemEvents.sendPacket(player, 9, 0); ItemEvents.sendPacket(player, 9, 0);
} }
@ -147,8 +147,8 @@ public class ItemCarryonEntity extends Item {
: ((PlayerEntity) entity).isCreative()) : ((PlayerEntity) entity).isCreative())
return; return;
((LivingEntity) entity).addPotionEffect( ((LivingEntity) entity).addEffect(
new EffectInstance(Effects.SLOWNESS, 1, potionLevel(stack, world), false, false)); new EffectInstance(Effects.MOVEMENT_SLOWDOWN, 1, potionLevel(stack, world), false, false));
} }
} else { } else {
@ -179,7 +179,7 @@ public class ItemCarryonEntity extends Item {
String name = getEntityName(stack); String name = getEntityName(stack);
CompoundNBT e = getPersistentData(stack); CompoundNBT e = getPersistentData(stack);
Optional<EntityType<?>> type = EntityType.byKey(name); Optional<EntityType<?>> type = EntityType.byString(name);
Entity entity = null; Entity entity = null;
if (type.isPresent()) { if (type.isPresent()) {
@ -225,7 +225,7 @@ public class ItemCarryonEntity extends Item {
if (stack.hasTag()) { if (stack.hasTag()) {
CompoundNBT tag = stack.getTag(); CompoundNBT tag = stack.getTag();
String name = tag.getString("entity"); String name = tag.getString("entity");
Optional<EntityType<?>> type = EntityType.byKey(name); Optional<EntityType<?>> type = EntityType.byString(name);
if (type.isPresent()) if (type.isPresent())
return type.get(); return type.get();
} }
@ -237,7 +237,7 @@ public class ItemCarryonEntity extends Item {
if (e == null) if (e == null)
return 1; return 1;
int i = (int) (e.getHeight() * e.getWidth()); int i = (int) (e.getBbHeight() * e.getBbWidth());
if (i > 4) if (i > 4)
i = 4; i = 4;

View File

@ -104,7 +104,7 @@ public class CarryOnOverride
if (resistance != null) if (resistance != null)
setTypeResistance(resistance.getAsString()); setTypeResistance(resistance.getAsString());
if (nbt != null) if (nbt != null)
setTypeBlockTag(JsonToNBT.getTagFromJson(nbt.toString())); setTypeBlockTag(JsonToNBT.parseTag(nbt.toString()));
} }
else else
{ {
@ -124,7 +124,7 @@ public class CarryOnOverride
if (width != null) if (width != null)
setTypeWidth(width.getAsString()); setTypeWidth(width.getAsString());
if (nbt != null) if (nbt != null)
setTypeEntityTag(JsonToNBT.getTagFromJson(nbt.toString())); setTypeEntityTag(JsonToNBT.parseTag(nbt.toString()));
} }
if (conditions != null) if (conditions != null)
@ -177,7 +177,7 @@ public class CarryOnOverride
if (scaled != null) if (scaled != null)
setRenderscaled(scaled.getAsString()); setRenderscaled(scaled.getAsString());
if (nbt != null) if (nbt != null)
setRenderNBT(JsonToNBT.getTagFromJson(nbt.toString())); setRenderNBT(JsonToNBT.parseTag(nbt.toString()));
if (rotationLeftArm != null) if (rotationLeftArm != null)
setRenderRotationLeftArm(rotationLeftArm.getAsString()); setRenderRotationLeftArm(rotationLeftArm.getAsString());
if (rotationRightArm != null) if (rotationRightArm != null)
@ -783,95 +783,95 @@ public class CarryOnOverride
public void serialize(PacketBuffer buf) public void serialize(PacketBuffer buf)
{ {
// BLOCKS // BLOCKS
buf.writeCompoundTag(typeBlockTag); buf.writeNbt(typeBlockTag);
buf.writeString(typeNameBlock); buf.writeUtf(typeNameBlock);
buf.writeString(typeMaterial); buf.writeUtf(typeMaterial);
buf.writeString(typeHardness); buf.writeUtf(typeHardness);
buf.writeString(typeResistance); buf.writeUtf(typeResistance);
// ENTITIES // ENTITIES
buf.writeCompoundTag(typeEntityTag); buf.writeNbt(typeEntityTag);
buf.writeString(typeNameEntity); buf.writeUtf(typeNameEntity);
buf.writeString(typeHeight); buf.writeUtf(typeHeight);
buf.writeString(typeWidth); buf.writeUtf(typeWidth);
buf.writeString(typeHealth); buf.writeUtf(typeHealth);
// CONDITIONS // CONDITIONS
buf.writeString(conditionGamestage); buf.writeUtf(conditionGamestage);
buf.writeString(conditionAchievement); buf.writeUtf(conditionAchievement);
buf.writeString(conditionXp); buf.writeUtf(conditionXp);
buf.writeString(conditionGamemode); buf.writeUtf(conditionGamemode);
buf.writeString(conditionScoreboard); buf.writeUtf(conditionScoreboard);
buf.writeString(conditionPosition); buf.writeUtf(conditionPosition);
buf.writeString(conditionEffects); buf.writeUtf(conditionEffects);
// RENDER // RENDER
buf.writeString(renderNameBlock); buf.writeUtf(renderNameBlock);
buf.writeString(renderNameEntity); buf.writeUtf(renderNameEntity);
buf.writeCompoundTag(renderNBT); buf.writeNbt(renderNBT);
buf.writeString(renderTranslation); buf.writeUtf(renderTranslation);
buf.writeString(renderRotation); buf.writeUtf(renderRotation);
buf.writeString(renderscaled); buf.writeUtf(renderscaled);
buf.writeString(renderRotationLeftArm); buf.writeUtf(renderRotationLeftArm);
buf.writeString(renderRotationRightArm); buf.writeUtf(renderRotationRightArm);
buf.writeBoolean(renderLeftArm); buf.writeBoolean(renderLeftArm);
buf.writeBoolean(renderRightArm); buf.writeBoolean(renderRightArm);
// EFFECTS // EFFECTS
buf.writeString(commandInit); buf.writeUtf(commandInit);
buf.writeString(commandLoop); buf.writeUtf(commandLoop);
buf.writeString(commandPlace); buf.writeUtf(commandPlace);
buf.writeBoolean(isBlock); buf.writeBoolean(isBlock);
buf.writeBoolean(isEntity); buf.writeBoolean(isEntity);
buf.writeString(resourceLocation); buf.writeUtf(resourceLocation);
} }
public static CarryOnOverride deserialize(PacketBuffer buf) public static CarryOnOverride deserialize(PacketBuffer buf)
{ {
CarryOnOverride override = new CarryOnOverride(""); CarryOnOverride override = new CarryOnOverride("");
override.typeBlockTag = buf.readCompoundTag(); override.typeBlockTag = buf.readNbt();
override.typeNameBlock = buf.readString(); override.typeNameBlock = buf.readUtf();
override.typeMaterial = buf.readString(); override.typeMaterial = buf.readUtf();
override.typeHardness = buf.readString(); override.typeHardness = buf.readUtf();
override.typeResistance = buf.readString(); override.typeResistance = buf.readUtf();
// ENTITIES // ENTITIES
override.typeEntityTag = buf.readCompoundTag(); override.typeEntityTag = buf.readNbt();
override.typeNameEntity = buf.readString(); override.typeNameEntity = buf.readUtf();
override.typeHeight = buf.readString(); override.typeHeight = buf.readUtf();
override.typeWidth = buf.readString(); override.typeWidth = buf.readUtf();
override.typeHealth = buf.readString(); override.typeHealth = buf.readUtf();
// CONDITIONS // CONDITIONS
override.conditionGamestage = buf.readString(); override.conditionGamestage = buf.readUtf();
override.conditionAchievement = buf.readString(); override.conditionAchievement = buf.readUtf();
override.conditionXp = buf.readString(); override.conditionXp = buf.readUtf();
override.conditionGamemode = buf.readString(); override.conditionGamemode = buf.readUtf();
override.conditionScoreboard = buf.readString(); override.conditionScoreboard = buf.readUtf();
override.conditionPosition = buf.readString(); override.conditionPosition = buf.readUtf();
override.conditionEffects = buf.readString(); override.conditionEffects = buf.readUtf();
// RENDER // RENDER
override.renderNameBlock = buf.readString(); override.renderNameBlock = buf.readUtf();
override.renderNameEntity = buf.readString(); override.renderNameEntity = buf.readUtf();
override.renderNBT = buf.readCompoundTag(); override.renderNBT = buf.readNbt();
override.renderTranslation = buf.readString(); override.renderTranslation = buf.readUtf();
override.renderRotation = buf.readString(); override.renderRotation = buf.readUtf();
override.renderscaled = buf.readString(); override.renderscaled = buf.readUtf();
override.renderRotationLeftArm = buf.readString(); override.renderRotationLeftArm = buf.readUtf();
override.renderRotationRightArm = buf.readString(); override.renderRotationRightArm = buf.readUtf();
override.renderLeftArm = buf.readBoolean(); override.renderLeftArm = buf.readBoolean();
override.renderRightArm = buf.readBoolean(); override.renderRightArm = buf.readBoolean();
// EFFECTS // EFFECTS
override.commandInit = buf.readString(); override.commandInit = buf.readUtf();
override.commandLoop = buf.readString(); override.commandLoop = buf.readUtf();
override.commandPlace = buf.readString(); override.commandPlace = buf.readUtf();
override.isBlock = buf.readBoolean(); override.isBlock = buf.readBoolean();
override.isEntity = buf.readBoolean(); override.isEntity = buf.readBoolean();
override.resourceLocation = buf.readString(); override.resourceLocation = buf.readUtf();
return override; return override;
} }

View File

@ -33,7 +33,7 @@ public class ScriptChecker
Block block = state.getBlock(); Block block = state.getBlock();
Material material = state.getMaterial(); Material material = state.getMaterial();
float hardness = state.getBlockHardness(world, pos); float hardness = state.getDestroySpeed(world, pos);
@SuppressWarnings("deprecation") @SuppressWarnings("deprecation")
float resistance = block.getExplosionResistance(); float resistance = block.getExplosionResistance();
CompoundNBT nbt = tag; CompoundNBT nbt = tag;
@ -62,8 +62,8 @@ public class ScriptChecker
return null; return null;
String name = entity.getType().getRegistryName().toString(); String name = entity.getType().getRegistryName().toString();
float height = entity.getHeight(); float height = entity.getBbHeight();
float width = entity.getWidth(); float width = entity.getBbWidth();
float health = entity instanceof LivingEntity ? ((LivingEntity) entity).getHealth() : 0.0f; float health = entity instanceof LivingEntity ? ((LivingEntity) entity).getHealth() : 0.0f;
CompoundNBT tag = entity.serializeNBT(); CompoundNBT tag = entity.serializeNBT();
@ -109,11 +109,11 @@ public class ScriptChecker
public static boolean fulfillsConditions(CarryOnOverride override, PlayerEntity player) public static boolean fulfillsConditions(CarryOnOverride override, PlayerEntity player)
{ {
AdvancementManager manager = ((ServerPlayerEntity) player).server.getAdvancementManager(); AdvancementManager manager = ((ServerPlayerEntity) player).server.getAdvancements();
Advancement adv = manager.getAdvancement(new ResourceLocation((override.getConditionAchievement()).isEmpty() ? "" : override.getConditionAchievement())); Advancement adv = manager.getAdvancement(new ResourceLocation((override.getConditionAchievement()).isEmpty() ? "" : override.getConditionAchievement()));
boolean achievement = adv == null ? true : ((ServerPlayerEntity) player).getAdvancements().getProgress(adv).isDone(); boolean achievement = adv == null ? true : ((ServerPlayerEntity) player).getAdvancements().getOrStartProgress(adv).isDone();
boolean gamemode = ScriptParseHelper.matches(((ServerPlayerEntity) player).interactionManager.getGameType().getID(), override.getConditionGamemode()); boolean gamemode = ScriptParseHelper.matches(((ServerPlayerEntity) player).gameMode.getGameModeForPlayer().getId(), override.getConditionGamemode());
boolean gamestage = true; boolean gamestage = true;
if (ModList.get().isLoaded("gamestages")) if (ModList.get().isLoaded("gamestages"))
{ {
@ -154,7 +154,7 @@ public class ScriptChecker
} }
} }
boolean position = ScriptParseHelper.matches(player.getPosition(), override.getConditionPosition()); boolean position = ScriptParseHelper.matches(player.blockPosition(), override.getConditionPosition());
boolean xp = ScriptParseHelper.matches(player.experienceLevel, override.getConditionXp()); boolean xp = ScriptParseHelper.matches(player.experienceLevel, override.getConditionXp());
boolean scoreboard = ScriptParseHelper.matchesScore(player, override.getConditionScoreboard()); boolean scoreboard = ScriptParseHelper.matchesScore(player, override.getConditionScoreboard());
boolean effects = ScriptParseHelper.hasEffects(player, override.getConditionEffects()); boolean effects = ScriptParseHelper.hasEffects(player, override.getConditionEffects());

View File

@ -34,7 +34,7 @@ public class ObfuscateEvents
return; return;
PlayerModel<?> model = event.getModelPlayer(); PlayerModel<?> model = event.getModelPlayer();
ItemStack stack = player.getHeldItemMainhand(); ItemStack stack = player.getMainHandItem();
if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack)) if (!stack.isEmpty() && stack.getItem() == RegistrationHandler.itemTile && ItemCarryonBlock.hasTileData(stack) || stack.getItem() == RegistrationHandler.itemEntity && ItemCarryonEntity.hasEntityData(stack))
{ {
@ -55,33 +55,33 @@ public class ObfuscateEvents
if (renderLeft && rotLeft != null) if (renderLeft && rotLeft != null)
{ {
renderArmPre(model.bipedLeftArm, (float) rotLeft[0], (float) rotLeft[2], rotation); renderArmPre(model.leftArm, (float) rotLeft[0], (float) rotLeft[2], rotation);
renderArmPre(model.bipedLeftArmwear, (float) rotLeft[0], (float) rotLeft[2], rotation); renderArmPre(model.leftSleeve, (float) rotLeft[0], (float) rotLeft[2], rotation);
} }
else if (renderLeft) else if (renderLeft)
{ {
renderArmPre(model.bipedLeftArm, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation); renderArmPre(model.leftArm, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation);
renderArmPre(model.bipedLeftArmwear, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation); renderArmPre(model.leftSleeve, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation);
} }
if (renderRight && rotRight != null) if (renderRight && rotRight != null)
{ {
renderArmPre(model.bipedRightArm, (float) rotRight[0], (float) rotRight[2], rotation); renderArmPre(model.rightArm, (float) rotRight[0], (float) rotRight[2], rotation);
renderArmPre(model.bipedRightArmwear, (float) rotRight[0], (float) rotRight[2], rotation); renderArmPre(model.rightSleeve, (float) rotRight[0], (float) rotRight[2], rotation);
} }
else if (renderRight) else if (renderRight)
{ {
renderArmPre(model.bipedRightArm, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation); renderArmPre(model.rightArm, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation);
renderArmPre(model.bipedRightArmwear, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation); renderArmPre(model.rightSleeve, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation);
} }
} }
else else
{ {
renderArmPre(model.bipedRightArm, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation); renderArmPre(model.rightArm, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation);
renderArmPre(model.bipedRightArmwear, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation); renderArmPre(model.rightSleeve, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? -0.15f : 0), rotation);
renderArmPre(model.bipedLeftArm, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation); renderArmPre(model.leftArm, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation);
renderArmPre(model.bipedLeftArmwear, 0.8F + (player.isSneaking() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation); renderArmPre(model.leftSleeve, 0.8F + (player.isShiftKeyDown() ? 0.2f : 0f) - (stack.getItem() == RegistrationHandler.itemEntity ? -0.2f : 0), (stack.getItem() == RegistrationHandler.itemEntity ? 0.15f : 0), rotation);
} }
} }
@ -92,9 +92,9 @@ public class ObfuscateEvents
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)
private void renderArmPre(ModelRenderer arm, float x, float z, float rotation) private void renderArmPre(ModelRenderer arm, float x, float z, float rotation)
{ {
arm.rotateAngleX = (float) -x; arm.xRot = (float) -x;
arm.rotateAngleY = (float) -Math.toRadians(rotation); arm.yRot = (float) -Math.toRadians(rotation);
arm.rotateAngleZ = (float) z; arm.zRot = (float) z;
} }

View File

@ -53,7 +53,7 @@ public class CarrySlotPacket
if (world != null) if (world != null)
{ {
Entity e = world.getEntityByID(entityid); Entity e = world.getEntity(entityid);
if (e != null && e instanceof PlayerEntity) if (e != null && e instanceof PlayerEntity)
{ {

View File

@ -33,6 +33,6 @@ public class ClientProxy implements IProxy {
@Override @Override
public World getWorld() public World getWorld()
{ {
return Minecraft.getInstance().world; return Minecraft.getInstance().level;
} }
} }