Add a permission level requirement for the /race command

This commit is contained in:
Sollace 2023-01-21 23:27:23 +00:00
parent 47e8995ad8
commit 1ca7407642
2 changed files with 14 additions and 2 deletions

View file

@ -20,8 +20,10 @@ public class Commands {
CommandRegistrationCallback.EVENT.register((dispatcher, access, environment) -> { CommandRegistrationCallback.EVENT.register((dispatcher, access, environment) -> {
RacelistCommand.register(dispatcher); RacelistCommand.register(dispatcher);
EmoteCommand.register(dispatcher); EmoteCommand.register(dispatcher);
if (Unicopia.getConfig().enableCheats.get() || environment.dedicated) {
SpeciesCommand.register(dispatcher, environment);
}
if (Unicopia.getConfig().enableCheats.get()) { if (Unicopia.getConfig().enableCheats.get()) {
SpeciesCommand.register(dispatcher);
GravityCommand.register(dispatcher); GravityCommand.register(dispatcher);
DisguiseCommand.register(dispatcher, access); DisguiseCommand.register(dispatcher, access);
if (Debug.DEBUG_COMMANDS) { if (Debug.DEBUG_COMMANDS) {

View file

@ -1,6 +1,7 @@
package com.minelittlepony.unicopia.command; package com.minelittlepony.unicopia.command;
import com.minelittlepony.unicopia.Race; import com.minelittlepony.unicopia.Race;
import com.minelittlepony.unicopia.Unicopia;
import com.minelittlepony.unicopia.entity.player.Pony; import com.minelittlepony.unicopia.entity.player.Pony;
import com.mojang.brigadier.CommandDispatcher; import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.builder.LiteralArgumentBuilder; import com.mojang.brigadier.builder.LiteralArgumentBuilder;
@ -9,6 +10,7 @@ import net.minecraft.command.argument.EntityArgumentType;
import net.minecraft.command.argument.RegistryKeyArgumentType; import net.minecraft.command.argument.RegistryKeyArgumentType;
import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.server.command.CommandManager; import net.minecraft.server.command.CommandManager;
import net.minecraft.server.command.CommandManager.RegistrationEnvironment;
import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.command.ServerCommandSource;
import net.minecraft.text.MutableText; import net.minecraft.text.MutableText;
import net.minecraft.text.Text; import net.minecraft.text.Text;
@ -17,9 +19,17 @@ import net.minecraft.util.Identifier;
import net.minecraft.world.GameRules; import net.minecraft.world.GameRules;
class SpeciesCommand { class SpeciesCommand {
static void register(CommandDispatcher<ServerCommandSource> dispatcher) { static void register(CommandDispatcher<ServerCommandSource> dispatcher, RegistrationEnvironment environment) {
LiteralArgumentBuilder<ServerCommandSource> builder = CommandManager.literal("race"); LiteralArgumentBuilder<ServerCommandSource> builder = CommandManager.literal("race");
if (environment.dedicated) {
if (Unicopia.getConfig().enableCheats.get()) {
builder = builder.requires(source -> source.hasPermissionLevel(2));
} else {
builder = builder.requires(source -> source.hasPermissionLevel(4));
}
}
RegistryKeyArgumentType<Race> raceArgument = Race.argument(); RegistryKeyArgumentType<Race> raceArgument = Race.argument();
builder.then(CommandManager.literal("get") builder.then(CommandManager.literal("get")