Skip to content

Commit

Permalink
Merge branch 'hikari' into dev/hikari
Browse files Browse the repository at this point in the history
  • Loading branch information
SrBedrock committed Oct 2, 2024
2 parents 202d02e + 8591955 commit bdf3092
Show file tree
Hide file tree
Showing 538 changed files with 46,626 additions and 42,262 deletions.
13 changes: 13 additions & 0 deletions .changelog/6.2.0.8.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,29 @@
- This mode was added to the text-based control panel.
- This mode introduces new commands: /qs silentfreeze and /qs freeze
- Made the default action for /qs suggestprice try to use the itemstack in hand when shop not in sight.
- Added shop.finding.global to remove distance limit for /qs find

## Internals
- Added style guidelines.
- Added final inside code where possible.

## Discord Changes
- Added Sponsor role for those that sponsor through GitHub.

## Compat Plugins
- Towny
- Added ruined town config to remove shops when town goes into ruins.

## Addon Plugins

### SuperiorSkyblock
- Made it so the compat plugin can delete shops when someone is banned from an island.

## Fixes
- Fixed issue with Velocity and Bungee Compat Jars
- Fixed issue with Towny Compat Jar not removing shops when plot is cleared, or town is deleted.
- Fix item restrictions being bypassed using shulkers(thanks to TauCubed)
- Fix Towny town/nation account lookup with Essentials(thanks to galacticwarrior9)

## Notes
- Pending removal of 1.18/1.19 support soon.
56 changes: 56 additions & 0 deletions .contributing/QuickShop_Style.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<code_scheme name="QuickShop Style" version="173">
<option name="RIGHT_MARGIN" value="100" />
<JavaCodeStyleSettings>
<option name="GENERATE_FINAL_LOCALS" value="true" />
<option name="GENERATE_FINAL_PARAMETERS" value="true" />
<option name="SPACE_AFTER_CLOSING_ANGLE_BRACKET_IN_TYPE_ARGUMENT" value="true" />
<option name="ALIGN_MULTILINE_ANNOTATION_PARAMETERS" value="true" />
<option name="ALIGN_MULTILINE_TEXT_BLOCKS" value="true" />
<option name="CLASS_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
<option name="JD_ADD_BLANK_AFTER_PARM_COMMENTS" value="true" />
<option name="JD_ADD_BLANK_AFTER_RETURN" value="true" />
<option name="JD_P_AT_EMPTY_LINES" value="false" />
<option name="JD_KEEP_INVALID_TAGS" value="false" />
<option name="JD_KEEP_EMPTY_PARAMETER" value="false" />
<option name="JD_KEEP_EMPTY_EXCEPTION" value="false" />
<option name="JD_KEEP_EMPTY_RETURN" value="false" />
</JavaCodeStyleSettings>
<codeStyleSettings language="JAVA">
<option name="RIGHT_MARGIN" value="100" />
<option name="KEEP_BLANK_LINES_BEFORE_RBRACE" value="1" />
<option name="BLANK_LINES_BEFORE_METHOD_BODY" value="1" />
<option name="BLANK_LINES_AFTER_CLASS_HEADER" value="1" />
<option name="ALIGN_MULTILINE_PARAMETERS_IN_CALLS" value="true" />
<option name="ALIGN_MULTILINE_BINARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_ASSIGNMENT" value="true" />
<option name="ALIGN_MULTILINE_TERNARY_OPERATION" value="true" />
<option name="ALIGN_MULTILINE_METHOD_BRACKETS" value="true" />
<option name="ALIGN_MULTILINE_ARRAY_INITIALIZER_EXPRESSION" value="true" />
<option name="SPACE_AROUND_LAMBDA_ARROW" value="false" />
<option name="SPACE_WITHIN_BRACES" value="true" />
<option name="SPACE_WITHIN_ARRAY_INITIALIZER_BRACES" value="true" />
<option name="SPACE_AFTER_TYPE_CAST" value="false" />
<option name="SPACE_BEFORE_IF_PARENTHESES" value="false" />
<option name="SPACE_BEFORE_WHILE_PARENTHESES" value="false" />
<option name="SPACE_BEFORE_FOR_PARENTHESES" value="false" />
<option name="SPACE_BEFORE_TRY_PARENTHESES" value="false" />
<option name="SPACE_BEFORE_CATCH_PARENTHESES" value="false" />
<option name="SPACE_BEFORE_SWITCH_PARENTHESES" value="false" />
<option name="SPACE_BEFORE_SYNCHRONIZED_PARENTHESES" value="false" />
<option name="SPACE_BEFORE_QUEST" value="false" />
<option name="KEEP_SIMPLE_BLOCKS_IN_ONE_LINE" value="true" />
<option name="KEEP_SIMPLE_METHODS_IN_ONE_LINE" value="true" />
<option name="KEEP_SIMPLE_LAMBDAS_IN_ONE_LINE" value="true" />
<option name="KEEP_SIMPLE_CLASSES_IN_ONE_LINE" value="true" />
<option name="WRAP_COMMENTS" value="true" />
<option name="IF_BRACE_FORCE" value="1" />
<option name="DOWHILE_BRACE_FORCE" value="1" />
<option name="WHILE_BRACE_FORCE" value="1" />
<option name="FOR_BRACE_FORCE" value="1" />
<option name="WRAP_ON_TYPING" value="0" />
<indentOptions>
<option name="INDENT_SIZE" value="2" />
</indentOptions>
</codeStyleSettings>
</code_scheme>
96 changes: 96 additions & 0 deletions .contributing/contributing.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
# Contributing to QuickShop-Hikari

