diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..9b3c30e7 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,30 @@ +--- +name: Bug report +about: Create a bug report for anything that doesn't seem intentional +title: '' +labels: bug +assignees: '' + +--- + +## Describe the bug +A clear and concise description of what the bug is. + +## Steps to Reproduce +Steps to reproduce the behavior: +1. How can +2. anyone easily +3. recreate this +4. issue? + +## Expected behavior +A clear and concise description of what you expected to happen. + +## Screenshots +If applicable, add screenshots to help explain your problem. + +## Environment +Put information about your device, OS, Java version and whether OptiFine is installed. + +## Additional context +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..2ee12ea3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,20 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: '' +labels: enhancement +assignees: '' + +--- + +## Problem +If this feature is related to a problem, please describe here. For example, I'm always frustrated when [...] + +## Solution +A clear and concise description of what you want to happen. + +## Alternative Solutions +Any alternative solutions or features you've considered. + +## Additional context +Add any other context or screenshots about the feature request here. diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7882f74e..d7d75b0f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,9 +1,6 @@ name: build -on: - push: - branches: - - main +on: [ push, pull_request ] jobs: game: @@ -84,7 +81,7 @@ jobs: path: out/make/*.dmg upload: - if: "startsWith(github.event.head_commit.message, '[create release] ')" + if: "github.ref == 'refs/heads/main' && startsWith(github.event.head_commit.message, '[create release] ')" runs-on: ubuntu-latest diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..5e2415aa --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,11 @@ +# Contributing +If you are contributing features, try to base on the latest dev/x.x.x branch unless it's already merged. +I realise this is confusing, so we may use a single develop branch in future. +If you are contributing bugfixes, use the main/master branch. + +## Code Formatting +Please use standard Java formatting conventions (the default Eclipse formatting profile, but with indented switch cases). +Using statements instead of blocks is fine. +Use tabs for indentation, and asterisks if more than one class is imported from a package. + +You may notice this is not followed on the main branch (as of the time of writing - 2023-01-03 - if dev/1.9.0 is merged this will not be the case). diff --git a/LICENSE b/LICENSE index c54d48a8..381a7148 100644 --- a/LICENSE +++ b/LICENSE @@ -1,5 +1,5 @@ Sol Client - an open source Minecraft client -Copyright (C) 2020-2022 TheKodeToad and Contributors +Copyright (C) 2020-2023 TheKodeToad and Contributors This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/README.md b/README.md index 4870a568..55ab0c98 100644 --- a/README.md +++ b/README.md @@ -1,53 +1,53 @@ # Sol Client -  +      -  +    ![GitHub all releases](https://img.shields.io/github/downloads/Sol-Client/Client/total?label=Downloads&style=for-the-badge)  -Simple and easy to use Minecraft client for 1.8.9 (and in future™, newer versions). +Simple and easy-to-use Minecraft client for 1.8.9 (and in future™, newer versions - the [multiversion branch](https://github.com/Sol-Client/Client/tree/dev/multiversion) is being worked on). -Update: Yes, I know, it has been seven months since I wrote about the newer versions thing. +[Website & Download](https://sol-client.github.io)   +[Discord Server](https://discord.gg/TSAkhgXNbK) -[Website & Download](https://sol-client.github.io) +# Screenshots + +## Launcher +![Launcher](./assets/screenshots/Launcher.png) + +## Mods +![Mods](./assets/screenshots/Mods.png) ## Pojav -People have alreading been talking about this client working on Pojav, but it's not quite ready. -However, it does mostly work, and you can download a preview from [here](https://github.com/Sol-Client/Installer/releases). +People have already been talking about this client working on Pojav, but it's not quite ready. +However, it does mostly work so you can download a preview from [here](https://github.com/Sol-Client/Installer/releases). ## Licence -This project uses [GNU General Public License v3.0](LICENSE), meaning that if you fork this project, it must be either completely private, or the code *must* be available to your users. - -This is not legal advice, or even a summary, this is just a simplification of one of the main parts of the licence. +This project uses [GNU General Public License v3.0](LICENSE), a copyleft license. This may need to be changed in the future due to it technically conflicting with Minecraft. -While not stated in the licence, forks should have the following changed: -- Name -- Logo -- Design -This does not apply to third-party builds. +While not stated in the licence, I would appreciate forks having a different name, logo, and design. It's fine for feature branches and custom builds though. I'd just rather all of these things changed, not one of them. -There are some parts of the code that use other licences (such as code "borrowed" from other projects). If this is the case, it will be noted in a comment, or another licence file in the same directory. +Some parts of the code use other licences (such as code "borrowed" from other projects). If this is the case, it will be noted in a comment or another licence file in the same directory. -Note that this project is not 100% open source, because both Minecraft and OptiFine are closed source. There are 100% open source clients, but they do not inherit any of the game's code, meaning they are not as complete, and will likely get you banned on servers. +Note that this project is not entirely open-source due to its closed-source dependencies. There are some open-source reimplementations of Minecraft but are likely to cause bans due to their inaccuracy. I would also appreciate it if people didn't sell this client. ## Why? -There are many Minecraft clients, but they are usually closed source, and may contain malicious code. This client is free and open source, meaning that the code is visible, and anyone can propose changes and report issues with ease. +There are many Minecraft clients, but a surprising number of them are closed-source and focus heavily on paid cosmetics. This client is free and open-source, allowing people to view the code and propose changes through GitHub pull requests. -Many clients lack important features, including ReplayMod. - -There may be mod loaders like Forge and Fabric, which are perfectly good, but are not as easy to use and update. +Many other projects lack important features, such as ReplayMod. While this client is still missing some features, it includes the most important ones. There are mod loaders like Fabric, Quilt, and Forge, which are very good, but they lack the same level of integration. ## Features -Here are the main features that are currently in the client: + +Here are the main features currently available in the stable version: - A clean HUD inspired by Lunar. -- Replay Mod. You will need to install FFmpeg yourself. This is completely unaffiliated to the original mod by Johni and CrushedPixel. If you encounter any issues, try reproducing them on the official Forge version, and if it happens there, report it on the [ReplayMod GitHub repositority](https://github.com/ReplayMod/ReplayMod). If it only happens on our version, report it here. +- Replay Mod. You will need to install FFmpeg yourself. This is completely unaffiliated with the original mod by Johni and CrushedPixel. If you encounter any issues, try reproducing them on the official Forge version, and if it happens there, report it on the [ReplayMod GitHub repository](https://github.com/ReplayMod/ReplayMod). If it only happens on our version, report it here. - Freelook (automatically disabled on Hypixel), press "V" to activate. - Toggle sprint. - Smooth zoom. @@ -55,16 +55,16 @@ Here are the main features that are currently in the client: - 1.7 animations. - Item physics. - Hypixel Additions. -- OptiFine, downloaded automatically from the official site (open an issue if this is a bad thing). -- Crosshair mod, allowing you to customise your crosshair, while fitting with the vanilla style. +- OptiFine, downloaded automatically from the official site (open an issue if this is a problem). +- Crosshair mod, allowing you to customise your crosshair while fitting with the vanilla style. - Quick Play Mod. Allows you to quickly join games at the press of a button (by default, "M"). The key opens a menu where you can search for games, navigating through them using the arrow keys. If you type nothing, you can see recent games and a categorised list of all games. - Customisable launcher servers - automatically detected from the game, with no pinned servers. - Better item tooltips - show item damage and more. -- Symbol picker (happy, sad, and most importantly: the snowman). -- Chat channel display. -- Pop-up events (pop-up friend request, etc.). +- Symbol picker (happy, sad, and the extremely important snowman). +- Chat channel display and switcher (you can still use the command). +- Pop-up events (pop-up friend requests, etc.). - Customisable font and colour scheme. -- Turning off the inventory logo. +- Option to turn off the inventory logo. - Speedometer. - Chunk animator (not sure if many people use this one). - Bedwars timers. @@ -72,56 +72,55 @@ Here are the main features that are currently in the client: Click [this fancy blue text](https://github.com/Sol-Client/Client/projects/1) to see planned features. -If you want to suggest a feature, [create a new issue](https://github.com/Sol-Client/Client/issues/new) or [ask on Discord](https://discord.gg/QFDGDhcFqu). +If you want to suggest a feature, you can [create a new issue](https://github.com/Sol-Client/Client/issues/new) or [ask on Discord](https://discord.gg/TSAkhgXNbK). If there are any issues with us using your code, please open an issue. ## Safety -The code for this client is available, meaning that you can see what it does. +The code for this client is available, so if you have sufficient knowledge, you can check for yourself for any nasty stuff. -This client has been tested by multiple people on Hypixel, and it disables disallowed mods automatically. There may be some unknown servers, but just disable the correct mods and you should be fine, as all Sol Client mods are designed to not change the behaviour of the player. +This client has been tested by multiple people on Hypixel. On most popular servers, disallowed mods are disabled. There are unknown servers, but just disable the correct mods and you should be fine. All mods are designed (and intend) not to change the behaviour of the player. ## Credits -[TheKodeToad](https://github.com/TheKodeToad) / [mcblueparrot](https://mine.ly/mcblueparrot.1): Programmer (turning tea into code). +[TheKodeToad](https://github.com/TheKodeToad) ([Discord User](https://discord.com/users/706152404072267788)): Maintainer and developer of the client. -[Holso](https://github.com/Holso) / [Dolfinc](https://mine.ly/Dolfinc.1): Helped create Discord, came up with the name (and changed his own one many times) and tested the client. +[i9Dolphin](https://github.com/i9Dolphin): Helped create Discord, choose this name (and changed his own one many times) and tested the client. -[sp614x](https://github.com/sp614x): OptiFine mod. +[sp614x](https://github.com/sp614x): Creator of OptiFine mod. [Sk1er LLC](https://github.com/Sk1erLLC): Mod inspiration. -[Hyperium](https://github.com/HyperiumClient/Hyperium): Some rendering and launching code. +[Hyperium](https://github.com/HyperiumClient/Hyperium): Some rendering and launching code. Hopefully will be removed in the future. -[Eric Golde](https://www.youtube.com/c/egold555): My older private client followed his tutorials (stole his code). This client was written from scratch (but not in Scratch). +[Eric Golde](https://www.youtube.com/c/egold555): A cool dude who inspired me to make my first Minecraft client with MCP. This client is not based on their tutorials though (a lot of people would be quite glad of that). -[tr7zw](https://github.com/tr7zw/EntityCulling): Original EntityCulling mod. A modified version is used in this client. +[tr7zw](https://github.com/tr7zw/EntityCulling): Original EntityCulling mod, a modified version of which is used in this client. May need to be removed for licence change reasons. [OrangeMarshall](https://namemc.com/profile/OrangeMarshall.1): Original 1.7 Animations mod. -[Johni0702](https://github.com/Johni0702) and [CrushedPixel](https://github.com/CrushedPixel): Replay Mod. Again, a modified version is used in this client. +[Johni0702](https://github.com/Johni0702) and [CrushedPixel](https://github.com/CrushedPixel): Replay Mod. Again, a modified version is used for this client. -[robere2](https://github.com/robere2): QuickPlay Mod servers. The mod itself is a totally different creature. Sorry for not providing you with analytics. +[robere2](https://github.com/robere2): QuickPlay Mod servers. The mod itself is a different creature. Sorry for not providing you with analytics. -[lumien231](https://github.com/lumien231): Chunk Animator. The version in the client was based around the original Forge mod. +[lumien231](https://github.com/lumien231): Chunk Animator. The version in the client was based on the original Forge mod. ## IDE -### Eclipse -This IDE is prefered by the author, but many prefer IntelliJ for its IntelliJence (there's a clue in the name). - -1. Right click in "Package Explorer" and press "Import Project". -2. Select "Gradle" > "Existing Gradle Project". -3. Select the "game" directory inside the repository folder. -4. Press "Finish". - ### IntelliJ IDEA 1. Close your current project ("File" > "Close Project"). 2. Press "Open". 3. Select the "game" directory inside the repository folder. + +### Eclipse +1. Right-click in "Package Explorer" and select "Import Project". +2. Select "Gradle" > "Existing Gradle Project". +3. Select the "game" directory inside the repository folder. +4. Press "Finish". + ## Build Instructions -Want to contribute? Or are you just trying to re-enable freelook (please don't do this)? Want to port this to your toaster's operating system, or run this on Windows 98? +Want to contribute? Or are you just trying to re-enable freelook (please don't do this)? Want to port this to your toaster's operating system, or run it on Windows 98? ### Launcher diff --git a/app.html b/app.html index 4b689f5c..9b730e4c 100644 --- a/app.html +++ b/app.html @@ -14,26 +14,8 @@

Log In


-
- -
- -