禁用快捷栏渲染

This commit is contained in:
17146 2025-03-05 20:41:46 +08:00
parent 295a2c3ca0
commit 1ec3d8c2be
3 changed files with 29 additions and 10 deletions

View file

@ -1434,6 +1434,26 @@ public class ClientEventHandler {
} }
} }
/**
* 载具banHand时禁用快捷栏渲染
*/
@SubscribeEvent
public static void handleAvoidRenderingHotbar(RenderGuiOverlayEvent.Pre event) {
if (event.getOverlay() != VanillaGuiOverlay.HOTBAR.type()) {
return;
}
Minecraft mc = Minecraft.getInstance();
Player player = mc.player;
if (player == null) {
return;
}
if (player.getVehicle() instanceof ArmedVehicleEntity vehicle && vehicle.banHand(player)) {
event.setCanceled(true);
}
}
public static void handleDrawMessage(boolean draw, Supplier<NetworkEvent.Context> ctx) { public static void handleDrawMessage(boolean draw, Supplier<NetworkEvent.Context> ctx) {
if (ctx.get().getDirection().getReceptionSide() == LogicalSide.CLIENT) { if (ctx.get().getDirection().getReceptionSide() == LogicalSide.CLIENT) {
drawTime = 1; drawTime = 1;

View file

@ -60,14 +60,15 @@ public class MinecraftMixin {
var seatIndex = vehicle.getSeatIndex(player); var seatIndex = vehicle.getSeatIndex(player);
// 数字键 武器切换 if (vehicle instanceof WeaponVehicleEntity weaponVehicle && weaponVehicle.banHand(player)) {
if (vehicle instanceof WeaponVehicleEntity weaponVehicle
&& !Screen.hasShiftDown()
&& weaponVehicle.hasWeapon(seatIndex)
&& weaponVehicle.getWeaponType(seatIndex) != index
) {
ModUtils.PACKET_HANDLER.sendToServer(new SwitchVehicleWeaponMessage(seatIndex, index, false));
ci.cancel(); ci.cancel();
// 数字键 武器切换
if (!Screen.hasShiftDown()
&& weaponVehicle.hasWeapon(seatIndex)
&& weaponVehicle.getWeaponType(seatIndex) != index) {
ModUtils.PACKET_HANDLER.sendToServer(new SwitchVehicleWeaponMessage(seatIndex, index, false));
}
} }
} }
} }

View file

@ -9,10 +9,9 @@ import net.minecraftforge.network.NetworkEvent;
import java.util.function.Supplier; import java.util.function.Supplier;
public class SwitchVehicleWeaponMessage { public class SwitchVehicleWeaponMessage {
private final int index; private final int index;
private final double value; private final double value;
private final boolean isScroll; private final boolean isScroll;
public SwitchVehicleWeaponMessage(int index, double value, boolean isScroll) { public SwitchVehicleWeaponMessage(int index, double value, boolean isScroll) {
@ -45,5 +44,4 @@ public class SwitchVehicleWeaponMessage {
}); });
context.get().setPacketHandled(true); context.get().setPacketHandled(true);
} }
} }