mirror of
https://github.com/pmmp/PocketMine-MP.git
synced 2025-04-21 00:07:30 +00:00
2.8 KiB
2.8 KiB
PocketMine-MP Contribution Guidelines
Before contributing to PocketMine-MP, please read this.
I've a question
- 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.
I want to create an issue
- 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.
I want to contribute code
- 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!
Code syntax
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 NOT use namespaces. (This restriction will be lifted on the Alpha_1.4 code)
- Strings SHOULD use the double quote
"
except when the single quote is required. - Arrays SHOULD be declared using
array()
, not the[]
shortcut. - Argument lists MAY NOT be split across multiple lines, except long arrays.
<?php
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 array(
0 => "value1",
1 => "value2",
2 => "value3",
3 => "value4",
4 => "value5",
5 => "value6",
);
}
}
}
}