All Projects → Karlatemp → LuckPerms-Mirai

Karlatemp / LuckPerms-Mirai

Licence: AGPL-3.0 license
LuckPerms on MiraiConsole

Programming Languages

kotlin
9241 projects
java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to LuckPerms-Mirai

mirai-setu
一个mirai-console的简单的色图插件
Stars: ✭ 105 (+81.03%)
Mutual labels:  mirai, mirai-console, mirai-plugin
mirai-console-lolicon
基于LoliconAPI的mirai-console涩图插件
Stars: ✭ 165 (+184.48%)
Mutual labels:  mirai-console, mirai-plugin
Application
一个可自定义的,基于Graia和Mirai的集群管、功能、娱乐为一体的QQ插件式机器人
Stars: ✭ 55 (-5.17%)
Mutual labels:  mirai, mirai-console
Mirai-MCPingPlugin
用Mirai机器人获取MC服务器信息并发送
Stars: ✭ 32 (-44.83%)
Mutual labels:  mirai, mirai-plugin
sagiri-bot
基于Graia Ariadne和Mirai的QQ机器人 SAGIRI-BOT
Stars: ✭ 557 (+860.34%)
Mutual labels:  mirai, mirai-console
mirai
The Mirai malware modified for use on NCL/a virtual/simulated environment.
Stars: ✭ 32 (-44.83%)
Mutual labels:  mirai
rbac-tool
Rapid7 | insightCloudSec | Kubernetes RBAC Power Toys - Visualize, Analyze, Generate & Query
Stars: ✭ 546 (+841.38%)
Mutual labels:  permissions
advancedPermissionHandler
This Android library is for handle running time permissions in simplest way!
Stars: ✭ 13 (-77.59%)
Mutual labels:  permissions
spicedb
Open Source, Google Zanzibar-inspired fine-grained permissions database
Stars: ✭ 3,358 (+5689.66%)
Mutual labels:  permissions
permissionsql
🔏 Middleware for keeping track of users, login states and permissions
Stars: ✭ 58 (+0%)
Mutual labels:  permissions
pcr-team
PCR公会战全自动报刀机器人,公会战数据分析等
Stars: ✭ 20 (-65.52%)
Mutual labels:  mirai
kotlin-permissions
An Android library, written in Kotlin, which helps avoid boilerplate code when your request runtime permissions.(KotlinPermissions)
Stars: ✭ 56 (-3.45%)
Mutual labels:  permissions
rbac
Simple RBAC/ACL for Laravel 8 caching and permission groups.
Stars: ✭ 43 (-25.86%)
Mutual labels:  permissions
fthx-bot
/色图 以图搜图 明日方舟关卡物品查询/基于mirai - Graia
Stars: ✭ 16 (-72.41%)
Mutual labels:  mirai
FuyaoBot
A QQ bot bases on Mirai, Spring Boot, MySQL and Mybatis Plus.
Stars: ✭ 30 (-48.28%)
Mutual labels:  mirai
React-Express-JWT-UserPortal
React.js & Express.js User portal Using Core UI, JWT, JWT Token, Refresh Token, Role & Permission management, User manamgenet, Event Log.
Stars: ✭ 22 (-62.07%)
Mutual labels:  permissions
graphql authorize
Authorization helpers for ruby-graphql fields
Stars: ✭ 23 (-60.34%)
Mutual labels:  permissions
ngx-access
Add access control to your components using hierarchical configuration with logical expressions.
Stars: ✭ 21 (-63.79%)
Mutual labels:  permissions
WMagicBotR
基于Mirai 使用 java开发的 bot框架,在消息事件下封装了指令/权限指令 方便调用,内置公主连接/公主连结工会战功能
Stars: ✭ 40 (-31.03%)
Mutual labels:  mirai
PermissionManager
This Library automatically search for permission in androidmanifests file and request for the same
Stars: ✭ 45 (-22.41%)
Mutual labels:  permissions

LuckPerms Mirai

View Plugin Site: https://mirai.mamoe.net/topic/68/

不支持在 Android 系统上运行


Snapshot

0.png 1.png 2.png 3.png


Install

Way 1. By MCL: mcl --update-package io.github.karlatemp:luckperms --channel nightly --type plugin

Way 2. Download release from Releases. Then put it into plugins

Usages

LuckPerms-Mirai 基于 LuckPerms 开发, 详细用法请百度/谷歌/阅读 LuckPerms wiki

LuckPerms wiki

LuckPerms-Mirai 的身份上下文使用 context 实现, 可以在聊天中使用 /lp user <****> info 查看上下文

下面是一些示例命令

// 授予群聊管理员(包含群主)一项权限
/lp group default permission set AdminPermission admin=true

// 授予群主一条权限
/lp group default permission set OwnerPermission level=owner

// 授予管理员(不含群主)一条权限
/lp group default permission set OwnerPermission level=admin

// 授予在某个群的所有人一条权限
/lp group default permission set PermissionInGroup group=1234567890

// 授予某个群的群聊管理员一条权限
/lp group default permission set PermissionInGroup group=1234567890 admin=true


// 创建系统管理组
/lp creategroup root
/lp group root permission set *
/lp user 1234567890 parent set root

// 开启权限调试模式 (debug(verbose) mode)
// WARNING: Dont run this command in chatting
/lp verbose on

// 开启权限调试模式 (debug(verbose) mode), 并在 Web 查看
/lp verbose record
//WAIT.....
/lp verbose upload

实现细节

对于 Mirai-Console Permission System. Permission有以下内容

  • Permission本身
  • Permission的父Permission

对于 Mirai-Console Built-In PermissionSystem. 他会有以下行为

  • 如果可以拥有权限的对象(Permittee) 拥有 Permission 或者 Permission的任何一级parent, 那么代表此 Permittee 拥有这个权限

对于 LuckPerms-Mirai, 会有以下行为

  • 获取当前权限节点状态
  • 如果权限节点是已设置的, 返回该权限节点的状态
  • 如果当前节点已经是 Root 权限节点, 中断, 判断为没有权限
  • 重新检查该权限节点的parent
  • 特别的, Console 拥有全部权限

LuckPerms 采用拦截式的权限判断.

  • 设: 当前需要判断的权限对象拥有的权限为 *=true, deny=false
  • 那么该对象拥有除了 deny 之外的全部权限

Dev

特别权限节点

LuckPerms Mirai 提供了一些特别的权限节点(权限ID), namespace:id 在对应代码中为 PermissionId(namespace, id)

  • 对于 *:*, LuckPerms-Mirai会直接识别成 *, 代表 ROOT
  • 对于 <lp>:%, LuckPerms-Mirai 会直接返回true, 代表没有权限检查
    • <lp>.<void><lp>.% 拥有相同效果
  • 对于 namespace:(PermissionId(namespace, "")), LuckPerms-Mirai 会识别成 namespace 而不是 namespace.
  • 对于 <lp>.<console>, 只有控制台拥有该权限, 将执行权限设置成 <lp>.<console> 可确保只有 Console 可执行
  • PermissionService#register
    • 对于 parentId为 <lp>:# 的权限, LuckPerms-Mirai 将直接提供权限节点并不进行任何注册检查, 父权限指定

如何使用

  • 正常接入Mirai-Console Permission System即可
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].