Commit Graph

238 Commits

Author SHA1 Message Date
icelimetea
c054d0f329 Add the license header to LauncherFactory 2022-05-13 17:21:35 +01:00
icelimetea
067484a6a8 Fix formatting 2022-05-13 16:59:00 +01:00
icelimetea
113528e1f2 Make line count check more lenient 2022-05-05 07:20:33 +01:00
icelimetea
6bffa06063 Fix typo 2022-05-05 07:16:16 +01:00
icelimetea
dcc41ef885 Improve mpticket file parsing code 2022-05-05 07:14:32 +01:00
icelimetea
9a87ae575e More minor fixes 2022-05-03 03:19:26 +01:00
icelimetea
860a7af679 Fix method access modifier 2022-05-03 00:53:22 +01:00
icelimetea
4fdb21b414 Compile with Java 7 in mind 2022-05-03 00:27:14 +01:00
icelimetea
eeb5297284 Use only Java 7 features (in order to deal with #515) 2022-05-03 00:25:26 +01:00
icelimetea
8de63b60b1 Refactor some parts of NewLaunch (part 2) 2022-05-02 22:36:55 +01:00
Sefa Eyeoglu
bd946c78f3
Merge pull request #486 from icelimetea/refactor-java-launcher
Refactor some parts of NewLaunch
2022-04-28 07:18:39 +02:00
icelimetea
884f772362 Clarify exception messages 2022-04-25 11:22:56 +01:00
icelimetea
b0a469baab Use java.util.logging instead of custom logging 2022-04-24 15:10:35 +01:00
icelimetea
c968c1be78 Refactor some parts of NewLaunch 2022-04-24 14:45:01 +01:00
flow
3ec511010f
fix: Build iconfix as static library
On CI we build using the bundled Quazip, and automatically set
-DBUILD_STATIC_LIBS to true, so it build iconfix statically as well.

However, since we recently added support for using the system quazip,
this flag is not set anymore, and PolyMC fails to run because iconfix
neither is statically linked, nor it creates a .so file for dynamic
linking.

Since most other libs are built statically, we should make this one
static as well. Maybe we should consider allowing for dynamic linking of
libs now that quazip is not much of an issue anymore. :^)
2022-04-21 09:34:44 -03:00
flow
af167e8e67
libs: update bundled submodules 2022-04-16 10:23:15 -03:00
Philipp David
1b47132ebb
libnbtplusplus: fix compilation as shared library 2022-03-24 08:32:26 +01:00
Philipp David
c7c83a35fa
Enable LTO/IPO on release builds 2022-03-22 21:04:35 +01:00
Philipp David
e8373bbf65
Build with static rainbow 2022-03-21 12:47:42 +01:00
Philipp David
26acc836d9
Revert "fix: use our own prefix for rainbow lib"
This reverts commit 61db1c46be.
2022-03-21 09:40:20 +01:00
Sefa Eyeoglu
61db1c46be
fix: use our own prefix for rainbow lib 2022-02-12 17:02:54 +01:00
Sefa Eyeoglu
a60b2feb5f
Revert "refactor(build): link rainbow statically"
Windows build fails for some reason. Needs to be investigated later

This reverts commit 812f00eb81.
2022-02-12 16:56:35 +01:00
Sefa Eyeoglu
6ba031f048
refactor(build): link iconfix statically 2022-02-12 16:10:53 +01:00
Sefa Eyeoglu
812f00eb81
refactor(build): link rainbow statically 2022-02-12 16:10:46 +01:00
Sefa Eyeoglu
0442b80a2c
refactor: simpler includes for quazip 2022-01-31 21:40:59 +01:00
Sefa Eyeoglu
3aa809b8c0
refactor: add in-tree QuaZip 2022-01-31 21:40:59 +01:00
Sefa Eyeoglu
efa414c442
refactor: initial migration to QuaZip 1.2
Let's move off our custom QuaZip. In the olden times we needed the
custom version of QuaZip, as it was basically unmaintained and on
SourceForge (eww). But nowadays it's maintained and on GitHub. See
new GitHub page: https://github.com/stachenov/quazip
2022-01-31 21:40:59 +01:00
swirl
1d8196e11a
More rebranding
Closes: #39

