An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-MP.

Overview

👑 RankSystem 🔧

An amazing Rank and Permissions Manager

Description:

An amazing Rank and Permissions Manager. The best ranks manager for PocketMine-MP.

Commands

Command Description Permission
/ranks create Comming soon! ranksystem.commands
/ranks delete <rank> Delete a Rank. ranksystem.commands
/ranks edit <rank> Comming soon! ranksystem.commands
/ranks list Show all ranks list. ranksystem.commands
/ranks set <user> <rank> [expTime] Set a Rank to a User ranksystem.commands
/ranks remove <user> <rank> Remove a Rank of a User ranksystem.commands
/ranks setperm <user> <permission> Set a Permission to a User ranksystem.commands
/ranks removeperm <user> <permission> Remove a Permission of a User ranksystem.commands
/ranks perms <plugin> Show a list of all plugin permissions ranksystem.commands
/ranks credits Show RankSystem Credits ranksystem.commands

Features

  • Multiple Ranks per user support
  • Temp-ranks System
  • Easy Rank Creation / Edit System in-game
  • SQLite3 Provider Support
  • Yaml Provider Support
  • Ranks inheritance system to allow you to inherit group permissions
  • Permissions per User
  • Profile System
  • Provides simple and flexible API for plugin developers
  • And more...!

Project information

