Yet another asynchronous permission management plugin for PocketMine-MP.

Overview

GroupsAPI

Yet another asynchronous permission management plugin for PocketMine-MP.

Features

  • Developer-friendly API
  • Temporary rank/group support
  • Multiple Group/Rank support
  • Priority system like Discord (which means the user who has highest priority cannot add/edit/remove group if their group priority is higher than the group's priority)
  • Many configurations support

Commands

Command Description Permission
/addgroup <player> <group> Add a player to a group groupsapi.command.addgroup
/removegroup <player> <group> Remove a player from a group groupsapi.command.removegroup
/checkgroup <player> Check a player's group groupsapi.command.checkgroup
/editgroup <group> Edit a group groupsapi.command.editgroup
/group <group> Shows group info groupsapi.command.group
/groups Shows all groups groupsapi.command.groups
/newgroup <group> Create a new group groupsapi.command.newgroup
/permissions <index> Check a permission list groupsapi.command.permissions
/pcheck <player> Check a player's group groupsapi.command.pcheck
/tempgroup <player> <group> <date format> Give a temporary group to player groupsapi.command.tempgroup

ScoreHud Integration

This plugin supports ScoreHud plugin.

You can get player's highest group by adding {groupsapi.group} to ScoreHud's scoreboard setting.

TODO

  • Make all processes to UI
  • Add more commands
  • InfoAPI Support (Lazy to do, Please make support for this SOFe!)

If you have any idea, Please kindly open an issue on GitHub!

Comments
  • Crash

    Crash

    Error: Typed property alvin0319\GroupsAPI\GroupsAPI::$connector must not be accessed before initialization File: plugins/GroupsAPI-master/src/alvin0319/GroupsAPI/GroupsAPI Line: 230 Type: Error Backtrace: #0 pmsrc/src/plugin/PluginBase(119): alvin0319\GroupsAPI\GroupsAPI->onDisable() #1 pmsrc/src/plugin/PluginManager(487): pocketmine\plugin\PluginBase->onEnableStateChange(false) #2 plugins/GroupsAPI-master/src/alvin0319/GroupsAPI/GroupsAPI(105): pocketmine\plugin\PluginManager->disablePlugin(object alvin0319\GroupsAPI\GroupsAPI#25893) #3 pmsrc/src/plugin/PluginBase(117): alvin0319\GroupsAPI\GroupsAPI->onEnable() #4 pmsrc/src/plugin/PluginManager(448): pocketmine\plugin\PluginBase->onEnableStateChange(true) #5 pmsrc/src/Server(1419): pocketmine\plugin\PluginManager->enablePlugin(object alvin0319\GroupsAPI\GroupsAPI#25893) #6 pmsrc/src/Server(1024): pocketmine\Server->enablePlugins(object pocketmine\plugin\PluginEnableOrder#25742) #7 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#2, object pocketmine\utils\MainLogger#3, string[16] /home/container/, string[24] /home/container/plugins/) #8 pmsrc/src/PocketMine(327): pocketmine\server() #9 pmsrc(11): require(string[60] phar:///home/container/PocketMine-MP.phar/src/PocketMine.php)

    Code: [221] if($group === null){ [222] Await::g2c(GroupsAPI::getInstance()->getGroupManager()->registerGroup($value["name"], (int) $value["priority"], (array) json_decode($value["permissions"], true, 512, JSON_THROW_ON_ERROR))); [223] } [224] } [225] }); [226] }), 1200); [227] } [228] [229] protected function onDisable() : void{ [230] $this->connector->waitAll(); [231] $this->connector->close(); [232] } [233] [234] public function getGroupManager() : GroupManager{ [235] return $this->groupManager; [236] } [237] [238] public function getMemberManager() : MemberManager{ [239] return $this->memberManager; [240] }

    opened by iSpaceYT 7
  • op and deop

    op and deop

    Hello, by the config Option "Whether to remove op and deop command from the PocketMine.

    Recommend setting this to true to prevent any unwanted op/deop from being executed." kann ich false or true specify. In both cases we lock the op and deop command. :/

    bug 
    opened by usser1976 3
  • error

    error

    [10:18:28.355] [Server thread/CRITICAL]: alvin0319\GroupsAPI\libs\poggit\libasynql\base\QueueShutdownException: "You cannot schedule a query on an invalidated queue." (EXCEPTION) in "plugins/GroupsAPI_dev-13.phar/src/alvin0319/GroupsAPI/libs/poggit/libasynql/base/QuerySendQueue" at line 40

    opened by GamerMJay 3
  • Config just sucks

    Config just sucks

    I have created all the ranges including the permissions from the configuration and the plugin is simply ignoring it, no matter how well I have set it when using /groups in the groups, none of the permissions I have added to the groups appear

    Example:

      Ayudante:
        priority: 4
        permissions:
          - pocketmine.command.teleport
          - weather.command
          - pocketmine.command.time.set
          - pocketmine.command.teleport.self
          - pocketmine.command.teleport.other
    

    unknown (2)

    bug 
    opened by MrBlasyMSK 3
  • Pls 🙏 Fix

    Pls 🙏 Fix

    [12:28:36.107] [Server thread/CRITICAL]: TypeError: "alvin0319\GroupsAPI\GroupsAPI::getChatFormat(): Argument #1 ($group) must be of type string, null given, called in phar:///home/minecraft/plugins/GroupsAPI.phar/src/alvin0319/GroupsAPI/user/Member.php on line 248" (EXCEPTION) in "plugins/GroupsAPI.phar/src/alvin0319/GroupsAPI/GroupsAPI" at line 249

    opened by Asuna3244 1
  • All players are members

    All players are members

    Hello, I have the problem that players are displayed as "member" and not as the default group I set. In the config there is no group "member". Also, it cannot be deleted. Please message me on discord: Pinkii#1234

    opened by Pinkglitter2216 1
  • Support for factions plugin tags

    Support for factions plugin tags

    You could add support so that in the chat or in the nametag we can add the name of the faction or the level or the power as Purechat did. The current Factions plugins are FactionMaster / PiggyFactions

    opened by MrBlasyMSK 1
  • bug and opinion

    bug and opinion

    I have an opinion of what could be added and report a bug.

    What could be added is the function of putting a permission only for a specific player, it would open up a range of possibilities.

    And the bug that occurs is that the nametag only updates the player when he leaves and enters the server. Could you solve this?

    bug duplicate 
    opened by RazzyGP 1
  • Fixed ScoreHud integration

    Fixed ScoreHud integration

    See #16, users would expect only to have to wirte {groupsapi.group} to use the tag, but they actually have to write {{groupsapi.group}}.

    Also see: https://github.com/Ifera/ScoreHud/wiki/%5Bv6%5D-Tag-Handling-(LATEST)#step-4 Notice that curly brackets are not written when creating the ScoreTag object.

    opened by IvanCraft623 0
  • GroupsAPI crash whit VanillaX plugin

    GroupsAPI crash whit VanillaX plugin

    I wanted to use GroupsAPI to manage perms in my server, but when I added it, this happened Captura de pantalla (486) I don't know if the problem comes from VanillaX or GroupsAPI, but I will report it in both githubs, this is the GroupsAPI code error

    [Server thread/CRITICAL]: ErrorException: "Undefined variable $player" (EXCEPTION) in "plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/user/Member" at line 238
    --- Stack trace ---
      #0 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/user/Member(238): pocketmine\errorhandler\ErrorToExceptionHandler::handle(integer 2, string[26] Undefined variable $player, string[92] phar:///home/container/plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/use, integer 238)
      #1 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/user/Member(226): alvin0319\GroupsAPI\user\Member->applyNameTag()
      #2 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/user/Member(137): alvin0319\GroupsAPI\user\Member->updateGroups()
      #3 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/user/Member(79): alvin0319\GroupsAPI\user\Member->addGroup(object alvin0319\GroupsAPI\group\Group#571242, NULL )
      #4 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/user/MemberManager(88): alvin0319\GroupsAPI\user\Member->__construct(string[11] eltitopacks, array[1])
      #5 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/libs/poggit/libasynql/base/DataConnectorImpl(174): alvin0319\GroupsAPI\user\MemberManager->alvin0319\GroupsAPI\user\{closure}(array[0], array[0])
      #6 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/libs/poggit/libasynql/base/DataConnectorImpl(181): alvin0319\GroupsAPI\libs\poggit\libasynql\base\DataConnectorImpl::alvin0319\GroupsAPI\libs\poggit\libasynql\base\{closure}(object alvin0319\GroupsAPI\libs\poggit\libasynql\result\SqlSelectResult#597993)
      #7 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/libs/poggit/libasynql/base/DataConnectorImpl(239): alvin0319\GroupsAPI\libs\poggit\libasynql\base\DataConnectorImpl::alvin0319\GroupsAPI\libs\poggit\libasynql\base\{closure}(array[1])
      #8 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/libs/poggit/libasynql/base/SqlThreadPool(112): alvin0319\GroupsAPI\libs\poggit\libasynql\base\DataConnectorImpl->alvin0319\GroupsAPI\libs\poggit\libasynql\base\{closure}(array[1])
      #9 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/libs/poggit/libasynql/base/DataConnectorImpl(323): alvin0319\GroupsAPI\libs\poggit\libasynql\base\SqlThreadPool->readResults(array[2])
      #10 plugins/GroupsAPI_dev-10.phar/src/alvin0319/GroupsAPI/libs/poggit/libasynql/base/SqlThreadPool(65): alvin0319\GroupsAPI\libs\poggit\libasynql\base\DataConnectorImpl->checkResults()
      #11 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(123): alvin0319\GroupsAPI\libs\poggit\libasynql\base\SqlThreadPool->alvin0319\GroupsAPI\libs\poggit\libasynql\base\{closure}()
      #12 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
      #13 pmsrc/src/Server(1660): pocketmine\snooze\SleeperHandler->sleepUntil(double 1647727203.9803)
      #14 pmsrc/src/Server(1046): pocketmine\Server->tickProcessor()
      #15 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#2, object pocketmine\utils\MainLogger#3, string[16] /home/container/, string[24] /home/container/plugins/)
      #16 pmsrc/src/PocketMine(327): pocketmine\server()
      #17 pmsrc(11): require(string[60] phar:///home/container/PocketMine-MP.phar/src/PocketMine.php)
    --- End of exception information ---
    

    PHP: 8.0.16 Pocketmine Version: 4.2.4 OS: linux GroupsAPI Version: 1.0.0 (dev10)

    My rep in VanillaX plugin https://github.com/CLADevs/VanillaX/issues/162

    opened by MrBlasyMSK 0
  • Incorrect comparison table for hierarchy

    Incorrect comparison table for hierarchy

    Hierarchy supports multiple roles, and hierarchy(or in your case priority)

    see hierarchy's compaarison table https://github.com/CortexPE/Hierarchy

    also see for hierarchy https://github.com/CortexPE/Hierarchy/blob/8ac34cc2be075e8a475b8ab4743aa3b51807f183/src/CortexPE/Hierarchy/command/HierarchySubCommand.php#L76

    also see for multi role https://github.com/CortexPE/Hierarchy/blob/8ac34cc2be/src/CortexPE/Hierarchy/member/BaseMember.php#L179-L181

    documentation 
    opened by Thunder33345 0
  • ranks reset after relogging/server restart

    ranks reset after relogging/server restart

    the rank u have resets back to the default rank which is member :example: i am owner rank when i relog or server restart it resets back to member (i am using the latest version which is 2.0.0)

    opened by OmarFayad2010 0
  • Suggestion

    Suggestion

    Suggestion: add languages ​​folder so that people like me who are from Brazil, add their own language instead of having to extract the plugin to do this.

    enhancement 
    opened by Nexus9w9 0
  • Priorities Don't Work

    Priorities Don't Work

    My priority system doesn't work for my ranks. I believe I have done the config correctly, the image is attached.

    In-Game Explorer overrules Hades/Atlas rank, and shows Explorer even though they are set to Hades/Atlas, I have to remove the explorer to allow the hades/atlas to show. image

    bug unconfirmed 
    opened by YT-Duckyyy 1
