diff --git a/Common/src/main/java/tschipp/carryon/CarryOnCommon.java b/Common/src/main/java/tschipp/carryon/CarryOnCommon.java index 307d7a3..d54cf06 100644 --- a/Common/src/main/java/tschipp/carryon/CarryOnCommon.java +++ b/Common/src/main/java/tschipp/carryon/CarryOnCommon.java @@ -26,7 +26,6 @@ import net.minecraft.core.HolderLookup; import net.minecraft.core.RegistryAccess; import net.minecraft.core.RegistrySetBuilder; import net.minecraft.core.registries.BuiltInRegistries; -import net.minecraft.core.registries.Registries; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.effect.MobEffects; @@ -42,6 +41,7 @@ import tschipp.carryon.common.command.CommandCarryOn; import tschipp.carryon.config.ConfigLoader; import tschipp.carryon.networking.clientbound.ClientboundStartRidingOtherPlayerPacket; import tschipp.carryon.networking.clientbound.ClientboundStartRidingPacket; +import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket; import tschipp.carryon.networking.clientbound.ClientboundSyncScriptsPacket; import tschipp.carryon.networking.serverbound.ServerboundCarryKeyPressedPacket; import tschipp.carryon.platform.Services; @@ -92,6 +92,14 @@ public class CarryOnCommon ClientboundStartRidingOtherPlayerPacket::handle, args ); + + Services.PLATFORM.registerClientboundPacket( + ClientboundSyncCarryDataPacket.TYPE, + ClientboundSyncCarryDataPacket.class, + ClientboundSyncCarryDataPacket.CODEC, + ClientboundSyncCarryDataPacket::handle, + args + ); } public static void registerConfig() @@ -111,6 +119,10 @@ public class CarryOnCommon CarryOnData carry = CarryOnDataManager.getCarryData(player); if(carry.isCarrying()) { + //Dirty Hack to sync carry data 1 tick after respawning + if(player.tickCount == 1) + CarryOnDataManager.setCarryData(player, carry); + if(carry.getActiveScript().isPresent()) { String cmd = carry.getActiveScript().get().scriptEffects().commandLoop(); diff --git a/Common/src/main/java/tschipp/carryon/client/modeloverride/ModelOverride.java b/Common/src/main/java/tschipp/carryon/client/modeloverride/ModelOverride.java index c2d38f1..c3798f4 100644 --- a/Common/src/main/java/tschipp/carryon/client/modeloverride/ModelOverride.java +++ b/Common/src/main/java/tschipp/carryon/client/modeloverride/ModelOverride.java @@ -23,7 +23,6 @@ package tschipp.carryon.client.modeloverride; import com.mojang.brigadier.StringReader; import com.mojang.brigadier.exceptions.CommandSyntaxException; import com.mojang.datafixers.util.Either; -import com.mojang.serialization.Codec; import com.mojang.serialization.DataResult; import net.minecraft.commands.arguments.blocks.BlockStateParser; import net.minecraft.commands.arguments.blocks.BlockStateParser.BlockResult; diff --git a/Common/src/main/java/tschipp/carryon/client/render/CarriedObjectRender.java b/Common/src/main/java/tschipp/carryon/client/render/CarriedObjectRender.java index 2947c2a..acbaca3 100644 --- a/Common/src/main/java/tschipp/carryon/client/render/CarriedObjectRender.java +++ b/Common/src/main/java/tschipp/carryon/client/render/CarriedObjectRender.java @@ -21,10 +21,8 @@ package tschipp.carryon.client.render; import com.mojang.blaze3d.systems.RenderSystem; -import com.mojang.blaze3d.vertex.BufferBuilder; import com.mojang.blaze3d.vertex.ByteBufferBuilder; import com.mojang.blaze3d.vertex.PoseStack; -import com.mojang.blaze3d.vertex.Tesselator; import com.mojang.math.Axis; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.MultiBufferSource; diff --git a/Common/src/main/java/tschipp/carryon/common/carry/CarryOnData.java b/Common/src/main/java/tschipp/carryon/common/carry/CarryOnData.java index 2977be3..2f542e1 100644 --- a/Common/src/main/java/tschipp/carryon/common/carry/CarryOnData.java +++ b/Common/src/main/java/tschipp/carryon/common/carry/CarryOnData.java @@ -22,7 +22,6 @@ package tschipp.carryon.common.carry; import com.mojang.serialization.Codec; import com.mojang.serialization.DataResult; -import com.mojang.serialization.MapCodec; import net.minecraft.core.BlockPos; import net.minecraft.core.HolderLookup; import net.minecraft.core.registries.BuiltInRegistries; @@ -33,24 +32,17 @@ import net.minecraft.nbt.Tag; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.util.ProblemReporter; import net.minecraft.world.entity.AreaEffectCloud; import net.minecraft.world.entity.Entity; -import net.minecraft.world.entity.EntitySpawnReason; import net.minecraft.world.entity.EntityType; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.entity.BlockEntity; import net.minecraft.world.level.block.state.BlockState; import net.minecraft.world.level.block.state.properties.BlockStateProperties; -import net.minecraft.world.level.storage.TagValueInput; -import net.minecraft.world.level.storage.TagValueOutput; -import net.minecraft.world.level.storage.ValueInput; import tschipp.carryon.Constants; import tschipp.carryon.common.scripting.CarryOnScript; import javax.annotation.Nullable; -import java.util.Objects; import java.util.Optional; public class CarryOnData { @@ -60,7 +52,6 @@ public class CarryOnData { private boolean keyPressed = false; private CarryOnScript activeScript; private int selectedSlot = 0; - private static final ProblemReporter problemReporter = new ProblemReporter.ScopedCollector(Constants.LOG); public static final Codec CODEC = CompoundTag.CODEC.flatXmap( diff --git a/Common/src/main/java/tschipp/carryon/common/carry/CarryOnDataManager.java b/Common/src/main/java/tschipp/carryon/common/carry/CarryOnDataManager.java index f1271da..741a22c 100644 --- a/Common/src/main/java/tschipp/carryon/common/carry/CarryOnDataManager.java +++ b/Common/src/main/java/tschipp/carryon/common/carry/CarryOnDataManager.java @@ -20,11 +20,6 @@ package tschipp.carryon.common.carry; -import net.minecraft.nbt.CompoundTag; -import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.network.syncher.EntityDataSerializers; -import net.minecraft.network.syncher.SynchedEntityData; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; import tschipp.carryon.platform.Services; diff --git a/Common/src/main/java/tschipp/carryon/common/carry/PickupHandler.java b/Common/src/main/java/tschipp/carryon/common/carry/PickupHandler.java index 8650336..30668f7 100644 --- a/Common/src/main/java/tschipp/carryon/common/carry/PickupHandler.java +++ b/Common/src/main/java/tschipp/carryon/common/carry/PickupHandler.java @@ -49,7 +49,6 @@ import tschipp.carryon.common.pickupcondition.PickupConditionHandler; import tschipp.carryon.common.scripting.CarryOnScript; import tschipp.carryon.common.scripting.ScriptManager; import tschipp.carryon.networking.clientbound.ClientboundStartRidingOtherPlayerPacket; -import tschipp.carryon.networking.clientbound.ClientboundStartRidingPacket; import tschipp.carryon.platform.Services; import javax.annotation.Nullable; diff --git a/Common/src/main/java/tschipp/carryon/common/carry/PlacementHandler.java b/Common/src/main/java/tschipp/carryon/common/carry/PlacementHandler.java index c38b4c8..470e3a9 100644 --- a/Common/src/main/java/tschipp/carryon/common/carry/PlacementHandler.java +++ b/Common/src/main/java/tschipp/carryon/common/carry/PlacementHandler.java @@ -26,6 +26,7 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.sounds.SoundEvents; import net.minecraft.sounds.SoundSource; import net.minecraft.world.InteractionHand; +import net.minecraft.world.effect.MobEffects; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.animal.horse.Horse; @@ -111,6 +112,8 @@ public class PlacementHandler player.playSound(state.getSoundType().getPlaceSound(), 1.0f, 0.5f); level.playSound(null, pos, state.getSoundType().getPlaceSound(), SoundSource.BLOCKS, 1.0f, 0.5f); player.swing(InteractionHand.MAIN_HAND, true); + if (!player.isCreative() || Constants.COMMON_CONFIG.settings.slownessInCreative) + player.removeEffect(MobEffects.MOVEMENT_SLOWDOWN); return true; } @@ -180,6 +183,8 @@ public class PlacementHandler CarryOnDataManager.setCarryData(player, carry); otherPlayer.teleportTo(placementPos.x, placementPos.y, placementPos.z); player.swing(InteractionHand.MAIN_HAND, true); + if (!player.isCreative() || Constants.COMMON_CONFIG.settings.slownessInCreative) + player.removeEffect(MobEffects.MOVEMENT_SLOWDOWN); return true; } @@ -204,6 +209,8 @@ public class PlacementHandler player.swing(InteractionHand.MAIN_HAND, true); carry.clear(); CarryOnDataManager.setCarryData(player, carry); + if (!player.isCreative() || Constants.COMMON_CONFIG.settings.slownessInCreative) + player.removeEffect(MobEffects.MOVEMENT_SLOWDOWN); return true; } diff --git a/Common/src/main/java/tschipp/carryon/common/scripting/Matchables.java b/Common/src/main/java/tschipp/carryon/common/scripting/Matchables.java index 6bcfb97..306e8ac 100644 --- a/Common/src/main/java/tschipp/carryon/common/scripting/Matchables.java +++ b/Common/src/main/java/tschipp/carryon/common/scripting/Matchables.java @@ -22,10 +22,8 @@ package tschipp.carryon.common.scripting; import com.mojang.serialization.Codec; import it.unimi.dsi.fastutil.objects.Object2IntMap; -import net.minecraft.advancements.Advancement; import net.minecraft.advancements.AdvancementHolder; import net.minecraft.core.BlockPos; -import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtUtils; import net.minecraft.resources.ResourceLocation; @@ -34,11 +32,13 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.effect.MobEffectInstance; import net.minecraft.world.phys.Vec3; import net.minecraft.world.scores.Objective; -import net.minecraft.world.scores.Score; import net.minecraft.world.scores.Scoreboard; import tschipp.carryon.platform.Services; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import java.util.Optional; public final class Matchables { diff --git a/Common/src/main/java/tschipp/carryon/common/scripting/ScriptReloadListener.java b/Common/src/main/java/tschipp/carryon/common/scripting/ScriptReloadListener.java index ce6f8c3..42695a9 100644 --- a/Common/src/main/java/tschipp/carryon/common/scripting/ScriptReloadListener.java +++ b/Common/src/main/java/tschipp/carryon/common/scripting/ScriptReloadListener.java @@ -34,7 +34,6 @@ import net.minecraft.server.packs.resources.ResourceManager; import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener; import net.minecraft.util.profiling.ProfilerFiller; import tschipp.carryon.Constants; -import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.networking.clientbound.ClientboundSyncScriptsPacket; import tschipp.carryon.platform.Services; diff --git a/Common/src/main/java/tschipp/carryon/mixin/EntityMixin.java b/Common/src/main/java/tschipp/carryon/mixin/EntityMixin.java index 8e4e662..d184d97 100644 --- a/Common/src/main/java/tschipp/carryon/mixin/EntityMixin.java +++ b/Common/src/main/java/tschipp/carryon/mixin/EntityMixin.java @@ -50,11 +50,12 @@ public abstract class EntityMixin @Shadow public abstract void onPassengerTurned(Entity $$0); + /* @ModifyExpressionValue(method = "startRiding(Lnet/minecraft/world/entity/Entity;Z)Z", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/EntityType;canSerialize()Z")) private boolean onStartRidingCheck(boolean original, Entity entity, boolean force) { if (force && entity instanceof Player) return true; return original; - } + }*/ @Inject(method = "positionRider(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/entity/Entity$MoveFunction;)V", at = @At("HEAD"), cancellable = true) private void onPositionPassenger(Entity entity, MoveFunction move, CallbackInfo ci) diff --git a/Common/src/main/java/tschipp/carryon/mixin/InventoryMixin.java b/Common/src/main/java/tschipp/carryon/mixin/InventoryMixin.java index 11ba33c..276c5b1 100644 --- a/Common/src/main/java/tschipp/carryon/mixin/InventoryMixin.java +++ b/Common/src/main/java/tschipp/carryon/mixin/InventoryMixin.java @@ -23,7 +23,6 @@ package tschipp.carryon.mixin; import com.llamalad7.mixinextras.injector.wrapoperation.Operation; import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation; import net.minecraft.core.NonNullList; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; @@ -33,9 +32,7 @@ import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; -import org.spongepowered.asm.mixin.injection.Redirect; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.common.carry.CarryOnDataManager; @Mixin(Inventory.class) diff --git a/Common/src/main/java/tschipp/carryon/mixin/MinecraftMixin.java b/Common/src/main/java/tschipp/carryon/mixin/MinecraftMixin.java index 36cf776..2521877 100644 --- a/Common/src/main/java/tschipp/carryon/mixin/MinecraftMixin.java +++ b/Common/src/main/java/tschipp/carryon/mixin/MinecraftMixin.java @@ -25,7 +25,6 @@ import net.minecraft.client.Minecraft; import net.minecraft.world.entity.player.Inventory; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; -import org.spongepowered.asm.mixin.injection.Redirect; import tschipp.carryon.common.carry.CarryOnDataManager; @Mixin(Minecraft.class) diff --git a/Common/src/main/java/tschipp/carryon/mixin/PlayerMixin.java b/Common/src/main/java/tschipp/carryon/mixin/PlayerMixin.java index f423e67..97d0a8f 100644 --- a/Common/src/main/java/tschipp/carryon/mixin/PlayerMixin.java +++ b/Common/src/main/java/tschipp/carryon/mixin/PlayerMixin.java @@ -23,17 +23,11 @@ package tschipp.carryon.mixin; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; -import net.minecraft.network.syncher.EntityDataAccessor; -import net.minecraft.network.syncher.EntityDataSerializers; -import net.minecraft.network.syncher.SynchedEntityData; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; -import net.minecraft.world.entity.player.Inventory; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.Level; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; -import org.spongepowered.asm.mixin.Unique; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; @@ -52,7 +46,7 @@ public abstract class PlayerMixin extends LivingEntity { @Inject(method = "readAdditionalSaveData(Lnet/minecraft/nbt/CompoundTag;)V", at = @At("RETURN")) private void onReadAdditionalSaveData(CompoundTag tag, CallbackInfo info) { - Optional res = CarryOnData.CODEC.parse(NbtOps.INSTANCE, tag).result(); + Optional res = CarryOnData.CODEC.parse(NbtOps.INSTANCE, tag.get(CarryOnData.SERIALIZATION_KEY)).result(); res.ifPresent(data -> CarryOnDataManager.setCarryData((Player)((Object)this), data)); } diff --git a/Common/src/main/java/tschipp/carryon/networking/PacketBase.java b/Common/src/main/java/tschipp/carryon/networking/PacketBase.java index f43a452..82d1cb3 100644 --- a/Common/src/main/java/tschipp/carryon/networking/PacketBase.java +++ b/Common/src/main/java/tschipp/carryon/networking/PacketBase.java @@ -20,12 +20,7 @@ package tschipp.carryon.networking; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.network.codec.StreamCodec; -import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; public interface PacketBase extends CustomPacketPayload { diff --git a/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundStartRidingPacket.java b/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundStartRidingPacket.java index 7cac4e4..2595b7a 100644 --- a/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundStartRidingPacket.java +++ b/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundStartRidingPacket.java @@ -20,12 +20,10 @@ package tschipp.carryon.networking.clientbound; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import tschipp.carryon.Constants; diff --git a/Forge/src/main/java/tschipp/carryon/networking/ClientboundSyncCarryDataPacket.java b/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundSyncCarryDataPacket.java similarity index 89% rename from Forge/src/main/java/tschipp/carryon/networking/ClientboundSyncCarryDataPacket.java rename to Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundSyncCarryDataPacket.java index 25e37c4..cfb3864 100644 --- a/Forge/src/main/java/tschipp/carryon/networking/ClientboundSyncCarryDataPacket.java +++ b/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundSyncCarryDataPacket.java @@ -1,4 +1,4 @@ -package tschipp.carryon.networking; +package tschipp.carryon.networking.clientbound; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; @@ -9,7 +9,7 @@ import net.minecraft.world.entity.player.Player; import tschipp.carryon.Constants; import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.common.carry.CarryOnDataManager; -import tschipp.carryon.networking.clientbound.ClientboundStartRidingPacket; +import tschipp.carryon.networking.PacketBase; public record ClientboundSyncCarryDataPacket(int iden, CarryOnData data) implements PacketBase { @@ -25,6 +25,7 @@ public record ClientboundSyncCarryDataPacket(int iden, CarryOnData data) impleme public void handle(Player player) { Entity e = player.level().getEntity(this.iden); if(e instanceof Player p) { + p.getInventory().selected = data.getSelected(); CarryOnDataManager.setCarryData(p, data); } } diff --git a/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundSyncScriptsPacket.java b/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundSyncScriptsPacket.java index 727db6f..1a0988c 100644 --- a/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundSyncScriptsPacket.java +++ b/Common/src/main/java/tschipp/carryon/networking/clientbound/ClientboundSyncScriptsPacket.java @@ -22,16 +22,12 @@ package tschipp.carryon.networking.clientbound; import com.mojang.serialization.Codec; import com.mojang.serialization.DataResult; -import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.NbtOps; import net.minecraft.nbt.Tag; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; import tschipp.carryon.Constants; import tschipp.carryon.common.scripting.CarryOnScript; diff --git a/Common/src/main/java/tschipp/carryon/networking/serverbound/ServerboundCarryKeyPressedPacket.java b/Common/src/main/java/tschipp/carryon/networking/serverbound/ServerboundCarryKeyPressedPacket.java index 460d418..b98ed28 100644 --- a/Common/src/main/java/tschipp/carryon/networking/serverbound/ServerboundCarryKeyPressedPacket.java +++ b/Common/src/main/java/tschipp/carryon/networking/serverbound/ServerboundCarryKeyPressedPacket.java @@ -20,20 +20,15 @@ package tschipp.carryon.networking.serverbound; -import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.ByteBufCodecs; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; -import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; import tschipp.carryon.Constants; import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.common.carry.CarryOnDataManager; import tschipp.carryon.networking.PacketBase; -import tschipp.carryon.networking.clientbound.ClientboundStartRidingPacket; -import tschipp.carryon.networking.clientbound.ClientboundSyncScriptsPacket; public record ServerboundCarryKeyPressedPacket(boolean pressed) implements PacketBase { diff --git a/Common/src/main/java/tschipp/carryon/platform/services/IPlatformHelper.java b/Common/src/main/java/tschipp/carryon/platform/services/IPlatformHelper.java index 07c1d68..73a1351 100644 --- a/Common/src/main/java/tschipp/carryon/platform/services/IPlatformHelper.java +++ b/Common/src/main/java/tschipp/carryon/platform/services/IPlatformHelper.java @@ -20,9 +20,7 @@ package tschipp.carryon.platform.services; -import net.minecraft.core.HolderLookup; import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; @@ -30,12 +28,10 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; import tschipp.carryon.common.carry.CarryOnData; -import tschipp.carryon.common.carry.CarryOnDataManager; import tschipp.carryon.config.BuiltConfig; import tschipp.carryon.networking.PacketBase; import java.util.function.BiConsumer; -import java.util.function.Function; public interface IPlatformHelper { diff --git a/Fabric/src/main/java/tschipp/carryon/CarryOnFabricClientMod.java b/Fabric/src/main/java/tschipp/carryon/CarryOnFabricClientMod.java index fbd4b1d..9798475 100644 --- a/Fabric/src/main/java/tschipp/carryon/CarryOnFabricClientMod.java +++ b/Fabric/src/main/java/tschipp/carryon/CarryOnFabricClientMod.java @@ -23,20 +23,13 @@ package tschipp.carryon; import net.fabricmc.api.ClientModInitializer; import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper; import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking; -import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; -import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.minecraft.core.RegistryAccess; -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; -import net.minecraft.resources.ResourceLocation; import net.minecraft.world.entity.player.Player; import tschipp.carryon.client.keybinds.CarryOnKeybinds; import tschipp.carryon.events.ClientEvents; import tschipp.carryon.networking.PacketBase; import java.util.function.BiConsumer; -import java.util.function.Function; public class CarryOnFabricClientMod implements ClientModInitializer { diff --git a/Fabric/src/main/java/tschipp/carryon/CarryOnFabricMod.java b/Fabric/src/main/java/tschipp/carryon/CarryOnFabricMod.java index e5c7c43..b8caa98 100644 --- a/Fabric/src/main/java/tschipp/carryon/CarryOnFabricMod.java +++ b/Fabric/src/main/java/tschipp/carryon/CarryOnFabricMod.java @@ -22,7 +22,6 @@ package tschipp.carryon; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.attachment.v1.AttachmentRegistry; -import net.fabricmc.fabric.api.attachment.v1.AttachmentSyncPredicate; import net.fabricmc.fabric.api.attachment.v1.AttachmentType; import net.minecraft.nbt.CompoundTag; import net.minecraft.resources.ResourceLocation; @@ -34,7 +33,7 @@ import java.io.IOException; public class CarryOnFabricMod implements ModInitializer { - public static final AttachmentType CARRY_ON_DATA_ATTACHMENT_TYPE = AttachmentRegistry.create( + /* public static final AttachmentType CARRY_ON_DATA_ATTACHMENT_TYPE = AttachmentRegistry.create( ResourceLocation.fromNamespaceAndPath(Constants.MOD_ID, "carry_on_data"), builder -> builder .initializer(() -> new CarryOnData(new CompoundTag())) @@ -42,7 +41,12 @@ public class CarryOnFabricMod implements ModInitializer { .syncWith(CarryOnData.STREAM_CODEC, (t, p) -> p.connection != null) .copyOnDeath() - ); + ); */ + + public static final AttachmentType CARRY_ON_DATA_ATTACHMENT_TYPE = AttachmentRegistry.builder() + .initializer(() -> new CarryOnData(new CompoundTag())) + .persistent(CarryOnData.CODEC) + .buildAndRegister(ResourceLocation.fromNamespaceAndPath(Constants.MOD_ID, "carry_on_data")); @Override public void onInitialize() { diff --git a/Fabric/src/main/java/tschipp/carryon/compat/ArchitecturyCompat.java b/Fabric/src/main/java/tschipp/carryon/compat/ArchitecturyCompat.java index 0d8a3e2..9a2245a 100644 --- a/Fabric/src/main/java/tschipp/carryon/compat/ArchitecturyCompat.java +++ b/Fabric/src/main/java/tschipp/carryon/compat/ArchitecturyCompat.java @@ -20,7 +20,6 @@ package tschipp.carryon.compat; -import net.fabricmc.fabric.api.event.Event; import net.minecraft.core.BlockPos; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; diff --git a/Fabric/src/main/java/tschipp/carryon/events/CommonEvents.java b/Fabric/src/main/java/tschipp/carryon/events/CommonEvents.java index fc7f9ac..59139b5 100644 --- a/Fabric/src/main/java/tschipp/carryon/events/CommonEvents.java +++ b/Fabric/src/main/java/tschipp/carryon/events/CommonEvents.java @@ -21,11 +21,13 @@ package tschipp.carryon.events; import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback; +import net.fabricmc.fabric.api.entity.event.v1.ServerLivingEntityEvents; import net.fabricmc.fabric.api.entity.event.v1.ServerPlayerEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.CommonLifecycleEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; import net.fabricmc.fabric.api.event.player.*; +import net.fabricmc.fabric.api.networking.v1.EntityTrackingEvents; import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.fabricmc.fabric.api.resource.ResourceManagerHelper; import net.minecraft.core.BlockPos; @@ -34,6 +36,7 @@ import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.packs.PackType; import net.minecraft.world.InteractionResult; import tschipp.carryon.CarryOnCommon; +import tschipp.carryon.Constants; import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.common.carry.CarryOnData.CarryType; import tschipp.carryon.common.carry.CarryOnDataManager; @@ -42,6 +45,8 @@ import tschipp.carryon.common.carry.PlacementHandler; import tschipp.carryon.common.scripting.ScriptReloadListener; import tschipp.carryon.compat.ArchitecturyCompat; import tschipp.carryon.config.ConfigLoader; +import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket; +import tschipp.carryon.platform.Services; import tschipp.carryon.scripting.IdentifiableScriptReloadListener; public class CommonEvents { @@ -160,7 +165,31 @@ public class CommonEvents { CarryOnCommon.onRiderDisconnected(handler.getPlayer()); }); - //TODO: drop carried when attacked + EntityTrackingEvents.START_TRACKING.register(((trackedEntity, player) -> { + if(trackedEntity instanceof ServerPlayer sp) { + Services.PLATFORM.sendPacketToPlayer(Constants.PACKET_ID_SYNC_CARRY_ON_DATA, new ClientboundSyncCarryDataPacket(sp.getId(), CarryOnDataManager.getCarryData(sp)), player); + } + })); + + ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> { + if(handler.getPlayer() instanceof ServerPlayer sp) { + Services.PLATFORM.sendPacketToPlayer(Constants.PACKET_ID_SYNC_CARRY_ON_DATA, new ClientboundSyncCarryDataPacket(sp.getId(), CarryOnDataManager.getCarryData(sp)), sp); + } + }); + + ServerLivingEntityEvents.ALLOW_DEATH.register((entity, damageSource, damageAmount) -> { + if(entity instanceof ServerPlayer sp) { + CarryOnCommon.onRiderDisconnected(sp); + } + return true; + }); + + ServerLivingEntityEvents.ALLOW_DAMAGE.register((entity, source, amount) -> { + if(entity instanceof ServerPlayer sp) { + CarryOnCommon.onPlayerAttacked(sp); + } + return true; + }); } } diff --git a/Fabric/src/main/java/tschipp/carryon/mixin/ItemInHandRendererMixin.java b/Fabric/src/main/java/tschipp/carryon/mixin/ItemInHandRendererMixin.java index fc12a3e..27e7e08 100644 --- a/Fabric/src/main/java/tschipp/carryon/mixin/ItemInHandRendererMixin.java +++ b/Fabric/src/main/java/tschipp/carryon/mixin/ItemInHandRendererMixin.java @@ -21,23 +21,17 @@ package tschipp.carryon.mixin; import com.mojang.blaze3d.vertex.PoseStack; -import net.minecraft.client.Minecraft; import net.minecraft.client.player.AbstractClientPlayer; -import net.minecraft.client.renderer.GameRenderer; import net.minecraft.client.renderer.ItemInHandRenderer; import net.minecraft.client.renderer.MultiBufferSource; -import net.minecraft.client.renderer.RenderBuffers; import net.minecraft.world.InteractionHand; -import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import tschipp.carryon.client.render.CarriedObjectRender; import tschipp.carryon.client.render.CarryRenderHelper; -import tschipp.carryon.platform.Services; @Mixin(ItemInHandRenderer.class) public class ItemInHandRendererMixin diff --git a/Fabric/src/main/java/tschipp/carryon/platform/FabricPlatformHelper.java b/Fabric/src/main/java/tschipp/carryon/platform/FabricPlatformHelper.java index 64d4bdf..c980f80 100644 --- a/Fabric/src/main/java/tschipp/carryon/platform/FabricPlatformHelper.java +++ b/Fabric/src/main/java/tschipp/carryon/platform/FabricPlatformHelper.java @@ -20,31 +20,28 @@ package tschipp.carryon.platform; -import net.fabricmc.fabric.api.networking.v1.PacketByteBufs; import net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry; import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking; -import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking.PlayPayloadHandler; import net.fabricmc.loader.api.FabricLoader; -import net.minecraft.nbt.CompoundTag; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; -import net.minecraft.network.codec.StreamDecoder; -import net.minecraft.network.codec.StreamMemberEncoder; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.entity.player.Player; import tschipp.carryon.CarryOnFabricClientMod; import tschipp.carryon.CarryOnFabricMod; +import tschipp.carryon.Constants; import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.config.BuiltConfig; import tschipp.carryon.config.fabric.ConfigLoaderImpl; import tschipp.carryon.networking.PacketBase; +import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket; import tschipp.carryon.platform.services.IPlatformHelper; import java.util.function.BiConsumer; -import java.util.function.Function; public class FabricPlatformHelper implements IPlatformHelper { @@ -114,5 +111,8 @@ public class FabricPlatformHelper implements IPlatformHelper { @Override public void setCarryData(Player player, CarryOnData data) { player.setAttached(CarryOnFabricMod.CARRY_ON_DATA_ATTACHMENT_TYPE, data); + if(!player.level().isClientSide) { + sendPacketToAllPlayers(Constants.PACKET_ID_SYNC_CARRY_ON_DATA, new ClientboundSyncCarryDataPacket(player.getId(), data), (ServerLevel) player.level()); + } } } diff --git a/Forge/src/main/java/tschipp/carryon/CarryOnForge.java b/Forge/src/main/java/tschipp/carryon/CarryOnForge.java index 8ac0df0..3298026 100644 --- a/Forge/src/main/java/tschipp/carryon/CarryOnForge.java +++ b/Forge/src/main/java/tschipp/carryon/CarryOnForge.java @@ -28,9 +28,6 @@ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; import net.minecraftforge.network.ChannelBuilder; import net.minecraftforge.network.SimpleChannel; import tschipp.carryon.config.forge.ConfigLoaderImpl; -import tschipp.carryon.networking.ClientboundSyncCarryDataPacket; -import tschipp.carryon.networking.clientbound.ClientboundStartRidingPacket; -import tschipp.carryon.platform.Services; @Mod(Constants.MOD_ID) @EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD) @@ -57,13 +54,6 @@ public class CarryOnForge { CarryOnCommon.registerServerPackets(); CarryOnCommon.registerClientPackets(); - - Services.PLATFORM.registerClientboundPacket( - ClientboundSyncCarryDataPacket.TYPE, - ClientboundSyncCarryDataPacket.class, - ClientboundSyncCarryDataPacket.CODEC, - ClientboundSyncCarryDataPacket::handle - ); } } \ No newline at end of file diff --git a/Forge/src/main/java/tschipp/carryon/carry/ICarryOnDataCapability.java b/Forge/src/main/java/tschipp/carryon/carry/ICarryOnDataCapability.java index 49ab1f8..17c9e11 100644 --- a/Forge/src/main/java/tschipp/carryon/carry/ICarryOnDataCapability.java +++ b/Forge/src/main/java/tschipp/carryon/carry/ICarryOnDataCapability.java @@ -2,7 +2,6 @@ package tschipp.carryon.carry; import net.minecraftforge.common.capabilities.AutoRegisterCapability; import tschipp.carryon.common.carry.CarryOnData; -import tschipp.carryon.common.carry.CarryOnDataManager; @AutoRegisterCapability public interface ICarryOnDataCapability { diff --git a/Forge/src/main/java/tschipp/carryon/config/forge/ConfigLoaderImpl.java b/Forge/src/main/java/tschipp/carryon/config/forge/ConfigLoaderImpl.java index acc76c4..26ecfdd 100644 --- a/Forge/src/main/java/tschipp/carryon/config/forge/ConfigLoaderImpl.java +++ b/Forge/src/main/java/tschipp/carryon/config/forge/ConfigLoaderImpl.java @@ -22,22 +22,17 @@ package tschipp.carryon.config.forge; import com.electronwill.nightconfig.core.AbstractConfig; import com.electronwill.nightconfig.core.UnmodifiableConfig; -import net.minecraft.client.Minecraft; -import net.minecraft.server.MinecraftServer; -import net.minecraftforge.api.distmarker.Dist; import net.minecraftforge.common.ForgeConfigSpec; -import net.minecraftforge.common.util.LogicalSidedProvider; import net.minecraftforge.eventbus.api.IEventBus; -import net.minecraftforge.fml.DistExecutor; -import net.minecraftforge.fml.LogicalSide; import net.minecraftforge.fml.ModLoadingContext; import net.minecraftforge.fml.config.IConfigSpec; import net.minecraftforge.fml.config.ModConfig; import net.minecraftforge.fml.event.config.ModConfigEvent; import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext; -import net.minecraftforge.fml.loading.FMLServiceProvider; -import net.minecraftforge.server.ServerLifecycleHooks; -import tschipp.carryon.config.*; +import tschipp.carryon.config.AnnotationData; +import tschipp.carryon.config.BuiltCategory; +import tschipp.carryon.config.BuiltConfig; +import tschipp.carryon.config.PropertyData; import java.util.*; diff --git a/Forge/src/main/java/tschipp/carryon/events/ClientEvents.java b/Forge/src/main/java/tschipp/carryon/events/ClientEvents.java index cbe021c..c44ca3d 100644 --- a/Forge/src/main/java/tschipp/carryon/events/ClientEvents.java +++ b/Forge/src/main/java/tschipp/carryon/events/ClientEvents.java @@ -26,13 +26,11 @@ import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.world.entity.player.Player; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.RenderHandEvent; import net.minecraftforge.client.event.RenderLevelStageEvent; import net.minecraftforge.client.event.RenderLevelStageEvent.Stage; import net.minecraftforge.client.event.ScreenEvent; import net.minecraftforge.event.TickEvent.ClientTickEvent; -import net.minecraftforge.event.TickEvent.Phase; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; import tschipp.carryon.CarryOnCommonClient; diff --git a/Forge/src/main/java/tschipp/carryon/events/CommonEvents.java b/Forge/src/main/java/tschipp/carryon/events/CommonEvents.java index 88a4387..d285c29 100644 --- a/Forge/src/main/java/tschipp/carryon/events/CommonEvents.java +++ b/Forge/src/main/java/tschipp/carryon/events/CommonEvents.java @@ -36,6 +36,7 @@ import net.minecraftforge.event.*; import net.minecraftforge.event.TickEvent.ServerTickEvent; import net.minecraftforge.event.entity.EntityJoinLevelEvent; import net.minecraftforge.event.entity.living.LivingAttackEvent; +import net.minecraftforge.event.entity.living.LivingDeathEvent; import net.minecraftforge.event.entity.living.MobSpawnEvent.FinalizeSpawn; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.entity.player.PlayerEvent; @@ -60,7 +61,7 @@ import tschipp.carryon.common.carry.PickupHandler; import tschipp.carryon.common.carry.PlacementHandler; import tschipp.carryon.common.scripting.ScriptReloadListener; import tschipp.carryon.config.ConfigLoader; -import tschipp.carryon.networking.ClientboundSyncCarryDataPacket; +import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket; import tschipp.carryon.platform.Services; @Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, modid = Constants.MOD_ID) @@ -255,4 +256,11 @@ public class CommonEvents } } + @SubscribeEvent + public static void onPlayerDie(LivingDeathEvent event) { + if(event.getEntity() instanceof ServerPlayer sp) { + CarryOnCommon.onRiderDisconnected(sp); + } + } + } diff --git a/Forge/src/main/java/tschipp/carryon/events/ModBusEvents.java b/Forge/src/main/java/tschipp/carryon/events/ModBusEvents.java index da2ddf7..2e6bcfd 100644 --- a/Forge/src/main/java/tschipp/carryon/events/ModBusEvents.java +++ b/Forge/src/main/java/tschipp/carryon/events/ModBusEvents.java @@ -25,10 +25,8 @@ import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.InterModComms; import net.minecraftforge.fml.InterModComms.IMCMessage; import net.minecraftforge.fml.common.Mod; -import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent; import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent; import tschipp.carryon.Constants; -import tschipp.carryon.client.modeloverride.ModelOverrideHandler; import tschipp.carryon.common.config.ListHandler; import java.util.stream.Stream; diff --git a/Forge/src/main/java/tschipp/carryon/events/ModClientEvents.java b/Forge/src/main/java/tschipp/carryon/events/ModClientEvents.java index ddfd30d..9e03a9f 100644 --- a/Forge/src/main/java/tschipp/carryon/events/ModClientEvents.java +++ b/Forge/src/main/java/tschipp/carryon/events/ModClientEvents.java @@ -21,7 +21,6 @@ package tschipp.carryon.events; import net.minecraftforge.api.distmarker.Dist; -import net.minecraftforge.api.distmarker.OnlyIn; import net.minecraftforge.client.event.RegisterKeyMappingsEvent; import net.minecraftforge.eventbus.api.SubscribeEvent; import net.minecraftforge.fml.common.Mod; diff --git a/Forge/src/main/java/tschipp/carryon/platform/ForgePlatformHelper.java b/Forge/src/main/java/tschipp/carryon/platform/ForgePlatformHelper.java index 54d6fbd..92c8f38 100644 --- a/Forge/src/main/java/tschipp/carryon/platform/ForgePlatformHelper.java +++ b/Forge/src/main/java/tschipp/carryon/platform/ForgePlatformHelper.java @@ -21,7 +21,6 @@ package tschipp.carryon.platform; import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.network.RegistryFriendlyByteBuf; import net.minecraft.network.codec.StreamCodec; import net.minecraft.network.protocol.common.custom.CustomPacketPayload; import net.minecraft.resources.ResourceLocation; @@ -31,23 +30,20 @@ import net.minecraft.world.entity.player.Player; import net.minecraftforge.event.network.CustomPayloadEvent; import net.minecraftforge.fml.ModList; import net.minecraftforge.fml.loading.FMLLoader; -import net.minecraftforge.network.NetworkDirection; import net.minecraftforge.network.PacketDistributor; import tschipp.carryon.CarryOnCommonClient; import tschipp.carryon.CarryOnForge; import tschipp.carryon.Constants; import tschipp.carryon.carry.CarryOnDataCapability; import tschipp.carryon.carry.CarryOnDataCapabilityProvider; -import tschipp.carryon.carry.ICarryOnDataCapability; import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.config.BuiltConfig; import tschipp.carryon.config.forge.ConfigLoaderImpl; -import tschipp.carryon.networking.ClientboundSyncCarryDataPacket; import tschipp.carryon.networking.PacketBase; +import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket; import tschipp.carryon.platform.services.IPlatformHelper; import java.util.function.BiConsumer; -import java.util.function.Function; public class ForgePlatformHelper implements IPlatformHelper { @@ -130,7 +126,7 @@ public class ForgePlatformHelper implements IPlatformHelper { var cap = player.getCapability(CarryOnDataCapabilityProvider.CARRY_ON_DATA_CAPABILITY).orElse(new CarryOnDataCapability()); cap.setCarryData(data); if(!player.level().isClientSide) { - sendPacketToAllPlayers(Constants.PACKET_ID_SYNC_SCRIPTS, new ClientboundSyncCarryDataPacket(player.getId(), data), (ServerLevel) player.level()); + sendPacketToAllPlayers(Constants.PACKET_ID_SYNC_CARRY_ON_DATA, new ClientboundSyncCarryDataPacket(player.getId(), data), (ServerLevel) player.level()); } } } diff --git a/NeoForge/src/main/java/tschipp/carryon/CarryOnNeoForge.java b/NeoForge/src/main/java/tschipp/carryon/CarryOnNeoForge.java index 0984056..55c6f78 100644 --- a/NeoForge/src/main/java/tschipp/carryon/CarryOnNeoForge.java +++ b/NeoForge/src/main/java/tschipp/carryon/CarryOnNeoForge.java @@ -21,19 +21,14 @@ package tschipp.carryon; import net.minecraft.nbt.CompoundTag; -import net.neoforged.bus.api.IEventBus; -import net.neoforged.bus.api.SubscribeEvent; import net.neoforged.fml.ModContainer; import net.neoforged.fml.common.Mod; import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent; import net.neoforged.neoforge.attachment.AttachmentType; -import net.neoforged.neoforge.client.gui.ConfigurationScreen; -import net.neoforged.neoforge.common.NeoForge; import net.neoforged.neoforge.network.event.RegisterPayloadHandlersEvent; import net.neoforged.neoforge.network.registration.PayloadRegistrar; import net.neoforged.neoforge.registries.DeferredRegister; import net.neoforged.neoforge.registries.NeoForgeRegistries; -import tschipp.carryon.carry.CarryOnDataSyncHandler; import tschipp.carryon.common.carry.CarryOnData; import tschipp.carryon.config.neoforge.ConfigLoaderImpl; @@ -47,8 +42,9 @@ public class CarryOnNeoForge { public static final Supplier> CARRY_ON_DATA_ATTACHMENT = ATTACHMENT_TYPES.register( "carry_on_data", () -> AttachmentType.builder(() -> new CarryOnData(new CompoundTag())) - .sync(new CarryOnDataSyncHandler()) - .serialize(CarryOnData.CODEC.fieldOf(CarryOnData.SERIALIZATION_KEY)) + //.sync(new CarryOnDataSyncHandler()) + //.serialize(CarryOnData.CODEC.fieldOf(CarryOnData.SERIALIZATION_KEY)) + .serialize(CarryOnData.CODEC) .build() ); diff --git a/NeoForge/src/main/java/tschipp/carryon/CarryOnNeoForgeClient.java b/NeoForge/src/main/java/tschipp/carryon/CarryOnNeoForgeClient.java new file mode 100644 index 0000000..baf1133 --- /dev/null +++ b/NeoForge/src/main/java/tschipp/carryon/CarryOnNeoForgeClient.java @@ -0,0 +1,20 @@ +package tschipp.carryon; + +import net.neoforged.api.distmarker.Dist; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.network.PacketDistributor; +import tschipp.carryon.networking.PacketBase; + +@Mod(value = Constants.MOD_ID, dist = Dist.CLIENT) +public class CarryOnNeoForgeClient { + + public CarryOnNeoForgeClient(ModContainer container) { + + } + + public static void sendPacketToServer(PacketBase packet) { + PacketDistributor.sendToServer(packet); + } + +} \ No newline at end of file diff --git a/NeoForge/src/main/java/tschipp/carryon/carry/CarryOnDataSyncHandler.java b/NeoForge/src/main/java/tschipp/carryon/carry/CarryOnDataSyncHandler.java index f9d8901..8996ba5 100644 --- a/NeoForge/src/main/java/tschipp/carryon/carry/CarryOnDataSyncHandler.java +++ b/NeoForge/src/main/java/tschipp/carryon/carry/CarryOnDataSyncHandler.java @@ -1,11 +1,6 @@ package tschipp.carryon.carry; -import net.minecraft.network.RegistryFriendlyByteBuf; -import net.minecraft.server.level.ServerPlayer; -import net.neoforged.neoforge.attachment.IAttachmentHolder; -import org.jetbrains.annotations.Nullable; -import tschipp.carryon.common.carry.CarryOnData; - +/* public class CarryOnDataSyncHandler implements AttachmentSyncHandler { @Override public void write(RegistryFriendlyByteBuf registryFriendlyByteBuf, CarryOnData carryOnData, boolean b) { @@ -24,3 +19,4 @@ public class CarryOnDataSyncHandler implements AttachmentSyncHandler