From c55a9e4e05e6accc8e9951eb7367f6ce2e02a252 Mon Sep 17 00:00:00 2001 From: tkrmagid Date: Wed, 20 May 2026 10:19:43 +0900 Subject: [PATCH] v0.4.30: gate /videoStick behind OP (level 2) permission MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The other /video* commands already require Permissions.COMMANDS_GAMEMASTER (level 2 — the standard OP threshold for cheats), but /videoStick was missing the gate so any player could spawn a video stick item. Apply the same requires() check used elsewhere so only OP players, the server console, and command blocks can run it. --- gradle.properties | 2 +- .../com/ejclaw/videoplayer/command/VideoStickCommand.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 0a5f506..324dbcb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,7 +5,7 @@ org.gradle.configuration-cache=false # Mod mod_id=video_player -mod_version=0.4.29 +mod_version=0.4.30 maven_group=com.ejclaw.videoplayer archives_base_name=video_player diff --git a/src/main/java/com/ejclaw/videoplayer/command/VideoStickCommand.java b/src/main/java/com/ejclaw/videoplayer/command/VideoStickCommand.java index c5bad18..2f84b68 100644 --- a/src/main/java/com/ejclaw/videoplayer/command/VideoStickCommand.java +++ b/src/main/java/com/ejclaw/videoplayer/command/VideoStickCommand.java @@ -6,13 +6,18 @@ import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.Commands; import net.minecraft.network.chat.Component; import net.minecraft.server.level.ServerPlayer; +import net.minecraft.server.permissions.Permissions; import net.minecraft.world.item.ItemStack; public final class VideoStickCommand { private VideoStickCommand() {} public static void register(CommandDispatcher dispatcher) { + // OP/console/command-block 만 사용 가능. Permissions.COMMANDS_GAMEMASTER = level 2, + // 즉 /op 받은 플레이어(level 4) 와 콘솔(level 4), command block(default level 2) 통과. + // 일반 플레이어(level 0) 는 탭 자동완성에도 안 떠야 정상. dispatcher.register(Commands.literal("videoStick") + .requires(s -> s.permissions().hasPermission(Permissions.COMMANDS_GAMEMASTER)) .executes(ctx -> run(ctx.getSource()))); }