We welcome contributions to QuickShop-Hikari and appreciate your efforts to improve the project! Before getting started, please take a moment to review these guidelines to help streamline the process and ensure consistency across contributions.

## Project Structure

Below is an outline of the project structure for reference:

### Style Guidelines

To maintain a consistent codebase, we ask that you use the code style defined in the [QuickShop_Style.xml](QuickShop_Style.xml) file. You can import this file into your IntelliJ environment by following these steps:

1. Navigate to `File` -> `Settings` -> `Editor` -> `Code Style`.
2. Click on the gear icon and select `Import Scheme`.
3. Choose `IntelliJ IDEA code style XML` and select the `QuickShop_Style.xml` file located in the `.contributing/` folder.

This will ensure that your code adheres to the project's formatting rules.

#### 1. Final Obsession IntelliJ Plugin

We recommend using the **Final Obsession** plugin to ensure that all applicable local variables, and method parameters are declared `final` where appropriate. This helps maintain immutability, enhancing code safety and readability.

##### Installation:

1. In IntelliJ, go to `File` -> `Settings` -> `Plugins`.
2. Search for the plugin [Final Obsession](https://plugins.jetbrains.com/plugin/21687-final-obsession).
3. Click `Install`.
4. Restart IntelliJ to activate the plugin.

By using this plugin, you ensure that your code adheres to immutability standards when necessary.

#### 2. Lombok Plugin

We also recommend using the **Lombok** plugin to reduce boilerplate code, such as getters, setters, and constructors. Lombok helps make the code cleaner and easier to maintain.

##### Installation:

1. In IntelliJ, go to `File` -> `Settings` -> `Plugins`.
2. Search for the plugin [Lombok](https://plugins.jetbrains.com/plugin/6317-lombok).
3. Click `Install`.
4. Restart IntelliJ to activate the plugin.

Using Lombok will keep the codebase clean and reduce the amount of boilerplate.

## Contributor License Agreement (CLA)

Before submitting your first pull request, you must sign our Contributor License Agreement (CLA). This is required to ensure that we can freely use your contributions while maintaining the integrity of the project's licensing. This will pop up for your PR automatically.

## Licensing for Contributions

All new contributions to this project will be licensed under the [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html) license. By contributing, you agree that your contributions will also be licensed under this license.

## Best Practices for Branch Names

To help organize the development process, we follow specific conventions for branch names based on their purpose:

### Feature Branches
Feature branches are used for developing new features. Use the prefix `feature/` or `feat/`.

- **Example**: `feature/login-system` or `feat/payment-processing`.

### Bugfix Branches
Bugfix branches are used to fix bugs in the code. Use the prefix `bugfix/` or `fix/`.

- **Example**: `bugfix/header-styling` or `fix/form-validation`.

### Hotfix Branches
Hotfix branches are created directly from the production branch to fix critical bugs in the production environment. Use the prefix `hotfix/` or `hfix/`.

- **Example**: `hotfix/critical-security-issue` or `hfix/performance-patch`.

### Release Branches
Release branches are used to prepare for a new production release. They allow for last-minute adjustments and polishing. Use the prefix `release/`.

- **Example**: `release/v1.0.1`.

## How to Contribute

1. **Fork** the repository to your own GitHub account.
2. **Clone** the forked repository to your local machine.
3. **Create a new branch** for your changes using the branch naming guidelines above.
4. **Commit** your changes with clear and descriptive commit messages.
5. **Push** your changes to your fork.
6. **Create a pull request** (PR) with a detailed explanation of your changes and any relevant issues.

Please ensure that your pull request is up to date with the latest version of the `main` branch before submission.

## Code Review and Merging

After submitting your pull request, one of the maintainers will review your changes. You may be asked to make adjustments or provide further clarification. Once approved, your changes will be merged into the main repository.

Thank you for your contribution!

## Resources
- [License](https://www.gnu.org/licenses/agpl-3.0.html)
- [Style File](QuickShop_Style.xml)
2 changes: 1 addition & 1 deletion .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
cache: 'maven'
- name: Build with Maven
run: mvn package --batch-mode --update-snapshots -T 1.5C -f pom.xml -P github
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
with:
name: quickshop-snapshots
path: |
Expand Down
Loading

0 comments on commit bdf3092

Please sign in to comment.