* git enforced \n line endings * 4-spaces instead of tabs for indentation * Spaces after control statements before beginning parenthesis or brace *
if (*
for (*
while (*
do {
 * try {
 * public class SomeClass {
* Spaces after closing parenthesis in a control statement
* No newline after closing parenthesis and space in a control statement:
 * if () {
 * for () {
 * while () {
 * catch () {
 * switch () {
* Newlines before an else, else if, catch, and finally statement
 * }
else {
 * }
else if () {
 * }
catch () {
 * }
finally () {
* Space after ; in for statement, not before
 * for (int i = 0; i < 10; i++) {
* Spaces around operators
 * a + b*
a == b*
for (Type blah : blahs) {
 * "String " + "concatenation"* Spaces around { and } on one-line declarations *
public boolean aMethod() { return something; }
* Fewer extraneous parentheses, except when they increase readability
 * if (a == b || b == c)* Indent on case in switch case statements *
switch () {
            case 1:
* Mandatory comment for when a case falls through, and when not stacking
 * switch () {
            case 1:
                // Fallthrough
            case 2:
 * switch () {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                // Fallthrough
            case 6:
* Empty line between cases after break, return, or fallthrough
 * switch () {
            case 1:
                break;
            case 2:
* Prefer early returns over method indentation. Example:
 * if (!precondition) {
            // Possibly cleanup
            return;
        }
        // Continue with task
* Java standard class and method naming, with exception to McMMO in a class name
 * thisIsAMethod()*
ThisIsAClass* Exception:
McMMOCustomClass* No space before opening parenthesis for methods, or constructors *
public void thisIsAMethod() {
 * public ThisIsAClass() {
* Spaces after comma in method calls and constructors, not before
 * something.methodCall(variable, otherVariable);* Accessing of variables with this. only when necessary to resolve scope * Class variables always defined at the top, before the constructor * No empty line between class declaration and beginning of variable declaration * Always a empty line at the end of a method or constructor definition * Constructors come before methods, and are typically ordered from the ones with the least arguments to the most * Methods should be ordered in this manner: * override public * public * static public * abstract public * override protected * protected * static protected * abstract protected * private * static private * No one-line if statements, they should all have brackets