feat: use ChangeGameModeC2SPacket for gamemode self care

This commit is contained in:
Chayapak Supasakul 2025-08-12 08:32:30 +07:00
parent 335baeeaef
commit e13b035b10
Signed by: ChomeNS
SSH key fingerprint: SHA256:0YoxhdyXsgbc0nfeB2N6FYE60mxMU7DS4uCUMaw2mvA

View file

@ -6,7 +6,9 @@ import land.chipmunk.chipmunkmod.listeners.ListenerManager;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.network.ClientPlayNetworkHandler;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.network.packet.c2s.play.ChangeGameModeC2SPacket;
import net.minecraft.text.Text;
import net.minecraft.world.GameMode;
import static land.chipmunk.chipmunkmod.util.ServerUtilities.serverHasCommand;
@ -60,7 +62,8 @@ public class SelfCare implements Listener {
if (!player.hasPermissionLevel(2) && opEnabled && serverHasCommand("op"))
networkHandler.sendChatCommand("op @s[type=player]");
else if (!player.isInCreativeMode() && gamemodeEnabled)
networkHandler.sendChatCommand("gamemode creative");
// ViaVersion will automatically convert this to `/gamemode creative`
networkHandler.sendPacket(new ChangeGameModeC2SPacket(GameMode.CREATIVE));
else if (!cspy && cspyEnabled && serverHasCommand("c"))
if (
!CommandCore.INSTANCE.ready