feat: 加slsBoardEnabled规则作榜单总开关(服务端规则控制客户端命令)
BoardTogglePayload同步开关状态;客户端/slsboard检查enabled,未开启则拒绝。ServerMain加轮询线程检测规则变化。
This commit is contained in:
1 parent
7366a8b244
commit
3fde7e2c1b
8 files changed
+99
-10
No files matched your search
@@ -0,0 +1,31 @@
|
||||
package com.github.zly2006.carpetslsaddition.net;
|
||||
|
||||
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;
|
||||
|
||||
/**
|
||||
* 服务端 → 客户端:榜单功能总开关状态(对应 Carpet 规则 {@code slsBoardEnabled})。
|
||||
*
|
||||
* <p>规则变化时下发;客户端收到后决定 {@code /slsboard} 是否可用。
|
||||
*/
|
||||
public record BoardTogglePayload(boolean enabled) implements CustomPacketPayload {
|
||||
|
||||
public static final CustomPacketPayload.Type<BoardTogglePayload> TYPE =
|
||||
CustomPacketPayload.createType("slsa:board_toggle");
|
||||
|
||||
public static final StreamCodec<RegistryFriendlyByteBuf, BoardTogglePayload> CODEC = StreamCodec.composite(
|
||||
ByteBufCodecs.BOOL, BoardTogglePayload::enabled,
|
||||
BoardTogglePayload::new
|
||||
);
|
||||
|
||||
@Override
|
||||
public CustomPacketPayload.Type<? extends CustomPacketPayload> type() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
public static void register() {
|
||||
net.fabricmc.fabric.api.networking.v1.PayloadTypeRegistry.clientboundPlay().register(TYPE, CODEC);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user