Version Pocketmine API PHP Status
0.0.1 PM4 & PM3 7.3 => 8 Functional
Comments
  • pocketmine\player\Player::addAttachment() int given instead of ?string

    pocketmine\player\Player::addAttachment() int given instead of ?string

    Error: pocketmine\player\Player::addAttachment(): Argument #2 ($name) must be of type ?string, int given, called in C:\PrideMC Network\plugins\RankSystem\src\IvanCraft623\RankSystem\session\Session.php on line 365
    File: pmsrc/src/permission/PermissibleDelegateTrait
    Line: 62
    Type: TypeError
    Backtrace:
    #0 plugins/RankSystem/src/IvanCraft623/RankSystem/session/Session(365): pocketmine\player\Player->addAttachment(object IvanCraft623\RankSystem\RankSystem#24955, integer 0, true)
    #1 plugins/RankSystem/src/IvanCraft623/RankSystem/session/Session(144): IvanCraft623\RankSystem\session\Session->updatePermissions()
    #2 plugins/RankSystem/src/IvanCraft623/RankSystem/session/Session(269): IvanCraft623\RankSystem\session\Session->syncPermissions(array[38])
    #3 pmsrc/src/promise/PromiseResolver(51): IvanCraft623\RankSystem\session\Session->IvanCraft623\RankSystem\session\{closure}(array[1])
    #4 plugins/RankSystem/src/IvanCraft623/RankSystem/provider/libasynql(151): pocketmine\promise\PromiseResolver->resolve(array[1])
    #5 plugins/RankSystem/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/DataConnectorImpl(124): IvanCraft623\RankSystem\provider\libasynql->IvanCraft623\RankSystem\provider\{closure}()
    #6 plugins/RankSystem/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/DataConnectorImpl(181): IvanCraft623\RankSystem\libs\poggit\libasynql\base\DataConnectorImpl::IvanCraft623\RankSystem\libs\poggit\libasynql\base\{closure}(object IvanCraft623\RankSystem\libs\poggit\libasynql\SqlResult#140126)
    #7 plugins/RankSystem/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/DataConnectorImpl(239): IvanCraft623\RankSystem\libs\poggit\libasynql\base\DataConnectorImpl::IvanCraft623\RankSystem\libs\poggit\libasynql\base\{closure}(array[1])
    #8 plugins/RankSystem/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/SqlThreadPool(112): IvanCraft623\RankSystem\libs\poggit\libasynql\base\DataConnectorImpl->IvanCraft623\RankSystem\libs\poggit\libasynql\base\{closure}(array[1])
    #9 plugins/RankSystem/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/DataConnectorImpl(323): IvanCraft623\RankSystem\libs\poggit\libasynql\base\SqlThreadPool->readResults(array[1])
    #10 plugins/RankSystem/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/SqlThreadPool(65): IvanCraft623\RankSystem\libs\poggit\libasynql\base\DataConnectorImpl->checkResults()
    #11 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(123): IvanCraft623\RankSystem\libs\poggit\libasynql\base\SqlThreadPool->IvanCraft623\RankSystem\libs\poggit\libasynql\base\{closure}()
    #12 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications()
    #13 pmsrc/src/Server(1661): pocketmine\snooze\SleeperHandler->sleepUntil(double 1655179203.4521)
    #14 pmsrc/src/Server(1047): pocketmine\Server->tickProcessor()
    #15 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#2, object pocketmine\utils\MainLogger#3, string[19] C:\PrideMC Network\, string[27] C:\PrideMC Network\plugins\)
    #16 pmsrc/src/PocketMine(327): pocketmine\server()
    #17 pmsrc(11): require(string[63] phar://C:/PrideMC Network/PocketMine-MP.phar/src/PocketMine.php)
    

    Why they returning int instead of string?

    Pocketmine Code:

    public function addAttachment(Plugin $plugin, ?string $name = null, ?bool $value = null) : PermissionAttachment{
            return $this->perm->addAttachment($plugin, $name, $value);
        }
    
    opened by xqwtxon 4
  • Prefix issues

    Prefix issues

    So i was wondering are prefix for different ranks suppose to merge so if you have two different ranks it gives you both prefixs cause thats a problem i feel that the rank with higher authority in the list is the only prefix that should show in chat an above players head idk if you under what i am saying hopefully you do

    opened by h20plex 3
  • MySQL Error

    MySQL Error

    Hello good evening, I have a small problem.

    I explain my problem a bit: I have 2 servers and one of the two is already connected and does not give an error, but the second is the one that gives me that error. I would greatly appreciate your help. And Excuse the English, but I'm using the google translator.

    This is what crashdumps tells me:

    Error: json_decode(): Argument #1 ($json) must be of type string, null given File: plugins/RankSystem_dev-30.phar/src/IvanCraft623/RankSystem/provider/UserData Line: 88 Type: TypeError Backtrace: #0 plugins/RankSystem_dev-30.phar/src/IvanCraft623/RankSystem/provider/UserData(88): json_decode(null, true) #1 plugins/RankSystem_dev-30.phar/src/IvanCraft623/RankSystem/provider/libasynql(73): IvanCraft623\RankSystem\provider\UserData::jsonDeserialize(array[3]) #2 plugins/RankSystem_dev-30.phar/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/DataConnectorImpl(174): IvanCraft623\RankSystem\provider\libasynql->IvanCraft623\RankSystem\provider{closure}(array[1], array[3]) #3 plugins/RankSystem_dev-30.phar/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/DataConnectorImpl(181): IvanCraft623\RankSystem\libs\poggit\libasynql\base\DataConnectorImpl::IvanCraft623\RankSystem\libs\poggit\libasynql\base{closure}(object IvanCraft623\RankSystem\libs\poggit\libasynql\result\SqlSelectResult#30592) #4 plugins/RankSystem_dev-30.phar/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/DataConnectorImpl(239): IvanCraft623\RankSystem\libs\poggit\libasynql\base\DataConnectorImpl::IvanCraft623\RankSystem\libs\poggit\libasynql\base{closure}(array[1]) #5 plugins/RankSystem_dev-30.phar/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/SqlThreadPool(112): IvanCraft623\RankSystem\libs\poggit\libasynql\base\DataConnectorImpl->IvanCraft623\RankSystem\libs\poggit\libasynql\base{closure}(array[1]) #6 plugins/RankSystem_dev-30.phar/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/DataConnectorImpl(323): IvanCraft623\RankSystem\libs\poggit\libasynql\base\SqlThreadPool->readResults(array[1]) #7 plugins/RankSystem_dev-30.phar/src/IvanCraft623/RankSystem/libs/poggit/libasynql/base/SqlThreadPool(65): IvanCraft623\RankSystem\libs\poggit\libasynql\base\DataConnectorImpl->checkResults() #8 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(123): IvanCraft623\RankSystem\libs\poggit\libasynql\base\SqlThreadPool->IvanCraft623\RankSystem\libs\poggit\libasynql\base{closure}() #9 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(82): pocketmine\snooze\SleeperHandler->processNotifications() #10 pmsrc/src/Server(1703): pocketmine\snooze\SleeperHandler->sleepUntil(float 1655364152.709) #11 pmsrc/src/Server(1063): pocketmine\Server->tickProcessor() #12 pmsrc/src/PocketMine(304): pocketmine\Server->__construct(object BaseClassLoader#2, object pocketmine\utils\MainLogger#3, string[23] D:\1-Helorum_1VS1Games, string[31] D:\1-Helorum_1VS1Games\plugins) #13 pmsrc/src/PocketMine(327): pocketmine\server() #14 pmsrc(11): require(string[67] phar://D:/1-Helorum_1VS1Games/PocketMine-MP.phar/src/PocketMine.php)

    Code: [79] * ranks: string, [80] * permissions: string, [81] * generationTime: ?int [82] * } $data [83] */ [84] public static function jsonDeserialize(array $data) : UserData { [85] return new UserData( [86] (string) $data["name"], [87] (array) (json_decode($data["ranks"], true)), [88] (array) (json_decode($data["permissions"], true)), [89] (int) ($data["generationTime"] ?? time()) [90] ); [91] } [92] }

    opened by JunSP13 2
  • Error

    Error

    Error: Call to undefined method IvanCraft623\RankSystem\RankSystem::loadCommands() File: plugins/RankSystem-PM4/src/IvanCraft623/RankSystem/RankSystem Line: 83 Type: Error

    opened by ProtectorYT364 1
  • Pureperms data not migrating

    Pureperms data not migrating

    [05:56:20.538] [Server thread/INFO]: Enabling RankSystem v1.1.0 [05:56:20.569] [Server thread/INFO]: [RankSystem] User provider was set to: sqlite [05:56:20.572] [Server thread/NOTICE]: [RankSystem] Migrating data from: PurePerms [05:56:20.572] [Server thread/WARNING]: [RankSystem] Failed to migrate data from PurePerms

    opened by Frostyyyyz 1
  • Suffix

    Suffix

    Hi, I just have an idea it will be soo cool to have a suffix option too. I mean if we can manage ranks directly from the game(or inside the ranks.yml), we have an option to edit prefix and I think it will be great if we'll be able to change player's suffix too. Thanks and I appreciate all work that you've put into this plugin, I LOVE IT!

    opened by dvodany 1
  • [Suggest] Two Suggestions

    [Suggest] Two Suggestions

    Hello! Welcome to two different suggestions! First off, add an option to disable multiple ranks, some people dont use it!

    Second off, make the Hierarchy act as PurePerm's inheritance feature as filling up ranks with unneeded perms is insanely annoying while the rank behind the other rank already has the perms.

    opened by ZZWILLIAMXXTrue 1
  • [Bug] Very Buggy

    [Bug] Very Buggy

    Hello! So while testing out permissions, I noticed that none of the permissions I gave the player works, only the permissions that are set to 'default: true' works!

    On top of that, players with spaces in there name dont have their rank changed, the only way to fix it is downloading NameSpaceRemover.

    opened by ZZWILLIAMXXTrue 1
  • I removed 2 ranks from a player and when I try to join back it gave me this error.

    I removed 2 ranks from a player and when I try to join back it gave me this error.

    [15:09:43] [Server thread/CRITICAL]: ErrorException: "Undefined offset: 0" (EXCEPTION) in "plugins/RankSystem.phar/src/IvanCraft623/RankSystem/session/Session" at line 116 [15:09:43] [Server thread/CRITICAL]: #0 plugins/RankSystem.phar/src/IvanCraft623/RankSystem/session/Session(116): pocketmine\utils\Utils::errorExceptionHandler(integer 8, string[19] Undefined offset: 0, string[107] phar://E:/Desktop/DevServer/archive/plugins/RankSystem.phar/src/IvanCraft623/Ran, integer 116, array[0]) [15:09:43] [Server thread/CRITICAL]: #1 plugins/RankSystem.phar/src/IvanCraft623/RankSystem/session/Session(283): IvanCraft623\RankSystem\session\Session->getNameTagFormat() [15:09:43] [Server thread/CRITICAL]: #2 plugins/RankSystem.phar/src/IvanCraft623/RankSystem/session/Session(217): IvanCraft623\RankSystem\session\Session->updateRanks() [15:09:43] [Server thread/CRITICAL]: #3 plugins/RankSystem.phar/src/IvanCraft623/RankSystem/command/RanksCommand(187): IvanCraft623\RankSystem\session\Session->removeRank(object IvanCraft623\RankSystem\rank\Rank) [15:09:43] [Server thread/CRITICAL]: #4 pmsrc/src/pocketmine/command/SimpleCommandMap(248): IvanCraft623\RankSystem\command\RanksCommand->execute(object pocketmine\Player, string[5] ranks, array[3]) [15:09:43] [Server thread/CRITICAL]: #5 pmsrc/src/pocketmine/Server(1809): pocketmine\command\SimpleCommandMap->dispatch(object pocketmine\Player, string[33] ranks remove TitaniumLB5671 Admin) [15:09:43] [Server thread/CRITICAL]: #6 pmsrc/src/pocketmine/Player(2353): pocketmine\Server->dispatchCommand(object pocketmine\Player, string[33] ranks remove TitaniumLB5671 Admin) [15:09:43] [Server thread/CRITICAL]: #7 pmsrc/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(239): pocketmine\Player->chat(string[34] /ranks remove TitaniumLB5671 Admin) [15:09:43] [Server thread/CRITICAL]: #8 pmsrc/src/pocketmine/network/mcpe/protocol/CommandRequestPacket(54): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleCommandRequest(object pocketmine\network\mcpe\protocol\CommandRequestPacket) [15:09:43] [Server thread/CRITICAL]: #9 pmsrc/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(109): pocketmine\network\mcpe\protocol\CommandRequestPacket->handle(object pocketmine\network\mcpe\PlayerNetworkSessionAdapter) [15:09:43] [Server thread/CRITICAL]: #10 pmsrc/src/pocketmine/network/mcpe/protocol/BatchPacket(130): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(object pocketmine\network\mcpe\protocol\CommandRequestPacket) [15:09:43] [Server thread/CRITICAL]: #11 pmsrc/src/pocketmine/network/mcpe/PlayerNetworkSessionAdapter(109): pocketmine\network\mcpe\protocol\BatchPacket->handle(object pocketmine\network\mcpe\PlayerNetworkSessionAdapter) [15:09:43] [Server thread/CRITICAL]: #12 pmsrc/src/pocketmine/Player(3325): pocketmine\network\mcpe\PlayerNetworkSessionAdapter->handleDataPacket(object pocketmine\network\mcpe\protocol\BatchPacket) [15:09:43] [Server thread/CRITICAL]: #13 pmsrc/src/pocketmine/network/mcpe/RakLibInterface(169): pocketmine\Player->handleDataPacket(object pocketmine\network\mcpe\protocol\BatchPacket) [15:09:43] [Server thread/CRITICAL]: #14 pmsrc/vendor/pocketmine/raklib/src/server/ServerHandler(95): pocketmine\network\mcpe\RakLibInterface->handleEncapsulated(string[15] 127.0.0.1 59173, object raklib\protocol\EncapsulatedPacket, integer 0) [15:09:43] [Server thread/CRITICAL]: #15 pmsrc/src/pocketmine/network/mcpe/RakLibInterface(109): raklib\server\ServerHandler->handlePacket() [15:09:43] [Server thread/CRITICAL]: #16 pmsrc/src/pocketmine/network/mcpe/RakLibInterface(99): pocketmine\network\mcpe\RakLibInterface->process() [15:09:43] [Server thread/CRITICAL]: #17 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(113): pocketmine\network\mcpe\RakLibInterface->pocketmine\network\mcpe{closure}() [15:09:43] [Server thread/CRITICAL]: #18 pmsrc/vendor/pocketmine/snooze/src/SleeperHandler(75): pocketmine\snooze\SleeperHandler->processNotifications() [15:09:43] [Server thread/CRITICAL]: #19 pmsrc/src/pocketmine/Server(2155): pocketmine\snooze\SleeperHandler->sleepUntil(double 1626793783.8164) [15:09:43] [Server thread/CRITICAL]: #20 pmsrc/src/pocketmine/Server(1992): pocketmine\Server->tickProcessor() [15:09:43] [Server thread/CRITICAL]: #21 pmsrc/src/pocketmine/Server(1586): pocketmine\Server->start() [15:09:43] [Server thread/CRITICAL]: #22 pmsrc/src/pocketmine/PocketMine(291): pocketmine\Server->__construct(object BaseClassLoader, object pocketmine\utils\MainLogger, string[29] E:\Desktop\DevServer\archive, string[37] E:\Desktop\DevServer\archive\plugins) [15:09:43] [Server thread/CRITICAL]: #23 pmsrc/src/pocketmine/PocketMine(321): pocketmine\server() [15:09:43] [Server thread/CRITICAL]: #24 pmsrc(11): require(string[84] phar://E:/Desktop/DevServer/archive/PocketMine-MP.phar/src/pocketmine/PocketMine)

    opened by NorixDevelopment 1
  • Use Commando virion

    Use Commando virion

    This PR completely rewrites the RankSystem command to use the virion Commando, bringing the following benefits:

    • Better code reading
    • Command auto-completion
    • Better user experience
    opened by IvanCraft623 0
  • Implement a queue to sync session data

    Implement a queue to sync session data

    Currently when making calls to the Session API would frequently cause data loss, as these calls can override data from other calls, the implementation of the queue fixes these problems.

    opened by IvanCraft623 0