Owner
19-years old kid who loves open source, Prefer to use Kotlin and PHP.
null
The easiest and most intuitive way to add access management to your Filament Resource Models through `spatie/laravel-permission`

Filament Shield The easiest and most intuitive way to add access management to your Filament Resource Models (more coming soon ?? ) One Plugin to rule

Bezhan Salleh 329 Jan 2, 2023
A user, group, role and permission management for Codeigniter 4

CI4-Auth CI4-Auth is a user, group, role and permission management library for Codeigniter 4. CI4-Auth is based on the great Myth-Auth library for Cod

George Lewe 15 Dec 16, 2022
permission generation for all your declared routes with corresponding controller action

Permissions Generator This package add some artisan command to help generating permissions for your declared routes. Each route should have an alias (

Diagana Mouhamed Fadel 4 Nov 30, 2022
This package helps you to associate users with permissions and permission groups with laravel framework

Laravel ACL This package allows you to manage user permissions and groups in a database, and is compatible with Laravel v5.8 or higher. Please check t

Mateus Junges 537 Dec 28, 2022
Nginx FastCGI Fix Permission

Nginx FastCGI Fix Permission Table of Contents About How it works Installation Changelog Contributing License About This library was born with the obj

Ejetar 3 Mar 14, 2022
Tools for checking malware, permission of file php and any on website

webtools Tools for checking malware, permission of file php and any on website You can use the webtools.php file directly. All features can be accesse

ForDeveloperTools 3 Jun 14, 2022
Hierarchical Rol-Permission Based Laravel Auth Package with Limitless Hierarchical Level of Organizations

AAuth for Laravel Hierarchical Rol-Permission Based Laravel Auth Package with Limitless Hierarchical Level of Organizations Features Organization Base

Aurora Web Software Team 23 Dec 27, 2022
Redirects any user which hasn't setup two factor authentication yet to /2fa/

force-two-factor Redirects any user which hasn't setup two factor authentication yet to /2fa/. Use together with the forked two-factor plugin at https

Aiwos 0 Dec 24, 2021
A support-rich server software for Minecraft Bedrock Edition based on PocketMine-MP.

A support-rich server software for Minecraft Bedrock Edition based on PocketMine-MP. Credits @ItzLightyHD -> Adding features to OpenTouch (new API, mo

ApexieDevelopment 27 Aug 31, 2021
LDAP Authentication & Management for Laravel

?? Hey there! Looking for something even easier to use for LDAP integration in your Laravel applications? ?? Introducing LdapRecord ?? LdapRecord is t

null 894 Dec 28, 2022
Armor - User and Session Management

User and session management. Provides solid base foundation for development of custom user management system.

Matt Dizak 3 Apr 13, 2022
UserFrosting is a secure, modern user management system written in PHP and built on top of the Slim Microframework, Twig templating engine, and Eloquent ORM.

UserFrosting is a secure, modern user management system written in PHP and built on top of the Slim Microframework, Twig templating engine, and Eloquent ORM.

UserFrosting 1.6k Jan 1, 2023
Example of user management in Nette

User Authentication (Nette example) Example of user management. User login, registration and logout (SignPresenter) Command line registration (bin/cre

null 8 Nov 6, 2022
Laravel Auth is a Complete Build of Laravel 8 with Email Registration Verification, Social Authentication, User Roles and Permissions, User Profiles, and Admin restricted user management system.

Laravel Auth is a Complete Build of Laravel 8 with Email Registration Verification, Social Authentication, User Roles and Permissions, User Profiles, and Admin restricted user management system. Built on Bootstrap 4.

Jeremy Kenedy 2.8k Dec 31, 2022
Tech-Admin is Laravel + Bootstrap Admin Panel With User Management And Access Control based on Roles and Permissions.

Tech-Admin | Laravel 8 + Bootstrap 4 Tech-Admin is Admin Panel With Preset of Roles, Permissions, ACL, User Management, Profile Management. Features M

TechTool India 39 Dec 23, 2022
API stubs for developing a plugin that provides a 2FA authentication factor in JobRouter®.

Authentication Factor API JobRouter® is a scalable digitisation platform which links processes, data and documents. Starting with JobRouter® 5.2, a se

JobRouter 4 Nov 4, 2021
A plugin for implementing an OAuth2 server in CakePHP 3

OAuth2 Server for CakePHP 3 A plugin for implementing an OAuth2 server in CakePHP 3. Built on top of the PHP League's OAuth2 Server. Currently we supp

uAfrica Technologies (Pty) Ltd 50 Oct 28, 2022
CakeDC Auth Objects is a refactor of the existing Auth objects present in the CakeDC Users Plugin, to let anyone else use them in their projects.

CakeDC Auth Objects is a refactor of the existing Auth objects present in the CakeDC Users Plugin, to let anyone else use them in their projects.

Cake Development Corporation 24 Sep 23, 2022
An authorization library that supports access control models like ACL, RBAC, ABAC for webman plugin

An authorization library that supports access control models like ACL, RBAC, ABAC for webman plugin

PHP-Casbin 18 Dec 30, 2022