Code Monkey home page Code Monkey logo

permissionapi's Introduction

PermissionAPI

Powerful permission API plugin for LiteLoaderBDS

Installation

  1. Download Permission-X.X.X.zip from Releases
  2. Unzip the whole zip file into /path/to/bds/plugins
  3. Start the server.

Usage

Command System

Type /help perm to get the following usage in-game or in-console

perm:
Permission role system
Usage:
- /perm
- /perm add member <name1: string> <name2: string>
- /perm add perm <name1: string> <name2: string> [enabled: Boolean] [extraJson: text]
- /perm create perm <name1: string> [description: string]
- /perm create role <name1: string> [display name: string] [priority: int]
- /perm delete perm <name1: string>
- /perm delete role <name1: string>
- /perm list perm
- /perm list role
- /perm rm member <name1: string> <name2: string>
- /perm rm perm <name1: string> <name2: string>
- /perm role <name1: string>
- /perm role <name1: string> add member <name2: string>
- /perm role <name1: string> add perm <name2: string>
- /perm role <name1: string> add perm <name2: string> [enabled: Boolean] [extraJson: text]
- /perm role <name1: string> rm member <name2: string>
- /perm role <name1: string> set perm <name2: string> [enabled: Boolean] [extraJson: text]
- /perm role <name1: string> set priority [priority: int]
- /perm set perm <name1: string> <name2: string> [enabled: Boolean] [extraJson: text]
- /perm set priority <name1: string> [priority: int]
- /perm update player <name1: string> add role <name2: string>
- /perm update player <name1: string> rm role <name2: string>
- /perm update role <name1: string> add member <name2: string>
- /perm update role <name1: string> add perm <name2: string> [enabled: Boolean] [extraJson: text]
- /perm update role <name1: string> rm member <name2: string>
- /perm update role <name1: string> rm perm <name2: string>
- /perm update role <name1: string> set display_name [display name: string]
- /perm update role <name1: string> set perm <name2: string> [enabled: Boolean] [extraJson: text]
- /perm update role <name1: string> set priority [priority: int]
- /perm view perm <name1: string>
- /perm view player <name1: string>
- /perm view role <name1: string>

Command Parameters

  • name1: String
    The first target name. Whether this parameter is a role name or a player name or something else depends on the TargetType parameter preceding it.
    For example, /perm view role RoleName /perm create perm PermName /perm update role RoleName add member PlayerName
  • name2: String
    The second target name, same as name1.
  • description: String
    The description of a role or permission.
  • display name: String
    The display name of a role.
  • priority: Integer
    The priority of a role.
  • enabled: Boolean
    Enable an permission or not for a role.
  • extraJson: RawText
    The extra json data for the permission in the role.

Data File

The data file of PermissionAPI is at /path/to/bds/plugins/PermissionAPI/data.json

The file content is like:

{
    "permissionsInfo": {
        "PermissionAPI:cmd_control": {
            "desc": "Access to /perm commands"
        }
    },
    "roles": {
        "admin": {
            "permissions": {},
            "displayName": "§cadmin",
            "members": [
                "2535431384473425"
            ],
            "priority": 2147483647
        },
        "everyone": {
            "permissions": {},
            "displayName": "§7everyone",
            "priority": 0
        }
    }
}

Obviously, json["permissionsInfo"] stores information of all the permissions, including the description. And json["roles] stores all the roles.
It is not recommended to modify the data file directly. Please use command

Internationalization

Language File

The language file is at /path/to/bds/plugins/PermissionAPI/lang.json

It is like:

{
    "lang_KEY": {
        "LANGKEY {}": "TRANSLATION {}"
    },
    "zh_CN": {
        "Player not found.": "找不到玩家"
    }
}

permissionapi's People

Contributors

dreamguxiang avatar jasonzyt avatar oeotyan avatar shrbox avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

quizhizhe

permissionapi's Issues

LL权限组无法正确加载数据文件中的权限信息

环境

在llse的qiuckjs环境中进行的测试
LiteLoader版本 2.9.2
PermissionAPI版本 v2.9.0

发生了什么

LL权限组无法正确加载数据文件中的权限信息。

复现

第一步

编写并运行如下QJS插件 运行的输出见代码内的注释

log(Permission.permissionExists("test:test"));
// 第一次启动本插件 这里输出 0  符合期待

try {
    Permission.registerPermission("test:test", "test");
} catch (error) {
    log(error);
    // 第一次启动本插件 未发现本输出  符合期待
}

log(Permission.permissionExists("test:test"));
// 第一次启动本插件 这里输出 1  符合期待

第二步

输入perm list perm得到以下输出

23:03:01 INFO [Server] 权限列表:
23:03:01 INFO [Server] * PermissionAPI:cmd_control: Access to /perm commands
23:03:01 INFO [Server] * test:test: test

输入stop关闭服务器。
查看\plugins\PermissionAPI\data.json
此时内容如下

{
    "permissions": {
        "PermissionAPI:cmd_control": {
            "desc": "Access to /perm commands"
        },
        "test:test": {
            "desc": "test"
        }
    },
    "roles": {
        "admin": {
            "displayName": "§cadmin",
            "members": [],
            "permissions": {},
            "priority": 2147483647
        },
        "everyone": {
            "displayName": "§7everyone",
            "permissions": {},
            "priority": 0
        }
    }
}

如果需要此时的相关文件的原始文件,下载这个
plugins-firstTimeRun.zip

第三步

再次启动服务器,并观察插件输出,结果如下(依旧采用代码内注释的形式标注)

log(Permission.permissionExists("test:test"));
// 第二次启动本插件 这里输出 1  不符合期待

try {
    Permission.registerPermission("test:test", "test");
} catch (error) {
    log(error);
    // 第二次启动本插件 未发现本输出  不符合期待
}

log(Permission.permissionExists("test:test"));
// 第二次启动本插件 这里输出 1  符合期待

查看\plugins\PermissionAPI\data.json 发现内容与之前相同

第四步

移除测试插件
启动服务器
启动后,输入perm list perm
得到如下输出

23:08:19 INFO [Server] 权限列表:
23:08:19 INFO [Server] * PermissionAPI:cmd_control: Access to /perm commands

此时文件\plugins\PermissionAPI\data.json内容为

{
    "permissions": {
        "PermissionAPI:cmd_control": {
            "desc": "Access to /perm commands"
        }
    },
    "roles": {
        "admin": {
            "displayName": "§cadmin",
            "members": [],
            "permissions": {},
            "priority": 2147483647
        },
        "everyone": {
            "displayName": "§7everyone",
            "permissions": {},
            "priority": 0
        }
    }
}

综上所述

LL权限组无法正确加载数据文件中的权限信息。

补充信息:第四步是我写到这里时才想起来补充的,所得结果使得上序步骤意义不明,但是我懒得删了,所以就留着吧,希望没有给阅读带来挑战

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.