- 12
- 2
Приветствую мне нужна помощь с уровнями доступа в командах. Я в своем моде хочу чтобы все команды были доступны с уровнем 0.
На данный момент я смог добиться только то, что в одиночной игре спадает запрет, а сетевой нет, там по преждему пишет что прав не достаточно.
Помогите пожалуйста, как сделать так, чтобы сервер тоже давал выполнять команды игрокам с уровнем доступа 0.
На данный момент я смог добиться только то, что в одиночной игре спадает запрет, а сетевой нет, там по преждему пишет что прав не достаточно.
CityCommandHandler:
package com.example.examplemod;
import net.minecraft.command.CommandBase;
import net.minecraft.command.CommandException;
import net.minecraft.command.ICommandSender;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.util.text.TextComponentString;
public class CityCommandHandler extends CommandBase {
@Override
public String getName() {
return "city";
}
@Override
public String getUsage(ICommandSender sender) {
return "/city <new|claim|unclaim|join|leave|info|list|delete|invite|kick|rank|closejoin|openjoin|toggle>";
}
// Указываем, что для всех команд, которые наследуют этот класс, требуемый уровень прав - 0
@Override
public int getRequiredPermissionLevel() {
return 0; // Уровень доступа 0 для всех игроков
}
@Override
public boolean checkPermission(MinecraftServer server, ICommandSender sender) {
return true; // Игнорируем стандартную проверку прав
}
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
if (!(sender instanceof EntityPlayer)) {
throw new CommandException("Only players can use this command.");
}
EntityPlayer player = (EntityPlayer) sender;
ChunkPos playerChunk = new ChunkPos(player.getPosition());
if (args.length == 0) {
throw new CommandException("You must specify a subcommand.");
}
switch (args[0].toLowerCase()) {
case "new":
CityManager.createCity(player, args, server);
break;
case "claim":
CityManager.claimChunk(player, playerChunk);
break;
case "unclaim":
CityManager.unclaimChunk(player, playerChunk);
break;
case "join":
CityManager.joinCity(player, args);
break;
case "leave":
CityManager.leaveCity(player, server);
break;
case "info":
CityManager.cityInfo(sender, args);
break;
case "list":
CityManager.cityList(sender);
break;
case "delete":
CityManager.deleteCity(player, server);
break;
case "invite":
CityManager.invitePlayer(player, args, server);
break;
case "kick":
CityManager.kickPlayer(player, args, server);
break;
case "rank":
if (args.length < 4) throw new CommandException("Usage: /city rank <add|remove> <player> <rank>");
CityManager.manageRanks(player, args);
break;
case "closejoin":
CityManager.closeJoin(player, server);
break;
case "openjoin":
CityManager.openJoin(player, server);
break;
case "toggle":
if (args.length < 3) throw new CommandException("Usage: /city toggle <mobspawn|explosions|pvp> <on|off>");
toggleCityFeature(player, args[1], args[2]);
break;
default:
throw new CommandException("Invalid subcommand.");
}
}
Помогите пожалуйста, как сделать так, чтобы сервер тоже давал выполнять команды игрокам с уровнем доступа 0.