diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md
index 0a2e285211..fe9aae5743 100644
--- a/.github/CODE_OF_CONDUCT.md
+++ b/.github/CODE_OF_CONDUCT.md
@@ -1,12 +1,15 @@
# Slimefun4 - Code of Conduct
+
### What is a Code of Conduct?
-> A code of conduct is a document that establishes expectations for behavior for your projectโs participants.
+
+> A code of conduct is a document that establishes expectations for behavior for your projectโs participants.
> Adopting, and enforcing, a code of conduct can help create a positive social atmosphere for your community.
-
\- *Source: [https://opensource.guide](https://opensource.guide/code-of-conduct/#why-do-i-need-a-code-of-conduct)*
+>
\- _Source: [https://opensource.guide](https://opensource.guide/code-of-conduct/#why-do-i-need-a-code-of-conduct)_
This document should serve the purpose of outlining the behaviour we expect from any participant of the project.
## :mag_right: Scope
+
This Code of Conduct applies to all sections of the [Slimefun4 GitHub repository](https://github.com/Slimefun/Slimefun4), our [Slimefun GitHub organization](https://github.com/Slimefun) and all repositories owned by said organization.
For our official Discord server, please refer to our article on [Discord Rules](https://github.com/Slimefun/Slimefun4/wiki/Discord-Rules).
@@ -14,36 +17,41 @@ Everyone who engages with this project on any of these repositories is expected
This includes maintainers, contributors, sponsors and anyone who engages in the "Issues" section on GitHub.
## :loudspeaker: Engagement
+
This is an Open-Source project, anyone is welcome to engage and contribute!
We generally expect users to engage in the Issues section by reporting bugs or commenting on bug reports to give additional context, help, guidance or to propose possible solutions and fixes.
Pull Requests are very much welcome and encouraged! They keep the project alive, so if you see an Issue and know how to fix it, feel free to create a Pull Request!
-Issues that are considered "good first issues", indicated by the [good first issue](https://github.com/Slimefun/Slimefun4/labels/good%20first%20issue) label, are generally expected to be beginner-friendly.
+Issues that are considered "good first issues", indicated by the [good first issue](https://github.com/Slimefun/Slimefun4/labels/good%20first%20issue) label, are generally expected to be beginner-friendly.
And even if you shouldn't know where to start or how to proceed, our [Discord Server](https://discord.gg/slimefun) and its community will be there for you!
-When commenting, please keep in mind that this software is offered for **free**. Don't expect to receive lightning-fast replies 24 hours a day.
+When commenting, please keep in mind that this software is offered for **free**. Don't expect to receive lightning-fast replies 24 hours a day.
Everyone here works on this project in their free time and usually has work, school, university or family to take care of, so we appreciate patience and understanding.
## :scroll: Our Standards
+
Examples of behavior that contributes to a positive environment for our community include but are not limited to:
-* Demonstrating empathy and kindness towards other people
-* Being respectful of differing opinions, viewpoints, and experiences
-* Giving and gracefully accepting constructive feedback
-* Accepting responsibility and apologizing to those affected by our mistakes and learning from the experience
-* Focusing on what is best not just for us as individuals, but for the overall community
-* Having patience and understanding for contributors, even if reply times are slow
+
+- Demonstrating empathy and kindness towards other people
+- Being respectful of differing opinions, viewpoints, and experiences
+- Giving and gracefully accepting constructive feedback
+- Accepting responsibility and apologizing to those affected by our mistakes and learning from the experience
+- Focusing on what is best not just for us as individuals, but for the overall community
+- Having patience and understanding for contributors, even if reply times are slow
Examples of unacceptable behavior include but are not limited to:
-* The use of sexualized language or imagery, and sexual attention or advances of any kind
-* Trolling, insulting or derogatory comments, and personal or political attacks
-* Public or private harassment
-* Publishing others' private information, such as a physical or email address, without their explicit permission
-* Impatient, aggresive and toxic behaviour
-* Other conduct which could reasonably be considered inappropriate in a professional setting
+
+- The use of sexualized language or imagery, and sexual attention or advances of any kind
+- Trolling, insulting or derogatory comments, and personal or political attacks
+- Public or private harassment
+- Publishing others' private information, such as a physical or email address, without their explicit permission
+- Impatient, aggresive and toxic behaviour
+- Other conduct which could reasonably be considered inappropriate in a professional setting
## :round_pushpin: Enforcement Responsibilities
+
Our project maintainers are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
@@ -58,6 +66,7 @@ You can see a list of people who are recognized as "project maintainers" for Sli
https://github.com/orgs/Slimefun/people
## :wrench: Enforcement
+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders (labelled on Discord as "Admins" or "Moderators") responsible for enforcement on our [Discord Server](discord.gg/slimefun).
If you want your issue to be handled discreetly, message `TheBusyBiscuit#2610` or `Walshy#9709` privately on Discord and state your concerns.
@@ -67,6 +76,7 @@ All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## :balance_scale: Attribution
+
This Code of Conduct is a **modified version** of the original [Contributor Covenant Code of Conduct](https://www.contributor-covenant.org),
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
deleted file mode 100644
index 08c508502f..0000000000
--- a/.github/ISSUE_TEMPLATE.md
+++ /dev/null
@@ -1,3 +0,0 @@
-THIS ISSUE IS INVALID.
-
-TO REPORT A BUG, GO HERE -> https://github.com/Slimefun/Slimefun4/issues/new/choose
diff --git a/.github/ISSUE_TEMPLATE/bug-report.yaml b/.github/ISSUE_TEMPLATE/bug-report.yaml
index fcc3435e70..d6a6bc9031 100644
--- a/.github/ISSUE_TEMPLATE/bug-report.yaml
+++ b/.github/ISSUE_TEMPLATE/bug-report.yaml
@@ -1,152 +1,152 @@
name: Bug Report
description: Report a Bug or an Issue with Slimefun 4.
-labels: ['๐ฏ Needs testing', '๐ Bug Report']
+labels: ["๐ฏ Needs testing", "๐ Bug Report"]
body:
-- type: markdown
- attributes:
- value: |
- ## ๐ Welcome to the Slimefun Bug Tracker
- If you need any help to identify the problem, visit our [Discord server](https://discord.gg/slimefun) and see if others experience a similar issue.
- Also take a look at our [Troubleshooting Guide](https://github.com/Slimefun/Slimefun4/wiki/How-to-report-bugs) and the list of [existing Issues](https://github.com/Slimefun/Slimefun4/issues).
-
Fields marked with an asterisk (*) are required.
-
+ - type: markdown
+ attributes:
+ value: |
+ ## ๐ Welcome to the Slimefun Bug Tracker
+ If you need any help to identify the problem, visit our [Discord server](https://discord.gg/slimefun) and see if others experience a similar issue.
+ Also take a look at our [Troubleshooting Guide](https://github.com/Slimefun/Slimefun4/wiki/How-to-report-bugs) and the list of [existing Issues](https://github.com/Slimefun/Slimefun4/issues).
+
Fields marked with an asterisk (*) are required.
+
-- id: checklist
- type: checkboxes
- attributes:
- label: 'โ Checklist'
- description: Please go through this checklist before creating the issue.
- options:
- - label: I am using the official english version of Slimefun and did not modify the jar.
- required: true
- - label: I downloaded the official version from the new build site [Blob Builds](https://blob.build/).
- required: true
- - label: I am using an up to date "DEV" (not "RC") version of Slimefun.
- required: true
- - label: I am aware that issues related to Slimefun addons need to be reported on their bug trackers and not here.
- required: true
- - label: I searched for similar open issues and could not find an existing bug report on this.
- required: true
+ - id: checklist
+ type: checkboxes
+ attributes:
+ label: "โ Checklist"
+ description: Please go through this checklist before creating the issue.
+ options:
+ - label: I am using the official english version of Slimefun and did not modify the jar.
+ required: true
+ - label: I downloaded the official version from the new build site [Blob Builds](https://blob.build/).
+ required: true
+ - label: I am using an up to date "DEV" (not "RC") version of Slimefun.
+ required: true
+ - label: I am aware that issues related to Slimefun addons need to be reported on their bug trackers and not here.
+ required: true
+ - label: I searched for similar open issues and could not find an existing bug report on this.
+ required: true
-- id: description
- type: textarea
- validations:
- required: true
- attributes:
- label: '๐ Description'
- description: |
- A clear and detailed description of what went wrong.
- The more information you can provide, the easier we can handle this problem.
- placeholder: |
- When doing [...] I experienced [...], I am pretty sure this is not intended and should be fixed.
+ - id: description
+ type: textarea
+ validations:
+ required: true
+ attributes:
+ label: "๐ Description"
+ description: |
+ A clear and detailed description of what went wrong.
+ The more information you can provide, the easier we can handle this problem.
+ placeholder: |
+ When doing [...] I experienced [...], I am pretty sure this is not intended and should be fixed.
-- id: reproduction-steps
- type: textarea
- validations:
- required: true
- attributes:
- label: '๐ Reproduction Steps'
- description: |
- Tell us the exact steps to reproduce this issue, the more detailed the easier we can reproduce it.
- placeholder: |
- 1. Do [...]
- 2. Then do [...]
- 3. Now [...] happens
+ - id: reproduction-steps
+ type: textarea
+ validations:
+ required: true
+ attributes:
+ label: "๐ Reproduction Steps"
+ description: |
+ Tell us the exact steps to reproduce this issue, the more detailed the easier we can reproduce it.
+ placeholder: |
+ 1. Do [...]
+ 2. Then do [...]
+ 3. Now [...] happens
-- id: expected-behaviour
- type: textarea
- validations:
- required: true
- attributes:
- label: '๐ก Expected Behavior'
- description: |
- What were you expecting to happen?
- What do you think would have been the correct behaviour?
- placeholder: |
- I expected [...] to happen.
+ - id: expected-behaviour
+ type: textarea
+ validations:
+ required: true
+ attributes:
+ label: "๐ก Expected Behavior"
+ description: |
+ What were you expecting to happen?
+ What do you think would have been the correct behaviour?
+ placeholder: |
+ I expected [...] to happen.
-- id: media
- type: textarea
- attributes:
- label: '๐ท Screenshots / Videos'
- description: |
- The best way to illustrate in an issue is by recording a Video or taking a Screenshot.
- If you can capture any footage of the bug happening, it would help us out a lot!
- placeholder: |
- Drag and drop an image or video onto this field to upload it.
+ - id: media
+ type: textarea
+ attributes:
+ label: "๐ท Screenshots / Videos"
+ description: |
+ The best way to illustrate in an issue is by recording a Video or taking a Screenshot.
+ If you can capture any footage of the bug happening, it would help us out a lot!
+ placeholder: |
+ Drag and drop an image or video onto this field to upload it.
-- id: server-log
- type: input
- attributes:
- label: '๐ Server Log'
- description: |
- Take a look at your Server Log and upload any error messages from Slimefun to a pasting site (e.g. https://pastebin.com/).
- If you are unsure about it, post your full log, you can find it under /logs/latest.log
- placeholder: https://pastebin.com/...
+ - id: server-log
+ type: input
+ attributes:
+ label: "๐ Server Log"
+ description: |
+ Take a look at your Server Log and upload any error messages from Slimefun to a pasting site (e.g. https://pastebin.com/).
+ If you are unsure about it, post your full log, you can find it under /logs/latest.log
+ placeholder: https://pastebin.com/...
-- id: error-reports
- type: input
- attributes:
- label: '๐ `/error-reports/` folder'
- description: |
- Check the folder `/plugins/Slimefun/error-reports/` and upload any files inside that folder to a pasting site (e.g. https://pastebin.com/).
- placeholder: https://pastebin.com/...
+ - id: error-reports
+ type: input
+ attributes:
+ label: "๐ `/error-reports/` folder"
+ description: |
+ Check the folder `/plugins/Slimefun/error-reports/` and upload any files inside that folder to a pasting site (e.g. https://pastebin.com/).
+ placeholder: https://pastebin.com/...
-- id: server-software
- type: dropdown
- validations:
- required: true
- attributes:
- label: '๐ป Server Software'
- description: 'Please select the software your Server is running on'
- options:
- - Spigot
- - Paper
- - Purpur
- - Airplane
- - Other (please specify in your description)
+ - id: server-software
+ type: dropdown
+ validations:
+ required: true
+ attributes:
+ label: "๐ป Server Software"
+ description: "Please select the software your Server is running on"
+ options:
+ - Spigot
+ - Paper
+ - Purpur
+ - Airplane
+ - Other (please specify in your description)
-- id: minecraft-version
- type: dropdown
- validations:
- required: true
- attributes:
- label: '๐ฎ Minecraft Version'
- description: 'Please select the Minecraft version of the server'
- options:
- - 1.20.x
- - 1.19.x
- - 1.18.x
- - 1.17.x
- - 1.16.x
- - (Older versions are not supported)
+ - id: minecraft-version
+ type: dropdown
+ validations:
+ required: true
+ attributes:
+ label: "๐ฎ Minecraft Version"
+ description: "Please select the Minecraft version of the server"
+ options:
+ - 1.20.x
+ - 1.19.x
+ - 1.18.x
+ - 1.17.x
+ - 1.16.x
+ - (Older versions are not supported)
-- id: slimefun-version
- type: textarea
- validations:
- required: true
- attributes:
- label: 'โญ Slimefun version'
- description: |
- **"latest" is not a version number, we need the exact version.**
- We recommend running "/sf versions" and uploading a screenshot of that.
- Make sure that the screenshot covers the entire output of that command.
- placeholder: Slimefun version [...]
+ - id: slimefun-version
+ type: textarea
+ validations:
+ required: true
+ attributes:
+ label: "โญ Slimefun version"
+ description: |
+ **"latest" is not a version number, we need the exact version.**
+ We recommend running "/sf versions" and uploading a screenshot of that.
+ Make sure that the screenshot covers the entire output of that command.
+ placeholder: Slimefun version [...]
-- id: other-versions
- type: textarea
- attributes:
- label: '๐งญ Other plugins'
- description: |
- If your issue is related to another plugin, make sure to include this here!
- placeholder: The issue is related to plugin [...], version [...]
+ - id: other-versions
+ type: textarea
+ attributes:
+ label: "๐งญ Other plugins"
+ description: |
+ If your issue is related to another plugin, make sure to include this here!
+ placeholder: The issue is related to plugin [...], version [...]
-- type: markdown
- attributes:
- value: |
- ## โค๏ธ Thank you for submitting your bug report!
- If you find any additional info that can help to identify this problem, don't hesitate to comment on your issue!
- Any additional info can help us fix this bug faster.
- In the meantime, try visiting our [Discord server](https://discord.gg/slimefun).
- Perhaps someone else has experienced a similar issue.
+ - type: markdown
+ attributes:
+ value: |
+ ## โค๏ธ Thank you for submitting your bug report!
+ If you find any additional info that can help to identify this problem, don't hesitate to comment on your issue!
+ Any additional info can help us fix this bug faster.
+ In the meantime, try visiting our [Discord server](https://discord.gg/slimefun).
+ Perhaps someone else has experienced a similar issue.
diff --git a/.github/configs/wiki-schema.json b/.github/configs/wiki-schema.json
deleted file mode 100644
index e59cef7b6d..0000000000
--- a/.github/configs/wiki-schema.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
- "type" : "object",
- "additionalProperties" : false,
- "patternProperties" : {
- "^[A-Z0-9_]+$" : {
- "type" : "string"
- }
- }
-}
diff --git a/.github/configs/yaml-linter.yml b/.github/configs/yaml-linter.yml
index 93b337bfcd..f4a8699a64 100644
--- a/.github/configs/yaml-linter.yml
+++ b/.github/configs/yaml-linter.yml
@@ -2,15 +2,14 @@ extends: default
locale: en_US.UTF-8
yaml-files:
-- '*.yml'
+ - "*.yml"
rules:
-
## Don't warn for line lengths
line-length: disable
truthy:
- allowed-values: ['true', 'false']
+ allowed-values: ["true", "false"]
## We don't want it to trigger for the 'on' in our workflows
check-keys: false
diff --git a/.github/workflows/auto-approve.yml b/.github/workflows/auto-approve.yml
index 8f3836fad9..97e67e0ae3 100644
--- a/.github/workflows/auto-approve.yml
+++ b/.github/workflows/auto-approve.yml
@@ -7,7 +7,6 @@ permissions:
jobs:
auto-approve:
-
name: Auto approve Pull Request
runs-on: ubuntu-latest
@@ -19,8 +18,8 @@ jobs:
if: github.event.pull_request.head.repo.full_name == 'Slimefun/Slimefun4'
steps:
- - name: Approve via actions
- uses: hmarr/auto-approve-action@v4.0.0
- if: github.actor == 'TheBusyBot' || github.actor == 'renovate[bot]'
- with:
- github-token: "${{ secrets.GITHUB_TOKEN }}"
+ - name: Approve via actions
+ uses: hmarr/auto-approve-action@v4.0.0
+ if: github.actor == 'TheBusyBot' || github.actor == 'renovate[bot]'
+ with:
+ github-token: "${{ secrets.GITHUB_TOKEN }}"
diff --git a/.github/workflows/auto-squash.yml b/.github/workflows/auto-squash.yml
index 8b8ef1f434..46c003206d 100644
--- a/.github/workflows/auto-squash.yml
+++ b/.github/workflows/auto-squash.yml
@@ -13,7 +13,6 @@ on:
jobs:
autosquash-crowdin:
-
name: Auto squash (Crowdin)
runs-on: ubuntu-latest
@@ -21,19 +20,18 @@ jobs:
if: github.event.pull_request.head.repo.full_name == 'Slimefun/Slimefun4'
steps:
- - name: Auto squash
- uses: pascalgn/automerge-action@v0.16.4
- env:
- GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
- UPDATE_RETRIES: 0
- MERGE_METHOD: squash
- MERGE_FORKS: false
- MERGE_DELETE_BRANCH: true
- MERGE_LABELS: '๐ Translations Update'
- MERGE_COMMIT_MESSAGE: '[CI skip] New locale updates from Crowdin'
+ - name: Auto squash
+ uses: pascalgn/automerge-action@v0.16.4
+ env:
+ GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
+ UPDATE_RETRIES: 0
+ MERGE_METHOD: squash
+ MERGE_FORKS: false
+ MERGE_DELETE_BRANCH: true
+ MERGE_LABELS: "๐ Translations Update"
+ MERGE_COMMIT_MESSAGE: "[CI skip] New locale updates from Crowdin"
autosquash-renovate:
-
name: Auto squash (Renovate)
runs-on: ubuntu-latest
@@ -41,13 +39,13 @@ jobs:
if: github.event.pull_request.head.repo.full_name == 'Slimefun/Slimefun4'
steps:
- - name: Auto squash
- uses: pascalgn/automerge-action@v0.16.4
- env:
- GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
- UPDATE_RETRIES: 0
- MERGE_METHOD: squash
- MERGE_FORKS: false
- MERGE_DELETE_BRANCH: true
- MERGE_LABELS: '๐จ Dependency Update'
- MERGE_COMMIT_MESSAGE: '[CI skip] ${{ github.event.pull_request.title }}'
+ - name: Auto squash
+ uses: pascalgn/automerge-action@v0.16.4
+ env:
+ GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
+ UPDATE_RETRIES: 0
+ MERGE_METHOD: squash
+ MERGE_FORKS: false
+ MERGE_DELETE_BRANCH: true
+ MERGE_LABELS: "๐จ Dependency Update"
+ MERGE_COMMIT_MESSAGE: "[CI skip] ${{ github.event.pull_request.title }}"
diff --git a/.github/workflows/close-invalid-issues.yml b/.github/workflows/close-invalid-issues.yml
deleted file mode 100644
index 705f6ab9a5..0000000000
--- a/.github/workflows/close-invalid-issues.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: Close invalid Issue
-
-on:
- issues:
- types: [opened]
-
-jobs:
- comment:
-
- name: Invalid Issues
- runs-on: ubuntu-latest
-
- if: contains(github.event.issue.labels.*.name, '๐ Bug Report') == false && contains(github.event.issue.labels.*.name, 'Hacktoberfest') == false
- steps:
- - name: Close Issue
- uses: maxkomarychev/octions/octions/issues/update@master
- with:
- token: ${{ secrets.ACCESS_TOKEN }}
- issue_number: ${{ github.event.issue.number }}
- state: closed
- - name: Add invalid label
- uses: maxkomarychev/octions/octions/issues/add-labels@master
- with:
- token: ${{ secrets.ACCESS_TOKEN }}
- issue_number: ${{ github.event.issue.number }}
- labels: 'invalid'
- - name: Create a comment
- uses: maxkomarychev/octions/octions/issues/create-comment@master
- with:
- token: ${{ secrets.ACCESS_TOKEN }}
- issue_number: ${{ github.event.issue.number }}
- body: |-
- Your issue seems to be missing our template.
- [Click here to create a bug report](https://github.com/Slimefun/Slimefun4/issues/new/choose)
-
- Please remember that this Bug Tracker is exclusively reserved for Bug reports, any other form
- of discussion, like suggestions or questions should be posted on our discord server (You can find a link [on our main page](https://github.com/Slimefun/Slimefun4#discord)).
diff --git a/.github/workflows/discord-webhook.yml b/.github/workflows/discord-webhook.yml
index 6735d5d642..42f504366b 100644
--- a/.github/workflows/discord-webhook.yml
+++ b/.github/workflows/discord-webhook.yml
@@ -3,16 +3,15 @@ name: Discord Webhook
on:
push:
paths:
- - 'src/**'
- - '!src/main/resources/languages/**'
- - 'pom.xml'
+ - "src/**"
+ - "!src/main/resources/languages/**"
+ - "pom.xml"
permissions:
contents: read
jobs:
report:
-
name: Discord Webhook
runs-on: ubuntu-latest
@@ -20,26 +19,26 @@ jobs:
if: github.repository == 'Slimefun/Slimefun4'
steps:
- - name: Checkout repository
- uses: actions/checkout@v4.2.2
-
- - name: Set up Java JDK 21
- uses: actions/setup-java@v4.6.0
- with:
- distribution: 'adopt'
- java-version: '21'
- java-package: jdk
- architecture: x64
-
- - name: Cache Maven packages
- uses: actions/cache@v4
- with:
- path: ~/.m2
- key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
- restore-keys: ${{ runner.os }}-m2
-
- - name: Run Discord Webhook
- uses: baked-libs/discord-webhook@1.5.1
- with:
- id: ${{ secrets.DISCORD_WEBHOOK_ID }}
- token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
+ - name: Checkout repository
+ uses: actions/checkout@v4.2.2
+
+ - name: Set up Java JDK 21
+ uses: actions/setup-java@v4.6.0
+ with:
+ distribution: "adopt"
+ java-version: "21"
+ java-package: jdk
+ architecture: x64
+
+ - name: Cache Maven packages
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2
+
+ - name: Run Discord Webhook
+ uses: baked-libs/discord-webhook@1.5.1
+ with:
+ id: ${{ secrets.DISCORD_WEBHOOK_ID }}
+ token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
diff --git a/.github/workflows/duplicates.yml b/.github/workflows/duplicates.yml
deleted file mode 100644
index 7cb94d0dcb..0000000000
--- a/.github/workflows/duplicates.yml
+++ /dev/null
@@ -1,25 +0,0 @@
-name: Mark Issue as duplicate
-
-on:
- issue_comment:
- types: [created]
-
-permissions:
- contents: read
- issues: write
-
-jobs:
- comment:
-
- name: Mark Issue as duplicate
- runs-on: ubuntu-latest
-
- if: contains(github.event.comment.body, 'Duplicate of ')
-
- steps:
- - name: Add label to the Issue
- uses: maxkomarychev/octions/octions/issues/add-labels@master
- with:
- token: ${{ secrets.ACCESS_TOKEN }}
- issue_number: ${{ github.event.issue.number }}
- labels: '๐ฉ Duplicate'
diff --git a/.github/workflows/e2e-testing.yml b/.github/workflows/e2e-testing.yml
index e6be9ca39a..a9a46a7819 100644
--- a/.github/workflows/e2e-testing.yml
+++ b/.github/workflows/e2e-testing.yml
@@ -4,7 +4,7 @@ on:
workflow_call:
inputs:
artifact-name:
- description: 'Slimefun artifact name'
+ description: "Slimefun artifact name"
required: true
type: string
@@ -17,18 +17,8 @@ jobs:
strategy:
matrix:
include:
- - mcVersion: '1.16.5'
- javaVersion: '16'
- - mcVersion: '1.17.1'
- javaVersion: '17'
- - mcVersion: '1.18.2'
- javaVersion: '18'
- - mcVersion: '1.19.4'
- javaVersion: '19'
- - mcVersion: '1.20.4'
- javaVersion: '20'
- - mcVersion: '1.20.6'
- javaVersion: '21'
+ - mcVersion: "1.21.1"
+ javaVersion: "21"
#- mcVersion: 'latest'
# javaVersion: '21'
diff --git a/.github/workflows/javadocs.yml b/.github/workflows/javadocs.yml
index f628c2a692..4a5eafeb2b 100644
--- a/.github/workflows/javadocs.yml
+++ b/.github/workflows/javadocs.yml
@@ -3,35 +3,35 @@ name: Javadocs
on:
push:
paths:
- - 'src/**'
- - 'pom.xml'
+ - "src/**"
+ - "pom.xml"
permissions:
contents: read
jobs:
- build:
- name: Maven build
+ docs:
+ name: Generate Javadocs
runs-on: ubuntu-latest
steps:
- - name: Checkout repository
- uses: actions/checkout@v4
+ - name: Checkout repository
+ uses: actions/checkout@v4
- - name: Set up JDK 21
- uses: actions/setup-java@v4.6.0
- with:
- distribution: 'adopt'
- java-version: '21'
- java-package: jdk
- architecture: x64
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4.6.0
+ with:
+ distribution: "adopt"
+ java-version: "21"
+ java-package: jdk
+ architecture: x64
- - name: Cache Maven packages
- uses: actions/cache@v4
- with:
- path: ~/.m2
- key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
- restore-keys: ${{ runner.os }}-m2
+ - name: Cache Maven packages
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2
- - name: Build Javadocs
- run: mvn javadoc:javadoc
+ - name: Build Javadocs
+ run: mvn javadoc:javadoc
diff --git a/.github/workflows/json-validator.yml b/.github/workflows/json-validator.yml
deleted file mode 100644
index 512a484828..0000000000
--- a/.github/workflows/json-validator.yml
+++ /dev/null
@@ -1,27 +0,0 @@
-name: Validate JSON
-
-on:
- push:
- paths:
- - 'src/main/resources/wiki.json'
- pull_request:
- paths:
- - 'src/main/resources/wiki.json'
-
-permissions:
- contents: read
-
-jobs:
- validate:
-
- name: Validate JSON
- runs-on: ubuntu-latest
-
- steps:
- - name: Checkout Repository
- uses: actions/checkout@v4
- - name: Validate wiki.json
- uses: docker://orrosenblatt/validate-json-action:latest@sha256:02370758b8b199e0477da11ecfdd498c75c561685056b5c31b925a4ab95df7f4
- env:
- INPUT_SCHEMA: '.github/configs/wiki-schema.json'
- INPUT_JSONS: 'src/main/resources/wiki.json'
diff --git a/.github/workflows/label-resolved-issues.yml b/.github/workflows/label-resolved-issues.yml
index 5a54fb3144..00120fd234 100644
--- a/.github/workflows/label-resolved-issues.yml
+++ b/.github/workflows/label-resolved-issues.yml
@@ -10,7 +10,6 @@ permissions:
jobs:
label:
-
name: Label Issue
runs-on: ubuntu-latest
if: contains(github.event.issue.labels.*.name, '๐ Bug Report')
@@ -29,4 +28,4 @@ jobs:
with:
token: ${{ secrets.ACCESS_TOKEN }}
issue_number: ${{ github.event.issue.number }}
- labels: 'โ Resolved'
+ labels: "โ Resolved"
diff --git a/.github/workflows/maven-compiler.yml b/.github/workflows/maven-compiler.yml
index fa79dc66ca..3bca0c13ed 100644
--- a/.github/workflows/maven-compiler.yml
+++ b/.github/workflows/maven-compiler.yml
@@ -3,44 +3,44 @@ name: Java CI
on:
push:
branches:
- - master
+ - master
+ - experimental
paths:
- - 'src/**'
- - 'pom.xml'
+ - "src/**"
+ - "pom.xml"
pull_request:
paths:
- - '.github/workflows/**'
- - 'src/**'
- - 'pom.xml'
- - 'CHANGELOG.md'
+ - ".github/workflows/**"
+ - "src/**"
+ - "pom.xml"
+ - "CHANGELOG.md"
permissions:
contents: read
jobs:
build:
-
name: Maven build
runs-on: ubuntu-latest
steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Set up JDK 21
- uses: actions/setup-java@v4.6.0
- with:
- distribution: 'adopt'
- java-version: '21'
- java-package: jdk
- architecture: x64
-
- - name: Cache Maven packages
- uses: actions/cache@v4
- with:
- path: ~/.m2
- key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
- restore-keys: ${{ runner.os }}-m2
-
- - name: Build with Maven
- run: mvn package --file pom.xml
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4.6.0
+ with:
+ distribution: "adopt"
+ java-version: "21"
+ java-package: jdk
+ architecture: x64
+
+ - name: Cache Maven packages
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2
+
+ - name: Build with Maven
+ run: mvn package --file pom.xml
diff --git a/.github/workflows/merge-conflicts.yml b/.github/workflows/merge-conflicts.yml
deleted file mode 100644
index 5ac09a0a50..0000000000
--- a/.github/workflows/merge-conflicts.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-name: Merge Conflicts
-
-on:
- push:
- branches:
- - master
-
-permissions:
- contents: read
- pull-requests: write
-
-jobs:
- validate:
- if: github.repository == 'Slimefun/Slimefun4'
- name: Check for merge conflicts
- runs-on: ubuntu-latest
-
- steps:
- - uses: mschilde/auto-label-merge-conflicts@master
- with:
- CONFLICT_LABEL_NAME: 'โก Merge Conflicts'
- GITHUB_TOKEN: "${{ secrets.ACCESS_TOKEN }}"
diff --git a/.github/workflows/pr-labels.yml b/.github/workflows/pr-labels.yml
index b857b2faa6..6de85308e8 100644
--- a/.github/workflows/pr-labels.yml
+++ b/.github/workflows/pr-labels.yml
@@ -11,7 +11,6 @@ permissions:
jobs:
pr-labeler:
-
name: Pull Request Labels
runs-on: ubuntu-latest
if: github.repository == 'Slimefun/Slimefun4'
@@ -22,14 +21,14 @@ jobs:
name: Apply labels based on branch
with:
token: "${{ secrets.GITHUB_TOKEN }}"
- renovate: '๐จ Dependency Update'
- crowdin: '๐ Translations Update'
- feature: '๐ Feature'
- fix: 'โจ Fix'
- chore: '๐งน Chores'
- performance: '๐ก Performance Optimization'
- api: '๐ง API'
- compatibility: '๐ค Compatibility'
+ renovate: "๐จ Dependency Update"
+ crowdin: "๐ Translations Update"
+ feature: "๐ Feature"
+ fix: "โจ Fix"
+ chore: "๐งน Chores"
+ performance: "๐ก Performance Optimization"
+ api: "๐ง API"
+ compatibility: "๐ค Compatibility"
- uses: thollander/actions-comment-pull-request@v2.5.0
name: Leave a comment about the applied label
diff --git a/.github/workflows/publish-build.yml b/.github/workflows/publish-build.yml
index 31e94e16a2..5009c90a1e 100644
--- a/.github/workflows/publish-build.yml
+++ b/.github/workflows/publish-build.yml
@@ -19,8 +19,8 @@ jobs:
- name: Set up JDK 21
uses: actions/setup-java@v4.6.0
with:
- distribution: 'adopt'
- java-version: '21'
+ distribution: "adopt"
+ java-version: "21"
java-package: jdk
architecture: x64
@@ -34,7 +34,7 @@ jobs:
project: Slimefun4
releaseChannel: Dev
apiToken: ${{ secrets.BLOB_BUILDS_API_TOKEN }}
- file: './target/Slimefun v4.9-UNOFFICIAL.jar'
+ file: "./target/Slimefun v4.9-UNOFFICIAL.jar"
releaseNotes: ${{ github.event.head_commit.message }}
- name: Upload RC build
@@ -42,17 +42,17 @@ jobs:
if: github.ref == 'refs/heads/stable'
with:
project: Slimefun4
- releaseChannel: 'RC'
+ releaseChannel: "RC"
apiToken: ${{ secrets.BLOB_BUILDS_API_TOKEN }}
- file: './target/Slimefun v4.9-UNOFFICIAL.jar'
+ file: "./target/Slimefun v4.9-UNOFFICIAL.jar"
releaseNotes: ${{ github.event.head_commit.message }}
-
+
- name: Upload Experimental build
uses: WalshyDev/blob-builds/gh-action@ea9ecd9266c902c6627f884e657560d0fa6b61dd
if: github.ref == 'refs/heads/experimental'
with:
project: Slimefun4
- releaseChannel: 'Experimental'
+ releaseChannel: "Experimental"
apiToken: ${{ secrets.BLOB_BUILDS_API_TOKEN }}
- file: './target/Slimefun v4.9-UNOFFICIAL.jar'
+ file: "./target/Slimefun v4.9-UNOFFICIAL.jar"
releaseNotes: ${{ github.event.head_commit.message }}
diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml
index 28e0d47a98..76f4dd823a 100644
--- a/.github/workflows/pull-request.yml
+++ b/.github/workflows/pull-request.yml
@@ -3,9 +3,9 @@ name: Pull Request
on:
pull_request:
paths:
- - '.github/workflows/**'
- - 'src/**'
- - 'pom.xml'
+ - ".github/workflows/**"
+ - "src/**"
+ - "pom.xml"
permissions:
contents: read
@@ -15,45 +15,45 @@ jobs:
name: Preview build
runs-on: ubuntu-latest
outputs:
- short-commit-hash: ${{ steps.env-setup.outputs.SHORT_COMMIT_HASH }}
+ short-commit-hash: ${{ steps.env-setup.outputs.SHORT_COMMIT_HASH }}
steps:
- - name: Checkout repository
- uses: actions/checkout@v4
-
- - name: Set up JDK 21
- uses: actions/setup-java@v4.6.0
- with:
- distribution: 'adopt'
- java-version: '21'
- java-package: jdk
- architecture: x64
-
- - name: Cache Maven packages
- uses: actions/cache@v4
- with:
- path: ~/.m2
- key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
- restore-keys: ${{ runner.os }}-m2
-
- # Setup for the preview build
- - id: env-setup
- run: |
- SHORT_COMMIT_HASH=$(git rev-parse --short=8 ${{ github.sha }})
- JAR_VERSION="Preview Build #${{ github.event.number }}-$SHORT_COMMIT_HASH"
- echo "SHORT_COMMIT_HASH=$SHORT_COMMIT_HASH" >> "$GITHUB_ENV"
- echo "SHORT_COMMIT_HASH=$SHORT_COMMIT_HASH" >> "$GITHUB_OUTPUT"
- echo "JAR_VERSION=$JAR_VERSION" >> "$GITHUB_ENV"
- sed -i "s/4.9-UNOFFICIAL<\/version>/$JAR_VERSION<\/version>/g" pom.xml
-
- - name: Build with Maven
- run: mvn package
-
- - name: Upload the artifact
- uses: actions/upload-artifact@v4
- with:
- name: slimefun-${{ github.event.number }}-${{ env.SHORT_COMMIT_HASH }}
- path: 'target/Slimefun v${{ env.JAR_VERSION }}.jar'
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Set up JDK 21
+ uses: actions/setup-java@v4.6.0
+ with:
+ distribution: "adopt"
+ java-version: "21"
+ java-package: jdk
+ architecture: x64
+
+ - name: Cache Maven packages
+ uses: actions/cache@v4
+ with:
+ path: ~/.m2
+ key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
+ restore-keys: ${{ runner.os }}-m2
+
+ # Setup for the preview build
+ - id: env-setup
+ run: |
+ SHORT_COMMIT_HASH=$(git rev-parse --short=8 ${{ github.sha }})
+ JAR_VERSION="Preview Build #${{ github.event.number }}-$SHORT_COMMIT_HASH"
+ echo "SHORT_COMMIT_HASH=$SHORT_COMMIT_HASH" >> "$GITHUB_ENV"
+ echo "SHORT_COMMIT_HASH=$SHORT_COMMIT_HASH" >> "$GITHUB_OUTPUT"
+ echo "JAR_VERSION=$JAR_VERSION" >> "$GITHUB_ENV"
+ sed -i "s/4.9-UNOFFICIAL<\/version>/$JAR_VERSION<\/version>/g" pom.xml
+
+ - name: Build with Maven
+ run: mvn package
+
+ - name: Upload the artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: slimefun-${{ github.event.number }}-${{ env.SHORT_COMMIT_HASH }}
+ path: "target/Slimefun v${{ env.JAR_VERSION }}.jar"
call-workflows:
needs: [setup-preview-build]
diff --git a/.github/workflows/release-candidates.yml b/.github/workflows/release-candidates.yml
index e330af4b09..09d4be20f4 100644
--- a/.github/workflows/release-candidates.yml
+++ b/.github/workflows/release-candidates.yml
@@ -4,75 +4,73 @@ on:
workflow_dispatch:
inputs:
number:
- description: 'RC number (e.g. 15)'
+ description: "RC number (e.g. 15)"
required: true
release_date:
- description: 'Date of release (e.g. 12-apr-2021)'
+ description: "Date of release (e.g. 12-apr-2021)"
required: true
jobs:
release:
-
name: Create new release
runs-on: ubuntu-latest
steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ ref: "stable"
- - name: Checkout repository
- uses: actions/checkout@v4
- with:
- ref: 'stable'
-
- - name: Merge latest commits into 'stable'
- uses: devmasx/merge-branch@1.4.0
- with:
- type: now
- from_branch: 'master'
- target_branch: 'stable'
- github_token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Merge latest commits into 'stable'
+ uses: devmasx/merge-branch@1.4.0
+ with:
+ type: now
+ from_branch: "master"
+ target_branch: "stable"
+ github_token: ${{ secrets.GITHUB_TOKEN }}
- - name: Get the latest commit sha
- id: latest
- run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
+ - name: Get the latest commit sha
+ id: latest
+ run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- - name: Create Release
- id: create_release
- uses: actions/create-release@v1.1.4
- env:
- GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
- with:
- tag_name: RC-${{ github.event.inputs.number }}
- release_name: Release Candidate ${{ github.event.inputs.number }} (git ${{ steps.latest.outputs.sha_short }})
- draft: false
- prerelease: false
- body: |
- ## ๐พ Download link
- This release candidate of Slimefun4 can be downloaded here:
- https://blob.build/project/Slimefun4/RC
+ - name: Create Release
+ id: create_release
+ uses: actions/create-release@v1.1.4
+ env:
+ GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
+ with:
+ tag_name: RC-${{ github.event.inputs.number }}
+ release_name: Release Candidate ${{ github.event.inputs.number }} (git ${{ steps.latest.outputs.sha_short }})
+ draft: false
+ prerelease: false
+ body: |
+ ## ๐พ Download link
+ This release candidate of Slimefun4 can be downloaded here:
+ https://blob.build/project/Slimefun4/RC
- ### โ How to install Slimefun
- Simply drag & drop the Slimefun4 jar file into the `/plugins/` directory of your server.
- If you need any help installing Slimefun, feel free to check out our wiki article on [How to install Slimefun](https://github.com/Slimefun/Slimefun4/wiki/Installing-Slimefun).
+ ### โ How to install Slimefun
+ Simply drag & drop the Slimefun4 jar file into the `/plugins/` directory of your server.
+ If you need any help installing Slimefun, feel free to check out our wiki article on [How to install Slimefun](https://github.com/Slimefun/Slimefun4/wiki/Installing-Slimefun).
- ## ๐ Change log
- You can find a short summary of all the changes that are included in this release right here:
- https://github.com/Slimefun/Slimefun4/blob/master/CHANGELOG.md#release-candidate-${{ github.event.inputs.number }}-${{ github.event.inputs.release_date }}
+ ## ๐ Change log
+ You can find a short summary of all the changes that are included in this release right here:
+ https://github.com/Slimefun/Slimefun4/blob/master/CHANGELOG.md#release-candidate-${{ github.event.inputs.number }}-${{ github.event.inputs.release_date }}
- ## ๐ฆ Maven dependency reference
- If you want to develop an addon for Slimefun ([Developer Reference](https://github.com/Slimefun/Slimefun4/wiki/Developer-Guide)), then you can build your project against this specific version of Slimefun using the following `pom.xml` dependency:
- ```xml
-
-
- jitpack.io
- https://jitpack.io
-
-
+ ## ๐ฆ Maven dependency reference
+ If you want to develop an addon for Slimefun ([Developer Reference](https://github.com/Slimefun/Slimefun4/wiki/Developer-Guide)), then you can build your project against this specific version of Slimefun using the following `pom.xml` dependency:
+ ```xml
+
+
+ jitpack.io
+ https://jitpack.io
+
+
-
-
- com.github.Slimefun
- Slimefun4
- RC-${{ github.event.inputs.number }}
-
-
- ```
+
+
+ com.github.Slimefun
+ Slimefun4
+ RC-${{ github.event.inputs.number }}
+
+
+ ```
diff --git a/.github/workflows/sonarcloud.yml b/.github/workflows/sonarcloud.yml
index 2702fbb6c8..00de121d2c 100644
--- a/.github/workflows/sonarcloud.yml
+++ b/.github/workflows/sonarcloud.yml
@@ -9,7 +9,6 @@ permissions:
jobs:
scan:
-
name: SonarCloud Scanner
runs-on: ubuntu-latest
@@ -26,8 +25,8 @@ jobs:
- name: Set up JDK 21
uses: actions/setup-java@v4.6.0
with:
- distribution: 'adopt'
- java-version: '21'
+ distribution: "adopt"
+ java-version: "21"
java-package: jdk
architecture: x64
diff --git a/.github/workflows/translator-webhook.yml b/.github/workflows/translator-webhook.yml
index ec8328f899..cabffa30af 100644
--- a/.github/workflows/translator-webhook.yml
+++ b/.github/workflows/translator-webhook.yml
@@ -3,16 +3,15 @@ name: Translation Notifier
on:
push:
branches:
- - master
+ - experimental
paths:
- - 'src/main/resources/languages/en/**.yml'
+ - "src/main/resources/languages/en/**.yml"
permissions:
contents: read
jobs:
notify:
-
name: Translation-Notifier
runs-on: ubuntu-latest
if: github.repository == 'Slimefun/Slimefun4'
@@ -21,6 +20,6 @@ jobs:
- name: Discord Notification
uses: Ilshidur/action-discord@master
with:
- args: '<@&665202905271369776> New strings have been added to Slimefun4''s language files. You can translate them at https://crowdin.com/project/slimefun'
+ args: "<@&665202905271369776> New strings have been added to Slimefun4's language files. You can translate them at https://crowdin.com/project/slimefun"
env:
DISCORD_WEBHOOK: ${{ secrets.TRANSLATOR_WEBHOOK }}
diff --git a/.github/workflows/yaml-linter.yml b/.github/workflows/yaml-linter.yml
index a1e22c99c5..687d8487f5 100644
--- a/.github/workflows/yaml-linter.yml
+++ b/.github/workflows/yaml-linter.yml
@@ -3,24 +3,21 @@ name: YAML Linter
on:
push:
paths:
- - '**.yml'
- pull_request:
- branches:
- - master
+ - "**.yml"
+ pull_request: {}
permissions:
contents: read
jobs:
linter:
-
name: YAML Linter
runs-on: ubuntu-latest
steps:
- - name: Checkout repository
- uses: actions/checkout@v4
- - name: YAML Linter
- uses: ibiqlik/action-yamllint@v3.1.1
- with:
- config_file: '.github/configs/yaml-linter.yml'
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ - name: YAML Linter
+ uses: ibiqlik/action-yamllint@v3.1.1
+ with:
+ config_file: ".github/configs/yaml-linter.yml"
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 6e6d01d2e8..c571c1e3c7 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,10 +1,12 @@
# Contributing to Slimefun
+
This document outlines various ways how you can help contribute to Slimefun and make this a bigger and better project.
All contributions must be inline with our [Code of Conduct](https://github.com/Slimefun/Slimefun4/blob/master/.github/CODE_OF_CONDUCT.md) and [License](https://github.com/Slimefun/Slimefun4/blob/master/LICENSE).
Please also follow the templates for Issues and Pull Requests we provide.
## :beetle: 1. Issues: Bug Reports
-One of the foundations for good software is reliability. To facilitate this reliability, our community must work together to crush bugs that arise.
+
+One of the foundations for good software is reliability. To facilitate this reliability, our community must work together to crush bugs that arise.
This of course requires good information and knowledge about ongoing bugs and issues though.
You can help this project by reporting a bug on our [Issues Tracker](https://github.com/Slimefun/Slimefun4/issues).
@@ -16,14 +18,16 @@ It would be awesome though if you could post a comment on the existing issue whi
The more context and information we get, the easier we can fix it.
## :hammer_and_wrench: 2. Pull Requests: Bug Fixes
+
Bugs that have been reported need to be fixed of course.
Any open Issue on our [Issues Tracker](https://github.com/Slimefun/Slimefun4/issues) is waiting to be fixed.
-This is an Open-Source project and we love Pull Requests.
+This is an Open-Source project and we love Pull Requests.
So if you have an idea on how to approach a known issue, feel free to make a [Pull Request](https://github.com/Slimefun/Slimefun4/pulls) which fixes this bug.
You can also comment on the existing Issue, proposing your idea or communicating that you wanna work on this.
## :wrench: 3. Pull Requests: Additions/Changes
+
Slimefun is an Open-Source project and anyone is allowed to make changes or add content to this plugin!
Please visit our [Discord Server](https://discord.gg/slimefun) and share your ideas first, we hate to reject changes because the community disagrees.
@@ -37,18 +41,21 @@ Also consider making an addon for your additions when they get too large, too ab
You can check out our [Developer Guide](https://github.com/Slimefun/Slimefun4/wiki/Developer-Guide) for a guide on how to create a Slimefun addon..
## :earth_africa: 4. Pull Requests: Translations
+
Another great way to contribute to Slimefun is by working on translations for the project.
Slimefun's translation is available on [Crowdin](https://crowdin.com/project/slimefun).
Just find a language you are fluent in and translate away. But make sure to submit a "Review Request" when you are done.
One of our Language Moderators will review the changes and submit a Pull Request to the project for you.
#### Language Moderation
-Very active community translators will have the option to become a "Language Moderator".
+
+Very active community translators will have the option to become a "Language Moderator".
Language Moderators are responsible for proof-reading any new translations for their designated language and correct it when they see a mistake.
For more info on how or what to translate, check out our article on [How to translate Slimefun](https://github.com/Slimefun/Slimefun4/wiki/Translating-Slimefun).
## :scroll: 5. Pull Requests: Wiki contributions
+
Slimefun is a very large project and might be quite intimidating for new players.
That's why good documentation is always nice and helpful.
If you have played with Slimefun for a while and gotten yourself familiar with how things work, please consider contributing your experiences and knowledge to others via the wiki!
@@ -58,21 +65,25 @@ You can find a tutorial on how to contribute to our wiki right here:
https://github.com/Slimefun/Slimefun4/wiki/Expanding-the-Wiki
## :star: 6. Pull Requests: Code Quality
+
Slimefun uses [sonarcloud.io](https://sonarcloud.io/dashboard?id=Slimefun_Slimefun4) to monitor Code Quality.
We always welcome quality improvements to the code and the "Code Smells" section on [sonarcloud.io](https://sonarcloud.io/dashboard?id=Slimefun_Slimefun4) is a great place to start.
-But please keep in mind that some design patterns may not be changed too abruptly if an addon depends on them.
+But please keep in mind that some design patterns may not be changed too abruptly if an addon depends on them.
To prevent any accidents from happening, please contact us on our [Discord Server](https://discord.gg/slimefun) before-hand and state your intended changes.
#### Documentation
+
Code documentation is also a great way to improve the maintainability of the project.
-1. Every class and every public method should have a Javadocs section assigned to it.
+
+1. Every class and every public method should have a Javadocs section assigned to it.
2. Classes should also include an `@author` tag to indicate who worked on that class.
3. Methods and parameters should be annotated with `@Nullable` or `@Nonnull` to indicate whether or not null values are accepted.
Feel free to visit our [Javadocs](https://slimefun.github.io/javadocs/Slimefun4/docs/overview-summary.html)
#### Unit Tests
+
Unit Tests help us test the project to work as intended in an automated manner.
More or better Unit Tests are always good to have, so feel free to submit a Test and place it in our [src/test/java](https://github.com/Slimefun/Slimefun4/tree/master/src/test/java/io/github/thebusybiscuit/slimefun4/testing) directory
@@ -80,76 +91,92 @@ We are using [Junit 5 - Jupiter](https://github.com/junit-team/junit5/) and [Moc
Every new Unit Test should have a `@DisplayName` annotation with a plain text description on what the Unit Test tests.
## :toolbox: How to compile Slimefun4
+
Slimefun is written in Java and uses [Maven](https://maven.apache.org/) for compilation.
To compile Slimefun yourself, follow these steps:
1. Clone the project via git
-`$ git clone https://github.com/Slimefun/Slimefun4/`
+ `$ git clone https://github.com/Slimefun/Slimefun4/`
2. Compile the project using Maven
-`$ mvn clean package`
+ `$ mvn clean package`
3. Extract the compiled `Slimefun-v4.X-UNOFFICIAL.jar` from your `/target/` directory.
-If you are already using an IDE, make sure to import the project via git and set it up as a *Maven project*.
+If you are already using an IDE, make sure to import the project via git and set it up as a _Maven project_.
Then you should be able build it via Maven using the goals `clean package`.
If you have any further questions, then please join our [Discord Support Server](https://discord.gg/slimefun) and ask your questions in the `#programming-help` channel.
**Note that we will not accept any bug reports from custom-compiled versions of Slimefun**.
## :black_nib: Code Style guidelines
+
The general gist when it comes to code style: **Try to be consistent!**.
Try to stay inline with the code that surrounds you, having an entire package or even a single file that's filled with plenty of different and inconsistent code styles is just hard to read or maintain. That's why we wanna make sure everyone follows these principles.
-*Note that these are just guidelines, we may request changes on your pull request if we think there are changes necessary.
-But we won't reject your Pull Request completely due to a few styling inconsistencies, we can always refactor code later.
-But do try to follow our code style as best as you can.*
+_Note that these are just guidelines, we may request changes on your pull request if we think there are changes necessary.
+But we won't reject your Pull Request completely due to a few styling inconsistencies, we can always refactor code later.
+But do try to follow our code style as best as you can._
#### 1. Imports
-* Don't use wildcard (`*`) imports!
-* Don't import unused classes!
-* Don't use static imports!
-* Always use imports, even in javadocs, don't write out the full location of a class.
+
+- Don't use wildcard (`*`) imports!
+- Don't import unused classes!
+- Don't use static imports!
+- Always use imports, even in javadocs, don't write out the full location of a class.
+
#### 2. Annotations
-* Methods and parameters should be annotated with `@Nullable` (`javax.annotation.Nullable`) or `@Nonnull`(`javax.annotation.Nonnull`)!
-* Methods that override a method must be annotated with `@Override`!
-* Interfaces with only one method should be annotated using `@FunctionalInterface`!
-* If you deprecate a method, add an `@deprecated` section to the javadocs explaining why you did it.
+
+- Methods and parameters should be annotated with `@Nullable` (`javax.annotation.Nullable`) or `@Nonnull`(`javax.annotation.Nonnull`)!
+- Methods that override a method must be annotated with `@Override`!
+- Interfaces with only one method should be annotated using `@FunctionalInterface`!
+- If you deprecate a method, add an `@deprecated` section to the javadocs explaining why you did it.
+
#### 3. Documentation
-* Every class and every public method should have a Javadocs section assigned to it.
-* New packages should have a `package-info.java` file with documentation about the package.
-* Classes should have an `@author` tag.
-* If there are any other relevant classes related to yours, add them using the `@see` tag.
+
+- Every class and every public method should have a Javadocs section assigned to it.
+- New packages should have a `package-info.java` file with documentation about the package.
+- Classes should have an `@author` tag.
+- If there are any other relevant classes related to yours, add them using the `@see` tag.
+
#### 4. Unit Tests
-* Try to write Unit Tests where possible.
-* Unit Test classes and methods should have no access modifier, not `public`, `protected` nor `private`.
-* Each Test should have a plain text `@DisplayName` annotation!
+
+- Try to write Unit Tests where possible.
+- Unit Test classes and methods should have no access modifier, not `public`, `protected` nor `private`.
+- Each Test should have a plain text `@DisplayName` annotation!
+
#### 5. General best-practices
-* Do not use `Collection#forEach(x -> ...)`, use a proper `for (...)` loop!
-* Do not create new `Random` objects, use `ThreadLocalRandom.current()` instead!
-* Always declare Maps or Collections using their base type! (e.g. `List list = new ArrayList<>();`)
-* When doing String operations like `String#toUppercase()`, always specify `Locale.ROOT` as an argument!
-* When reading or writing files, always specify the encoding using `StandardCharsets.UTF_8`!
-* Do not declare multiple fields/variables on the same line! (e.g. Don't do this: `int x, y, z;`)
-* Use a Logger, try to avoid `System.out.println(...)` and `Throwable#printStacktrace()`, use `Logger#log` instead!
-* Do not use Exceptions to validate data, empty catch blocks are a very bad practice, use other means like a regular expression to validate data.
-* If a parameter is annotated with `@Nonnull`, you should enforce this behaviour by doing `Validate.notNull(variable, "...");` and give a meaningful message about what went wrong
-* Any `switch/case` should always have a `default:` case at the end.
-* If you are working with a resource that must be closed, use a `try/with-resource`, this will automatically close the resource at the end. (e.g. `try (InputStream stream = ...) {`)
-* Array designators should be placed behind the type, not the variable name. (e.g. `int[] myArray`)
-* Enums must be compared using `==`, not with `.equals()`!
-* Avoid direct string concatenation, use a `StringBuilder` instead!
-* If you need both the key and the value from a Map, use `Map#entrySet()`!
+
+- Do not use `Collection#forEach(x -> ...)`, use a proper `for (...)` loop!
+- Do not create new `Random` objects, use `ThreadLocalRandom.current()` instead!
+- Always declare Maps or Collections using their base type! (e.g. `List list = new ArrayList<>();`)
+- When doing String operations like `String#toUppercase()`, always specify `Locale.ROOT` as an argument!
+- When reading or writing files, always specify the encoding using `StandardCharsets.UTF_8`!
+- Do not declare multiple fields/variables on the same line! (e.g. Don't do this: `int x, y, z;`)
+- Use a Logger, try to avoid `System.out.println(...)` and `Throwable#printStacktrace()`, use `Logger#log` instead!
+- Do not use Exceptions to validate data, empty catch blocks are a very bad practice, use other means like a regular expression to validate data.
+- If a parameter is annotated with `@Nonnull`, you should enforce this behaviour by doing `Validate.notNull(variable, "...");` and give a meaningful message about what went wrong
+- Any `switch/case` should always have a `default:` case at the end.
+- If you are working with a resource that must be closed, use a `try/with-resource`, this will automatically close the resource at the end. (e.g. `try (InputStream stream = ...) {`)
+- Array designators should be placed behind the type, not the variable name. (e.g. `int[] myArray`)
+- Enums must be compared using `==`, not with `.equals()`!
+- Avoid direct string concatenation, use a `StringBuilder` instead!
+- If you need both the key and the value from a Map, use `Map#entrySet()`!
+
#### 6. Naming conventions
-* Classes should be in *PascalCase* (e.g. `MyAwesomeClass`)
-* Enum constants should be in *SCREAMING_SNAKE_CASE* (e.g. `MY_ENUM_CONSTANT`)
-* Constants (`static final` fields) should be in *SCREAMING_SNAKE_CASE* (e.g. `MY_CONSTANT_FIELD`)
-* Variables, parameters and fields should be in *camelCase* (e.g. `myVariableOrField`)
-* All methods should be in *camelCase* (e.g. `myMethod`)
-* Packages must be all lowercase, consecutive words should generally be avoided. (e.g. `io.github.thebusybiscuit.slimefun4.core.something`)
+
+- Classes should be in _PascalCase_ (e.g. `MyAwesomeClass`)
+- Enum constants should be in _SCREAMING_SNAKE_CASE_ (e.g. `MY_ENUM_CONSTANT`)
+- Constants (`static final` fields) should be in _SCREAMING_SNAKE_CASE_ (e.g. `MY_CONSTANT_FIELD`)
+- Variables, parameters and fields should be in _camelCase_ (e.g. `myVariableOrField`)
+- All methods should be in _camelCase_ (e.g. `myMethod`)
+- Packages must be all lowercase, consecutive words should generally be avoided. (e.g. `io.github.thebusybiscuit.slimefun4.core.something`)
+
#### 7. Style preferences
-* Use **Spaces**, not Tabs!
-* One class per file! Please don't put multiple classes into one file, this also applies to enums, make a seperate file for new classes or enums.
-* Try to keep ternary operators to a minimum, only in return statements. (e.g. avoid doing this: `int y = x == null ? 1: 2`)
-* Try to keep so-called "guard blocks" to a minimum. One guard block is fine but having multiple guard blocks before getting to the actual code... Well, you might wanna refactor your code there. Example:
+
+- Use **Spaces**, not Tabs!
+- One class per file! Please don't put multiple classes into one file, this also applies to enums, make a seperate file for new classes or enums.
+- Try to keep ternary operators to a minimum, only in return statements. (e.g. avoid doing this: `int y = x == null ? 1: 2`)
+- Try to keep so-called "guard blocks" to a minimum. One guard block is fine but having multiple guard blocks before getting to the actual code... Well, you might wanna refactor your code there. Example:
+
```java
// guard block
if (something) {
@@ -158,17 +185,21 @@ if (something) {
// Actual code...
```
-* if/else statements should always include a bracket, please avoid one-line statements. (e.g. Avoid doing: `if (x == 0) return;`)
-* We do not enforce any particular width or column limit, just try to prevent your lines from becoming too long. But please avoid line-wrapping.
-* Annotations that target the return type of the method should be inline. Annotations which target the method itself should be written in the line above:
+
+- if/else statements should always include a bracket, please avoid one-line statements. (e.g. Avoid doing: `if (x == 0) return;`)
+- We do not enforce any particular width or column limit, just try to prevent your lines from becoming too long. But please avoid line-wrapping.
+- Annotations that target the return type of the method should be inline. Annotations which target the method itself should be written in the line above:
+
```java
@Override // <- Describes the method itself. `@Nullable` describes only the return type.
public @Nullable String getString() {
// [...]
}
```
-* Comments should never go on the same line as code! Always above or below.
-* When you deviate from this style, add formatter comments and explain why. Example:
+
+- Comments should never go on the same line as code! Always above or below.
+- When you deviate from this style, add formatter comments and explain why. Example:
+
```java
// @formatter:off - This array represents a 3x3 grid and should be shown as such.
String[] arrays = {
@@ -178,17 +209,19 @@ String[] arrays = {
};
// @formatter:on
```
-* Make sure that empty lines are truly empty, they should not contain any whitespace characters.
-* Empty blocks like constructors should not occupy more than one line. (e.g. `private MyClass() {}`)
-* Modifiers for classes and fields must follow this order:
-`[public/protected/private] [abstract] [static] [final]`
-* We recommend using horizontal whitespaces like this:
- * In variable assignments: `int x = 123;`
- * In a for-loop: `for (int i = 0; i < 10; i++) {`
- * Before and after statement parenthesis: `if (x != null) {`
- * Inbetween array initializers: `int[] array = { 1, 2, 3 };`
- * After the double slash of a comment: `// This is a comment`
-* Slimefun follows the **1TBS / OTBS** Bracket-Style standard (One true brace style):
+
+- Make sure that empty lines are truly empty, they should not contain any whitespace characters.
+- Empty blocks like constructors should not occupy more than one line. (e.g. `private MyClass() {}`)
+- Modifiers for classes and fields must follow this order:
+ `[public/protected/private] [abstract] [static] [final]`
+- We recommend using horizontal whitespaces like this:
+ - In variable assignments: `int x = 123;`
+ - In a for-loop: `for (int i = 0; i < 10; i++) {`
+ - Before and after statement parenthesis: `if (x != null) {`
+ - Inbetween array initializers: `int[] array = { 1, 2, 3 };`
+ - After the double slash of a comment: `// This is a comment`
+- Slimefun follows the **1TBS / OTBS** Bracket-Style standard (One true brace style):
+
```java
private void example(int x) {
if (x < 0) {
diff --git a/README.md b/README.md
index affc3ed96c..f1d5718bab 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,28 @@
# Slimefun 4
-*Looking for the download link? [**Click here**](https://github.com/Slimefun/Slimefun4/blob/master/README.md#floppy_disk-download-slimefun-4)*
+
+_Looking for the download link? [**Click here**](https://github.com/Slimefun/Slimefun4/blob/master/README.md#floppy_disk-download-slimefun-4)_
Slimefun is a plugin which aims to turn your Spigot Server into a modpack without ever installing a single mod. It offers everything you could possibly imagine. From Backpacks to Jetpacks! Slimefun lets every player decide on their own how much they want to dive into Magic or Tech.
We got everything from magical wands to nuclear reactors.
We feature a magical altar, an electric power grid and even item transport systems.
This project originally started back **in 2013** and has grown ever since.
-From one single person working on this plugin back then, we grew to a community of thousands of players and hundreds of contributors to this project.
-It currently adds over **500 new items and recipes** to Minecraft ([Read more about the history of this project](https://github.com/Slimefun/Slimefun4/wiki/Slimefun-in-a-nutshell)).
+From one single person working on this plugin back then, we grew to a community of thousands of players and hundreds of contributors to this project.
-But it also comes with a lot of addons! Check out our [addons](https://github.com/Slimefun/Slimefun4/wiki/Addons), you may find exactly what you were looking for.
+It currently adds over **500 new items and recipes** to Minecraft ([Read more about the history of this project](https://github.com/Slimefun/Slimefun4/wiki/Slimefun-in-a-nutshell)). But it also comes with a lot of addons! Check out our [addons](https://github.com/Slimefun/Slimefun4/wiki/Addons), you may find exactly what you were looking for.
### Quick navigation
-* **[:floppy_disk: Download Slimefun4](#floppy_disk-download-slimefun-4)**
-* **[:framed_picture: Screenshots](#framed_picture-screenshots)**
-* **[:headphones: Discord Support Server](#headphones-discord)**
-* **[:beetle: Bug Tracker](https://github.com/Slimefun/Slimefun4/issues)**
-* **[:open_book: Wiki](https://github.com/Slimefun/Slimefun4/wiki)**
-* **[:interrobang: FAQ](https://github.com/Slimefun/Slimefun4/wiki/FAQ)**
-* **[:handshake: How to contribute](https://github.com/Slimefun/Slimefun4/blob/master/CONTRIBUTING.md)**
+
+- **[:floppy_disk: Download Slimefun4](#floppy_disk-download-slimefun-4)**
+- **[:framed_picture: Screenshots](#framed_picture-screenshots)**
+- **[:headphones: Discord Support Server](#headphones-discord)**
+- **[:beetle: Bug Tracker](https://github.com/Slimefun/Slimefun4/issues)**
+- **[:open_book: Wiki](https://github.com/Slimefun/Slimefun4/wiki)**
+- **[:interrobang: FAQ](https://github.com/Slimefun/Slimefun4/wiki/FAQ)**
+- **[:handshake: How to contribute](https://github.com/Slimefun/Slimefun4/blob/master/CONTRIBUTING.md)**
## :floppy_disk: Download Slimefun 4
+
Slimefun requires your Minecraft Server to be running on [Spigot](https://spigotmc.org/), [Paper](https://papermc.io/) or on any fork of these.
(See also: [How to install Slimefun](https://github.com/Slimefun/Slimefun4/wiki/Installing-Slimefun))
@@ -28,44 +30,47 @@ Slimefun 4 can be downloaded **for free** on our builds page.
We currently provide two distinct versions of Slimefun, development builds and "stable" builds.
Here is a full summary of the differences between the two different versions of Slimefun.
-| | development (latest) | "stable" |
-| ------------------ | -------- | -------- |
-| **Minecraft version(s)** | :video_game: **1.16.\* - 1.20.\*** | :video_game: **1.16.\* - 1.20.\*** |
-| **Java version** | :computer: **Java 16 (or higher)** | :computer: **Java 16 (or higher)** |
-| **automatic updates** | :heavy_check_mark: | :heavy_check_mark: |
-| **frequent updates** | :heavy_check_mark: | :x: |
-| **latest content** | :heavy_check_mark: | :x: |
-| **Discord support** | :heavy_check_mark: | :x: |
-| **Bug Reports** | :heavy_check_mark: | :x: |
-| **testing before release** | :x: | :heavy_check_mark: |
-| **change logs** | :x: | :memo: **[change log](https://github.com/Slimefun/Slimefun4/blob/master/CHANGELOG.md)** |
-| **Download links** | :floppy_disk: **[download latest](https://blob.build/project/Slimefun4/Dev)** | :floppy_disk: **[download "stable"](https://blob.build/project/Slimefun4/RC)** |
+| | development (master branch) | RC ("stable") | Experimental |
+| -------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- |
+| **Minecraft version(s)** | :video_game: **1.16.\* - 1.20.\*** | :video_game: **1.16.\* - 1.20.\*** | :video_game: **1.21 - 1.21.2** |
+| **Java version** | :computer: **Java 16 (or higher)** | :computer: **Java 16 (or higher)** | :computer: **Java 16 (or higher)** |
+| **automatic updates** | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
+| **frequent updates** | :x: | :x: | :heavy_check_mark: |
+| **latest content** | :x: | :x: | :heavy_check_mark: |
+| **Discord support** | :heavy_check_mark: | :x: | :heavy_check_mark: |
+| **Bug Reports** | :heavy_check_mark: | :x: | :heavy_check_mark: |
+| **testing before release** | :x: | :heavy_check_mark: | :x: |
+| **change logs** | :x: | :memo: **[change log](https://github.com/Slimefun/Slimefun4/blob/master/CHANGELOG.md)** | :x: |
+| **Download links** | :floppy_disk: **[download latest](https://blob.build/project/Slimefun4/Dev)** | :floppy_disk: **[download "stable"](https://blob.build/project/Slimefun4/RC)** | :floppy_disk: **[download experimental](https://blob.build/project/Slimefun4/Experimental)** |
**:exclamation: We wholeheartedly recommend you to use _development builds_, they are the most recent version of Slimefun and also receive the most frequent updates! In fact, "stable" builds are so outdated that we won't accept bug reports from them at all.**
+
Here's why...
"Stable" builds do not receive frequent updates or fast patches. As time goes on, bugs are fixed but it will take some time until these fixes make it into a "stable" build. We will also not accept or review any bug reports from "stable" builds. They are in fact just old development builds that seemed to run fine without any __major__ issues.
**:question: Why use a "stable" build then?**
-While "stable" builds most definitely contain more bugs than development builds due to their very slow update schedule. you can be sure that they will not include __game-breaking__ issues, but rest assured that development builds almost never contain such issues either. If your server or business however heavily depends on a version of Slimefun that does not change/update a lot, you are forgiven if you choose the "stable" branch. But development builds will bring you the best experience, both in terms of features and bug fixes.
+While "stable" builds most definitely contain more bugs than development builds due to their very slow update schedule. you can be sure that they will not include **game-breaking** issues, but rest assured that development builds almost never contain such issues either. If your server or business however heavily depends on a version of Slimefun that does not change/update a lot, you are forgiven if you choose the "stable" branch. But development builds will bring you the best experience, both in terms of features and bug fixes.
**:question: What exactly are these "stable" builds then and why do you put them in quotes?**
-"Stable" builds are literally just outdated development builds that seemed to run fine without any __major__ issues. But they are far from bug-free hence why actually calling them stable would be hypocritical. However these builds can only really stay "stable" if there are enough people using development builds and report any bugs they come across. Otherwise potential issues may go unnoticed and slip into a "stable" build. Again, we really recommend you to choose the development builds. But since a few people really wanted "stable" builds, they are now an option too.
+"Stable" builds are literally just outdated development builds that seemed to run fine without any **major** issues. But they are far from bug-free hence why actually calling them stable would be hypocritical. However these builds can only really stay "stable" if there are enough people using development builds and report any bugs they come across. Otherwise potential issues may go unnoticed and slip into a "stable" build. Again, we really recommend you to choose the development builds. But since a few people really wanted "stable" builds, they are now an option too.
## :framed_picture: Screenshots
+
So what does Slimefun look like?
Well, we asked some users on our [Discord server](#headphones-discord) to send us some screenshots, so see for yourself:
-| Reactors and electricity | Awesome factories | Magic and Altars |
+| Reactors and electricity | Awesome factories | Magic and Altars |
| :-------------------------------------------: | :--------------------------------------: | :----------------------------------------: |
|  |  |  |
-| *Screenshot provided by HamtaBot#0001* | *Screenshot provided by Piอญxอชeอคl (mnb)#5049* | *Screenshot provided by Kilaruna#4981* |
+| _Screenshot provided by HamtaBot#0001_ | _Screenshot provided by Piอญxอชeอคl (mnb)#5049_ | _Screenshot provided by Kilaruna#4981_ |
|  |  |  |
-| *Screenshot provided by GalaxyKat11#3816* | *Screenshot provided by TamThan#7987* | *Screenshot provided by Kilaruna#4981* |
+| _Screenshot provided by GalaxyKat11#3816_ | _Screenshot provided by TamThan#7987_ | _Screenshot provided by Kilaruna#4981_ |
## :headphones: Discord
+
You can find Slimefun's community on Discord and connect with **over 7000** users of this plugin from all over the world.
Click the badge down below to join the server for suggestions/questions or other discussions about this plugin.
We are also hosting a community event every so often, join us to find out more.
@@ -81,24 +86,27 @@ Not following these rules can lead to a kick or even a ban from the server.
## :open_book: Wiki
-Slimefun has a (detailed and well-maintained - *cough*) Wiki for new players, maybe also consider
+
+Slimefun has a (detailed and well-maintained - _cough_) Wiki for new players, maybe also consider
expanding the wiki to help grow our community and help out new users of this plugin.
https://github.com/Slimefun/Slimefun4/wiki
#### :star: Highlighted Articles
-* [What is Slimefun?](https://github.com/Slimefun/Slimefun4/wiki/Slimefun-in-a-nutshell)
-* [How to install Slimefun](https://github.com/Slimefun/Slimefun4/wiki/Installing-Slimefun)
-* [Addons for Slimefun 4](https://github.com/Slimefun/Slimefun4/wiki/Addons)
-* [How to create an Addon for Slimefun 4](https://github.com/Slimefun/Slimefun4/wiki/Developer-Guide)
-* [Getting Started](https://github.com/Slimefun/Slimefun4/wiki/Getting-Started)
-* [Frequently Asked Questions](https://github.com/Slimefun/Slimefun4/wiki/FAQ)
-* [Common issues](https://github.com/Slimefun/Slimefun4/wiki/Common-Issues)
-* [Help us expand the Wiki!](https://github.com/Slimefun/Slimefun4/wiki/Expanding-the-Wiki)
-* [Help us translate Slimefun!](https://github.com/Slimefun/Slimefun4/wiki/Translating-Slimefun)
+
+- [What is Slimefun?](https://github.com/Slimefun/Slimefun4/wiki/Slimefun-in-a-nutshell)
+- [How to install Slimefun](https://github.com/Slimefun/Slimefun4/wiki/Installing-Slimefun)
+- [Addons for Slimefun 4](https://github.com/Slimefun/Slimefun4/wiki/Addons)
+- [How to create an Addon for Slimefun 4](https://github.com/Slimefun/Slimefun4/wiki/Developer-Guide)
+- [Getting Started](https://github.com/Slimefun/Slimefun4/wiki/Getting-Started)
+- [Frequently Asked Questions](https://github.com/Slimefun/Slimefun4/wiki/FAQ)
+- [Common issues](https://github.com/Slimefun/Slimefun4/wiki/Common-Issues)
+- [Help us expand the Wiki!](https://github.com/Slimefun/Slimefun4/wiki/Expanding-the-Wiki)
+- [Help us translate Slimefun!](https://github.com/Slimefun/Slimefun4/wiki/Translating-Slimefun)
The wiki is entirely community-run, so if you find an article missing, feel free to write one and share it with others.
## :handshake: Contributing to this project
+
Slimefun 4 is an Open-Source project and licensed under
[GNU GPLv3](https://github.com/Slimefun/Slimefun4/blob/master/LICENSE).
**Over 200 people have already contributed to this amazing project. You guys are awesome! :heart:**
@@ -107,6 +115,7 @@ Please consider helping us maintain this project too, your engagement keeps the
You can find more info on how to contribute to this project in our [CONTRIBUTING.md](https://github.com/Slimefun/Slimefun4/blob/master/CONTRIBUTING.md).
## :exclamation: Disclaimers
+
Slimefun4 uses various systems that collect usage information or download automatic updates as well as the latest information about the project.
We do not collect any personal information from you but there are some services that may gather or download some form of data.
@@ -151,15 +160,16 @@ Lastly, Slimefun4 connects to https://api.github.com/ to gather information abou
No information about you or your Minecraft Server is sent to GitHub.
This information includes (but is not limited to)
-* list of contributors, their username and profile link (from the repositories `Slimefun/Slimefun4`, `Slimefun/Slimefun-Wiki` and `Slimefun/Resourcepack`)
-* amount of open issues in this repository
-* amount of pending pull requests in this repository
-* amount of stars in this repository
-* amount of forks of this repository
-* amount of code-bytes in this repository
-* date of the last commit to this repository
+
+- list of contributors, their username and profile link (from the repositories `Slimefun/Slimefun4`, `Slimefun/Slimefun-Wiki` and `Slimefun/Resourcepack`)
+- amount of open issues in this repository
+- amount of pending pull requests in this repository
+- amount of stars in this repository
+- amount of forks of this repository
+- amount of code-bytes in this repository
+- date of the last commit to this repository
Additionally the plugin connects to [textures.minecraft.net](https://www.minecraft.net/en-us) to retrieve the Minecraft skins of our contributors (if possible).
-*Note that Slimefun is not associated with `Mojang Studios` or `Minecraft`.*
+_Note that Slimefun is not associated with `Mojang Studios` or `Minecraft`._
diff --git a/pom.xml b/pom.xml
index 65280d4459..7fcbed73a5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,10 +13,11 @@
2013
jar
-
- Slimefun is a Paper plugin that simulates a modpack-like atmosphere by adding over 500 new items and recipes to your Minecraft Server.
https://github.com/Slimefun/Slimefun4
+ Slimefun is a Paper plugin that simulates a modpack-like atmosphere by adding over
+ 500 new items and recipes to your Minecraft Server.
+
UTF-8
@@ -28,7 +29,7 @@
21
21
-
+
1.21.1
https://hub.spigotmc.org/javadocs/spigot/
@@ -118,7 +119,7 @@
org.apache.maven.plugins
maven-compiler-plugin
- 3.13.0
+ 3.14.0
@@ -149,7 +150,7 @@
org.apache.maven.plugins
maven-surefire-plugin
- 3.5.2
+ 3.5.3
org.junit.jupiter:junit-jupiter
@@ -161,14 +162,14 @@
org.sonarsource.scanner.maven
sonar-maven-plugin
- 5.0.0.4389
+ 5.1.0.4751
org.jacoco
jacoco-maven-plugin
- 0.8.12
+ 0.8.13
@@ -283,11 +284,13 @@
Slimefun4 - Multiblocks
- io.github.thebusybiscuit.slimefun4.implementation.items.multiblocks*
+
+ io.github.thebusybiscuit.slimefun4.implementation.items.multiblocks*
Slimefun4 - Electrical Machines
- io.github.thebusybiscuit.slimefun4.implementation.items.electric*
+
+ io.github.thebusybiscuit.slimefun4.implementation.items.electric*
Slimefun4 - Old packages
@@ -337,7 +340,7 @@
org.junit
junit-bom
- 5.11.4
+ 5.12.2
pom
import
@@ -361,12 +364,7 @@
cb22e71335
compile
-
- com.github.Slimefun.dough
- dough-api
- cb22e71335
- compile
-
+
io.papermc
paperlib
@@ -391,13 +389,13 @@
org.mockito
mockito-core
- 5.15.2
+ 5.17.0
test
org.slf4j
slf4j-simple
- 2.0.16
+ 2.0.17
test
@@ -421,7 +419,7 @@
com.sk89q.worldedit
worldedit-core
- 7.3.9
+ 7.3.11
provided
@@ -435,7 +433,7 @@
com.sk89q.worldedit
worldedit-bukkit
- 7.3.9
+ 7.3.11
provided
@@ -449,7 +447,7 @@
com.gmail.nossr50.mcMMO
mcMMO
- 2.2.029
+ 2.2.035
provided
@@ -537,4 +535,4 @@
-
+
\ No newline at end of file
diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/MetricsService.java b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/MetricsService.java
index 1c6d456692..d5fc57c879 100644
--- a/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/MetricsService.java
+++ b/src/main/java/io/github/thebusybiscuit/slimefun4/core/services/MetricsService.java
@@ -8,6 +8,7 @@
import java.net.URL;
import java.net.URLClassLoader;
import java.net.http.HttpClient;
+import java.net.http.HttpClient.Redirect;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandler;
@@ -75,7 +76,7 @@ public class MetricsService {
private final Slimefun plugin;
private final File parentFolder;
private final File metricsModuleFile;
- private final HttpClient client = HttpClient.newHttpClient();
+ private final HttpClient client = HttpClient.newBuilder().followRedirects(Redirect.NORMAL).build();
private URLClassLoader moduleClassLoader;
private String metricVersion = null;