Skip to content

Latest commit

 

History

History
73 lines (56 loc) · 2.82 KB

CONTRIBUTING.md

File metadata and controls

73 lines (56 loc) · 2.82 KB

PocketMine-MP Contribution Guidelines

Before contributing to PocketMine-MP, please read this. Also, take a look if your contribution fits the PocketMine-MP goals below.

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 a new feature / 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 as elseif. (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",
				];
			}
		}
	}

}