Owner
Professional bug creator
null
The best announcer for PocketMine-MP 4.0 servers, make messages for your users very easily

BroadcastACM The best announcer for PocketMine-MP 4.0 servers, make messages for your users very easily. Make the best announcements for your server w

fernanACM 3 May 30, 2022
A plugin manager for PocketMine-MP downloads plugin from PocketMine-MP official plugin repository

oh-my-pmmp A plugin manager for PocketMine-MP Getting Started Prerequisites Your server MUST RUN the latest version of PocketMine. Installation From P

thebigcrafter 6 Jan 4, 2023
Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it’s possible to reflect the structure and permissions of your organization.

Admidio Admidio is a free open source user management system for websites of organizations and groups. The system has a flexible role model so that it

Admidio 212 Dec 30, 2022
Simple custom chat bot developing framework for telegram, qq and more in PHP (the best language)

RinoBot RinoBot 是一个为统一聊天机器人扩展开发的框架,编写一份插件用于多种机器人协议。 简体中文 | English ?? 开发中 ?? 暂不适用于生产环境 特性 插件扩展机制 一份代码运行于多平台多协议机器人 并减小开发难度 插件提供 Yaml 配置 供使用者修改 基于机器人 We

LixWorth 3 Apr 18, 2022
🎓 Collection of useful PHP frequently asked questions, articles and best practices

