By continuing to use this site, you agree to the Terms of Service of this website, including usage of cookies.

OK, Don't show this again

Development tools plugin for PocketMine-MP
version 1.17.1
Approved
Direct Download How to install?
Switch version
6027 Downloads / 105759 Total
57 Reviews
Plugin Description §

Development Tools for PocketMine-MP

DevTools is a collection of utilities used for developing PocketMine-MP plugins.

Features

  • Generate skeleton files to bootstrap a new plugin
  • Build plugin phars from source code
  • Load plugins directly from source code (folder plugins), useful for rapid development
  • Check player permissions using commands

Commands

  • /genplugin <pluginName> <authorName>: Generates skeleton files for a new plugin
  • /extractplugin <pluginName>: Extracts the source of a loaded plugin from its Phar file
  • /makeplugin <pluginName>: Creates a Phar plugin archive for its distribution
  • /makeplugin *: Creates Phar plugin archives for all loaded plugins
  • /checkperm <node> [playerName]: Checks a permission node
  • /listperms [playerName]: Lists permissions assigned to the command sender, or the target player
  • /handlers [partialEventName]: Lists event handlers registered to event classes matching the input
  • /handlersbyplugin <pluginName>: Lists event handlers registered by the given plugin

Using ConsoleScript to build a DevTools phar from source code

Contrary 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:

php -dphar.readonly=0 path/to/ConsoleScript.php --make path/to/DevTools --relative path/to/DevTools --out path/to/put/devtools/phar/in/DevTools.phar

You 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.

Build plugin phars from the command line

You can also use the ConsoleScript or a DevTools phar from the command-line to build PocketMine-MP phars or plugin phars.

The script currently takes the following arguments:

argument required description
--make yes The comma-separated path(s) to the files you want to bundle into a phar
--relative no Make DevTools resolve paths relative to the given path. If not specified, defaults to the current working directory.
--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.
--out yes Path and filename of the output phar file.

Example command line for building a plugin:

php -dphar.readonly=0 path/to/ConsoleScript.php --make path/to/your/plugin/sourcecode --out path/to/put/your/plugin.phar
What's new §
  • Fixed crashes in /checkperm, /extractplugin and /genplugin related to PM5 Translatable changes
  • Support for PocketMine-MP 5
  • Fixed deprecation error on PHP 8.2
  • New command /handlers [partialEventName]: lists all event handlers registered to event classes matching the input string, or all events if no arguments are given
  • New command /handlersbyplugin <pluginName>: lists all event handlers registered by a given plugin
  • Support for PocketMine-MP 4.0.0
  • Added /listperms command, which allows you to see all of the permissions a user has been granted or denied.
  • /genplugin now generates plugins in PSR-4 structure using src-namespace-prefix (new feature in 4.0.0).
  • /makeplugin no longer supports building FolderPluginLoader as a separate plugin (this was anyway broken for a long time and nobody complained, so clearly nobody cares that much)
  • ConsoleScript now allows including single files by passing them via --make
  • Now uses src-namespace-prefix to get rid of useless subdirectories in src.

ConsoleScript and /makeplugin now generate a phar stub that doesn't depend on the phar extension.

  • PocketMine-MP 3.13.0 is now required as a minimum.
  • Code is now analysed using PHPStan on level 6.
  • Fixed /genplugin crash on PHP 7.4.
  • Removed /makeserver. This command is now redundant with the introduction of a specialized build script in PocketMine-MP itself.
  • Cleaned up README: now provides more useful information.

/genplugin now generates a true skeleton plugin without extra useless junk.

Fixed --make paths matching prefix instead of full folder name

  • Don't try to build phars if phar.readonly is set, closes #39
  • Remove deprecated method usage, require PM 3.4.0+
  • Fixed crash in /makeplugin when the source files for a folder plugin were deleted from disk at runtime

