尝试重构战术冲刺禁用指令

This commit is contained in:
17146 2025-04-22 23:13:28 +08:00 committed by Light_Quanta
parent 50f9ecb46b
commit 77fa71a9ee
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
3 changed files with 38 additions and 2 deletions

View file

@ -3,11 +3,13 @@ package com.atsuishio.superbwarfare.command;
import com.atsuishio.superbwarfare.config.server.ExplosionConfig; import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
import com.atsuishio.superbwarfare.config.server.MiscConfig; import com.atsuishio.superbwarfare.config.server.MiscConfig;
import com.atsuishio.superbwarfare.config.server.VehicleConfig; import com.atsuishio.superbwarfare.config.server.VehicleConfig;
import com.atsuishio.superbwarfare.network.message.receive.ClientTacticalSprintSyncMessage;
import com.mojang.brigadier.arguments.BoolArgumentType; import com.mojang.brigadier.arguments.BoolArgumentType;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.CommandSourceStack;
import net.minecraft.commands.Commands; import net.minecraft.commands.Commands;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.neoforged.neoforge.network.PacketDistributor;
public class ConfigCommand { public class ConfigCommand {
@ -28,6 +30,8 @@ public class ConfigCommand {
VehicleConfig.COLLISION_DESTROY_BLOCKS_BEASTLY.set(false); VehicleConfig.COLLISION_DESTROY_BLOCKS_BEASTLY.set(false);
VehicleConfig.COLLISION_DESTROY_BLOCKS.save(); VehicleConfig.COLLISION_DESTROY_BLOCKS.save();
VehicleConfig.COLLISION_DESTROY_HARD_BLOCKS.save();
VehicleConfig.COLLISION_DESTROY_BLOCKS_BEASTLY.save();
context.getSource().sendSuccess(() -> Component.translatable("commands.config.collision_destroy.none"), true); context.getSource().sendSuccess(() -> Component.translatable("commands.config.collision_destroy.none"), true);
return 0; return 0;
@ -74,6 +78,8 @@ public class ConfigCommand {
MiscConfig.ALLOW_TACTICAL_SPRINT.set(value); MiscConfig.ALLOW_TACTICAL_SPRINT.set(value);
MiscConfig.ALLOW_TACTICAL_SPRINT.save(); MiscConfig.ALLOW_TACTICAL_SPRINT.save();
PacketDistributor.sendToAllPlayers(new ClientTacticalSprintSyncMessage(value));
context.getSource().sendSuccess(() -> Component.translatable(value ? "commands.config.tactical_sprint.enabled" : "commands.config.tactical_sprint.disabled"), true); context.getSource().sendSuccess(() -> Component.translatable(value ? "commands.config.tactical_sprint.enabled" : "commands.config.tactical_sprint.disabled"), true);
return 0; return 0;
}))); })));

View file