PHP.earth documentation These files are available online at PHP.earth. Contributing and license We are always looking forward to see your contribution

PHP.earth 278 Dec 27, 2022
An utility component for XML usage and best practices in PHP

An utility component for XML usage and best practices in PHP

Laminas Project 13 Nov 26, 2022
Your alter ego object. Takes the best of object and array worlds.

Supporting Opensource formapro\values is an MIT-licensed open source project with its ongoing development made possible entirely by the support of com

FormaPro 31 Jun 25, 2021
Enabling community-powered extension and improvements of the best time indications given.

Enabling community-powered extension and improvements of the best time indications given.

Digital Markethingz 2 Jun 29, 2022
This package implements 0-1 Knapsack Problem algorithm i.e. allows to find the best way to fill a knapsack of a specified volume with items of a certain volume and value.

This package implements "0-1 Knapsack Problem" algorithm i.e. allows to find the best way to fill a knapsack of a specified volume with items of a certain volume and value.

Alexander Makarov 9 Sep 8, 2022
Learn to apply best practices as a PHP backend developer

PHP eCommerce Project Here are the things that this repo will cover: Object oriented programming principles and best practices Object oriented session

Muhammad Salah 0 Aug 2, 2022
Best kept in a glass cabinet.

Uranium Best kept in a glass cabinet. Do you feel like async is too unwieldy and annoying to type? Do you wake up every morning with unfulfilled promi

