From 10ac16c28b1b45d8a94a94d000545a6f7d337a80 Mon Sep 17 00:00:00 2001 From: Contrabass26 <83555891+Contrabass26@users.noreply.github.com> Date: Wed, 16 Aug 2023 11:56:35 +0100 Subject: [PATCH] Added improved proning #206 --- .../unordinary_basics/client/UBClient.java | 1 - .../client/keybind/UBKeybindings.java | 2 -- .../handler/UBProneHandler.java | 26 ++++++++++++++ .../network/Unordinary_BasicsNetwork.java | 1 - .../toserver/RequestPlayerProneToggle.java | 36 ------------------- 5 files changed, 26 insertions(+), 40 deletions(-) create mode 100644 src/main/java/com/github/manasmods/unordinary_basics/handler/UBProneHandler.java delete mode 100644 src/main/java/com/github/manasmods/unordinary_basics/network/toserver/RequestPlayerProneToggle.java diff --git a/src/main/java/com/github/manasmods/unordinary_basics/client/UBClient.java b/src/main/java/com/github/manasmods/unordinary_basics/client/UBClient.java index f112a1fe..06d18c3c 100644 --- a/src/main/java/com/github/manasmods/unordinary_basics/client/UBClient.java +++ b/src/main/java/com/github/manasmods/unordinary_basics/client/UBClient.java @@ -106,7 +106,6 @@ public static void onTextureStitch(TextureStitchEvent.Pre event) { private static void registerKeybinds(){ KeybindingRegistry.register( - UBKeybindings.SET_PRONE, UBKeybindings.OPEN_UB_INV ); } diff --git a/src/main/java/com/github/manasmods/unordinary_basics/client/keybind/UBKeybindings.java b/src/main/java/com/github/manasmods/unordinary_basics/client/keybind/UBKeybindings.java index 7d6dd264..04e03e94 100644 --- a/src/main/java/com/github/manasmods/unordinary_basics/client/keybind/UBKeybindings.java +++ b/src/main/java/com/github/manasmods/unordinary_basics/client/keybind/UBKeybindings.java @@ -3,7 +3,6 @@ import com.github.manasmods.manascore.api.client.keybinding.KeybindingCategory; import com.github.manasmods.manascore.api.client.keybinding.ManasKeybinding; import com.github.manasmods.unordinary_basics.network.Unordinary_BasicsNetwork; -import com.github.manasmods.unordinary_basics.network.toserver.RequestPlayerProneToggle; import com.github.manasmods.unordinary_basics.network.toserver.RequestUBInventoryMenu; import com.mojang.blaze3d.platform.InputConstants; @@ -11,7 +10,6 @@ public class UBKeybindings { private static final KeybindingCategory UNORDINARY_BASICS = KeybindingCategory.of("unordinary_basics"); - public static final ManasKeybinding SET_PRONE = new ManasKeybinding("unordinary_basics.keybinding.set_prone", InputConstants.KEY_X, UNORDINARY_BASICS, () -> Unordinary_BasicsNetwork.getInstance().sendToServer(new RequestPlayerProneToggle())); public static final ManasKeybinding OPEN_UB_INV = new ManasKeybinding("unordinary_basics.keybinding.open_ub_inv", InputConstants.KEY_I, UNORDINARY_BASICS, () -> Unordinary_BasicsNetwork.getInstance().sendToServer(new RequestUBInventoryMenu())); } diff --git a/src/main/java/com/github/manasmods/unordinary_basics/handler/UBProneHandler.java b/src/main/java/com/github/manasmods/unordinary_basics/handler/UBProneHandler.java new file mode 100644 index 00000000..a60e970a --- /dev/null +++ b/src/main/java/com/github/manasmods/unordinary_basics/handler/UBProneHandler.java @@ -0,0 +1,26 @@ +package com.github.manasmods.unordinary_basics.handler; + +import com.github.manasmods.unordinary_basics.Unordinary_Basics; +import net.minecraft.world.entity.Pose; +import net.minecraft.world.entity.player.Player; +import net.minecraftforge.event.TickEvent; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + +@Mod.EventBusSubscriber(modid = Unordinary_Basics.MOD_ID) +public class UBProneHandler { + + @SubscribeEvent + public static void onPlayerTick(TickEvent.PlayerTickEvent event) { + Player player = event.player; + if (player.isCrouching()) { + if (!player.getLevel().getBlockState(player.getOnPos().above(2).relative(player.getDirection())).getCollisionShape(player.getLevel(), player.getOnPos().above(2).relative(player.getDirection())).isEmpty() + && player.getPose() != Pose.SWIMMING + && !player.getLevel().getBlockState(player.getOnPos().relative(player.getDirection())).getCollisionShape(player.getLevel(), player.getOnPos().relative(player.getDirection())).isEmpty() && player.getPose() != Pose.SWIMMING) { + player.setPos(player.getDirection().getStepX() / 2f + player.getX(), player.getY(), player.getDirection().getStepZ() / 2f + player.getZ()); + player.setSwimming(true); + player.setPose(Pose.SWIMMING); + } + } + } +} diff --git a/src/main/java/com/github/manasmods/unordinary_basics/network/Unordinary_BasicsNetwork.java b/src/main/java/com/github/manasmods/unordinary_basics/network/Unordinary_BasicsNetwork.java index eb55620e..89964346 100644 --- a/src/main/java/com/github/manasmods/unordinary_basics/network/Unordinary_BasicsNetwork.java +++ b/src/main/java/com/github/manasmods/unordinary_basics/network/Unordinary_BasicsNetwork.java @@ -17,7 +17,6 @@ public static void registerPackets() { INSTANCE.registerMessage(++messageId, RequestJukeboxUpdate.class, RequestJukeboxUpdate::toBytes, RequestJukeboxUpdate::new, RequestJukeboxUpdate::handle); INSTANCE.registerMessage(++messageId, RequestMenuChange.class, RequestMenuChange::toBytes, RequestMenuChange::new, RequestMenuChange::handle); INSTANCE.registerMessage(++messageId, RequestUBInventoryMenu.class, RequestUBInventoryMenu::toBytes, RequestUBInventoryMenu::new, RequestUBInventoryMenu::handle); - INSTANCE.registerMessage(++messageId, RequestPlayerProneToggle.class, RequestPlayerProneToggle::toBytes, RequestPlayerProneToggle::new, RequestPlayerProneToggle::handle); INSTANCE.registerMessage(++messageId, UBInventoryClientSync.class, UBInventoryClientSync::toBytes, UBInventoryClientSync::new, UBInventoryClientSync::handle); INSTANCE.registerMessage(++messageId, SetItemSorterMessage.class, SetItemSorterMessage::toBytes, SetItemSorterMessage::new, SetItemSorterMessage::handle); } diff --git a/src/main/java/com/github/manasmods/unordinary_basics/network/toserver/RequestPlayerProneToggle.java b/src/main/java/com/github/manasmods/unordinary_basics/network/toserver/RequestPlayerProneToggle.java deleted file mode 100644 index f44f4271..00000000 --- a/src/main/java/com/github/manasmods/unordinary_basics/network/toserver/RequestPlayerProneToggle.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.github.manasmods.unordinary_basics.network.toserver; - -import net.minecraft.network.FriendlyByteBuf; -import net.minecraft.server.level.ServerPlayer; -import net.minecraft.world.entity.Pose; -import net.minecraftforge.network.NetworkEvent; - -import java.util.function.Supplier; - -public class RequestPlayerProneToggle { - - public RequestPlayerProneToggle(FriendlyByteBuf buf) { - } - - public RequestPlayerProneToggle(){ - } - - public void toBytes(FriendlyByteBuf buf) { - } - - public void handle(Supplier ctx) { - ctx.get().enqueueWork(() -> { - ServerPlayer player = ctx.get().getSender(); - - if (!player.getLevel().getBlockState(player.getOnPos().above(2).relative(player.getDirection())).getCollisionShape(player.getLevel(),player.getOnPos().above(2).relative(player.getDirection())).isEmpty() - && player.getPose() != Pose.SWIMMING - && !player.getLevel().getBlockState(player.getOnPos().relative(player.getDirection())).getCollisionShape(player.getLevel(),player.getOnPos().relative(player.getDirection())).isEmpty()) { - player.setPos(player.getDirection().getStepX() / 2 + player.getX(),player.getY(),player.getDirection().getStepZ() / 2 + player.getZ()); - player.setSwimming(true); - player.setPose(Pose.SWIMMING); - } - - }); - ctx.get().setPacketHandled(true); - } -}