Download the PHP package achedon12/golem without Composer

On this page you can find all versions of the php package achedon12/golem. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package golem

CI Latest release PocketMine-MP 5 PHP 8.1+ PHPStan level 8 Documentation Packagist Packagist downloads

Golem tests your PocketMine-MP plugin the way your players use it. One command boots a real server, loads your plugin from source, spawns simulated players (golems) that join, chat, run commands, click forms and break blocks, then checks what happened. No mocks, no client, no manual testing on a local server ever again. Run it in your terminal, in CI, or from a dashboard in your browser (vendor/bin/golem ui, live demo).


▶ Watch the 20-second intro

Why Golem

Unit tests stop where PocketMine starts: events, permissions, forms, inventories, scheduling and worlds all need a running server. So most plugins are tested by hand, by joining a local server and trying things. Golem automates exactly that:

Installation

Golem needs PHP 8.1+ on your machine to run the CLI, on Linux or macOS (on Windows, use WSL). The server itself runs on PocketMine's own PHP build, which Golem downloads once.

Composer is only there to give your IDE autocompletion. The CLI has no dependencies, so you can also clone this repository and run php path/to/golem/bin/golem from your plugin folder.

Writing tests

Tests live in tests/ next to your plugin.yml. Each public method starting with test runs on the server's main thread, after your plugin is enabled. A test that needs time to pass is a generator: yield what you are waiting for and Golem resumes the test when it is ready.

A golem can Then you can check
chat(), command() messages(), titles(), actionBars(), tips(), popups(), toasts()
clickButton(), submitForm(), closeForm() form(), formData()
clickSlot(), closeWindow() in chest menus (InvMenu works) window()
walkTo(), walk(), jump(), sneak(), sprint() position(), fall damage, PlayerMoveEvent in your plugin
breakBlock(), interactBlock(), interactEntity(), useItem(), attack() scoreboard(), bossBar(), sounds()
op(), grant(), gamemode(), teleport(), give(), hold(), respawn(), quit() disconnectReason(), packets(), and player() for the full PocketMine API

On top of the usual assertSame, assertTrue, assertCount… you get Minecraft-aware assertions: assertReceivedMessage, assertTitle, assertFormOpen, assertWindowOpen, assertScoreboardContains, assertBossBar, assertSoundPlayed, assertHasItem, assertHealth, assertAt, assertBlockAt, assertKicked, assertDead and more.

Tests can run in a throwaway world (#[FreshWorld]) or a copy of your map (#[World('tests/worlds/arena')]), take data sets (#[DataProvider]), and plugins using virions just work: Golem reads your .poggit.yml. Keep vendor/bin/golem --watch open while you code to re-run everything on each save.

When something breaks, Golem tells you what it expected, what it got, and where:

On a development server

Golem is also a plugin: put Golem.phar in your dev server's plugins/ folder and spawn simulated players by hand, to try a minigame or a duel alone:

Play a scenario by hand with /golem record, and /golem record stop writes a test that replays it. See Server plugin for every command.

Dashboard

vendor/bin/golem ui opens a dashboard on localhost: run the tests and follow them live, read failures and coverage in the code, fuzz, benchmark, and build tests without writing PHP. Try the live demo or read Dashboard.

Fuzzing

golem fuzz has golems do random things to your plugin for a minute (commands with odd arguments, invalid form answers, clicks, disconnections) and reports every exception with the actions that led to it and a seed to replay them. See Fuzzing.

Mutation testing

golem mutate changes your code one small mutation at a time (=== into !==, < into <=, true into false…) and runs the tests that cover each line: the mutants nobody notices are the bugs your tests would let through. See Mutation testing.

Compatibility

golem compat EssentialsMP libs/Economy.phar runs your tests alone, then with other plugins loaded next to yours, and shows the tests that break and the commands another plugin takes. See Compatibility.

Benchmark

golem bench --players=100 brings golems in a few at a time and shows how TPS, tick usage and memory evolve, then the plugin's slowest listeners. assertTpsAbove(18.0) catches a slowdown in a test. See Benchmark.

Continuous integration

The action caches PocketMine between runs, writes golem-junit.xml, and annotates failures on the pull request. See docs/ci.md for the options and for other CI systems.

Documentation

📖 achedon12.github.io/golem, with search. The same pages are in the wiki and in docs/:

Status

Golem is young (0.x): the API may still change between minor versions, and the changelog will say so. It targets PocketMine-MP 5, which reached its end of support in July 2026, and its forks: --pocketmine=owner/repository tests your plugin on the fork your server runs (see forks). Ideas, bug reports and pull requests are very welcome, see CONTRIBUTING.md.

License

MIT © Achedon12


All versions of golem with dependencies

PHP Build Version
Package Version
Requires php Version ^8.1
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package achedon12/golem contains the following files

Loading the files please wait ...