null 2 Nov 1, 2021
A Magento 1.x module which facilitates automatic purging of static assets from HTTP caches such as browser cache, CDN, Varnish, etc using best practices outlined within the HTML5 boilerplate community.

Magento Cachebuster Cachebuster is a Magento module which facilitates automatic purging of static assets from HTTP caches such as browser cache, CDN,

Gordon Knoppe 129 Apr 1, 2022
Laravel boilerplate with the best development practices.

Laravel Boilerplate Introduction ?? Welcome to Laravel Init - a boilerplate for installing laravel application. It covers: One-liner shell script to s

ColoredCow 7 Dec 29, 2021
Best regular expression for gmail

best regular expression for gmail Gmail Regular expression with all details (not start with dot,number , is it possible to use multiple dot but not in

null 3 Feb 2, 2022
The best profanity filter for chat with api for plugin developers!

xqwtxon/ProfanityFilter is moving on ReinfyTeam/ProfanityFilter ProfanityFilter ?? A best profanity filter for pocketmine. Controls hate speech and bl

Ace Sobremont 4 Jul 11, 2022
Gamecom.io - Find the best game, community, mod, or servers for you! Data retrieved from @modcommunity.

A website made by Christian Deacon that helps users find any game, community, mod, or server. All data retrieved by @modcommunity. This website is ope

Christian Deacon 10 Nov 2, 2022
Laravel Podcast Manager is a complete podcast manager package for Laravel 5.3+ that enables you to manage RSS feeds for your favorite podcasts and listen to the episodes in a seamless UI.

laravelpodcast | A Laravel podcast manager package - v0.0.8 Introduction Laravel Podcast Manager is a complete podcast manager package for Laravel 5.3

Jeremy Kenedy 22 Nov 4, 2022
A plugin manager for PocketMine-MP

A plugin manager for PocketMine-MP downloads plugin from PocketMine-MP official plugin repository

Toby 6 Nov 28, 2022
Laragon MultiPHP per App + PECL Module + Extension manager + Ini Manager

LMPA Laragon MultiPHP per App This tools allow you to run multiple PHP version per app with Laragon, so you can have multiple site running different p

Gilbert Paquin 8 Oct 10, 2022