Skip to content

Commit

Permalink
Chore/emojis and hyperlinks check (#6)
Browse files Browse the repository at this point in the history
* docs(readme): move the emojis before the section title

* chore: use github-action-markdown-link-check action

* docs(readme): update README.md files to improve readability
  • Loading branch information
EchoEllet authored Jun 22, 2024
1 parent ad7bceb commit dc53f0b
Show file tree
Hide file tree
Showing 9 changed files with 79 additions and 71 deletions.
7 changes: 7 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,3 +38,10 @@ jobs:

- name: 📥 Build & Test 🧪 with Gradle
run: ./gradlew build --stacktrace

# This action will validate HTTP links and not
# relative anchor links within the same markdown file like: [Install](#install)
- name: 🔍 Verify Markdown Links
uses: gaurav-nelson/github-action-markdown-link-check@v1
with:
config-file: .github/workflows/markdown_link_check_config.json
7 changes: 7 additions & 0 deletions .github/workflows/markdown_link_check_config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"ignorePatterns": [
{
"pattern": "^(http|https):\\/\\/(?!github\\.com\\/ellet0\\/kraft-sync\\/).*"
}
]
}
18 changes: 9 additions & 9 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Contributing
# 🌱 Contributing

First of all, we would like to thank you for your time and efforts on this project, we appreciate it

Expand All @@ -13,7 +13,7 @@ the todos of the project, they all start with `TODO:` so you can search in your

> We highly recommend contacting us if you're planning to make big changes.
## Requirements
## 📋 Requirements

