Skip to content

Commit

Permalink
Using NeoForge Installer instead of Forge, update correct icon (#121)
Browse files Browse the repository at this point in the history
* make logo

* cleanroom_logo

* [test] delete icon for json

* make into

* make big_logo.png

* logo: '/big_logo.png',

* t1

* t2

* t3

* t4

* new logo and test

* delete logo

* quote it

* t5

* t6

* remove forge logo

* t7

* t8

* t9

* t10

* t11

* t12

* t13

* t14

* t13

* t14

* t15

* t16

* t19

* t20

* t21

* t22

* final build

* rename

* x64

* switch to net.neoforged.installertools

* add neoforge maven

* update net.neoforged:legacyinstaller

* net.neoforged:legacyinstaller:3.0.31

* neoforge

* add https://maven.neoforged.net/releases to buildSrc classpath

* add `/` to fix

* update

* add to cleanroom

* download installerTools

* try 2

* fatjar

* shrunk

* cleanroom installer but fox icon

* make icons replace

* fix build fail

* update

* delete old icons

* fix “

* update

* fix legacyinstaller's first url check

* remove forget icons

* add temp warn
  • Loading branch information
Ecdcaeb authored Oct 27, 2024
1 parent b958531 commit a245727
Show file tree
Hide file tree
Showing 13 changed files with 162 additions and 14 deletions.
65 changes: 65 additions & 0 deletions FORGE-CREDITS.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
Minecraft Forge: Credits/Thank You

Forge is a set of tools and modifications to the Minecraft base game code to assist
mod developers in creating new and exciting content. It has been in development for
several years now, but I would like to take this time thank a few people who have
helped it along it's way.

First, the people who originally created the Forge projects way back in Minecraft
alpha. Eloraam of RedPower, and SpaceToad of Buildcraft, without their acceptiance
of me taking over the project, who knows what Minecraft modding would be today.

Secondly, someone who has worked with me, and developed some of the core features
that allow modding to he as functional, and as simple as it is, cpw. For developing
FML, which stabelized the client and server modding ecosystem. As well as the base
loading system that allows us to modify Minecraft's code as elegently as possible.

Mezz, who has stepped up as the issue and pull request manager. Helping to keep me
sane as well as guiding the community into creating better additions to Forge.

Searge, Bspks, Fesh0r, ProfMobious, and all the rest over on the MCP team {of which
I am a part}. For creating some of the core tools needed to make Minecraft modding
both possible, and as stable as can be.
On that note, here is some specific information of the MCP data we use:
* Minecraft Coder Pack (MCP) *
Forge Mod Loader and Minecraft Forge have permission to distribute and automatically
download components of MCP and distribute MCP data files. This permission is not
transitive and others wishing to redistribute the Minecraft Forge source independently
should seek permission of MCP or remove the MCP data files and request their users
to download MCP separately.

And lastly, the countless community members who have spent time submitting bug reports,
pull requests, and just helping out the community in general. Thank you.

--LexManos

=========================================================================

This is Forge Mod Loader.

You can find the source code at all times at https://github.com/MinecraftForge/MinecraftForge/tree/1.12.x/src/main/java/net/minecraftforge/fml

This minecraft mod is a clean open source implementation of a mod loader for minecraft servers
and minecraft clients.

The code is authored by cpw.

It began by partially implementing an API defined by the client side ModLoader, authored by Risugami.
http://www.minecraftforum.net/topic/75440-
This support has been dropped as of Minecraft release 1.7, as Risugami no longer maintains ModLoader.

It also contains suggestions and hints and generous helpings of code from LexManos, author of MinecraftForge.
http://www.minecraftforge.net/

Additionally, it contains an implementation of topological sort based on that
published at http://keithschwarz.com/interesting/code/?dir=topological-sort

It also contains code from the Maven project for performing versioned dependency
resolution. http://maven.apache.org/

It also contains a partial repackaging of the javaxdelta library from http://sourceforge.net/projects/javaxdelta/
with credit to it's authors.

Forge Mod Loader downloads components from the Minecraft Coder Pack
(http://mcp.ocean-labs.de/index.php/Main_Page) with kind permission from the MCP team.

10 changes: 10 additions & 0 deletions LICENSE-Paulscode IBXM Library.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
IBXM is copyright (c) 2007, Martin Cameron, and is licensed under the BSD License.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of mumart nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

40 changes: 40 additions & 0 deletions LICENSE-Paulscode SoundSystem CodecIBXM.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
SoundSystem CodecIBXM Class License:

You are free to use this class for any purpose, commercial or otherwise.
You may modify this class or source code, and distribute it any way you
like, provided the following conditions are met:

1) You may not falsely claim to be the author of this class or any
unmodified portion of it.
2) You may not copyright this class or a modified version of it and then
sue me for copyright infringement.
3) If you modify the source code, you must clearly document the changes
made before redistributing the modified source code, so other users know
it is not the original code.
4) You are not required to give me credit for this class in any derived
work, but if you do, you must also mention my website:
http://www.paulscode.com
5) I the author will not be responsible for any damages (physical,
financial, or otherwise) caused by the use if this class or any
portion of it.
6) I the author do not guarantee, warrant, or make any representations,
either expressed or implied, regarding the use of this class or any
portion of it.