@ -9,7 +9,7 @@ public class NetworkRegistry {
public static void register(final RegisterPayloadHandlersEvent event) { public static void register(final RegisterPayloadHandlersEvent event) {
final PayloadRegistrar registrar = event.registrar("1"); final PayloadRegistrar registrar = event.registrar("1");
registrar.playToClient(PlayerVariablesSyncMessage.TYPE, PlayerVariablesSyncMessage.STREAM_CODEC, (message, context1) -> PlayerVariablesSyncMessage.handler(message)); registrar.playToClient(PlayerVariablesSyncMessage.TYPE, PlayerVariablesSyncMessage.STREAM_CODEC, (msg, ctx) -> PlayerVariablesSyncMessage.handler(msg));
registrar.playToClient(ShakeClientMessage.TYPE, ShakeClientMessage.STREAM_CODEC, ShakeClientMessage::handler); registrar.playToClient(ShakeClientMessage.TYPE, ShakeClientMessage.STREAM_CODEC, ShakeClientMessage::handler);
registrar.playToClient(ClientMotionSyncMessage.TYPE, ClientMotionSyncMessage.STREAM_CODEC, ClientMotionSyncMessage::handler); registrar.playToClient(ClientMotionSyncMessage.TYPE, ClientMotionSyncMessage.STREAM_CODEC, ClientMotionSyncMessage::handler);
registrar.playToClient(ClientIndicatorMessage.TYPE, ClientIndicatorMessage.STREAM_CODEC, ClientIndicatorMessage::handler); registrar.playToClient(ClientIndicatorMessage.TYPE, ClientIndicatorMessage.STREAM_CODEC, ClientIndicatorMessage::handler);
@ -17,11 +17,12 @@ public class NetworkRegistry {
registrar.playToClient(GunsDataMessage.TYPE, GunsDataMessage.STREAM_CODEC, GunsDataMessage::handler); registrar.playToClient(GunsDataMessage.TYPE, GunsDataMessage.STREAM_CODEC, GunsDataMessage::handler);
registrar.playToClient(ContainerDataMessage.TYPE, ContainerDataMessage.STREAM_CODEC, ContainerDataMessage::handler); registrar.playToClient(ContainerDataMessage.TYPE, ContainerDataMessage.STREAM_CODEC, ContainerDataMessage::handler);
registrar.playToClient(ShootClientMessage.TYPE, ShootClientMessage.STREAM_CODEC, ShootClientMessage::handler); registrar.playToClient(ShootClientMessage.TYPE, ShootClientMessage.STREAM_CODEC, ShootClientMessage::handler);
registrar.playToClient(DrawClientMessage.TYPE, DrawClientMessage.STREAM_CODEC, (drawClientMessage, context) -> DrawClientMessage.handler()); registrar.playToClient(DrawClientMessage.TYPE, DrawClientMessage.STREAM_CODEC, (msg, ctx) -> DrawClientMessage.handler());
registrar.playToClient(ResetCameraTypeMessage.TYPE, ResetCameraTypeMessage.STREAM_CODEC, ResetCameraTypeMessage::handler); registrar.playToClient(ResetCameraTypeMessage.TYPE, ResetCameraTypeMessage.STREAM_CODEC, ResetCameraTypeMessage::handler);
registrar.playToClient(RadarMenuOpenMessage.TYPE, RadarMenuOpenMessage.STREAM_CODEC, RadarMenuOpenMessage::handler); registrar.playToClient(RadarMenuOpenMessage.TYPE, RadarMenuOpenMessage.STREAM_CODEC, RadarMenuOpenMessage::handler);
registrar.playToClient(RadarMenuCloseMessage.TYPE, RadarMenuCloseMessage.STREAM_CODEC, RadarMenuCloseMessage::handler); registrar.playToClient(RadarMenuCloseMessage.TYPE, RadarMenuCloseMessage.STREAM_CODEC, RadarMenuCloseMessage::handler);
registrar.playToClient(SimulationDistanceMessage.TYPE, SimulationDistanceMessage.STREAM_CODEC, SimulationDistanceMessage::handler); registrar.playToClient(SimulationDistanceMessage.TYPE, SimulationDistanceMessage.STREAM_CODEC, SimulationDistanceMessage::handler);
registrar.playToClient(ClientTacticalSprintSyncMessage.TYPE, ClientTacticalSprintSyncMessage.STREAM_CODEC, (msg, ctx) -> ClientTacticalSprintSyncMessage.handler(msg));
registrar.playToServer(LaserShootMessage.TYPE, LaserShootMessage.STREAM_CODEC, LaserShootMessage::handler); registrar.playToServer(LaserShootMessage.TYPE, LaserShootMessage.STREAM_CODEC, LaserShootMessage::handler);
registrar.playToServer(ShootMessage.TYPE, ShootMessage.STREAM_CODEC, ShootMessage::handler); registrar.playToServer(ShootMessage.TYPE, ShootMessage.STREAM_CODEC, ShootMessage::handler);

View file

@ -0,0 +1,29 @@
package com.atsuishio.superbwarfare.network.message.receive;
import com.atsuishio.superbwarfare.Mod;
import com.atsuishio.superbwarfare.config.server.MiscConfig;
import io.netty.buffer.ByteBuf;
import net.minecraft.network.codec.ByteBufCodecs;
import net.minecraft.network.codec.StreamCodec;
import net.minecraft.network.protocol.common.custom.CustomPacketPayload;
import org.jetbrains.annotations.NotNull;
public record ClientTacticalSprintSyncMessage(boolean flag) implements CustomPacketPayload {
public static final Type<ClientTacticalSprintSyncMessage> TYPE = new Type<>(Mod.loc("client_indicator"));
public static final StreamCodec<ByteBuf, ClientTacticalSprintSyncMessage> STREAM_CODEC = StreamCodec.composite(
ByteBufCodecs.BOOL,
ClientTacticalSprintSyncMessage::flag,
ClientTacticalSprintSyncMessage::new
);
public static void handler(ClientTacticalSprintSyncMessage message) {
MiscConfig.ALLOW_TACTICAL_SPRINT.set(message.flag);
MiscConfig.ALLOW_TACTICAL_SPRINT.save();
}
@Override
public @NotNull Type<? extends CustomPacketPayload> type() {
return TYPE;
}
}