[//]: # (This section is referenced by the README.md file)

Expand All @@ -34,9 +34,9 @@ Make sure you installed the following:
anti-bike-shedding linter/formatter for Kotlin code based on the Kotlin Coding Conventions, Kotlin Style
guide, and other best practices.

## Test your changes 🧪
## 🧪 Test your changes

Make sure you have the [Requirement](#requirements) installed and configured correctly
Make sure you have the [Requirement](#-requirements) installed and configured correctly

To set up your IDE for this project, so you can test the changes:

Expand All @@ -54,7 +54,7 @@ Use one of the shared run configurations of IntelliJ IDEA in `.idea` which will

1. Edit the Run/Debug configurations of IntelliJ IDEA, click on the add plus
2. Choose the JAR Application, name it, and choose the JAR file path which is usually located under
the [build/dist](./build/dist),
the [sync-script/build/dist](./sync-script/build/dist),
also, change the working directory to a directory other than the current or somewhere that is in `.gitignore` like
like `testScript`
3. In before launch add two Gradle tasks, first `clean` and then `shadowJar` (in order) or only `shadowJar`.
Expand Down Expand Up @@ -97,9 +97,9 @@ discussed above
>
> Use [dev-local-server](dev-local-server/README.md) module
> If you're on **Microsoft Windows**, use: `./gradlew.bat` instead of `./gradlew`
> If you're on **Microsoft Windows**, replace `gradlew` with `gradlew.bat`.
## Guidelines 📝
## 📝 Guidelines

1. **Code Style and Formatting**:

Expand Down Expand Up @@ -141,7 +141,7 @@ discussed above

This project does not prioritize testing rigorously, typically featuring unit tests.

## Development Notes ⚙️
## ⚙️ Development Notes

- If you add a new dependency, update existing one, add assets in the resources or do anything that increase or decrease
the size of the bundle, make sure to update the badges in `README.md` (at the start) to update the size
Expand All @@ -164,7 +164,7 @@ discussed above
- The project generate `BuildConfig` object using a Gradle task once you start the application or building it,
you might get `Unresolved reference: BuildConfig` which can be solved by either start the application or building it.

### Development Known Issues 🚧
### 🚧 Development Known Issues

- If you work on different modules,
```kotlin
Expand Down
100 changes: 47 additions & 53 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,21 +40,22 @@ instructions if there is any breaking change in each release
with [Mojang AB](https://mojang.com/), [Microsoft Corporation](https://www.microsoft.com/), or any of their
subsidiaries.**

## Table of Contents

- [About](#about) 📖
- [Features](#features)
- [How it works?](#how-it-works) 🔧
- [Usage️](#usage) 🖥
- [Frequently Asked Questions](#frequently-asked-questions) 💬
- [Admin Utility](#admin-utility) 🔰
- [Build from Source️](#build-from-source) 🛠
- [Contributing](#contributing) 🤝
- [Acknowledgments](#acknowledgments) 📜

## About

Let's say you're running a Minecraft server and every time you add, remove, or update a mod, resource pack, or shader, each
## 📚 Table of Contents

- 📖 [About](#-about)
-[Features](#-features)
- 🔧 [How it works?](#-how-it-works)
- 🖥 [Usage️](#-usage)
- 💬 [Frequently Asked Questions](#-frequently-asked-questions)
- 🔰 [Admin Utility](#-admin-utility)
- 🛠 [Build from Source️](#-build-from-source)
- 🤝 [Contributing](#-contributing)
- 📜 [Acknowledgments](#-acknowledgments)

## 📖 About

Let's say you're running a Minecraft server and every time you add, remove, or update a mod, resource pack, or shader,
each
player has to make the changes manually each time you do it or let's say you're changing the server address, the
players have to manually update it in the game.

Expand All @@ -74,7 +75,7 @@ info.
> - `Craft` or `Kraft`: Indicating this is specific for Minecraft<br>
> - `Sync`: Indicating it's for syncing the content/assets/data
## Features
## Features

List the key features of the script

Expand Down Expand Up @@ -102,7 +103,7 @@ List the key features of the script

```

## How it works?
## 🔧 How it works?

To provide an easy way to use for the players without doing anything manually, all you need is to use a
Minecraft launcher that supports running a command before launching the game
Expand All @@ -113,14 +114,13 @@ You can use [MultiMC Launcher] or [Prism Launcher] which provide more features t
1. Exporting the instance, each instance has its assets (e.g., Mods, Resource-packs, Shader-packs)
2. Configurations and data in a way so no instance will affect another
3. Other features like allow to launch
Pre-launch
command which is needed by this script to automate the process, otherwise if you're using the
the official [Minecraft Launcher], then the players need to run the script each time they launch the game or only when
they want to (when new mods are added etc...) or you could create a `bat` (Windows) or `sh` (Linux, macOS) script that
launches this script first then the launcher, This way the players are forced to use your mods and resource packs,
etc... even if they don't want to use the mods, still [Minecraft Launcher] doesn't provide a way to separate the mods
and settings for different instances and servers, to get the best experience, use one of the supported launchers or a
launcher that supports running a command before launching the game
Pre-launch command which is needed by this script to automate the process, otherwise if you're using the
official [Minecraft Launcher], then the players need to run the script each time they launch the game or only when
they want to (when new mods are added etc...) or you could create a `bat` (Windows) or `sh` (Linux, macOS) script
that launches this script first then the launcher, This way the players are forced to use your mods and resource
packs, etc... even if they don't want to use the mods, still [Minecraft Launcher] doesn't provide a way to separate
the mods and settings for different instances and servers, to get the best experience, use one of the supported
launchers or a launcher that supports running a command before launching the game
4. Many other features, like automatically joining a Minecraft server when launching the game

You will need to ship the script with the exported instance and configure the instance to launch the script before each
Expand All @@ -129,13 +129,13 @@ It's important to check the script files; otherwise, it won't be shipped.

The process is straightforward; don't get confused by the required steps.

## Usage
## 🖥 Usage

[//]: # (TODO: Add supported launchers section)

The easiest way to use the script 🚀:

1. Download the JAR file from the [Releases] for both the script and the [Admin Utility](#admin-utility)
1. Download the JAR file from the [Releases] for both the script and the [Admin Utility](#-admin-utility)
2. Download and install your favorite Minecraft launcher that has built-in support for downloading mods inside the
launcher.

Expand Down Expand Up @@ -180,7 +180,7 @@ This section is incomplete and should be updated in the future.

[//]: # (TODO: Update or rework this section)

## Frequently Asked Questions
## 💬 Frequently Asked Questions

This FAQ provides answers to some of the most commonly asked questions. Click on the question to expand and see the
answer.
Expand Down Expand Up @@ -213,24 +213,19 @@ and it will simply sync the mods when you join a server by downloading the mods
while those mods work great and might require even more effort than this script, depending on your use case,
you might use them or use this script

some of the common issues in the `Minecraft mods` using sync mods:
Some common issues encountered when using Minecraft mods that synchronize other mods include:

1. It will require running the HTTP server on a port other than the Minecraft port (e.g., 25565) which can be used by
attackers
to cause performance issues if you haven't implemented Rate Limit (otherwise some users might spam the server)
and another security mechanism that might affect the network and traffic from your Minecraft hosting
attackers to cause performance issues if you haven't implemented Rate Limit (otherwise some users might spam the
server) and another security mechanism that might affect the network and traffic from your Minecraft hosting
2. You will constantly need to update the mod for Forge/Fabric or the mod loader you are using, and for a specific
Minecraft version,
while this script works independently of the Minecraft version and the mod loader
Minecraft version, while this script works independently of the Minecraft version and the mod loader
3. The users have to update the mods when joining the server, then restarting the game, so let's say a new Minecraft
version has been released, and you were playing with your friends, you will have to wait for the mod that syncs the
mods
to be updated or update it yourself, then ask your friends to restart the game with the new version and manually
update
the sync mod, then you will have to update all the mods on the server, after when they launch the game
mods to be updated or update it yourself, then ask your friends to restart the game with the new version and manually
update the sync mod, then you will have to update all the mods on the server, after when they launch the game
once they launch the game they will have to update and then restart once again, when using the script, you only have
to
update the data as admin, then ask your friends and players to restart the game
to update the data as admin, then ask your friends and players to restart the game
4. Can only sync Minecraft mods (which might be exactly what you want)
5. Server and client-side mods are different: There are completely server-side mods
like [Geyser](https://modrinth.com/mod/geyser) or [Spawn Animations](https://modrinth.com/datapack/spawn-animations)
Expand Down Expand Up @@ -369,21 +364,22 @@ to use Minecraft mods with players
feature, which most Minecraft launchers do
3. Server and Client Flexibility, Mod-packs are usually for syncing the client side, while it's possible to get the
updates of a Minecraft mod pack into a server, or most server hosting providers already support a wide range of
mod-packs with one click, this script allows you to split the used mods between the server and the client or use them on
mod-packs with one click, this script allows you to split the used mods between the server and the client or use them
on
both sides, and it can work on any server even on localhost
4. Allow you to use a mix of mods from multiple providers, the script only needs the URL to the mod, and it can be from
anywhere, it doesn't store anything specific about any mod provider, only the links to the mod providers which will
be used to detect the mod provider, if it's unknown or unverified, then it will warn the user before continuing for
the
the first time, the script doesn't store any data remotely by itself, which gives you more control over where to store it
the first time, the script doesn't store any data remotely by itself, which gives you more control over where to
store it
5. License Compliance by avoiding re-uploading the mods somewhere other than the original source, the script will
download the mods as if you're downloading them from the website
6. It can only support mods; The term "Mod packs" typically refers to collections of mods, which can include resource
packs as well.
However, they might not always meet specific needs or preferences.
7. More features like
the [Quick Play](https://www.minecraft.net/en-us/article/quick-play-coming-java-and-bedrock-edition) support feature,
see [Features](#features) for more info
see [Features](#-features) for more info

</details>

Expand Down Expand Up @@ -424,23 +420,23 @@ the bedrock edition already has something similar
If you have any further questions that are not covered here, feel free to file an issue or create a new
discussion.

## Admin Utility
## 🔰 Admin Utility

We provide a utility program 🛠️ for the Admin which helps when dealing with the data or converting them from other
launchers, for more details, go to the [Admin Utility] page
launchers, for more details, navigate to [Admin Utility] page.

## Build from Source
## 🛠 Build from Source

If you want to build from source for the latest version:

1. Install the [Requirements]
1. Install the [Requirements](./CONTRIBUTING.md#-requirements)
2. Run `./gradlew assemble` or `./gradlew.bat assemble` on **Microsoft Windows**
3. Navigate to [sync-script/build/dist](./sync-script/build/dist) folder where you should find the Jar

![Kotlin](https://img.shields.io/badge/kotlin-%237F52FF.svg?style=for-the-badge&logo=kotlin&logoColor=white)
![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&logo=openjdk&logoColor=white)

## Contributing
## 🤝 Contributing

We greatly appreciate your time and effort.

Expand All @@ -449,7 +445,7 @@ These guidelines help ensure that everyone can understand and work with the code

See [Contributing] for more details.

## Acknowledgments
## 📜 Acknowledgments

We are incredibly grateful to many individuals and organizations who have played a
role in the project.
Expand Down Expand Up @@ -490,6 +486,4 @@ Thanks to:

[Mods Info Converter]: ./admin/README.md#mods-info-converter

[Contributing]: ./CONTRIBUTING.md

[Requirements]: ./CONTRIBUTING.md#requirements
[Contributing]: ./CONTRIBUTING.md
6 changes: 3 additions & 3 deletions admin/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Admin
# 🔰 Admin

A utility for the [Kraft Sync](../README.md) for the administration who manage the sync info

Expand All @@ -8,12 +8,12 @@ This page isn't complete yet, and this tool is experimental and can have many br

[//]: # (TODO: Complete this page)

## Mods Info Converter
## 🔁 Mods Info Converter

This feature allows you to convert the downloaded mods info
to the script data format from a Minecraft Launcher that supports downloading mods **inside the launcher**

### Important for mods uploaded to Curse Forge:
### ⭐️ Important for mods uploaded to Curse Forge:

Most Minecraft launchers doesn't store Curse Forge CDN Download URL anymore, they usually store the project and the file
id, the script will send a GET request to [Curse Forge API](https://docs.curseforge.com/) which require an API key and
Expand Down
2 changes: 1 addition & 1 deletion buildSrc/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Build Src
# 🔧 Build Src

A place to share configurations, tasks or plugins for Gradle build scripts in all modules.
2 changes: 1 addition & 1 deletion common/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Common
# 🌐 Common

This Gradle module contains the shared code between the admin and the sync script.
6 changes: 3 additions & 3 deletions dev-local-server/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Development Local Server
# 🛠️ Development Local Server

This module has one task, which is to provide a minimal local server that has a local file that
will be used for development only.

Create a file called `file.json` in this module directory, start the server using:
Create a file called `file.json` in this module directory, and start the server using:

```./gradlew dev-local-server:run```

> If you're on **Microsoft Windows**, use: `./gradlew.bat` instead
> If you're on **Microsoft Windows**, replace `gradlew` with `gradlew.bat`.
If you're using any other way to start the server, change the working directory
to `dev-local-server/devWorkingDirectory` instead of the root project folder.
2 changes: 1 addition & 1 deletion sync-script/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sync Script
# 🔄 Sync Script

This module contains the code for the script that will sync Minecraft instance. The executable file
of this will be shipped with the instance of all minecraft players that use it.
Expand Down

0 comments on commit dc53f0b

Please sign in to comment.