Author: Paul Lamb
http://www.paulscode.com


This software is based on or using the IBXM library available from
http://www.geocities.com/sunet2000/


IBXM is copyright (c) 2007, Martin Cameron, and is licensed under the BSD License.
All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
Neither the name of mumart nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
- For regular launcher (official launcher, AT launcher, FTB, HMCL), download the installer jar from release. You could use the installer like the Forge one.
- **Remember to install Fugue!**
- **And Scalar!**
- **Do not generate a fat-installer as this is not supported.**

## Build Instructions:

Expand Down
55 changes: 43 additions & 12 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ buildscript {
name "Outlands"
url "https://maven.outlands.top/releases/"
}
maven {
name "NeoForge"
url = 'https://maven.neoforged.net/releases/'
}
}
dependencies {
classpath "net.minecraftforge.gradle:ForgeGradle:6.0.+"
Expand Down Expand Up @@ -94,6 +98,10 @@ project(':mcp') {
name 'MinecraftForge'
url 'https://maven.minecraftforge.net/'
}
maven {
name "NeoForge"
url = 'https://maven.neoforged.net/releases/'
}

}
mcp {
Expand All @@ -119,6 +127,10 @@ project(':minecraft') {
name 'MinecraftForge'
url 'https://maven.minecraftforge.net/'
}
maven {
name "NeoForge"
url = 'https://maven.neoforged.net/releases/'
}

}
dependencies {
Expand Down Expand Up @@ -235,6 +247,10 @@ project(':cleanroom') {
maven {
url "https://maven.outlands.top/releases/"
}
maven {
name "NeoForge"
url = 'https://maven.neoforged.net/releases/'
}
}

ext {
Expand Down Expand Up @@ -637,8 +653,8 @@ project(':cleanroom') {

// TODO: Include?
def extra_files = [
rootProject.file('CREDITS.txt'),
rootProject.file('LICENSE.txt'),
rootProject.file('FORGE-CREDITS.txt'),
rootProject.file('LICENSE'),
rootProject.file('LICENSE-Paulscode IBXM Library.txt'),
rootProject.file('LICENSE-Paulscode SoundSystem CodecIBXM.txt')
]
Expand Down Expand Up @@ -870,7 +886,7 @@ project(':cleanroom') {
artifact: [
path: "${project.group.replace('.', '/')}/${project.name}/${project.version}/${project.name}-${project.version}.jar",
// Do not include the URL so that the installer/launcher won't grab it. This is also why we don't have the universal classifier
url: '',
url: ' ',
sha1: Util.sha1(universalJar.archivePath),
size: universalJar.archivePath.length()
]
Expand All @@ -893,7 +909,7 @@ project(':cleanroom') {
task installerJson(dependsOn: [launcherJson, genClientBinPatches/*, createClientSRG, createServerSRG*/]) {
ext {
output = file('build/install_profile.json')
installer_tools = "net.minecraftforge:installertools:$props.installer_tools_version"
installer_tools = "net.neoforged.installertools:installertools:$props.installer_tools_version"
}
inputs.file universalJar.archivePath
inputs.file genClientBinPatches.toolJar
Expand All @@ -907,7 +923,7 @@ project(':cleanroom') {
artifact: [
path: "${project.group.replace('.', '/')}/${project.name}/${project.version}/${project.name}-${project.version}.jar",
// Do not include the URL so that the installer/launcher won't grab it. This is also why we don't have the universal classifier
url: '',
url: ' ',
sha1: Util.sha1(universalJar.archivePath),
size: universalJar.archivePath.length()
]
Expand All @@ -917,9 +933,9 @@ project(':cleanroom') {
def json = [
_comment_: launcherJson.comment,
spec: 0,
profile: project.name,
profile: project.name.capitalize(),
version: launcherJson.id,
icon: 'data:image/png;base64,' + new String(Base64.getEncoder().encode(Files.readAllBytes(rootProject.file('icon.ico').toPath()))),
icon: 'null',
json: '/version.json',
path: "${project.group}:${project.name}:${project.version}",
logo: '/big_logo.png',
Expand Down Expand Up @@ -1003,7 +1019,7 @@ project(':cleanroom') {
}

task downloadInstaller(type: DownloadMavenArtifact) {
artifact = 'net.minecraftforge:installer:2.2.+:fatjar'
artifact = 'net.neoforged:legacyinstaller:3.0.+:shrunk'
changing = true
}

Expand All @@ -1012,10 +1028,7 @@ project(':cleanroom') {
archiveExtension = 'jar' //Needs to be Zip task to not override Manifest, so set extension
destinationDirectory = file('build/libs')
from(extra_files)
from(rootProject.file('/src/main/resources/forge_logo.png')) {
rename { 'big_logo.png' }
}
from(rootProject.file('/src/main/resources/url.png'))
from(rootProject.file('src/main/resources/url.png'))
from(universalJar) {
into("/maven/${project.group.replace('.', '/')}/${project.name}/${project.version}/")
rename { "${project.name }-${project.version }.jar" }
Expand All @@ -1024,6 +1037,24 @@ project(':cleanroom') {
from(launcherJson.output)
from(zipTree(downloadInstaller.output)) {
duplicatesStrategy = 'exclude'
exclude(
[
"icons/**",
"big_logo.png"
])
}
from(rootProject.file('logos/cleanroom-logo_64.png')) {
rename { "big_logo.png" }
}
// TODO : get from https://raw.githubusercontent.com/CleanroomMC/Resources/refs/heads/master/Art/cleanroom-logo.png and make the sizes automatic.
from(rootProject.file('logos/cleanroom-logo_16.png')) {
rename { "icons/neoforged_background_16x16.png" }
}
from(rootProject.file('logos/cleanroom-logo_32.png')) {
rename { "icons/neoforged_background_32x32.png" }
}
from(rootProject.file('logos/cleanroom-logo_128.png')) {
rename { "icons/neoforged_background_128x128.png" }
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,8 @@ class Util {
"https://maven.minecraftforge.net/",
"https://repo.maven.apache.org/maven2/",
"https://libraries.minecraft.net/",
"https://maven.outlands.top/releases/"
"https://maven.outlands.top/releases/",
"https://maven.neoforged.net/releases/"
]
try {
return urlList.stream().map(original -> original + path)
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ mcp_version = 20240102.171137
special_source = net.md-5:SpecialSource:1.9.0
special_source_mcp = net.md-5:SpecialSource:1.8.5
binary_patcher = net.minecraftforge:binarypatcher:1.1.1:fatjar
installer_tools_version = 1.4.1
installer_tools_version = 2.1.7

# Libraries
asm_version = 9.6
Expand Down
Binary file removed icon.ico
Binary file not shown.
Binary file added logos/cleanroom-logo_128.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added logos/cleanroom-logo_16.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added logos/cleanroom-logo_32.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added logos/cleanroom-logo_512.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added logos/cleanroom-logo_64.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit a245727

Please sign in to comment.