{"id":15142740,"url":"https://github.com/pmmp/devtools","last_synced_at":"2025-04-04T16:13:12.082Z","repository":{"id":45594689,"uuid":"76901140","full_name":"pmmp/DevTools","owner":"pmmp","description":"Development tools plugin for PocketMine-MP","archived":false,"fork":false,"pushed_at":"2025-02-01T21:44:07.000Z","size":276,"stargazers_count":110,"open_issues_count":0,"forks_count":62,"subscribers_count":19,"default_branch":"stable","last_synced_at":"2025-04-04T16:13:07.878Z","etag":null,"topics":["github-actions-enabled","phpstan-l6","pocketmine-plugin"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pmmp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-12-19T22:07:29.000Z","updated_at":"2025-03-16T12:29:11.000Z","dependencies_parsed_at":"2024-01-03T15:51:52.059Z","dependency_job_id":"b85e1f05-dd62-42c2-a3e6-548408ebe56c","html_url":"https://github.com/pmmp/DevTools","commit_stats":{"total_commits":252,"total_committers":13,"mean_commits":"19.384615384615383","dds":"0.39682539682539686","last_synced_commit":"55213e671f714e6eeb67538b1672c7c4da2085df"},"previous_names":[],"tags_count":40,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmmp%2FDevTools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmmp%2FDevTools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmmp%2FDevTools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pmmp%2FDevTools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pmmp","download_url":"https://codeload.github.com/pmmp/DevTools/tar.gz/refs/heads/stable","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208139,"owners_count":20901570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github-actions-enabled","phpstan-l6","pocketmine-plugin"],"created_at":"2024-09-26T10:00:24.090Z","updated_at":"2025-04-04T16:13:12.062Z","avatar_url":"https://github.com/pmmp.png","language":"PHP","readme":"# Development Tools for PocketMine-MP\nDevTools is a collection of utilities used for developing PocketMine-MP plugins.\n\n## Features\n- Generate skeleton files to bootstrap a new plugin\n- Build plugin phars from source code\n- Load plugins directly from source code (folder plugins), useful for rapid development\n- Check player permissions using commands\n\n## Commands\n* `/genplugin \u003cpluginName\u003e \u003cauthorName\u003e`: Generates skeleton files for a new plugin\n* `/extractplugin \u003cpluginName\u003e`: Extracts the source of a loaded plugin from its Phar file\n* `/makeplugin \u003cpluginName\u003e`: Creates a Phar plugin archive for its distribution\n* `/makeplugin *`: Creates Phar plugin archives for all loaded plugins\n* `/checkperm \u003cnode\u003e [playerName]`: Checks a permission node\n* `/listperms [playerName]`: Lists permissions assigned to the command sender, or the target player\n* `/handlers [partialEventName]`: Lists event handlers registered to event classes matching the input\n* `/handlersbyplugin \u003cpluginName\u003e`: Lists event handlers registered by the given plugin\n\n## Using ConsoleScript to build a DevTools phar from source code\nContrary to popular belief, this is very simple. Assuming you have a php executable in your PATH variable, cd into the DevTools directory (the folder where plugin.yml is located) and simply run the following:\n```\nphp -dphar.readonly=0 path/to/ConsoleScript.php --make path/to/DevTools --relative path/to/DevTools --out path/to/put/devtools/phar/in/DevTools.phar\n```\nYou can then load the phar onto a PocketMine-MP server. A correctly-built DevTools phar can also be executed directly from the command line as if it was the ConsoleScript.\n\n## Build plugin phars from the command line\nYou can also use the ConsoleScript or a DevTools phar from the command-line to build PocketMine-MP phars or plugin phars.\n\nThe script currently takes the following arguments:\n\n| argument | required | description |\n|:--------:|:--------:|:------------|\n| `--make` | yes | The comma-separated path(s) to the files you want to bundle into a phar |\n| `--relative` | no | Make DevTools resolve paths relative to the given path. If not specified, defaults to the current working directory. |\n| `--stub` | no | PHP file to use as a custom phar stub. The stub will be executed when the phar is run from the command line. |\n| `--out` | yes | Path and filename of the output phar file. |\n\nExample command line for building a plugin:\n```\nphp -dphar.readonly=0 path/to/ConsoleScript.php --make path/to/your/plugin/sourcecode --out path/to/put/your/plugin.phar\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmmp%2Fdevtools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpmmp%2Fdevtools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpmmp%2Fdevtools/lists"}