Before contributing to PocketMine-MP, please read this. Also, take a look if your contribution fits the PocketMine-MP goals below.
- For questions, please refer to the #pocketmine or #mcpedevs IRC channel on Freenode. There is a WebIRC if you want.
- You can ask directly to @PocketMine in Twitter, but don't expect an inmediate reply.
- First, use the Issue Search to check if anyone has reported it.
- Is your issue related to a Plugin? If so, please contact their original author instead of reporting it here.
- And no, we won't update a Plugin because you need it.
- When reporting, give as much info as you can, and if the Issue is a crash, give the Crash Dump.
- Issues should be written in English.
- Use the Pull Request system, your request will be checked and discussed.
- Create a single branch for that pull request
- If you want to be part of PocketMine-MP, we will ask you to.
- Code using the syntax as in PocketMine-MP. See below for an example.
- The code must be clear and written in English, comments included.
Thanks for contributing to PocketMine-MP!
It is mainly PSR-2 with a few exceptions.
- Opening braces MUST go on the same line.
else if
MUST be written aselseif
. (It is in PSR-2, but using a SHOULD)- Control structure keywords or opening braces MUST NOT have one space after them.
- Code MUST use tabs for indenting.
- Long arrays MAY be split across multiple lines, where each subsequent line is indented once.
- Files MUST use only the
<?php
tag. - Files MUST NOT have an ending
?>
tag. - Code MUST use namespaces.
- Strings SHOULD use the double quote
"
except when the single quote is required. - Argument lists MAY NOT be split across multiple lines, except long arrays.
<?php
namespace pocketmine\Example;
class ExampleClass{
const EXAMPLE_CLASS_CONSTANT = 1;
public $examplePublicVariable = "defaultValue";
private $examplePrivateVariable;
public function __construct($firstArgument, &$secondArgument = null){
if($firstArgument === "exampleValue"){ //Remember to use === instead == when possible
//do things
}elseif($firstArgument === "otherValue"){
$secondArgument = function(){
return [
0 => "value1",
1 => "value2",
2 => "value3",
3 => "value4",
4 => "value5",
5 => "value6",
];
}
}
}
}