8.1 KiB
| Contributing | ![]() |
| Resources | |
| Why Follow Guidelines? | |
| What Can I Contribute? | |
| Programming | |
| Everything Else | |
| What Can I Not Do? | |
| Guidelines | |
| Our Mission | |
| Development Environment |
Contributing
Thank you for wanting to contribute to the userscript "Blue Marble"! It means a lot to me that someone likes my project enough to want to help it grow. If you haven't already done so, consider joining our Discord. You can ask questions about the mod there and receive feedback.
Why Follow Guidelines?
Following the guidelines on this page helps everyone. Writing code that follows the guidelines:
- Helps me implement (and continue support for) your feature.
- You get your feature implemented.
- Everyone else gets a new supported feature.
What Can I Contribute?
Programming
Most of the work to be done in this userscript is related to programming. It is helpful to have a background in programming, but not required. If you are looking to learn JavaScript and its syntax, check out this roadmap for learning JavaScript. We strongly recommend that you understand functions, methods, classes, and Object-Oriented-Programming if you plan to implement a brand new feature. More technical knowledge like method chaining and lambda expressions are useful but not required.
Translation
While typically overlooked, translating is a powerful way to contribute to a project. If you can write, there is something you can contribute! From minor grammar mistakes, to translating an entire language, all help is appreciated.
Everything Else
Although userscripts are oriented around coding, there are many ways to contribute! From improving the Wiki to making tutorials, you can contribute in many ways that don't require programming skills. For example, if you have an idea for a feature, submit it! Someone might see it, think it is cool, and implement it.
What Can I Not Do?
Please do not use GitHub Issues for asking support questions (e.g. "How do I install this?" or "What does cssMangler do?"). We use the GitHub issue tracker for bug reports and feature requests. If you are having trouble and need help, ask on our Discord. However, you should make a feature request on our issue tracker before starting work on your contribution. Nothing sucks more than working hard on a high-quality contribution just for it to be rejected because it does not align with the mission of the mod. Ask first!
Please contribute in good faith. We will reject pull requests with bad code, comments, or pull requests that damage the mod.
Guidelines
- Always submit a feature request and receive authorization to work on your contribution before you start working on your contribution. This will save you time if we end up rejecting the contribution. Small contributions (like fixing spelling errors) don't need a feature request.
- Follow the Code of Conduct. This includes both your contributions and the way you interact with this community.
- Always write a clear message that explains the changes. "Added some things" does not explain what was changed.
- Different feature, different pull request. If you submit a pull request for templates and localization (i18n) together, and we want to reject the localization, your template code is rejected along with the localization since they are the same pull request. They should be separate pull requests since they are separate features.
- The file structure must be maintained (unless you were authorized to change it). For example, all code should go in `src/` and all code affecting the overlay should go in the Overlay class file.
- The naming structure must be maintained (unless you were authorized to change it). For example, the template image variable could be called "templateDataImage." Most things are named to be grouped based on what they share in common first. In the previous example, the variable is first related to a "template," then "data" which is an "image." This is because the variable stores an image that comes from the data of a template. The main reason for naming things this way is to aid you when you try to find the name of something. "I need the image of a template, so the variable probably starts with 'template'".
- Your code must be commented, explaining what everything does. We may reject the pull request if we can't understand what the code does.
Our Mission
Our "mission" makes up the essence of this mod. Without it, this project would not exist.
The mission of this mod is to provide a well-documented, high-quality quicksand mod.
- We recognize that most Minecraft mods do not have high-quality quicksand. Most "quicksand" blocks out there have the same properties as cobwebs, just a different texture. This mod strives to fix that.
- We recognize that most quicksand mods do not allow their community to easily create their own types of quicksand. This mod strives to support additional blocks added by the community.
- We recognize that most Minecraft mods do not have enough documentation to allow their community to modify (or understand) the inner workings of the mod. This mod strives to be as beginner-friendly as possible.
How To Contribute
- Read all of the contributing guidelines.
- If you are contributing, submit a request here.
- If you have received authorization to start working on your contribution, set up the development environment on your device.
- Fork the project.
- Download your fork to the development environment.
- If applicable, it might be useful to learn how a (already in the mod) feature similar to your contribution works.
- Make your contribution.
- Commit to your fork.
- Submit a pull request between your fork and this project.
Development Environment
Eclipse IDE:
Version: Mars.1 Release (4.5.1)
Build id: 20150924-1200
Java:
Version: 8 Update 202
Build id: 1.8.0_202-b08
Minecraft:
Version: 1.8.9
Gradle Mapping Version: 1.8.9-11.15.1.2318-1.8.9
