Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
8416fc7
Fix hotbar keys on Linux
TheKodeToad Jun 28, 2022
00ab258
Improve force-load
TheKodeToad Jun 28, 2022
2bfdb95
Cleaner config
TheKodeToad Jun 28, 2022
9d9114c
Secure access token storage, proudly written in Atom :atom:
TheKodeToad Jun 28, 2022
504c315
Refactor keychain methods
TheKodeToad Jun 28, 2022
94fce0e
DIY Refactoring
TheKodeToad Jun 28, 2022
425a0c3
Fix compile error
TheKodeToad Jun 28, 2022
b93508c
Fix force loading crash
TheKodeToad Jun 28, 2022
1724805
Less error and leak prone token storage
TheKodeToad Jun 28, 2022
df32077
Clean up some old code
TheKodeToad Jul 1, 2022
2de4b6c
Add Discord contact info
TheKodeToad Jul 5, 2022
c1897e8
Add JVM flags
TheKodeToad Jul 5, 2022
abc9935
Remove debugging args log
TheKodeToad Jul 5, 2022
b8dd6bc
What just happened?
TheKodeToad Jul 5, 2022
bfe56bd
Add JRE folder selection
TheKodeToad Jul 5, 2022
4cf69fd
Quickplay fix on macOS
TheKodeToad Jul 6, 2022
76d0982
Only request quickplay data when mod is enabled
TheKodeToad Jul 6, 2022
7d5582d
Fix time changer affecting gameplay
TheKodeToad Jul 6, 2022
4e1631d
Actually functional scrollbar
TheKodeToad Jul 14, 2022
5a6956c
More customisation
TheKodeToad Jul 15, 2022
0abd8ca
Update issue templates (#77)
notiriscent Jul 17, 2022
0b7fc19
Delete custom.md
TheKodeToad Jul 17, 2022
e4d2219
Make bug report less generic
TheKodeToad Jul 17, 2022
2f34fa3
Update feature_request.md
TheKodeToad Jul 17, 2022
7855cab
Run actions on all branches
TheKodeToad Jul 17, 2022
6efe850
var -> let
TheKodeToad Aug 3, 2022
c0b509e
Hopefully sort out some of the Java curfuffle
TheKodeToad Aug 3, 2022
44d3186
Keep version JSON
TheKodeToad Aug 3, 2022
fd24317
[create release] Release 1.8.3
TheKodeToad Aug 3, 2022
c9c5526
[create release] Fix bugged sliders
TheKodeToad Aug 6, 2022
ab3c9f8
Add French (France) translation
avadhoot2008 Aug 7, 2022
1e1edeb
Enable main menu by default
TheKodeToad Aug 7, 2022
89aa940
Rearrange some stuff
TheKodeToad Aug 9, 2022
bd05e28
Fix PojavLauncher class loading (hopefully)
TheKodeToad Aug 13, 2022
8cd7a9c
Fix the errors
TheKodeToad Aug 13, 2022
4f319e2
[create release] Release 1.8.5
TheKodeToad Aug 13, 2022
6d2acd8
Add Vietnamese translation (#86)
TinLite Aug 14, 2022
7b626e3
Fix character rendering and memory leak
TheKodeToad Aug 14, 2022
b688b97
Optimise EventBus using MethodHandles
TheKodeToad Aug 14, 2022
d6fa81a
Better URL handler
TheKodeToad Aug 15, 2022
375c09c
Fix file opening
TheKodeToad Aug 15, 2022
9b84f6e
Add reveal
TheKodeToad Aug 15, 2022
9d45086
Add URL decoding
TheKodeToad Aug 15, 2022
3978220
Dolphin support
TheKodeToad Aug 15, 2022
1c54cd9
Fix crash with French translation
TheKodeToad Aug 26, 2022
075bab4
Update README.md
TheKodeToad Aug 26, 2022
cd5b394
Add Español (México) translations
HiddenRoom Sep 2, 2022
32f621a
Update haste endpoint
TheKodeToad Sep 8, 2022
052136d
Fix links in a non-ideal way
TheKodeToad Sep 15, 2022
58f2311
[create release] Release 1.8.6
TheKodeToad Sep 15, 2022
862bcaf
Fix Vietnamese translation (#94)
TinLite Sep 17, 2022
39ad3c4
Armour stuff
TheKodeToad Sep 18, 2022
117e84e
Add centred inventory
TheKodeToad Sep 18, 2022
909a332
Add screenshots to readme
TheKodeToad Sep 18, 2022
48e55e2
Update README.md
TheKodeToad Sep 18, 2022
4b423a0
Enable centred inventory by default
TheKodeToad Sep 19, 2022
93ebfd0
Fix another JMemoryLeak™
TheKodeToad Sep 27, 2022
08c0c81
Fix constant freeing
TheKodeToad Sep 28, 2022
ae22add
how
TheKodeToad Sep 28, 2022
8028a90
Remove Mojang so people stop asking about it
TheKodeToad Sep 28, 2022
343d57a
[create release] Release 1.8.7
TheKodeToad Sep 28, 2022
3565a53
[create release] 1.8.8
TheKodeToad Oct 16, 2022
f9b9d24
Add sol-client.desktop (#102)
RaptaG Oct 16, 2022
dded6de
Add Finnish translation (#104)
ArikSquad Oct 22, 2022
d9b0e0a
Fix invite link
TheKodeToad Oct 30, 2022
55029fa
Update invite link in about section
TheKodeToad Oct 30, 2022
92a0f1f
[ci skip] Re-word README
TheKodeToad Nov 6, 2022
f9f9937
[ci skip] suffiecient
TheKodeToad Nov 6, 2022
079c831
[ci skip] Some README improvements with grammar etc (#109)
intergrav Nov 29, 2022
1401596
[Launcher] Replace deprecated functions (#110)
notiriscent Nov 29, 2022
7918fee
[ci skip] Fix CI badge
TheKodeToad Dec 17, 2022
f33b6a5
Update README.md (#111)
AyazJenkins Dec 17, 2022
d40d65e
[ci skip] Oops
TheKodeToad Dec 17, 2022
e6c8474
Patch XSS
TheKodeToad Dec 31, 2022
d8d08d7
[create release] Release 1.8.9
TheKodeToad Dec 31, 2022
58f19fc
2023!
TheKodeToad Jan 1, 2023
3056d00
Create CONTRIBUTING.md
TheKodeToad Jan 3, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -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.
20 changes: 20 additions & 0 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -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.
7 changes: 2 additions & 5 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
name: build

on:
push:
branches:
- main
on: [ push, pull_request ]

jobs:
game:
Expand Down Expand Up @@ -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

Expand Down
11 changes: 11 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -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).
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -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
Expand Down
99 changes: 49 additions & 50 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,127 +1,126 @@
# Sol Client


<a href="https://github.com/Sol-Client/Client/actions/workflows/build.yml"><img src="https://img.shields.io/github/workflow/status/Sol-Client/Client/build?style=for-the-badge&logo=github&logoColor=white"/></a>&nbsp;
<a href="https://github.com/Sol-Client/Client/actions/workflows/build.yml"><img src="https://img.shields.io/github/actions/workflow/status/Sol-Client/Client/build.yml?branch=main&style=for-the-badge&logo=github&logoColor=white"/></a>&nbsp;
<img src="https://img.shields.io/static/v1?label=you%20didn%27t&message=ask%20for%20this&color=blue&style=for-the-badge"/>&nbsp;
<img src="https://img.shields.io/static/v1?label=minecraft&message=1.8.9&color=brightgreen&style=for-the-badge"/>&nbsp;
<a href="https://discord.gg/QFDGDhcFqu"><img src="https://img.shields.io/discord/886561982872977408?color=5662F6&label=discord&logo=discord&logoColor=white&style=for-the-badge"/></a>&nbsp;
<a href="https://discord.gg/TSAkhgXNbK"><img src="https://img.shields.io/discord/886561982872977408?color=5662F6&label=chat&logo=discord&logoColor=white&style=for-the-badge"/></a>&nbsp;
<img src="https://img.shields.io/static/v1?label=Contributions&message=Welcome&color=brightgreen&style=for-the-badge"/>&nbsp;
![GitHub all releases](https://img.shields.io/github/downloads/Sol-Client/Client/total?label=Downloads&style=for-the-badge)&nbsp;

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)&nbsp;&nbsp;
[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.
- Motion blur (if that's your thing).
- 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.
- Resource pack folders.

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

Expand Down
43 changes: 19 additions & 24 deletions app.html
Original file line number Diff line number Diff line change
Expand Up @@ -14,26 +14,8 @@ <h1 class="title">Log In</h1>
<br/>
<div class="login-box">
<button class="button login-button microsoft-login-button">Microsoft Account</button>
<br/>
<button class="button login-button mojang-login-button">Mojang Account</button>
</div>
</div>
<div class="mojang-login invisible">
<button class="button back-button back-to-login-button">◀</button>
<br/>
<br/>
<h1 class="title">Log In</h1>
<br/>
<br/>
<div class="login-box">
<label for="username" class="label">Mojang Account (Email)</label>
<input id="username" class="input" type="username" spellcheck="false" autocomplete="off"/>
<label for="password" class="label">Password</label>
<input id="password" class="input" type="password"/>
<br/>
</div>
<span class="error-message"></span>
<button class="button play-button login-button-mojang">Log In</button>
<p class="login-note">No other account types are currently supported. This is <strong>required</strong> to launch the game.</p>
</div>
<div class="main invisible">
<img src="assets/sol_client_logo_with_text.svg" class="launcher-title" height=64/>
Expand All @@ -50,10 +32,10 @@ <h1 class="title">Log In</h1>
<br/>
<div class="about">
<div class="about-text">
<p>Sol Client is a new Minecraft Client designed to be simple and easy to use, yet not lacking in features.</p>
<p>Sol Client is an open source Minecraft Client with many useful features.</p>
<br/>
<a class="open-in-browser" style="margin-right: 10px;" href="https://github.com/TheKodeToad/Sol-Client">GitHub</a>
<a class="open-in-browser" href="https://discord.gg/QFDGDhcFqu">Discord Server</a>
<a class="open-in-browser" style="margin-right: 10px;" href="https://github.com/Sol-Client/Client">GitHub</a>
<a class="open-in-browser" href="https://discord.gg/TSAkhgXNbK">Discord Server</a>
</div>
<br/>
<div class="quick-join-box">
Expand All @@ -64,12 +46,12 @@ <h3 class="centred-text quick-join-text">Play Server</h3>
<div class="settings invisible">
<br/>
<div class="centred">
<input type="checkbox" class="optifine" id="optifine"/>
<input type="checkbox" class="optifine"/>
<label for="optifine" style="cursor: pointer;" class="spaced-5">Install OptiFine</label>
</div>
<br/>
<div class="centred">
<input type="checkbox" class="auto-update" id="auto-update"/>
<input type="checkbox" class="auto-update"/>
<label for="auto-update" style="cursor: pointer;" class="spaced-5">Automatic Updates</label>
</div>
<br/>
Expand All @@ -90,6 +72,19 @@ <h3 class="centred-text quick-join-text">Play Server</h3>
</div>
<br/>
<br/>
<h2 class="centred">Advanced</h2>
<span class="centred">JRE Location</span>
<br/>
<span class="centred spaced-15 jre-location"></span>
<br/>
<div class="centred">
<button class="button button-generic jre-location-change">Change</button>
<button class="button button-generic jre-location-reset spaced-15">Reset</button>
</div>
<br/>
<p class="centred">JVM Arguments</p>
<input type="text" class="centred input jvm-arguments" placeholder="No additional args"/>
<br/>
<br/>
<div class="centred">
<button class="button button-generic devtools">Open DevTools</button>
Expand Down
Loading