Philosophies

The project's core philosophies, this list is not finished.

Cultural Philosophy

Transparency

All non-sensitive information and data is shared with the community. This includes information pertaining to any and all software used on the server. Internal policies pertaining to moderation or community relations are also made publicly available.

Privacy and Security

We respect your privacy and vow to secure your data. We will never sell or share you data with any 3rd parties. View our easy to understand privacy policy at Privacy Policy

Player Safety

The safety of our players will always be our #1 priority. We work to prevent harmful and abusive content before it can be seen. Unfortunately, bad actors will always find a way to slip through, report these bad actors by emailing us at [email protected].

Community

Our commitment to our community goes further than hosting a Minecraft server. We want to foster a community where members build valuable friendships and contribute to a good cause while doing it.

Volunteer Management

Claim

Volunteering for a server shouldn't feel like a job.

A traditional approach to 'staff management' is often treating volunteer staff as if they are employees. This approach fails to recognize volunteers for what they are, causing a plethora of problems.

In this thread I will (1) outline the problem, (2) dissect the traditional approach, and (3) offer a remedial approach.

Problem and Goal

The goal of all volunteer programs is to attract passionate players to volunteer their time towards making your server better. The following 2 problems are always present.

(1) Bad actors abusing permissions to inflate their god complex.

(2) Internal conflicts (frequently including a narcissistic staff manager) causing volunteers to become disgruntled and abuse permissions out of spite.

Both of the following approaches attempt to solve these problems.

Traditional Approach

  • Recruit volunteers using staff applications that are susceptible to social engineering from bad actors.

  • Incentive system is built around getting more permissions for doing more work.

  • Strict guidelines that give volunteers very little discretion over anything.

  • Very high expectations of professionalism and subordination.

  • Strike system- If you're unprofessional or insubordinate 3 times, you get demoted.

Modern Approach

In order for this to work, new volunteers must already be trusted/reputable members of the community before joining the team.

  • Recruit volunteers by offering prominent members of community the opportunity to make the server better.

  • Result-oriented team of volunteers that are working towards a common goal instead of the individual goal of getting promoted.

  • Volunteers have broad discretion over tasks like moderation and are able to handle on a case-by-case basis.

  • Volunteers already have good communication skills & social etiquette.

  • Volunteers that resign will always be welcomed back onto the team.

  • Only time a volunteer would be forcefully removed is he/she was/is involved in flagrantly malicious activities.

Overview

In conclusion, the most important things are: (1) keep volunteers happy by allowing them freedom/discretion and (2) don't fall victim to narcissists & social engineers.

Design Philosophy

Elegancy and Security

There should be no obscure or hacky features. Designs should be flexible in that they shape around technical limitations, not attempt to bypass them. Basic OOP principles should always be applied when possible.

Data and Storage

Database calls to storage should be restricted to only user connect/disconnect or server start/stop. Data should always be fetched from cache (Redis or memory).

Scalability and Performance

Everything that can be done off-thread should be. Use of Bukkit Thread Pool is preferred over creating new thread (and futures). The only main-thread operations should be directly interfacing world or player.

Code Style and Structure

All projects strictly follow Google Java Style Guide. Variables are expected to have concise, relevant names and follow proper naming conventions. Code commenting should be present to provide brief overviews for more complex functions.

Classes should be structured into Objects, Managers, Utilities, Abstractions, and Implementations. File structure should follow pre-existing patterns of a project.

Last updated