Mostly done with rebranding now. We just need to translate some services
to PolyMC.
2022-01-10 12:47:35 -05:00
seth
390a90b361
stop cmake from blocking builds on wsl 2022-01-08 22:49:30 -05:00
dada513
fa98ed3ccd
Merge remote-tracking branch 'upstream/develop' into upstream_update 2021-12-31 18:05:40 +01:00
Petr Mrázek
3efcccf334
Merge pull request #4345 from graemeg/freebsd-support
Adds FreeBSD support to MultiMC
2021-12-30 20:00:45 +01:00
swirl
f25a9bc103
Completely remove Google Analytics library 2021-12-29 10:37:09 -05:00
Lenny McLennington
0c306d3676
update submodule 2021-12-21 00:03:43 +00:00
Lenny McLennington
18a931eaa9
Merge remote-tracking branch 'upstream/develop' into develop 2021-12-20 03:01:41 +00:00
Petr Mrázek
6d3eace2a8 NOISSUE fix up java dependency to 1.7 so builds work again
'7' is not a thing
2021-12-19 19:11:08 +01:00
swirl
7912e0f32b
Apply patches
Re-add lin-system, and fix Linux datadir

fix jar paths

allow for modern java
2021-12-18 14:29:33 +00:00
Graeme Geldenhuys
7179e75e70 Changes required to support FreeBSD 2021-12-12 11:39:36 +00:00
Dāvis Mosāns
c29b616497 Update Java version to 7+
Otherwise currently it doesn't build with newer Java
2021-12-10 03:15:01 +02:00
Petr Mrázek
859d710581 GH-4071 handle invalid MSA refresh token as a hard error 2021-11-28 19:01:21 +01:00
Petr Mrázek
285188ea53 GH-4071 handle network errors when logging in with MSA as 'soft'
This makes the tokens not expire when such errors happen.

Only applies to MSA, not the XBox and Mojang steps afterwards.
Further testing and improvements are still needed.
2021-11-28 18:42:01 +01:00
Petr Mrázek
27f276ef13 GH-1795 add terminal launch option to use a specific Minecraft profile
Used like this:
```
./MultiMC --launch 1.17.1 --profile MultiMCTest --server mc.hypixel.net
```
2021-10-31 21:43:33 +01:00
Petr Mrázek
7c86732a47 NOISSUE Update links to repo, fix up library README 2021-10-21 23:25:52 +02:00
Petr Mrázek
5b3dffce62 NOISSUE continue debranding... 2021-10-21 00:47:53 +02:00
Petr Mrázek
f39c313c5f NOISSUE fix _ICONFIX_EXPORT 2021-10-21 00:47:53 +02:00
Petr Mrázek
441ab7eedc NOISSUE debranding for real, initial work
This is probably very broken on macOS and Windows and will need a lot of work to complete fully.
2021-10-21 00:47:53 +02:00
Petr Mrázek
a5956194df NOISSUE Remove Requestor, it is unused 2021-09-21 22:02:12 +02:00
Petr Mrázek
823e7d22c7 GH-4014 fix kernel version scanning on macOS and linux some more 2021-09-04 22:18:29 +02:00
Petr Mrázek
c17b359d03 GH-4014 fix kernel version scanning on macOS and linux 2021-09-04 22:10:57 +02:00
Petr Mrázek
938f896bfa GH-4014 change updater to recognize new Qt 5.15.2 builds 2021-09-04 21:27:09 +02:00
Petr Mrázek
b2c1100b1c NOISSUE introduce the concept of secrets static library 2021-08-27 22:35:17 +02:00
Petr Mrázek
34a5459dce NOISSUE cut down Requestor 2021-08-25 21:27:51 +02:00
Petr Mrázek
eae65da110 GH-3392 Switch MS account login to use device flow instead
Device flow involves the user manually opening a web page and putting in
a code. We no longer need to interact with the browser.
2021-08-22 20:01:18 +02:00
Petr Mrázek
345641f7d2 NOISSUE sanitize some MSA auth logging 2021-08-19 00:43:19 +02:00
Petr Mrázek
4a283fe4c1 NOISSUE print errorString in Requestor 2021-08-18 04:18:59 +02:00
Petr Mrázek
f1a5f7bc4d NOISSUE add ssl error logging to Requestor 2021-08-18 03:43:55 +02:00
Petr Mrázek
7921f47ec4 NOISSUE loosen requirements on CMake version in katabasis 2021-07-25 19:50:44 +02:00
Petr Mrázek
dd13368085 NOISSUE bulk addition of code from Katabasis 2021-07-25 19:50:44 +02:00
Jamie Mansfield
d8598d6901
NOISSUE Use MiB suffix for Java memory options 2021-06-23 09:57:55 +01:00
Janrupf
0ccd7223fd NOISSUE Make LauncherPart aware of server to join 2021-05-22 16:33:16 +02:00
Petr Mrázek
911074e966
Merge pull request #3735 from kumquat-ir/develop
NOISSUE Parse META-INF/mods.toml for Forge 1.14+ mod metadata
2021-05-15 00:36:46 +02:00
Trung Lê
c2fd714f8d
Add limits header 2021-04-29 12:42:49 +10:00
kumquat-ir
e668aa0f95 switch to new toml library 2021-04-17 09:46:11 -07:00
kumquat-ir
860706caec allow parsing toml from a QByteArray 2021-04-16 11:02:02 -07:00
kumquat-ir
42253150e4 add toml11 as dependency 2021-04-15 23:19:01 -07:00
Jamie Mansfield
524fc5b6ec
NOISSUE Fix string formatting issues
This allows translations to have more control over the output :)
2021-04-08 18:55:20 +01:00
Petr Mrázek
485f123362
Merge pull request #3311 from AbigailBuccaneer/develop
Fix endianness handling errors
2021-02-09 23:12:32 +01:00
Petr Mrázek
1cf60a01d5
Merge pull request #3538 from Scotsguy/develop
NOISSUE Update Copyright Year
2021-02-07 02:23:31 +01:00
Petr Mrázek
1868e0ccf1 GH-3229 fix copy seed button not working for newer worlds
Added the `optional-bare` library and refactored NBT reading
code to support this change.
2021-02-06 15:58:03 +01:00
AppleTheGolden
0de064eb35
NOISSUE Update Copyright Year 2021-01-18 08:28:54 +01:00
Moresteck
49126fa8e2
NOISSUE Corrected the fix for Classic saving, fixes Indev compatibility 2020-11-12 14:58:12 +00:00
Petr Mrázek
feae420450 NOISSUE add 'java.vendor' to the checker and display/log the value 2020-09-07 22:28:41 +02:00
AbigailBuccaneer
6995a2e1ba Avoid undefined behaviour when byteswapping
`a << b` is undefined when `a` is negative, and `a >> b` is
implementation-defined. The correct thing to do here is to cast to
unsigned, swap the bytes there and then swap back.

This also improves performance on some compilers: Clang is smart enough
to recognise that we're byteswapping here and reduce it to a single
`bswap` instruction on x86_64, but only for the unsigned versions.
2020-08-24 18:52:08 +01:00
AbigailBuccaneer
0f2757f000 Remove extra semicolons from big-endian handling
Fixes #3296.
2020-08-24 17:43:58 +01:00
Petr Mrázek
4ca62916f5 GH-3189 update the nbt library 2020-06-07 21:32:42 +02:00
Petr Mrázek
e7f79c9076 Remove some old forge hacks
Forge apparently removed all `.pack.xz` files without warning.
It broke a bunch of stuff, as always. But it also means we don't need some ugly code anymore.

This is removed:

- Support for 'forge-pack-xz' and the forge-specific file download compression.
- The pack200 library we no longer need.

This stays:

- The LZMA decompression library - we may still want to use it.
2020-05-19 15:13:16 +02:00
Moresteck
1f9378af9f NOISSUE Fixed online saving in early Classic versions 2020-04-19 20:31:04 +01:00
AppleTheGolden
437dec91f9
Update Copyright Year 2019-01-16 21:14:24 +01:00
Petr Mrázek
9eb165bfee iNOISSUE fix build issue with pack200 on rhel 7.6 2018-11-01 22:08:15 +01:00
Petr Mrázek
59e2f52db7 GH-2238 fix issues with whitespace/newlines in folder and instance names 2018-11-01 00:18:49 +01:00
Petr Mrázek
bbb3b3e6f6 NOISSUE tabs -> spaces 2018-07-15 14:51:05 +02:00
Petr Mrázek
8108c61745 NOISSUE fix unitialized data warning on Arch Linux 2018-07-06 19:46:28 +02:00
Petr Mrázek
bb599abf59 NOISSUE fix a bug with mutexes on Windows, more warnings 2018-06-28 23:42:44 +02:00
Petr Mrázek
07f7ec8eef NOISSUE fix some warnings so builds can go further 2018-06-28 23:35:04 +02:00
Petr Mrázek
7fe94ca7b4 NOISSUE fix all sorts of warnings, enable Werror and pedantic 2018-06-28 23:18:45 +02:00
Petr Mrázek
19bb50b872 NOISSUE sync up quazip merge commit 2018-06-05 01:01:04 +02:00
Sergey Shatunov
4d68c1b509
GH-2291 Fix build with Qt 5.11+ 2018-06-02 17:22:43 +07:00
Petr Mrázek
f0ff2db4e1 GH-2277 fix even more exception catches by value 2018-05-20 01:53:05 +02:00
Charles Milette
72c0002b45
Catch C++ exceptions by const reference
Fixes #2277
2018-05-19 19:18:26 -04:00
Petr Mrázek
6e69370fbf NOISSUE disable useless broken unit test to fix win32 and osx64 builds 2018-03-13 01:41:33 +01:00
Petr Mrázek
82208be49e NOISSUE add linux distro name and release stats to analytics
Hopefully this can serve as some sort of guideline for focusing
effort towards the right distro packages to make.
2018-03-13 00:28:51 +01:00
Petr Mrázek
604295e6d5 NOISSUE fix some warnings 2018-02-11 01:21:32 +01:00
Petr Mrázek
f259e9f727 NOISSUE update copyright dates 2018-02-11 00:40:01 +01:00
Petr Mrázek
cd55674b36 NOISSUE do not install .a files for shared libraries on Windows 2018-01-27 02:42:27 +01:00
Petr Mrázek
166e5a03d6 NOISSUE rearrange build system
* Added install commands to the libraries instead of force installing files
* Most of the application cmake stuff moved to top level
* RPATH should now be set/cleared correctly
* Contains a fix for GH-1780
2018-01-27 02:00:20 +01:00
MinecraftZuriki
3470158943 Support for classic multiplayer via mpticket 2017-11-18 01:27:57 +11:00
Petr Mrázek
e6d734d9ac NOISSUE fix build some more 2017-10-29 12:28:26 +01:00
Petr Mrázek
1489720b90 NOISSUE fix build 2017-10-29 12:27:12 +01:00
Petr Mrázek
b76bdf9368 GH-2026 avoid using awt Dimension class to fix input issues on macOS 2017-10-29 12:24:49 +01:00
Petr Mrázek
7add9de1cf GH-2026 remove some macOS stuff from launcher part to fix input issues on 1.13 2017-10-29 10:02:01 +01:00
Petr Mrázek
c51512f940 NOISSUE use classparser for importing Legacy instances with undecided Minecraft versions 2017-09-27 15:39:13 +02:00
Petr Mrázek
464bc0f770 GH-1997 replace use of weird hacks with normal java arguments
This affects classpath and java.library.path.

The catch is that if the strings cannot be expressed in system codepage
on Windows, it tries to use 8.3 paths.
2017-09-27 04:04:19 +02:00
Petr Mrázek
c707042dd7 NOISSUE set haspaid parameter to true when launching old versions 2017-09-20 23:57:20 +02:00
Petr Mrázek
c19f6d4dcd NOISSUE allow running legacy without the applet wrapper
Add 'noapplet' as a trait to do that.
2017-07-14 08:43:35 +02:00
Petr Mrázek
afb0db24a8 NOISSUE set max of java heap spinboxes to detected physical memory 2017-07-11 22:43:35 +02:00
Petr Mrázek
8a1da91219 NOISSUE finish cleaning quazip
All LGPL code is back in the customized quazip fork
2017-05-31 09:20:24 +02:00
Petr Mrázek
cdc9bed83f NOISSUE move some zip utility functions back to quazip
It's not entirely clean yet.
2017-05-31 09:20:24 +02:00
Petr Mrázek
15c829fd3c GH-1876 Fork and update quazip
* It is added as a new submodule: https://github.com/MultiMC/quazip/tree/multimc-1
* Its build system has been entirely replaced to remove the existing issues with it
* It now has working unit tests
* No more patches needed
* It has a static linking exception in its license now, but we use it shared anyway
2017-05-06 17:36:57 +02:00
Petr Mrázek
9d4c188fd4 GH-1876 turn iconfix into a shared library 2017-05-05 09:43:20 +02:00
Petr Mrázek
e854894a3c GH-1876 turn pack200 into a shared library 2017-05-05 01:34:01 +02:00
Petr Mrázek
e9a6199507 NOISSUE fix benign issue in pack200 unpacker binary. 2017-04-19 22:23:00 +02:00
Petr Mrázek
f530aae9d3 NOISSUE update all the Copyright comments and texts to include 2017 2017-01-08 04:58:05 +01:00
Petr Mrázek
a666dc0a1a NOISSUE fix up translation selection in settings and add OS/sys arch reporting 2017-01-01 20:04:08 +01:00
Petr Mrázek
722896d41f NOISSUE Translations model and initial setup wizard work 2017-01-01 20:04:08 +01:00
Petr Mrázek
374710a87b GH-1379 update nbt++ to allow renaming its library file 2016-12-28 21:14:44 +01:00
Petr Mrázek
2344ee2dcd GH-1379 rename shared libraries to avoid collisions with system libraries
It was unlikely, now it's impossible.
2016-12-28 17:23:48 +01:00
Petr Mrázek
ef73a2bd32 NOISSUE fix Windows kernel numbers and add unit test for them 2016-11-27 00:40:02 +01:00
Petr Mrázek
5994c47d7c NOISSUE add ganalytics and LocalPeer licenses 2016-11-26 23:53:56 +01:00
Petr Mrázek
dd0c815396 NOISSUE fix macOS build (stray assignment to removed variable) 2016-11-26 02:22:40 +01:00
Petr Mrázek
55541c387c NOISSUE simplify system detection and user agent handling
Now it only checks OS kernel name/version.
User agent is 'MultiMC5/$version'.
Kernel info is passed through custom dimensions in analytics.
2016-11-26 02:18:05 +01:00
Petr Mrázek
d5fdc23eb2 NOISSUE dumb down Windows version detection...
Hopefully the analytics thing will accept it this time.
2016-11-25 00:39:15 +01:00
Petr Mrázek
a5fb931e8e NOISSUE fix build (OSVERSIONINFOW) 2016-11-24 23:32:21 +01:00
Petr Mrázek
486d653586 NOISSUE Better Windows version detection and user agent 2016-11-24 23:28:55 +01:00
Petr Mrázek
121e2fd46c NOISSUE add analytics settings (enable/disable) 2016-11-24 04:10:07 +01:00
Petr Mrázek
7a14b63957 NOISSUE send custom analytics values
* System, Java and CPU architecture (either 32 or 64).
* Java version.
* System memory size in MB.
* Java min/max heap size in MB.
2016-11-22 02:46:18 +01:00
Petr Mrázek
44805145dc NOISSUE add implementations of system query functions
* system memory size in bytes
* system architecture is 64bit?
* CPU architecture is 64bit?
2016-11-22 02:46:18 +01:00
Petr Mrázek
ee6f2f0a8e NOISSUE implement analytics IP anonymization 2016-11-21 21:18:30 +01:00
Petr Mrázek
ad25c89ac4 NOISSUE ifdef out unknown Apple system versions in analytics 2016-11-21 01:30:39 +01:00
Petr Mrázek
905bc2e440 NOISSUE most basic analytics integration possible 2016-11-21 01:19:34 +01:00
Petr Mrázek
2f8c752d1f NOISSUE reformat and sanitize ganalytics 2016-11-21 01:19:22 +01:00
Petr Mrázek
2ec15c32e4 NOISSUE import google analytics from third party
See: https://github.com/HSAnet/qt-google-analytics

