Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package constitution.permissions;
- import java.util.Map;
- import java.util.UUID;
- import java.util.WeakHashMap;
- import constitution.ConstitutionMain;
- import constitution.chat.channels.Channel;
- import constitution.commands.engine.CommandManager;
- import constitution.commands.engine.CommandTemplate;
- import constitution.configuration.ChannelConfig;
- import constitution.configuration.GroupConfig;
- import constitution.configuration.UserConfig;
- import net.minecraft.command.ICommand;
- import net.minecraft.command.ICommandSender;
- import net.minecraft.entity.player.EntityPlayer;
- import net.minecraftforge.fml.common.FMLCommonHandler;
- import net.minecraftforge.server.permission.DefaultPermissionLevel;
- import net.minecraftforge.server.permission.PermissionAPI;
- public class PermissionManager {
- public static final String DEFAULT_COMMAND_NODE = "command.";
- public static final String PERM_COMMANDBLOCK = "commandblock";
- private final PermissionProvider permProvider = new PermissionProvider();
- public final Group.Container groups = new Group.Container();
- public final User.Container users = new User.Container();
- public final Channel.Container channels = new Channel.Container();
- private final GroupConfig groupConfig = new GroupConfig(ConstitutionMain.CONFIG_FOLDER + "JSON/Groups.json");
- private final UserConfig userConfig = new UserConfig(ConstitutionMain.CONFIG_FOLDER + "JSON/Users.json");
- private final ChannelConfig channelConfig = new ChannelConfig(ConstitutionMain.CONFIG_FOLDER + "JSON/Channels.json");
- protected static Map<ICommand, String> commandPermissions = new WeakHashMap<ICommand, String>();
- public PermissionManager() {
- }
- public void preInitialization() {
- PermissionAPI.setPermissionHandler(permProvider);
- }
- public void serverLoad() {
- loadConfigs();
- }
- public void registerDefaultPermissions() {
- permProvider.registerNode(PERM_COMMANDBLOCK, DefaultPermissionLevel.OP, "CommandBlock");
- }
- public void registerPermission(String permission, DefaultPermissionLevel level, String description) {
- permProvider.registerNode(permission, level, description);
- }
- public void registerServerCommandPermissions() {
- @SuppressWarnings("unchecked")
- Map<String, ICommand> commands = FMLCommonHandler.instance().getMinecraftServerInstance().getCommandManager().getCommands();
- for (ICommand command : commands.values())
- if (!commandPermissions.containsKey(command))
- registerCommandPermission(command);
- }
- public void registerCommandPermission(ICommand command) {
- registerPermission(getCommandPermission(command), getCommandPermissionLevel(command), CommandManager.getDescriptionForCommand(command.getName()));
- }
- public String getCommandPermission(ICommand command) {
- String node = "";
- if (commandPermissions.keySet().contains(command)) {
- node = commandPermissions.get(command);
- } else {
- if (CommandManager.getPermForCommand(command.getName())!=null) {
- node = CommandManager.getPermForCommand(command.getName());
- } else {
- node = DEFAULT_COMMAND_NODE + command.getName();
- }
- }
- return node;
- }
- public DefaultPermissionLevel getCommandPermissionLevel(ICommand command) {
- if (command instanceof CommandTemplate) {
- CommandTemplate cmd = (CommandTemplate) command;
- if (cmd != null) {
- return cmd.getPermissionLevel();
- }
- }
- return DefaultPermissionLevel.NONE;
- }
- public Boolean hasPermission(UUID uuid, String node) {
- return null;
- }
- public boolean checkPermission(PermissionContext context, String permission) {
- return permProvider.hasPermission(context.getPlayer().getGameProfile(), permission, context);
- }
- public boolean checkPermission(EntityPlayer player, String permission) {
- return checkPermission(new PermissionContext(player), permission);
- }
- public boolean checkPermission(ICommandSender sender, ICommand command, String permission) {
- return checkPermission(new PermissionContext(sender, command), permission);
- }
- public boolean checkPermission(ICommandSender sender, ICommand command) {
- return checkPermission(new PermissionContext(sender, command), getCommandPermission(command));
- }
- public boolean checkPermission(ICommandSender sender, String permission) {
- return checkPermission(new PermissionContext(sender), permission);
- }
- public void loadConfigs() {
- groups.clear();
- users.clear();
- channels.clear();
- groupConfig.init(groups);
- userConfig.init(users);
- channelConfig.init(channels);
- }
- public void saveConfigs() {
- groupConfig.write(groups);
- userConfig.write(users);
- channelConfig.write(channels);
- }
- public void saveGroups() {
- groupConfig.write(groups);
- }
- public void saveUsers() {
- userConfig.write(users);
- }
- public void saveChannels() {
- channelConfig.write(channels);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement