parent
685352762a
commit
5342c4daa5
|
|
@ -26,7 +26,6 @@ import net.minecraft.core.HolderLookup;
|
||||||
import net.minecraft.core.RegistryAccess;
|
import net.minecraft.core.RegistryAccess;
|
||||||
import net.minecraft.core.RegistrySetBuilder;
|
import net.minecraft.core.RegistrySetBuilder;
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
import net.minecraft.core.registries.Registries;
|
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.effect.MobEffectInstance;
|
import net.minecraft.world.effect.MobEffectInstance;
|
||||||
import net.minecraft.world.effect.MobEffects;
|
import net.minecraft.world.effect.MobEffects;
|
||||||
|
|
@ -42,6 +41,7 @@ import tschipp.carryon.common.command.CommandCarryOn;
|
||||||
import tschipp.carryon.config.ConfigLoader;
|
import tschipp.carryon.config.ConfigLoader;
|
||||||
import tschipp.carryon.networking.clientbound.ClientboundStartRidingOtherPlayerPacket;
|
import tschipp.carryon.networking.clientbound.ClientboundStartRidingOtherPlayerPacket;
|
||||||
import tschipp.carryon.networking.clientbound.ClientboundStartRidingPacket;
|
import tschipp.carryon.networking.clientbound.ClientboundStartRidingPacket;
|
||||||
|
import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket;
|
||||||
import tschipp.carryon.networking.clientbound.ClientboundSyncScriptsPacket;
|
import tschipp.carryon.networking.clientbound.ClientboundSyncScriptsPacket;
|
||||||
import tschipp.carryon.networking.serverbound.ServerboundCarryKeyPressedPacket;
|
import tschipp.carryon.networking.serverbound.ServerboundCarryKeyPressedPacket;
|
||||||
import tschipp.carryon.platform.Services;
|
import tschipp.carryon.platform.Services;
|
||||||
|
|
@ -92,6 +92,14 @@ public class CarryOnCommon
|
||||||
ClientboundStartRidingOtherPlayerPacket::handle,
|
ClientboundStartRidingOtherPlayerPacket::handle,
|
||||||
args
|
args
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Services.PLATFORM.registerClientboundPacket(
|
||||||
|
ClientboundSyncCarryDataPacket.TYPE,
|
||||||
|
ClientboundSyncCarryDataPacket.class,
|
||||||
|
ClientboundSyncCarryDataPacket.CODEC,
|
||||||
|
ClientboundSyncCarryDataPacket::handle,
|
||||||
|
args
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void registerConfig()
|
public static void registerConfig()
|
||||||
|
|
@ -111,6 +119,10 @@ public class CarryOnCommon
|
||||||
CarryOnData carry = CarryOnDataManager.getCarryData(player);
|
CarryOnData carry = CarryOnDataManager.getCarryData(player);
|
||||||
if(carry.isCarrying())
|
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())
|
if(carry.getActiveScript().isPresent())
|
||||||
{
|
{
|
||||||
String cmd = carry.getActiveScript().get().scriptEffects().commandLoop();
|
String cmd = carry.getActiveScript().get().scriptEffects().commandLoop();
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ package tschipp.carryon.client.modeloverride;
|
||||||
import com.mojang.brigadier.StringReader;
|
import com.mojang.brigadier.StringReader;
|
||||||
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
import com.mojang.brigadier.exceptions.CommandSyntaxException;
|
||||||
import com.mojang.datafixers.util.Either;
|
import com.mojang.datafixers.util.Either;
|
||||||
import com.mojang.serialization.Codec;
|
|
||||||
import com.mojang.serialization.DataResult;
|
import com.mojang.serialization.DataResult;
|
||||||
import net.minecraft.commands.arguments.blocks.BlockStateParser;
|
import net.minecraft.commands.arguments.blocks.BlockStateParser;
|
||||||
import net.minecraft.commands.arguments.blocks.BlockStateParser.BlockResult;
|
import net.minecraft.commands.arguments.blocks.BlockStateParser.BlockResult;
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,8 @@
|
||||||
package tschipp.carryon.client.render;
|
package tschipp.carryon.client.render;
|
||||||
|
|
||||||
import com.mojang.blaze3d.systems.RenderSystem;
|
import com.mojang.blaze3d.systems.RenderSystem;
|
||||||
import com.mojang.blaze3d.vertex.BufferBuilder;
|
|
||||||
import com.mojang.blaze3d.vertex.ByteBufferBuilder;
|
import com.mojang.blaze3d.vertex.ByteBufferBuilder;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.Tesselator;
|
|
||||||
import com.mojang.math.Axis;
|
import com.mojang.math.Axis;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ package tschipp.carryon.common.carry;
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.DataResult;
|
import com.mojang.serialization.DataResult;
|
||||||
import com.mojang.serialization.MapCodec;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
|
|
@ -33,24 +32,17 @@ import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.RegistryFriendlyByteBuf;
|
import net.minecraft.network.RegistryFriendlyByteBuf;
|
||||||
import net.minecraft.network.codec.ByteBufCodecs;
|
import net.minecraft.network.codec.ByteBufCodecs;
|
||||||
import net.minecraft.network.codec.StreamCodec;
|
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.AreaEffectCloud;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntitySpawnReason;
|
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.level.block.state.properties.BlockStateProperties;
|
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.Constants;
|
||||||
import tschipp.carryon.common.scripting.CarryOnScript;
|
import tschipp.carryon.common.scripting.CarryOnScript;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
public class CarryOnData {
|
public class CarryOnData {
|
||||||
|
|
@ -60,7 +52,6 @@ public class CarryOnData {
|
||||||
private boolean keyPressed = false;
|
private boolean keyPressed = false;
|
||||||
private CarryOnScript activeScript;
|
private CarryOnScript activeScript;
|
||||||
private int selectedSlot = 0;
|
private int selectedSlot = 0;
|
||||||
private static final ProblemReporter problemReporter = new ProblemReporter.ScopedCollector(Constants.LOG);
|
|
||||||
|
|
||||||
|
|
||||||
public static final Codec<CarryOnData> CODEC = CompoundTag.CODEC.flatXmap(
|
public static final Codec<CarryOnData> CODEC = CompoundTag.CODEC.flatXmap(
|
||||||
|
|
|
||||||
|
|
@ -20,11 +20,6 @@
|
||||||
|
|
||||||
package tschipp.carryon.common.carry;
|
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 net.minecraft.world.entity.player.Player;
|
||||||
import tschipp.carryon.platform.Services;
|
import tschipp.carryon.platform.Services;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,6 @@ import tschipp.carryon.common.pickupcondition.PickupConditionHandler;
|
||||||
import tschipp.carryon.common.scripting.CarryOnScript;
|
import tschipp.carryon.common.scripting.CarryOnScript;
|
||||||
import tschipp.carryon.common.scripting.ScriptManager;
|
import tschipp.carryon.common.scripting.ScriptManager;
|
||||||
import tschipp.carryon.networking.clientbound.ClientboundStartRidingOtherPlayerPacket;
|
import tschipp.carryon.networking.clientbound.ClientboundStartRidingOtherPlayerPacket;
|
||||||
import tschipp.carryon.networking.clientbound.ClientboundStartRidingPacket;
|
|
||||||
import tschipp.carryon.platform.Services;
|
import tschipp.carryon.platform.Services;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.sounds.SoundEvents;
|
import net.minecraft.sounds.SoundEvents;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
|
import net.minecraft.world.effect.MobEffects;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.Mob;
|
import net.minecraft.world.entity.Mob;
|
||||||
import net.minecraft.world.entity.animal.horse.Horse;
|
import net.minecraft.world.entity.animal.horse.Horse;
|
||||||
|
|
@ -111,6 +112,8 @@ public class PlacementHandler
|
||||||
player.playSound(state.getSoundType().getPlaceSound(), 1.0f, 0.5f);
|
player.playSound(state.getSoundType().getPlaceSound(), 1.0f, 0.5f);
|
||||||
level.playSound(null, pos, state.getSoundType().getPlaceSound(), SoundSource.BLOCKS, 1.0f, 0.5f);
|
level.playSound(null, pos, state.getSoundType().getPlaceSound(), SoundSource.BLOCKS, 1.0f, 0.5f);
|
||||||
player.swing(InteractionHand.MAIN_HAND, true);
|
player.swing(InteractionHand.MAIN_HAND, true);
|
||||||
|
if (!player.isCreative() || Constants.COMMON_CONFIG.settings.slownessInCreative)
|
||||||
|
player.removeEffect(MobEffects.MOVEMENT_SLOWDOWN);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -180,6 +183,8 @@ public class PlacementHandler
|
||||||
CarryOnDataManager.setCarryData(player, carry);
|
CarryOnDataManager.setCarryData(player, carry);
|
||||||
otherPlayer.teleportTo(placementPos.x, placementPos.y, placementPos.z);
|
otherPlayer.teleportTo(placementPos.x, placementPos.y, placementPos.z);
|
||||||
player.swing(InteractionHand.MAIN_HAND, true);
|
player.swing(InteractionHand.MAIN_HAND, true);
|
||||||
|
if (!player.isCreative() || Constants.COMMON_CONFIG.settings.slownessInCreative)
|
||||||
|
player.removeEffect(MobEffects.MOVEMENT_SLOWDOWN);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -204,6 +209,8 @@ public class PlacementHandler
|
||||||
player.swing(InteractionHand.MAIN_HAND, true);
|
player.swing(InteractionHand.MAIN_HAND, true);
|
||||||
carry.clear();
|
carry.clear();
|
||||||
CarryOnDataManager.setCarryData(player, carry);
|
CarryOnDataManager.setCarryData(player, carry);
|
||||||
|
if (!player.isCreative() || Constants.COMMON_CONFIG.settings.slownessInCreative)
|
||||||
|
player.removeEffect(MobEffects.MOVEMENT_SLOWDOWN);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,10 +22,8 @@ package tschipp.carryon.common.scripting;
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||||
import net.minecraft.advancements.Advancement;
|
|
||||||
import net.minecraft.advancements.AdvancementHolder;
|
import net.minecraft.advancements.AdvancementHolder;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.registries.BuiltInRegistries;
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtUtils;
|
import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
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.effect.MobEffectInstance;
|
||||||
import net.minecraft.world.phys.Vec3;
|
import net.minecraft.world.phys.Vec3;
|
||||||
import net.minecraft.world.scores.Objective;
|
import net.minecraft.world.scores.Objective;
|
||||||
import net.minecraft.world.scores.Score;
|
|
||||||
import net.minecraft.world.scores.Scoreboard;
|
import net.minecraft.world.scores.Scoreboard;
|
||||||
import tschipp.carryon.platform.Services;
|
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
|
public final class Matchables
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,6 @@ import net.minecraft.server.packs.resources.ResourceManager;
|
||||||
import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener;
|
import net.minecraft.server.packs.resources.SimpleJsonResourceReloadListener;
|
||||||
import net.minecraft.util.profiling.ProfilerFiller;
|
import net.minecraft.util.profiling.ProfilerFiller;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
|
||||||
import tschipp.carryon.networking.clientbound.ClientboundSyncScriptsPacket;
|
import tschipp.carryon.networking.clientbound.ClientboundSyncScriptsPacket;
|
||||||
import tschipp.carryon.platform.Services;
|
import tschipp.carryon.platform.Services;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -50,11 +50,12 @@ public abstract class EntityMixin
|
||||||
|
|
||||||
@Shadow public abstract void onPassengerTurned(Entity $$0);
|
@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"))
|
@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) {
|
private boolean onStartRidingCheck(boolean original, Entity entity, boolean force) {
|
||||||
if (force && entity instanceof Player) return true;
|
if (force && entity instanceof Player) return true;
|
||||||
return original;
|
return original;
|
||||||
}
|
}*/
|
||||||
|
|
||||||
@Inject(method = "positionRider(Lnet/minecraft/world/entity/Entity;Lnet/minecraft/world/entity/Entity$MoveFunction;)V", at = @At("HEAD"), cancellable = true)
|
@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)
|
private void onPositionPassenger(Entity entity, MoveFunction move, CallbackInfo ci)
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ package tschipp.carryon.mixin;
|
||||||
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
|
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
|
||||||
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
|
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
|
||||||
import net.minecraft.core.NonNullList;
|
import net.minecraft.core.NonNullList;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.item.ItemStack;
|
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.Unique;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
|
||||||
import tschipp.carryon.common.carry.CarryOnDataManager;
|
import tschipp.carryon.common.carry.CarryOnDataManager;
|
||||||
|
|
||||||
@Mixin(Inventory.class)
|
@Mixin(Inventory.class)
|
||||||
|
|
|
||||||
|
|
@ -25,7 +25,6 @@ import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
import net.minecraft.world.entity.player.Inventory;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
import org.spongepowered.asm.mixin.Mixin;
|
||||||
import org.spongepowered.asm.mixin.injection.At;
|
import org.spongepowered.asm.mixin.injection.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
|
||||||
import tschipp.carryon.common.carry.CarryOnDataManager;
|
import tschipp.carryon.common.carry.CarryOnDataManager;
|
||||||
|
|
||||||
@Mixin(Minecraft.class)
|
@Mixin(Minecraft.class)
|
||||||
|
|
|
||||||
|
|
@ -23,17 +23,11 @@ package tschipp.carryon.mixin;
|
||||||
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.nbt.NbtOps;
|
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.EntityType;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
import net.minecraft.world.entity.player.Inventory;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
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.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
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"))
|
@Inject(method = "readAdditionalSaveData(Lnet/minecraft/nbt/CompoundTag;)V", at = @At("RETURN"))
|
||||||
private void onReadAdditionalSaveData(CompoundTag tag, CallbackInfo info)
|
private void onReadAdditionalSaveData(CompoundTag tag, CallbackInfo info)
|
||||||
{
|
{
|
||||||
Optional<CarryOnData> res = CarryOnData.CODEC.parse(NbtOps.INSTANCE, tag).result();
|
Optional<CarryOnData> res = CarryOnData.CODEC.parse(NbtOps.INSTANCE, tag.get(CarryOnData.SERIALIZATION_KEY)).result();
|
||||||
res.ifPresent(data -> CarryOnDataManager.setCarryData((Player)((Object)this), data));
|
res.ifPresent(data -> CarryOnDataManager.setCarryData((Player)((Object)this), data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,7 @@
|
||||||
|
|
||||||
package tschipp.carryon.networking;
|
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.network.protocol.common.custom.CustomPacketPayload;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
|
||||||
public interface PacketBase extends CustomPacketPayload {
|
public interface PacketBase extends CustomPacketPayload {
|
||||||
|
|
|
||||||
|
|
@ -20,12 +20,10 @@
|
||||||
|
|
||||||
package tschipp.carryon.networking.clientbound;
|
package tschipp.carryon.networking.clientbound;
|
||||||
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
|
||||||
import net.minecraft.network.RegistryFriendlyByteBuf;
|
import net.minecraft.network.RegistryFriendlyByteBuf;
|
||||||
import net.minecraft.network.codec.ByteBufCodecs;
|
import net.minecraft.network.codec.ByteBufCodecs;
|
||||||
import net.minecraft.network.codec.StreamCodec;
|
import net.minecraft.network.codec.StreamCodec;
|
||||||
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
package tschipp.carryon.networking;
|
package tschipp.carryon.networking.clientbound;
|
||||||
|
|
||||||
import net.minecraft.network.RegistryFriendlyByteBuf;
|
import net.minecraft.network.RegistryFriendlyByteBuf;
|
||||||
import net.minecraft.network.codec.ByteBufCodecs;
|
import net.minecraft.network.codec.ByteBufCodecs;
|
||||||
|
|
@ -9,7 +9,7 @@ import net.minecraft.world.entity.player.Player;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.common.carry.CarryOnData;
|
||||||
import tschipp.carryon.common.carry.CarryOnDataManager;
|
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 {
|
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) {
|
public void handle(Player player) {
|
||||||
Entity e = player.level().getEntity(this.iden);
|
Entity e = player.level().getEntity(this.iden);
|
||||||
if(e instanceof Player p) {
|
if(e instanceof Player p) {
|
||||||
|
p.getInventory().selected = data.getSelected();
|
||||||
CarryOnDataManager.setCarryData(p, data);
|
CarryOnDataManager.setCarryData(p, data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -22,16 +22,12 @@ package tschipp.carryon.networking.clientbound;
|
||||||
|
|
||||||
import com.mojang.serialization.Codec;
|
import com.mojang.serialization.Codec;
|
||||||
import com.mojang.serialization.DataResult;
|
import com.mojang.serialization.DataResult;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.nbt.NbtOps;
|
import net.minecraft.nbt.NbtOps;
|
||||||
import net.minecraft.nbt.Tag;
|
import net.minecraft.nbt.Tag;
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
|
||||||
import net.minecraft.network.RegistryFriendlyByteBuf;
|
import net.minecraft.network.RegistryFriendlyByteBuf;
|
||||||
import net.minecraft.network.codec.ByteBufCodecs;
|
import net.minecraft.network.codec.ByteBufCodecs;
|
||||||
import net.minecraft.network.codec.StreamCodec;
|
import net.minecraft.network.codec.StreamCodec;
|
||||||
import net.minecraft.network.protocol.Packet;
|
|
||||||
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.common.scripting.CarryOnScript;
|
import tschipp.carryon.common.scripting.CarryOnScript;
|
||||||
|
|
|
||||||
|
|
@ -20,20 +20,15 @@
|
||||||
|
|
||||||
package tschipp.carryon.networking.serverbound;
|
package tschipp.carryon.networking.serverbound;
|
||||||
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
|
||||||
import net.minecraft.network.RegistryFriendlyByteBuf;
|
import net.minecraft.network.RegistryFriendlyByteBuf;
|
||||||
import net.minecraft.network.codec.ByteBufCodecs;
|
import net.minecraft.network.codec.ByteBufCodecs;
|
||||||
import net.minecraft.network.codec.StreamCodec;
|
import net.minecraft.network.codec.StreamCodec;
|
||||||
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
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 net.minecraft.world.entity.player.Player;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.common.carry.CarryOnData;
|
||||||
import tschipp.carryon.common.carry.CarryOnDataManager;
|
import tschipp.carryon.common.carry.CarryOnDataManager;
|
||||||
import tschipp.carryon.networking.PacketBase;
|
import tschipp.carryon.networking.PacketBase;
|
||||||
import tschipp.carryon.networking.clientbound.ClientboundStartRidingPacket;
|
|
||||||
import tschipp.carryon.networking.clientbound.ClientboundSyncScriptsPacket;
|
|
||||||
|
|
||||||
public record ServerboundCarryKeyPressedPacket(boolean pressed) implements PacketBase
|
public record ServerboundCarryKeyPressedPacket(boolean pressed) implements PacketBase
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,7 @@
|
||||||
|
|
||||||
package tschipp.carryon.platform.services;
|
package tschipp.carryon.platform.services;
|
||||||
|
|
||||||
import net.minecraft.core.HolderLookup;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.RegistryFriendlyByteBuf;
|
|
||||||
import net.minecraft.network.codec.StreamCodec;
|
import net.minecraft.network.codec.StreamCodec;
|
||||||
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
@ -30,12 +28,10 @@ import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.common.carry.CarryOnData;
|
||||||
import tschipp.carryon.common.carry.CarryOnDataManager;
|
|
||||||
import tschipp.carryon.config.BuiltConfig;
|
import tschipp.carryon.config.BuiltConfig;
|
||||||
import tschipp.carryon.networking.PacketBase;
|
import tschipp.carryon.networking.PacketBase;
|
||||||
|
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
public interface IPlatformHelper {
|
public interface IPlatformHelper {
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,20 +23,13 @@ package tschipp.carryon;
|
||||||
import net.fabricmc.api.ClientModInitializer;
|
import net.fabricmc.api.ClientModInitializer;
|
||||||
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
|
import net.fabricmc.fabric.api.client.keybinding.v1.KeyBindingHelper;
|
||||||
import net.fabricmc.fabric.api.client.networking.v1.ClientPlayNetworking;
|
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.network.protocol.common.custom.CustomPacketPayload;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import tschipp.carryon.client.keybinds.CarryOnKeybinds;
|
import tschipp.carryon.client.keybinds.CarryOnKeybinds;
|
||||||
import tschipp.carryon.events.ClientEvents;
|
import tschipp.carryon.events.ClientEvents;
|
||||||
import tschipp.carryon.networking.PacketBase;
|
import tschipp.carryon.networking.PacketBase;
|
||||||
|
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
public class CarryOnFabricClientMod implements ClientModInitializer
|
public class CarryOnFabricClientMod implements ClientModInitializer
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ package tschipp.carryon;
|
||||||
|
|
||||||
import net.fabricmc.api.ModInitializer;
|
import net.fabricmc.api.ModInitializer;
|
||||||
import net.fabricmc.fabric.api.attachment.v1.AttachmentRegistry;
|
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.fabricmc.fabric.api.attachment.v1.AttachmentType;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
|
@ -34,7 +33,7 @@ import java.io.IOException;
|
||||||
|
|
||||||
public class CarryOnFabricMod implements ModInitializer {
|
public class CarryOnFabricMod implements ModInitializer {
|
||||||
|
|
||||||
public static final AttachmentType<CarryOnData> CARRY_ON_DATA_ATTACHMENT_TYPE = AttachmentRegistry.create(
|
/* public static final AttachmentType<CarryOnData> CARRY_ON_DATA_ATTACHMENT_TYPE = AttachmentRegistry.create(
|
||||||
ResourceLocation.fromNamespaceAndPath(Constants.MOD_ID, "carry_on_data"),
|
ResourceLocation.fromNamespaceAndPath(Constants.MOD_ID, "carry_on_data"),
|
||||||
builder -> builder
|
builder -> builder
|
||||||
.initializer(() -> new CarryOnData(new CompoundTag()))
|
.initializer(() -> new CarryOnData(new CompoundTag()))
|
||||||
|
|
@ -42,7 +41,12 @@ public class CarryOnFabricMod implements ModInitializer {
|
||||||
.syncWith(CarryOnData.STREAM_CODEC, (t, p) -> p.connection != null)
|
.syncWith(CarryOnData.STREAM_CODEC, (t, p) -> p.connection != null)
|
||||||
.copyOnDeath()
|
.copyOnDeath()
|
||||||
|
|
||||||
);
|
); */
|
||||||
|
|
||||||
|
public static final AttachmentType<CarryOnData> CARRY_ON_DATA_ATTACHMENT_TYPE = AttachmentRegistry.<CarryOnData>builder()
|
||||||
|
.initializer(() -> new CarryOnData(new CompoundTag()))
|
||||||
|
.persistent(CarryOnData.CODEC)
|
||||||
|
.buildAndRegister(ResourceLocation.fromNamespaceAndPath(Constants.MOD_ID, "carry_on_data"));
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onInitialize() {
|
public void onInitialize() {
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@
|
||||||
|
|
||||||
package tschipp.carryon.compat;
|
package tschipp.carryon.compat;
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.event.Event;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
|
|
||||||
|
|
@ -21,11 +21,13 @@
|
||||||
package tschipp.carryon.events;
|
package tschipp.carryon.events;
|
||||||
|
|
||||||
import net.fabricmc.fabric.api.command.v2.CommandRegistrationCallback;
|
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.entity.event.v1.ServerPlayerEvents;
|
||||||
import net.fabricmc.fabric.api.event.lifecycle.v1.CommonLifecycleEvents;
|
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.ServerLifecycleEvents;
|
||||||
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
|
import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents;
|
||||||
import net.fabricmc.fabric.api.event.player.*;
|
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.networking.v1.ServerPlayConnectionEvents;
|
||||||
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
|
import net.fabricmc.fabric.api.resource.ResourceManagerHelper;
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
|
|
@ -34,6 +36,7 @@ import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.server.packs.PackType;
|
import net.minecraft.server.packs.PackType;
|
||||||
import net.minecraft.world.InteractionResult;
|
import net.minecraft.world.InteractionResult;
|
||||||
import tschipp.carryon.CarryOnCommon;
|
import tschipp.carryon.CarryOnCommon;
|
||||||
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.common.carry.CarryOnData;
|
||||||
import tschipp.carryon.common.carry.CarryOnData.CarryType;
|
import tschipp.carryon.common.carry.CarryOnData.CarryType;
|
||||||
import tschipp.carryon.common.carry.CarryOnDataManager;
|
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.common.scripting.ScriptReloadListener;
|
||||||
import tschipp.carryon.compat.ArchitecturyCompat;
|
import tschipp.carryon.compat.ArchitecturyCompat;
|
||||||
import tschipp.carryon.config.ConfigLoader;
|
import tschipp.carryon.config.ConfigLoader;
|
||||||
|
import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket;
|
||||||
|
import tschipp.carryon.platform.Services;
|
||||||
import tschipp.carryon.scripting.IdentifiableScriptReloadListener;
|
import tschipp.carryon.scripting.IdentifiableScriptReloadListener;
|
||||||
|
|
||||||
public class CommonEvents {
|
public class CommonEvents {
|
||||||
|
|
@ -160,7 +165,31 @@ public class CommonEvents {
|
||||||
CarryOnCommon.onRiderDisconnected(handler.getPlayer());
|
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;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,23 +21,17 @@
|
||||||
package tschipp.carryon.mixin;
|
package tschipp.carryon.mixin;
|
||||||
|
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.client.player.AbstractClientPlayer;
|
import net.minecraft.client.player.AbstractClientPlayer;
|
||||||
import net.minecraft.client.renderer.GameRenderer;
|
|
||||||
import net.minecraft.client.renderer.ItemInHandRenderer;
|
import net.minecraft.client.renderer.ItemInHandRenderer;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.client.renderer.RenderBuffers;
|
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.entity.player.Player;
|
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import org.spongepowered.asm.mixin.Mixin;
|
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.At;
|
||||||
import org.spongepowered.asm.mixin.injection.Inject;
|
import org.spongepowered.asm.mixin.injection.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
import tschipp.carryon.client.render.CarriedObjectRender;
|
import tschipp.carryon.client.render.CarriedObjectRender;
|
||||||
import tschipp.carryon.client.render.CarryRenderHelper;
|
import tschipp.carryon.client.render.CarryRenderHelper;
|
||||||
import tschipp.carryon.platform.Services;
|
|
||||||
|
|
||||||
@Mixin(ItemInHandRenderer.class)
|
@Mixin(ItemInHandRenderer.class)
|
||||||
public class ItemInHandRendererMixin
|
public class ItemInHandRendererMixin
|
||||||
|
|
|
||||||
|
|
@ -20,31 +20,28 @@
|
||||||
|
|
||||||
package tschipp.carryon.platform;
|
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.PayloadTypeRegistry;
|
||||||
import net.fabricmc.fabric.api.networking.v1.ServerPlayNetworking;
|
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.fabricmc.loader.api.FabricLoader;
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.RegistryFriendlyByteBuf;
|
import net.minecraft.network.RegistryFriendlyByteBuf;
|
||||||
import net.minecraft.network.codec.StreamCodec;
|
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.network.protocol.common.custom.CustomPacketPayload;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import tschipp.carryon.CarryOnFabricClientMod;
|
import tschipp.carryon.CarryOnFabricClientMod;
|
||||||
import tschipp.carryon.CarryOnFabricMod;
|
import tschipp.carryon.CarryOnFabricMod;
|
||||||
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.common.carry.CarryOnData;
|
||||||
import tschipp.carryon.config.BuiltConfig;
|
import tschipp.carryon.config.BuiltConfig;
|
||||||
import tschipp.carryon.config.fabric.ConfigLoaderImpl;
|
import tschipp.carryon.config.fabric.ConfigLoaderImpl;
|
||||||
import tschipp.carryon.networking.PacketBase;
|
import tschipp.carryon.networking.PacketBase;
|
||||||
|
import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket;
|
||||||
import tschipp.carryon.platform.services.IPlatformHelper;
|
import tschipp.carryon.platform.services.IPlatformHelper;
|
||||||
|
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
public class FabricPlatformHelper implements IPlatformHelper {
|
public class FabricPlatformHelper implements IPlatformHelper {
|
||||||
|
|
||||||
|
|
@ -114,5 +111,8 @@ public class FabricPlatformHelper implements IPlatformHelper {
|
||||||
@Override
|
@Override
|
||||||
public void setCarryData(Player player, CarryOnData data) {
|
public void setCarryData(Player player, CarryOnData data) {
|
||||||
player.setAttached(CarryOnFabricMod.CARRY_ON_DATA_ATTACHMENT_TYPE, 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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,9 +28,6 @@ import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||||
import net.minecraftforge.network.ChannelBuilder;
|
import net.minecraftforge.network.ChannelBuilder;
|
||||||
import net.minecraftforge.network.SimpleChannel;
|
import net.minecraftforge.network.SimpleChannel;
|
||||||
import tschipp.carryon.config.forge.ConfigLoaderImpl;
|
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)
|
@Mod(Constants.MOD_ID)
|
||||||
@EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
@EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD)
|
||||||
|
|
@ -57,13 +54,6 @@ public class CarryOnForge {
|
||||||
|
|
||||||
CarryOnCommon.registerServerPackets();
|
CarryOnCommon.registerServerPackets();
|
||||||
CarryOnCommon.registerClientPackets();
|
CarryOnCommon.registerClientPackets();
|
||||||
|
|
||||||
Services.PLATFORM.registerClientboundPacket(
|
|
||||||
ClientboundSyncCarryDataPacket.TYPE,
|
|
||||||
ClientboundSyncCarryDataPacket.class,
|
|
||||||
ClientboundSyncCarryDataPacket.CODEC,
|
|
||||||
ClientboundSyncCarryDataPacket::handle
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -2,7 +2,6 @@ package tschipp.carryon.carry;
|
||||||
|
|
||||||
import net.minecraftforge.common.capabilities.AutoRegisterCapability;
|
import net.minecraftforge.common.capabilities.AutoRegisterCapability;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.common.carry.CarryOnData;
|
||||||
import tschipp.carryon.common.carry.CarryOnDataManager;
|
|
||||||
|
|
||||||
@AutoRegisterCapability
|
@AutoRegisterCapability
|
||||||
public interface ICarryOnDataCapability {
|
public interface ICarryOnDataCapability {
|
||||||
|
|
|
||||||
|
|
@ -22,22 +22,17 @@ package tschipp.carryon.config.forge;
|
||||||
|
|
||||||
import com.electronwill.nightconfig.core.AbstractConfig;
|
import com.electronwill.nightconfig.core.AbstractConfig;
|
||||||
import com.electronwill.nightconfig.core.UnmodifiableConfig;
|
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.ForgeConfigSpec;
|
||||||
import net.minecraftforge.common.util.LogicalSidedProvider;
|
|
||||||
import net.minecraftforge.eventbus.api.IEventBus;
|
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.ModLoadingContext;
|
||||||
import net.minecraftforge.fml.config.IConfigSpec;
|
import net.minecraftforge.fml.config.IConfigSpec;
|
||||||
import net.minecraftforge.fml.config.ModConfig;
|
import net.minecraftforge.fml.config.ModConfig;
|
||||||
import net.minecraftforge.fml.event.config.ModConfigEvent;
|
import net.minecraftforge.fml.event.config.ModConfigEvent;
|
||||||
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext;
|
||||||
import net.minecraftforge.fml.loading.FMLServiceProvider;
|
import tschipp.carryon.config.AnnotationData;
|
||||||
import net.minecraftforge.server.ServerLifecycleHooks;
|
import tschipp.carryon.config.BuiltCategory;
|
||||||
import tschipp.carryon.config.*;
|
import tschipp.carryon.config.BuiltConfig;
|
||||||
|
import tschipp.carryon.config.PropertyData;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,13 +26,11 @@ import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen;
|
||||||
import net.minecraft.client.renderer.MultiBufferSource;
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
||||||
import net.minecraftforge.client.event.RenderHandEvent;
|
import net.minecraftforge.client.event.RenderHandEvent;
|
||||||
import net.minecraftforge.client.event.RenderLevelStageEvent;
|
import net.minecraftforge.client.event.RenderLevelStageEvent;
|
||||||
import net.minecraftforge.client.event.RenderLevelStageEvent.Stage;
|
import net.minecraftforge.client.event.RenderLevelStageEvent.Stage;
|
||||||
import net.minecraftforge.client.event.ScreenEvent;
|
import net.minecraftforge.client.event.ScreenEvent;
|
||||||
import net.minecraftforge.event.TickEvent.ClientTickEvent;
|
import net.minecraftforge.event.TickEvent.ClientTickEvent;
|
||||||
import net.minecraftforge.event.TickEvent.Phase;
|
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import tschipp.carryon.CarryOnCommonClient;
|
import tschipp.carryon.CarryOnCommonClient;
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,7 @@ import net.minecraftforge.event.*;
|
||||||
import net.minecraftforge.event.TickEvent.ServerTickEvent;
|
import net.minecraftforge.event.TickEvent.ServerTickEvent;
|
||||||
import net.minecraftforge.event.entity.EntityJoinLevelEvent;
|
import net.minecraftforge.event.entity.EntityJoinLevelEvent;
|
||||||
import net.minecraftforge.event.entity.living.LivingAttackEvent;
|
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.living.MobSpawnEvent.FinalizeSpawn;
|
||||||
import net.minecraftforge.event.entity.player.AttackEntityEvent;
|
import net.minecraftforge.event.entity.player.AttackEntityEvent;
|
||||||
import net.minecraftforge.event.entity.player.PlayerEvent;
|
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.carry.PlacementHandler;
|
||||||
import tschipp.carryon.common.scripting.ScriptReloadListener;
|
import tschipp.carryon.common.scripting.ScriptReloadListener;
|
||||||
import tschipp.carryon.config.ConfigLoader;
|
import tschipp.carryon.config.ConfigLoader;
|
||||||
import tschipp.carryon.networking.ClientboundSyncCarryDataPacket;
|
import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket;
|
||||||
import tschipp.carryon.platform.Services;
|
import tschipp.carryon.platform.Services;
|
||||||
|
|
||||||
@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.FORGE, modid = Constants.MOD_ID)
|
@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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -25,10 +25,8 @@ import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.InterModComms;
|
import net.minecraftforge.fml.InterModComms;
|
||||||
import net.minecraftforge.fml.InterModComms.IMCMessage;
|
import net.minecraftforge.fml.InterModComms.IMCMessage;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
|
|
||||||
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
|
import net.minecraftforge.fml.event.lifecycle.InterModProcessEvent;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.client.modeloverride.ModelOverrideHandler;
|
|
||||||
import tschipp.carryon.common.config.ListHandler;
|
import tschipp.carryon.common.config.ListHandler;
|
||||||
|
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@
|
||||||
package tschipp.carryon.events;
|
package tschipp.carryon.events;
|
||||||
|
|
||||||
import net.minecraftforge.api.distmarker.Dist;
|
import net.minecraftforge.api.distmarker.Dist;
|
||||||
import net.minecraftforge.api.distmarker.OnlyIn;
|
|
||||||
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
|
import net.minecraftforge.client.event.RegisterKeyMappingsEvent;
|
||||||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||||
import net.minecraftforge.fml.common.Mod;
|
import net.minecraftforge.fml.common.Mod;
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,6 @@
|
||||||
package tschipp.carryon.platform;
|
package tschipp.carryon.platform;
|
||||||
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.RegistryFriendlyByteBuf;
|
|
||||||
import net.minecraft.network.codec.StreamCodec;
|
import net.minecraft.network.codec.StreamCodec;
|
||||||
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
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.event.network.CustomPayloadEvent;
|
||||||
import net.minecraftforge.fml.ModList;
|
import net.minecraftforge.fml.ModList;
|
||||||
import net.minecraftforge.fml.loading.FMLLoader;
|
import net.minecraftforge.fml.loading.FMLLoader;
|
||||||
import net.minecraftforge.network.NetworkDirection;
|
|
||||||
import net.minecraftforge.network.PacketDistributor;
|
import net.minecraftforge.network.PacketDistributor;
|
||||||
import tschipp.carryon.CarryOnCommonClient;
|
import tschipp.carryon.CarryOnCommonClient;
|
||||||
import tschipp.carryon.CarryOnForge;
|
import tschipp.carryon.CarryOnForge;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.carry.CarryOnDataCapability;
|
import tschipp.carryon.carry.CarryOnDataCapability;
|
||||||
import tschipp.carryon.carry.CarryOnDataCapabilityProvider;
|
import tschipp.carryon.carry.CarryOnDataCapabilityProvider;
|
||||||
import tschipp.carryon.carry.ICarryOnDataCapability;
|
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.common.carry.CarryOnData;
|
||||||
import tschipp.carryon.config.BuiltConfig;
|
import tschipp.carryon.config.BuiltConfig;
|
||||||
import tschipp.carryon.config.forge.ConfigLoaderImpl;
|
import tschipp.carryon.config.forge.ConfigLoaderImpl;
|
||||||
import tschipp.carryon.networking.ClientboundSyncCarryDataPacket;
|
|
||||||
import tschipp.carryon.networking.PacketBase;
|
import tschipp.carryon.networking.PacketBase;
|
||||||
|
import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket;
|
||||||
import tschipp.carryon.platform.services.IPlatformHelper;
|
import tschipp.carryon.platform.services.IPlatformHelper;
|
||||||
|
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
public class ForgePlatformHelper implements IPlatformHelper {
|
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());
|
var cap = player.getCapability(CarryOnDataCapabilityProvider.CARRY_ON_DATA_CAPABILITY).orElse(new CarryOnDataCapability());
|
||||||
cap.setCarryData(data);
|
cap.setCarryData(data);
|
||||||
if(!player.level().isClientSide) {
|
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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,19 +21,14 @@
|
||||||
package tschipp.carryon;
|
package tschipp.carryon;
|
||||||
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
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.ModContainer;
|
||||||
import net.neoforged.fml.common.Mod;
|
import net.neoforged.fml.common.Mod;
|
||||||
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
|
import net.neoforged.fml.event.lifecycle.FMLCommonSetupEvent;
|
||||||
import net.neoforged.neoforge.attachment.AttachmentType;
|
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.event.RegisterPayloadHandlersEvent;
|
||||||
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
|
import net.neoforged.neoforge.network.registration.PayloadRegistrar;
|
||||||
import net.neoforged.neoforge.registries.DeferredRegister;
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
import net.neoforged.neoforge.registries.NeoForgeRegistries;
|
import net.neoforged.neoforge.registries.NeoForgeRegistries;
|
||||||
import tschipp.carryon.carry.CarryOnDataSyncHandler;
|
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.common.carry.CarryOnData;
|
||||||
import tschipp.carryon.config.neoforge.ConfigLoaderImpl;
|
import tschipp.carryon.config.neoforge.ConfigLoaderImpl;
|
||||||
|
|
||||||
|
|
@ -47,8 +42,9 @@ public class CarryOnNeoForge {
|
||||||
public static final Supplier<AttachmentType<CarryOnData>> CARRY_ON_DATA_ATTACHMENT = ATTACHMENT_TYPES.register(
|
public static final Supplier<AttachmentType<CarryOnData>> CARRY_ON_DATA_ATTACHMENT = ATTACHMENT_TYPES.register(
|
||||||
"carry_on_data",
|
"carry_on_data",
|
||||||
() -> AttachmentType.builder(() -> new CarryOnData(new CompoundTag()))
|
() -> AttachmentType.builder(() -> new CarryOnData(new CompoundTag()))
|
||||||
.sync(new CarryOnDataSyncHandler())
|
//.sync(new CarryOnDataSyncHandler())
|
||||||
.serialize(CarryOnData.CODEC.fieldOf(CarryOnData.SERIALIZATION_KEY))
|
//.serialize(CarryOnData.CODEC.fieldOf(CarryOnData.SERIALIZATION_KEY))
|
||||||
|
.serialize(CarryOnData.CODEC)
|
||||||
.build()
|
.build()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
package tschipp.carryon.carry;
|
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<CarryOnData> {
|
public class CarryOnDataSyncHandler implements AttachmentSyncHandler<CarryOnData> {
|
||||||
@Override
|
@Override
|
||||||
public void write(RegistryFriendlyByteBuf registryFriendlyByteBuf, CarryOnData carryOnData, boolean b) {
|
public void write(RegistryFriendlyByteBuf registryFriendlyByteBuf, CarryOnData carryOnData, boolean b) {
|
||||||
|
|
@ -24,3 +19,4 @@ public class CarryOnDataSyncHandler implements AttachmentSyncHandler<CarryOnData
|
||||||
return AttachmentSyncHandler.super.sendToPlayer(holder, to);
|
return AttachmentSyncHandler.super.sendToPlayer(holder, to);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
|
||||||
|
|
@ -22,22 +22,17 @@ package tschipp.carryon.config.neoforge;
|
||||||
|
|
||||||
import com.electronwill.nightconfig.core.AbstractConfig;
|
import com.electronwill.nightconfig.core.AbstractConfig;
|
||||||
import com.electronwill.nightconfig.core.UnmodifiableConfig;
|
import com.electronwill.nightconfig.core.UnmodifiableConfig;
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.neoforged.api.distmarker.Dist;
|
|
||||||
import net.neoforged.bus.api.IEventBus;
|
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.fml.ModContainer;
|
import net.neoforged.fml.ModContainer;
|
||||||
import net.neoforged.fml.ModLoadingContext;
|
|
||||||
import net.neoforged.fml.common.EventBusSubscriber;
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
import net.neoforged.fml.common.Mod;
|
|
||||||
import net.neoforged.fml.config.IConfigSpec;
|
|
||||||
import net.neoforged.fml.config.ModConfig;
|
import net.neoforged.fml.config.ModConfig;
|
||||||
import net.neoforged.fml.event.config.ModConfigEvent;
|
import net.neoforged.fml.event.config.ModConfigEvent;
|
||||||
import net.neoforged.neoforge.common.ModConfigSpec;
|
import net.neoforged.neoforge.common.ModConfigSpec;
|
||||||
import net.neoforged.neoforge.common.NeoForge;
|
|
||||||
import net.neoforged.neoforge.server.ServerLifecycleHooks;
|
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
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.*;
|
import java.util.*;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.api.distmarker.OnlyIn;
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.fml.common.EventBusSubscriber;
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
import net.neoforged.fml.common.Mod;
|
|
||||||
import net.neoforged.neoforge.client.event.ClientTickEvent;
|
import net.neoforged.neoforge.client.event.ClientTickEvent;
|
||||||
import net.neoforged.neoforge.client.event.RenderHandEvent;
|
import net.neoforged.neoforge.client.event.RenderHandEvent;
|
||||||
import net.neoforged.neoforge.client.event.RenderLevelStageEvent;
|
import net.neoforged.neoforge.client.event.RenderLevelStageEvent;
|
||||||
|
|
|
||||||
|
|
@ -29,15 +29,18 @@ import net.minecraft.world.entity.MobSpawnType;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.ServerLevelAccessor;
|
import net.minecraft.world.level.ServerLevelAccessor;
|
||||||
import net.neoforged.bus.api.Event;
|
|
||||||
import net.neoforged.bus.api.EventPriority;
|
import net.neoforged.bus.api.EventPriority;
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.fml.common.EventBusSubscriber;
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
import net.neoforged.fml.common.Mod;
|
|
||||||
import net.neoforged.neoforge.common.NeoForge;
|
import net.neoforged.neoforge.common.NeoForge;
|
||||||
import net.neoforged.neoforge.common.util.BlockSnapshot;
|
import net.neoforged.neoforge.common.util.BlockSnapshot;
|
||||||
import net.neoforged.neoforge.common.util.TriState;
|
import net.neoforged.neoforge.common.util.TriState;
|
||||||
import net.neoforged.neoforge.event.*;
|
import net.neoforged.neoforge.event.AddReloadListenerEvent;
|
||||||
|
import net.neoforged.neoforge.event.OnDatapackSyncEvent;
|
||||||
|
import net.neoforged.neoforge.event.RegisterCommandsEvent;
|
||||||
|
import net.neoforged.neoforge.event.TagsUpdatedEvent;
|
||||||
|
import net.neoforged.neoforge.event.entity.EntityJoinLevelEvent;
|
||||||
|
import net.neoforged.neoforge.event.entity.living.LivingDeathEvent;
|
||||||
import net.neoforged.neoforge.event.entity.living.MobSpawnEvent;
|
import net.neoforged.neoforge.event.entity.living.MobSpawnEvent;
|
||||||
import net.neoforged.neoforge.event.entity.player.AttackEntityEvent;
|
import net.neoforged.neoforge.event.entity.player.AttackEntityEvent;
|
||||||
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
|
import net.neoforged.neoforge.event.entity.player.PlayerEvent;
|
||||||
|
|
@ -53,6 +56,8 @@ import tschipp.carryon.common.carry.PickupHandler;
|
||||||
import tschipp.carryon.common.carry.PlacementHandler;
|
import tschipp.carryon.common.carry.PlacementHandler;
|
||||||
import tschipp.carryon.common.scripting.ScriptReloadListener;
|
import tschipp.carryon.common.scripting.ScriptReloadListener;
|
||||||
import tschipp.carryon.config.ConfigLoader;
|
import tschipp.carryon.config.ConfigLoader;
|
||||||
|
import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket;
|
||||||
|
import tschipp.carryon.platform.Services;
|
||||||
|
|
||||||
@EventBusSubscriber(bus = EventBusSubscriber.Bus.GAME, modid = Constants.MOD_ID)
|
@EventBusSubscriber(bus = EventBusSubscriber.Bus.GAME, modid = Constants.MOD_ID)
|
||||||
public class CommonEvents
|
public class CommonEvents
|
||||||
|
|
@ -218,4 +223,25 @@ public class CommonEvents
|
||||||
CarryOnCommon.onRiderDisconnected(player);
|
CarryOnCommon.onRiderDisconnected(player);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onStartTracking(PlayerEvent.StartTracking event) {
|
||||||
|
if(event.getEntity() instanceof ServerPlayer sp && event.getTarget() instanceof ServerPlayer target) {
|
||||||
|
Services.PLATFORM.sendPacketToPlayer(Constants.PACKET_ID_SYNC_CARRY_ON_DATA, new ClientboundSyncCarryDataPacket(sp.getId(), CarryOnDataManager.getCarryData(sp)), target);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onJoinWorld(EntityJoinLevelEvent event) {
|
||||||
|
if (event.getEntity() instanceof ServerPlayer sp) {
|
||||||
|
Services.PLATFORM.sendPacketToPlayer(Constants.PACKET_ID_SYNC_CARRY_ON_DATA, new ClientboundSyncCarryDataPacket(sp.getId(), CarryOnDataManager.getCarryData(sp)), sp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@SubscribeEvent
|
||||||
|
public static void onPlayerDie(LivingDeathEvent event) {
|
||||||
|
if(event.getEntity() instanceof ServerPlayer sp) {
|
||||||
|
CarryOnCommon.onRiderDisconnected(sp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,10 +24,8 @@ import net.neoforged.bus.api.EventPriority;
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.fml.InterModComms;
|
import net.neoforged.fml.InterModComms;
|
||||||
import net.neoforged.fml.common.EventBusSubscriber;
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
import net.neoforged.fml.common.Mod;
|
|
||||||
import net.neoforged.fml.event.lifecycle.InterModProcessEvent;
|
import net.neoforged.fml.event.lifecycle.InterModProcessEvent;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.client.modeloverride.ModelOverrideHandler;
|
|
||||||
import tschipp.carryon.common.config.ListHandler;
|
import tschipp.carryon.common.config.ListHandler;
|
||||||
|
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ import net.neoforged.api.distmarker.Dist;
|
||||||
import net.neoforged.api.distmarker.OnlyIn;
|
import net.neoforged.api.distmarker.OnlyIn;
|
||||||
import net.neoforged.bus.api.SubscribeEvent;
|
import net.neoforged.bus.api.SubscribeEvent;
|
||||||
import net.neoforged.fml.common.EventBusSubscriber;
|
import net.neoforged.fml.common.EventBusSubscriber;
|
||||||
import net.neoforged.fml.common.Mod;
|
|
||||||
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
|
import net.neoforged.neoforge.client.event.RegisterKeyMappingsEvent;
|
||||||
import tschipp.carryon.Constants;
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.client.keybinds.CarryOnKeybinds;
|
import tschipp.carryon.client.keybinds.CarryOnKeybinds;
|
||||||
|
|
|
||||||
|
|
@ -20,15 +20,12 @@
|
||||||
|
|
||||||
package tschipp.carryon.platform;
|
package tschipp.carryon.platform;
|
||||||
|
|
||||||
import net.minecraft.nbt.CompoundTag;
|
|
||||||
import io.netty.buffer.ByteBuf;
|
|
||||||
import net.minecraft.network.FriendlyByteBuf;
|
import net.minecraft.network.FriendlyByteBuf;
|
||||||
import net.minecraft.network.RegistryFriendlyByteBuf;
|
import net.minecraft.network.RegistryFriendlyByteBuf;
|
||||||
import net.minecraft.network.codec.StreamCodec;
|
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.network.protocol.common.custom.CustomPacketPayload;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.neoforged.fml.ModList;
|
import net.neoforged.fml.ModList;
|
||||||
|
|
@ -39,16 +36,15 @@ import net.neoforged.neoforge.network.registration.PayloadRegistrar;
|
||||||
import tschipp.carryon.CarryOnCommonClient;
|
import tschipp.carryon.CarryOnCommonClient;
|
||||||
import tschipp.carryon.CarryOnNeoForge;
|
import tschipp.carryon.CarryOnNeoForge;
|
||||||
import tschipp.carryon.CarryOnNeoForgeClient;
|
import tschipp.carryon.CarryOnNeoForgeClient;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.Constants;
|
||||||
import tschipp.carryon.common.carry.CarryOnData;
|
import tschipp.carryon.common.carry.CarryOnData;
|
||||||
import tschipp.carryon.config.BuiltConfig;
|
import tschipp.carryon.config.BuiltConfig;
|
||||||
import tschipp.carryon.config.neoforge.ConfigLoaderImpl;
|
import tschipp.carryon.config.neoforge.ConfigLoaderImpl;
|
||||||
import tschipp.carryon.networking.PacketBase;
|
import tschipp.carryon.networking.PacketBase;
|
||||||
import tschipp.carryon.networking.serverbound.ServerboundCarryKeyPressedPacket;
|
import tschipp.carryon.networking.clientbound.ClientboundSyncCarryDataPacket;
|
||||||
import tschipp.carryon.platform.services.IPlatformHelper;
|
import tschipp.carryon.platform.services.IPlatformHelper;
|
||||||
|
|
||||||
import java.util.function.BiConsumer;
|
import java.util.function.BiConsumer;
|
||||||
import java.util.function.Function;
|
|
||||||
|
|
||||||
public class NeoForgePlatformHelper implements IPlatformHelper {
|
public class NeoForgePlatformHelper implements IPlatformHelper {
|
||||||
|
|
||||||
|
|
@ -121,5 +117,8 @@ public class NeoForgePlatformHelper implements IPlatformHelper {
|
||||||
@Override
|
@Override
|
||||||
public void setCarryData(Player player, CarryOnData data) {
|
public void setCarryData(Player player, CarryOnData data) {
|
||||||
player.setData(CarryOnNeoForge.CARRY_ON_DATA_ATTACHMENT, data);
|
player.setData(CarryOnNeoForge.CARRY_ON_DATA_ATTACHMENT, data);
|
||||||
|
if(!player.level().isClientSide) {
|
||||||
|
sendPacketToAllPlayers(Constants.PACKET_ID_SYNC_CARRY_ON_DATA, new ClientboundSyncCarryDataPacket(player.getId(), data), (ServerLevel) player.level());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user