Sadly, the API and its internals are not acceptable and it needs changes
upstream likely wouldn't allow.
2016-11-20 12:04:29 +01:00
Petr Mrázek
69be23c5f6 GH-1726 better failure detection for updates
Instead of just checking if the new version started, make sure
it is able to write its IPC key to a file and then use the key
to connect to the process.
2016-11-19 22:11:45 +01:00
Petr Mrázek
a717864013 NOISSUE fix the build even more - win32 types are weird 2016-10-30 03:03:49 +01:00
Petr Mrázek
54e0b9bc9b NOISSUE fix build some more - Windows 2016-10-30 02:53:13 +01:00
Petr Mrázek
412855ae3d NOISSUE refactor window management and launch, make MultiMC a single instance application. 2016-10-30 02:37:38 +01:00
Petr Mrázek
cee53f7f3c Revert "NOISSUE nuke builtin Minecraft versions"
This reverts commit 5ae3b2c114.

We need those builtin versions for now.
2016-10-26 18:23:39 +02:00
Petr Mrázek
1f2bed2ef1 NOISSUE implement direct java launch
Just running the Java process and giving it params on the command line
2016-08-01 21:15:08 +02:00
Petr Mrázek
b6d455a02b NOISSUE reorganize and document libraries 2016-05-01 00:00:14 +02:00
Petr Mrázek
47e37635f5 NOISSUE split GUI stuff from logic library 2016-04-30 23:59:23 +02:00