This release is compatible with PocketMine-MP 3.0.0 and all later minor/patch releases.

  • Fixed file (non directory) paths not working as --make arguments for ConsoleScript
  • Cleaned up genplugin command - now it doesn't write useless files to disk
  • Fixed ConsoleScript ignoring compression type
  • Fixed some duplicated directory separators
  • Fixed projects not being buildable if they were contained in a hidden directory or otherwise excluded build path.
  • Now uses strict types and typehints throughout.
  • Updated for PocketMine-MP PluginLoader rewrite.
  • Reduced duplication of code between DevTools main and ConsoleScript (now more dependent on ConsoleScript).
  • DevTools 1.12.10, ALPHA12 compatibility
  • Fixed typo in FilesystemIterator
  • Fixed phar building issues on Windows paths (backslashes) (#29)
  • Fixed building with symlinked files with ConsoleScript (#25)
  • Added FolderPluginLoader->canLoadPlugin() to comply with API changes in PocketMine-MP
  • Fixed EOF newlines

support for API version 3.0.0-ALPHA11 release

  • Fixed entry path resolution when relative paths are used in --entry
  • Fixed undefined variable in generated plugin phar stubs
  • DevTools will no longer crash when folder plugins have invalid data directories or have no main class to be found
  • Bump for API 3.0.0-ALPHA10
  • Added /makeplugin * to allow building all folder plugins on the server (#19)
  • Fixed /genplugin crash and cleaned up
  • Updated for ALPHA9
  • Fixed RCE vulnerability in /genplugin (Missing return after regex check on name and author - thanks GH Freax13)
  • /genplugin now automatically sanitizes plugin names and authors which have illegal characters in them
  • bump for ALPHA8
  • Use Phar::buildFromDirectory(), significantly faster for large builds (such as server!), significantly improved performance of /makeserver, /makeplugin and ConsoleScript
  • /makeserver can now only be used on servers running from source code
  • /makeserver and /makeplugin no longer produce spammy output for adding files

(Revision 2)

  • Fixed a stupid Friday-evening bug in the previous revision
  • ALPHA7 support, removed support for older versions
  • Fix bad command permission in generated plugins
Initial version
  • Support for API 3.0.0-ALPHA5, backwards-compatible

Minor bug fixes, please see GitHub Releases for changelogs.


lubro0
using v1.17.1
09 Oct 24
Great work! :D
HBIDamian
Outdated
using v1.17.0
04 Jun 23
How does a penguin build its house? Igloos it together! Why don't skeletons fight each other? They don't have the guts!
note3crafter
Outdated
using v1.17.0
04 Jun 23
Great
HBIDamian
Outdated
using v1.15.0
28 Jul 22
Did you ever hear the tragedy of DevTools the useful? I thought not. It’s not a story Dktapps would tell you. It's a PocketMine legend.
Ihsan48
Outdated
using v1.15.0
28 Jul 22
Maelus-999
Outdated
using v1.15.0
24 Jul 22
Please Update To new version :'(
DaDevGuy
Outdated
using v1.15.0
07 May 22
JustJoostNL
Outdated
using v1.15.0
14 Apr 22
NTT1906
Outdated
using v1.15.0
08 Jan 22
GuidedApex
Outdated
using v1.15.0
04 Jan 22
pog plugin :D
ZZWILLIAMXXTrue
Outdated
using v1.15.0
09 Dec 21
DidntPot
Outdated
using v1.14.2
07 Sep 21
yes.
Mcbeany
Outdated
using v1.14.2
07 Sep 21
JkGamer12
Outdated
using v1.14.2
07 Sep 21
The plugin is very usefull but not working in pocketmine server now when I type /makeplugin and my plugin name it shows just message but doesn't executes command. Pls fix it
Vecnavium
Outdated
using v1.14.2
29 May 21
Amazing, useful and easy to use
brokiem
Outdated
using v1.14.2
05 Apr 21
gud.
Endermanbugzjfc
Outdated
using v1.14.2
25 Feb 21
YeetYoshi
Outdated
using v1.14.2
18 Dec 20
pog chaaaaaamp
Altamash347
Outdated
using v1.14.1
20 Aug 20
This new update is better, Thanks!
ItzFabb-uwu
Outdated
using v1.14.1
20 Aug 20
poohhhygtv
Outdated
using v1.14.0
18 Aug 20
DimBis
Outdated
using v1.14.0
30 Jul 20
``` hello @everyone
jsonfromstatefarm
Outdated
using v1.14.0
26 Jul 20
radledazzler13
Outdated
using v1.14.0
04 Jul 20
I’m trying to use this for making my own plugin using /genplugin but when I finish the plugin do I have to make it a .phar because it doesn’t work. If I don’t is it just because the script is wrong?
mmm545
Outdated
using v1.14.0
14 Jun 20
Every plugin developer should have this plugin
thicksunny
Outdated
using v1.14.0
19 May 20
UnEnanoMas
Outdated
using v1.14.0
07 Apr 20
Just send me a error Server thread/CRITICAL ParseError: "syntax error, unexpected 'private' (T_PRIVATE)" (EXCEPTION) in "plugins/Test/src/Test/Main" at line 29 07.04 08:22:54 [Server] Server thread/DEBUG #0 vendor/pocketmine/classloader/src/BaseClassLoader
Invy55
Outdated
using v1.14.0
06 Mar 20
BobbyTowers
Outdated
using v1.14.0
02 Mar 20
If you're not using this, then my friend you shouldn't be running PM server.
Itzdvbravo
Outdated
using v1.14.0
06 Feb 20
how do i use it?
IceCruelStuff
Outdated
using v1.14.0
06 Feb 20
Nice plugin!
GamakCZ
Outdated
using v1.13.5
06 Apr 20
Cannot use it for building server
ItzLighting9332
Outdated
using v1.13.5
10 Jan 20
Gg
padreon
Outdated
using v1.13.5
01 Dec 19
AndreasHGK
Outdated
using v1.13.5
28 Oct 19
thank you for improving /genplugin
RetchroVinox
Outdated
using v1.13.4
30 Sep 19
Minecraftfan714
Outdated
using v1.13.4
08 Sep 19
very useful :D
szerookii
Outdated
using v1.13.4
28 Aug 19
Steellgold
Outdated
using v1.13.4
22 Jun 19
<3
JustJ0rd4n
Outdated
using v1.13.3
01 Jun 19
The best
DarksidexYT
Outdated
using v1.13.3
24 May 19
AlexPads
Outdated
using v1.13.3
01 May 19
LITERALLY THE BEST
CryptoKey98
Outdated
using v1.13.3
08 Mar 19
Can't count how many times this plugin has been useful for me.
Zedstar16
Outdated
using v1.13.3
07 Feb 19
The most essential plugin for Development. So useful
Ifera
Staff Outdated
using v1.13.0
02 Dec 18
Mundschutziii
Outdated
using v1.13.0
26 Jul 18
Please update to 4.0.0 :)
MangoTheDev
Outdated
using v1.13.0
30 Jun 18
useful.
Palente
Outdated
using v1.13.0
22 Jun 18
JaxkDev
Staff Outdated
using v1.12.10
10 Jun 18
SIVANNKHOld
Outdated
using v1.12.10
07 Jun 18
Hello! Did it has the tutorials ?

Reply to review by :

/ 5
Supported API versions
5.0.0
->
5.16.0
Producers §
  • Collaborators:
    • @dktapps
  • Contributors:
    • @Awzaw
    • @Freax13
    • @Intyre
    • @PEMapModder
    • @SOF3
    • @TheNewHEROBRINEX
    • @robske110
    • @shoghicp
License §
Categories:
Developer Tools
Keywords
Permissions
Other files
Permissions
Commands

You can leave one review per plugin release, and delete or update your review at any time

/ 5
Loading...