Skip to content

Commit

Permalink
Branch made using the latest Thermos source with updated libraries an…
Browse files Browse the repository at this point in the history
…d working build.
  • Loading branch information
juanmuscaria committed Sep 6, 2020
0 parents commit 3d98f86
Show file tree
Hide file tree
Showing 2,333 changed files with 281,624 additions and 0 deletions.
40 changes: 40 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Crucible
**/patches/net/minecraft/network/NetHandlerPlayServer.java.*

# IntelijIDEA
.gradle
.idea

# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
#*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

*.bat
*.sh
*.iml
*.ipr
*.iws
**/target
**/eclipse
**/build
**/.gradle
Binary file added CrucibleGradle-1.0.jar
Binary file not shown.
674 changes: 674 additions & 0 deletions LICENSE

Large diffs are not rendered by default.

52 changes: 52 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
![](https://img.shields.io/badge/Minecraft%20Forge-v10.13.4.1614-orange?style=flat-square)
![](https://img.shields.io/badge/Minecraft-1.7.10-orange?style=flat-square)
![](https://img.shields.io/badge/Spigot-1.7.10--R0.1--SNAPSHOT-orange?style=flat-square)
![](https://img.shields.io/badge/PaperMC-1.14.4--R0.1--SNAPSHOT-orange?style=flat-square)
![](https://img.shields.io/badge/CrucibleAPI-Not%20Implemented%20Yet-orange?style=flat-square)
![](https://img.shields.io/badge/Java%20JDK-v1.8-blue?style=flat-square)
![](https://img.shields.io/github/v/release/CrucibleMC/Crucible?color=sucess&style=flat-square)
![](https://img.shields.io/discord/682358465175355393?color=blue&label=Discord&logo=Discord&style=flat-square)
![Crucible](logo.png)
### What's Crucible?

Crucible is a continuation of [Thermos](https://github.com/CyberdyneCC/Thermos) as it has been discontinued.

Advantages over Thermos:
+ It is now possible to build. :)
+ Fixed several bugs.
+ Performance Improvements.
+ Updated some libraries.
+ You can see more changes in the [releases](https://github.com/CrucibleMC/Crucible/releases) changelog.

## Build Requirements
* Java 8u101 JDK or higher
* Linux (apparently the project breaks on Windows).
* `JAVA_HOME` defined on your OS

## Setup the Workspace
* Checkout project
* You can use IDE or clone from console:
`git clone https://github.com/CrucibleMC/Crucible.git`
* Creating the workspace
* To create the workspace just run the command: `./gradlew setupCrucible`
* To create the patches with the changes made just run: `./gradlew genPatches`
* Building
* Before you can build you must first setup the workspace!
* To build just run the command: `./gradlew jar`
* All builds will be in `build/distributions`
* Updating sources
* Update sources: `git pull origin master`
* Recreate the workspace: `./gradlew clean setupCrucible`
## Know incompatibilities and bugs
* Industrial Craft 2 has some problems with the crucible internal chunkmap, we have a fix via [Mixins](https://github.com/CrucibleMC/Grimoire-Mixins) using [Grimoire](https://github.com/CrucibleMC/Grimoire).
## Useful links
+ [Spark](https://github.com/lucko/spark) "Spark is a performance profiling plugin based on sk89q's WarmRoast profiler."
+ [Grimoire](https://github.com/CrucibleMC/Grimoire) "A core mod that [Grimoire-Mixins](https://github.com/CrucibleMC/Grimoire-Mixins) Modules use to be loaded up."
+ [Discord](https://discord.gg/jWSTJ4d) "Our support Discord."
## TODO List
- [ ] Reapply patches

[forge]: https://img.shields.io/badge/Minecraft%20Forge-v10.13.4.1614-green.svg "Minecraft Forge v10.13.4.1614"
[mc]: https://img.shields.io/badge/Minecraft-v1.7.10-green.svg "Minecraft 1.7.10"
[java]: https://img.shields.io/badge/Java%20JDK-v1.8-blue.svg "Java JDK 8"
[spigot]: https://img.shields.io/badge/Spigot-v1.7.10--R0.1--SNAPSHOT-lightgrey.svg "Spigot R0.1 Snapshot"
269 changes: 269 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,269 @@
buildscript {
repositories {
jcenter()
maven {
name 'prok'
url 'https://github.com/juanmuscaria/maven/raw/master/ThermosLibs'
}
maven {
name 'forge'
url 'http://files.minecraftforge.net/maven/'
}
maven {
name 'sonatype'
url 'http://oss.sonatype.org/content/repositories/snapshots/'
}
maven {
name 'spigot'
url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
}
flatDir {
dirs 'libs'
}
}
dependencies {
classpath 'net.minecraftforge.gradle:ForgeGradle:1.2-SNAPSHOT'
classpath files('CrucibleGradle-1.0.jar')
}
}

task wrapper(type: Wrapper) {
gradleVersion = '2.8'
}

apply plugin: 'maven'
apply plugin: 'crucible'
apply plugin: 'maven-publish'
apply plugin: 'signing'
apply plugin: 'base'

repositories {
jcenter()
maven {
name 'sonatype'
url 'http://oss.sonatype.org/content/repositories/snapshots/'
}
maven {
name 'prok'
url 'https://github.com/juanmuscaria/maven/raw/master/ThermosLibs'
}
maven {
name 'forge'
url 'http://files.minecraftforge.net/maven/'
}
maven {
name 'minecraft'
url 'https://libraries.minecraft.net/'
}
maven {
name 'spigot'
url 'https://hub.spigotmc.org/nexus/content/repositories/snapshots/'
}

flatDir {
dirs 'libs'
}
}

minecraft {
version = '1.7.10'
mcpVersion = '9.08'
mainClass = 'cpw.mods.fml.relauncher.ServerLaunchWrapper'
tweakClass = 'cpw.mods.fml.common.launcher.FMLTweaker'
installerVersion = "1.4"
srgExtra "PK: org/bukkit/craftbukkit org/bukkit/craftbukkit/v1_7_R4"
}

group = 'cruciblemc'

ext.buildInfoCached = null;

ext.gitInfoCached = null;

def gitInfo(String key) {
if (!gitInfoCached) {
if (file('.git').exists()) {
gitInfoCached = [
hash : ['git', 'log', "--format=%h", '-n', '1'].execute().text.trim(),
fullHash: ['git', 'log', "--format=%H", '-n', '1'].execute().text.trim(),
branch : System.getenv("CI_BUILD_REF_NAME") ?: ['git', 'symbolic-ref', '--short', 'HEAD'].execute().text.trim(),
message : ['git', 'log', "--format=%B", '-n', '1'].execute().text.trim()
]
} else {
gitInfoCached = [
hash : 'NOT_A_GIT',
fullHash: 'NOT_A_GIT',
branch : 'NOT_A_GIT',
message : 'NOT_A_GIT'
]
}
}
return key ? gitInfoCached[key] : gitInfoCached;
}

ext.mcVersion = "1.7.10"
ext.forgeVersion = "1614"
ext.revision = "1.0.7"
ext.crucibleVersion = "3.1"
version = "${mcVersion}-${crucibleVersion}"

launch4j {
jreMinVersion = '1.8.0'
}

configurations {
compile.extendsFrom exported
libraries
bootstrap
}

dependencies {
bootstrap 'pw.prok:KBootstrap:0.2.+'
libraries 'pw.prok:KBootstrap:0.3.2@jar'
libraries 'pw.prok:Damask:0.1.2@jar'
libraries 'commons-cli:commons-cli:1.3@jar'
libraries 'org.slf4j:slf4j-simple:1.6.2@jar'
libraries 'org.eclipse.jetty:jetty-servlet:9.0.3.v20130506@jar'
libraries 'commons-io:commons-io:2.4@jar'
libraries 'net.sf.opencsv:opencsv:2.0@jar'
libraries 'com.beust:jcommander:1.30@jar'
libraries 'net.minecraft:launchwrapper:1.12@jar'
libraries 'org.ow2.asm:asm-all:5.0.3'
libraries 'com.typesafe.akka:akka-actor_2.11:2.3.3'
libraries 'com.typesafe:config:1.2.1'
libraries 'org.scala-lang:scala-actors-migration_2.11:1.1.0'
libraries 'org.scala-lang:scala-compiler:2.11.7'
libraries 'org.scala-lang.plugins:scala-continuations-library_2.11:1.0.2'
libraries 'org.scala-lang.plugins:scala-continuations-plugin_2.11.2:1.0.2'
libraries 'org.scala-lang:scala-library:2.11.7'
libraries 'org.scala-lang:scala-parser-combinators:2.11.0-M4'
libraries 'org.scala-lang:scala-reflect:2.11.7'
libraries 'org.scala-lang:scala-swing:2.11.0-M7'
libraries 'org.scala-lang:scala-xml:2.11.0-M4'
libraries 'net.sf.jopt-simple:jopt-simple:5.0.1'
libraries 'lzma:lzma:0.0.1'
libraries 'org.yaml:snakeyaml:1.21'
libraries 'commons-lang:commons-lang:2.6'
libraries 'org.avaje:ebean:2.7.3'
libraries 'jline:jline:2.6'
libraries 'net.md-5:SpecialSource:1.7.4'
libraries 'net.sourceforge.argo:argo:2.25'
libraries 'com.googlecode.json-simple:json-simple:1.1'
libraries 'org.xerial:sqlite-jdbc:3.7.2'
libraries 'mysql:mysql-connector-java:5.1.14'
libraries 'javax.persistence:persistence-api:1.0.2'
libraries 'net.minecraft:server:1.7.10'
libraries 'pw.prok:KImagine:0.2.0@jar'
libraries 'org.apache.httpcomponents:httpclient:4.4.1'
libraries 'net.openhft:affinity:3.0.1'
libraries 'org.fusesource.jansi:jansi:1.11'
libraries 'com.koloboke:koloboke-impl-jdk8:1.0.0'
libraries 'java3d:vecmath:1.3.1'
libraries 'it.unimi.dsi:fastutil:8.2.2'
libraries fileTree(dir: "libs", include: "*.jar")
}

packageUniversal {
from { configurations.exported.collect { it.isDirectory() ? it : zipTree(it) } }
}

def String repeat(String string, int times) {
StringBuilder builder = new StringBuilder(string.length() * times)
times.times { builder.append(string) }
builder as String
}

def generateClasspath(boolean legacy = false) {
def classpath = ''
configurations.libraries.resolvedConfiguration.resolvedArtifacts.collect { it.moduleVersion.id }.each {
def jar = "${it.group.replace('.', '/')}/${it.name}/${it.version}/${it.name}-${it.version}.jar"
classpath += " ${legacy ? 'libraries/' : repeat('../', (group as String).split('\\.').length + 2)}${jar}"
}
return classpath.trim()
}

def generateManifest(boolean legacy = false) {
[
'Thermos-Git-Branch' : gitInfo('branch'),
'Thermos-Git-Hash' : gitInfo('fullHash'),
'Thermos-Group' : project.group,
'Thermos-Channel' : project.name,
'Thermos-Version' : project.version,
'Thermos-Legacy' : legacy,
'Implementation-Vendor' : 'CyberdyneCC',
'Implementation-Title' : project.name,
'Implementation-Version': project.version,
'Specification-Vendor' : 'Bukkit Team',
'Specification-Title' : 'Bukkit',
'Specification-Version' : '1.7.10-R0.1-SNAPSHOT',
'Forge-Version' : '10.13.4.1614',
'TweakClass' : 'cpw.mods.fml.common.launcher.FMLTweaker',
'Main-Class' : 'cpw.mods.fml.relauncher.ServerLaunchWrapper',
'Class-Path' : generateClasspath(legacy)
]
}

tasks.packageUniversal {
classifier = 'server'
setManifest {}
manifest.attributes(generateManifest(true))
}

task jar(type: Jar, dependsOn: packageUniversal) {
destinationDir file("${buildDir}/distributions")
from zipTree(tasks.packageUniversal.archivePath)
manifest.attributes(generateManifest())
}

tasks.packageInstaller.onlyIf { false }

tasks.generateProjectCauldron << {
def file = new File('eclipse/cauldron/build.gradle')
file.append('''
repositories {
clear()
maven {
name 'prok'
url 'https://github.com/juanmuscaria/maven/raw/master/ThermosLibs'
}
maven {
name 'forge'
url 'http://files.minecraftforge.net/maven/'
}
maven {
name 'minecraft'
url 'https://libraries.minecraft.net/'
}
mavenCentral()
mavenLocal()
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
''')
configurations.libraries.resolvedConfiguration.resolvedArtifacts.collect { it.moduleVersion.id }.each { module ->
if (['net.minecraft:server:', 'org.ow2.asm:asm-all'].findAll { (module as String).startsWith it }.size() > 0) {
return
}
file.append(" compile '${module}'\n")
}
file.append('}')
}

task resolveAllDependencies {
doLast {
configurations.each { it.resolve() }
}
}

task copyLibs( type: Copy ) {
into "$buildDir/libs/lib"
from configurations.libraries
}

subprojects {
apply plugin: 'java'
repositories {
mavenCentral()
}
}
31 changes: 31 additions & 0 deletions bukkit/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Eclipse stuff
/.classpath
/.project
/.settings

# netbeans
/nbproject

# we use maven!
/build.xml

# maven
/target

# vim
.*.sw[a-p]

# various other potential build files
/build
/bin
/dist
/manifest.mf

# Mac filesystem dust
.DS_Store

# intellij
*.iml
*.ipr
*.iws
.idea/
Loading

0 comments on commit 3d98f86

Please sign in to comment.