Skip to content

Commit f875290

Browse files
committed
Initial commit
0 parents  commit f875290

20 files changed

Lines changed: 847 additions & 0 deletions

.editorconfig

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
tab_width = 4
8+
trim_trailing_whitespace = true
9+
10+
[*.md]
11+
trim_trailing_whitespace = false
12+
13+
[*.gradle]
14+
indent_style = tab
15+
16+
[*.java]
17+
indent_style = tab
18+
19+
[*.json]
20+
indent_style = space
21+
indent_size = 2
22+
23+
[fabric.mod.json]
24+
indent_style = tab
25+
tab_width = 2
26+
27+
[*.properties]
28+
indent_style = space
29+
indent_size = 2

.github/workflows/build.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Automatically build the project and run any configured tests for every push
2+
# and submitted pull request. This can help catch issues that only occur on
3+
# certain platforms or Java versions, and provides a first line of defence
4+
# against bad commits.
5+
6+
name: build
7+
on: [pull_request, push]
8+
9+
jobs:
10+
build:
11+
strategy:
12+
matrix:
13+
# Use these Java versions
14+
java: [
15+
17, # Current Java LTS & minimum supported by Minecraft
16+
]
17+
# and run on both Linux and Windows
18+
os: [ubuntu-latest, windows-latest]
19+
runs-on: ${{ matrix.os }}
20+
steps:
21+
- name: checkout repository
22+
uses: actions/checkout@v4
23+
- name: validate gradle wrapper
24+
uses: gradle/wrapper-validation-action@v2
25+
- name: setup jdk ${{ matrix.java }}
26+
uses: actions/setup-java@v4
27+
with:
28+
java-version: ${{ matrix.java }}
29+
distribution: 'temurin'
30+
- name: make gradle wrapper executable
31+
if: ${{ runner.os != 'Windows' }}
32+
run: chmod +x ./gradlew
33+
- name: build
34+
run: ./gradlew build
35+
- name: capture build artifacts
36+
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS
37+
uses: actions/upload-artifact@v4
38+
with:
39+
name: Artifacts
40+
path: build/libs/

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
.gradle/
2+
.idea/
3+
build/
4+
out/
5+
run/
6+
run-server/

LICENSE

Lines changed: 121 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
Creative Commons Legal Code
2+
3+
CC0 1.0 Universal
4+
5+
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
6+
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
7+
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
8+
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
9+
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
10+
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
11+
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
12+
HEREUNDER.
13+
14+
Statement of Purpose
15+
16+
The laws of most jurisdictions throughout the world automatically confer
17+
exclusive Copyright and Related Rights (defined below) upon the creator
18+
and subsequent owner(s) (each and all, an "owner") of an original work of
19+
authorship and/or a database (each, a "Work").
20+
21+
Certain owners wish to permanently relinquish those rights to a Work for
22+
the purpose of contributing to a commons of creative, cultural and
23+
scientific works ("Commons") that the public can reliably and without fear
24+
of later claims of infringement build upon, modify, incorporate in other
25+
works, reuse and redistribute as freely as possible in any form whatsoever
26+
and for any purposes, including without limitation commercial purposes.
27+
These owners may contribute to the Commons to promote the ideal of a free
28+
culture and the further production of creative, cultural and scientific
29+
works, or to gain reputation or greater distribution for their Work in
30+
part through the use and efforts of others.
31+
32+
For these and/or other purposes and motivations, and without any
33+
expectation of additional consideration or compensation, the person
34+
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
35+
is an owner of Copyright and Related Rights in the Work, voluntarily
36+
elects to apply CC0 to the Work and publicly distribute the Work under its
37+
terms, with knowledge of his or her Copyright and Related Rights in the
38+
Work and the meaning and intended legal effect of CC0 on those rights.
39+
40+
1. Copyright and Related Rights. A Work made available under CC0 may be
41+
protected by copyright and related or neighboring rights ("Copyright and
42+
Related Rights"). Copyright and Related Rights include, but are not
43+
limited to, the following:
44+
45+
i. the right to reproduce, adapt, distribute, perform, display,
46+
communicate, and translate a Work;
47+
ii. moral rights retained by the original author(s) and/or performer(s);
48+
iii. publicity and privacy rights pertaining to a person's image or
49+
likeness depicted in a Work;
50+
iv. rights protecting against unfair competition in regards to a Work,
51+
subject to the limitations in paragraph 4(a), below;
52+
v. rights protecting the extraction, dissemination, use and reuse of data
53+
in a Work;
54+
vi. database rights (such as those arising under Directive 96/9/EC of the
55+
European Parliament and of the Council of 11 March 1996 on the legal
56+
protection of databases, and under any national implementation
57+
thereof, including any amended or successor version of such
58+
directive); and
59+
vii. other similar, equivalent or corresponding rights throughout the
60+
world based on applicable law or treaty, and any national
61+
implementations thereof.
62+
63+
2. Waiver. To the greatest extent permitted by, but not in contravention
64+
of, applicable law, Affirmer hereby overtly, fully, permanently,
65+
irrevocably and unconditionally waives, abandons, and surrenders all of
66+
Affirmer's Copyright and Related Rights and associated claims and causes
67+
of action, whether now known or unknown (including existing as well as
68+
future claims and causes of action), in the Work (i) in all territories
69+
worldwide, (ii) for the maximum duration provided by applicable law or
70+
treaty (including future time extensions), (iii) in any current or future
71+
medium and for any number of copies, and (iv) for any purpose whatsoever,
72+
including without limitation commercial, advertising or promotional
73+
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
74+
member of the public at large and to the detriment of Affirmer's heirs and
75+
successors, fully intending that such Waiver shall not be subject to
76+
revocation, rescission, cancellation, termination, or any other legal or
77+
equitable action to disrupt the quiet enjoyment of the Work by the public
78+
as contemplated by Affirmer's express Statement of Purpose.
79+
80+
3. Public License Fallback. Should any part of the Waiver for any reason
81+
be judged legally invalid or ineffective under applicable law, then the
82+
Waiver shall be preserved to the maximum extent permitted taking into
83+
account Affirmer's express Statement of Purpose. In addition, to the
84+
extent the Waiver is so judged Affirmer hereby grants to each affected
85+
person a royalty-free, non transferable, non sublicensable, non exclusive,
86+
irrevocable and unconditional license to exercise Affirmer's Copyright and
87+
Related Rights in the Work (i) in all territories worldwide, (ii) for the
88+
maximum duration provided by applicable law or treaty (including future
89+
time extensions), (iii) in any current or future medium and for any number
90+
of copies, and (iv) for any purpose whatsoever, including without
91+
limitation commercial, advertising or promotional purposes (the
92+
"License"). The License shall be deemed effective as of the date CC0 was
93+
applied by Affirmer to the Work. Should any part of the License for any
94+
reason be judged legally invalid or ineffective under applicable law, such
95+
partial invalidity or ineffectiveness shall not invalidate the remainder
96+
of the License, and in such case Affirmer hereby affirms that he or she
97+
will not (i) exercise any of his or her remaining Copyright and Related
98+
Rights in the Work or (ii) assert any associated claims and causes of
99+
action with respect to the Work, in either case contrary to Affirmer's
100+
express Statement of Purpose.
101+
102+
4. Limitations and Disclaimers.
103+
104+
a. No trademark or patent rights held by Affirmer are waived, abandoned,
105+
surrendered, licensed or otherwise affected by this document.
106+
b. Affirmer offers the Work as-is and makes no representations or
107+
warranties of any kind concerning the Work, express, implied,
108+
statutory or otherwise, including without limitation warranties of
109+
title, merchantability, fitness for a particular purpose, non
110+
infringement, or the absence of latent or other defects, accuracy, or
111+
the present or absence of errors, whether or not discoverable, all to
112+
the greatest extent permissible under applicable law.
113+
c. Affirmer disclaims responsibility for clearing rights of other persons
114+
that may apply to the Work or any use thereof, including without
115+
limitation any person's Copyright and Related Rights in the Work.
116+
Further, Affirmer disclaims responsibility for obtaining any necessary
117+
consents, permissions or other rights required for any use of the
118+
Work.
119+
d. Affirmer understands and acknowledges that Creative Commons is not a
120+
party to this document and has no duty or obligation with respect to
121+
this CC0 or use of the Work.

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# Carry
2+
Carry blocks around

build.gradle

Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
plugins {
2+
id 'fabric-loom' version '1.7.bta'
3+
id 'java'
4+
}
5+
6+
import org.gradle.internal.os.OperatingSystem
7+
8+
project.ext.lwjglVersion = "3.3.3"
9+
10+
switch (OperatingSystem.current()) {
11+
case OperatingSystem.LINUX:
12+
project.ext.lwjglNatives = "natives-linux"
13+
break
14+
case OperatingSystem.WINDOWS:
15+
project.ext.lwjglNatives = "natives-windows"
16+
break
17+
case OperatingSystem.MAC_OS:
18+
project.ext.lwjglNatives = "natives-macos"
19+
}
20+
21+
group = project.mod_group
22+
archivesBaseName = project.mod_name
23+
version = project.mod_version
24+
25+
loom {
26+
accessWidenerPath = file("src/main/resources/carry.accesswidener")
27+
noIntermediateMappings()
28+
customMinecraftMetadata.set("https://downloads.betterthanadventure.net/bta-client/${project.bta_channel}/v${project.bta_version}/manifest.json")
29+
}
30+
31+
repositories {
32+
mavenCentral()
33+
maven { url = "https://jitpack.io" }
34+
maven {
35+
name = 'Babric'
36+
url = 'https://maven.glass-launcher.net/babric'
37+
}
38+
maven {
39+
name = 'Fabric'
40+
url = 'https://maven.fabricmc.net/'
41+
}
42+
maven {
43+
name = 'SignalumMavenInfrastructure'
44+
url = 'https://maven.thesignalumproject.net/infrastructure'
45+
}
46+
maven {
47+
name = 'SignalumMavenReleases'
48+
url = 'https://maven.thesignalumproject.net/releases'
49+
}
50+
ivy {
51+
url = "https://github.com/Better-than-Adventure"
52+
patternLayout {
53+
artifact "[organisation]/releases/download/v[revision]/[module].jar"
54+
m2compatible = true
55+
}
56+
metadataSources { artifact() }
57+
}
58+
ivy {
59+
url = "https://downloads.betterthanadventure.net/bta-client/${project.bta_channel}/"
60+
patternLayout {
61+
artifact "/v[revision]/client.jar"
62+
m2compatible = true
63+
}
64+
metadataSources { artifact() }
65+
}
66+
ivy {
67+
url = "https://downloads.betterthanadventure.net/bta-server/${project.bta_channel}/"
68+
patternLayout {
69+
artifact "/v[revision]/server.jar"
70+
m2compatible = true
71+
}
72+
metadataSources { artifact() }
73+
}
74+
ivy {
75+
url = "https://piston-data.mojang.com"
76+
patternLayout {
77+
artifact "v1/[organisation]/[revision]/[module].jar"
78+
m2compatible = true
79+
}
80+
metadataSources { artifact() }
81+
}
82+
83+
}
84+
85+
dependencies {
86+
minecraft "::${project.bta_version}"
87+
mappings loom.layered() {}
88+
89+
modRuntimeOnly "objects:client:43db9b498cb67058d2e12d394e6507722e71bb45" // https://piston-data.mojang.com/v1/objects/43db9b498cb67058d2e12d394e6507722e71bb45/client.jar
90+
modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
91+
92+
// Helper library
93+
// If you do not need Halplibe you can comment this line out or delete this line
94+
modImplementation("turniplabs:halplibe:${project.halplibe_version}")
95+
96+
modImplementation("turniplabs:modmenu-bta:${project.mod_menu_version}")
97+
98+
implementation "org.slf4j:slf4j-api:1.8.0-beta4"
99+
implementation "org.apache.logging.log4j:log4j-slf4j18-impl:2.16.0"
100+
101+
implementation 'com.google.guava:guava:33.0.0-jre'
102+
implementation group: 'com.google.code.gson', name: 'gson', version: '2.10.1'
103+
var log4jVersion = "2.20.0"
104+
implementation("org.apache.logging.log4j:log4j-core:${log4jVersion}")
105+
implementation("org.apache.logging.log4j:log4j-api:${log4jVersion}")
106+
implementation("org.apache.logging.log4j:log4j-1.2-api:${log4jVersion}")
107+
108+
include(implementation("org.apache.commons:commons-lang3:3.12.0"))
109+
110+
modImplementation("com.github.Better-than-Adventure:legacy-lwjgl3:1.0.5")
111+
implementation platform("org.lwjgl:lwjgl-bom:$lwjglVersion")
112+
113+
runtimeOnly "org.lwjgl:lwjgl::$lwjglNatives"
114+
runtimeOnly "org.lwjgl:lwjgl-assimp::$lwjglNatives"
115+
runtimeOnly "org.lwjgl:lwjgl-glfw::$lwjglNatives"
116+
runtimeOnly "org.lwjgl:lwjgl-openal::$lwjglNatives"
117+
runtimeOnly "org.lwjgl:lwjgl-opengl::$lwjglNatives"
118+
runtimeOnly "org.lwjgl:lwjgl-stb::$lwjglNatives"
119+
implementation "org.lwjgl:lwjgl:$lwjglVersion"
120+
implementation "org.lwjgl:lwjgl-assimp:$lwjglVersion"
121+
implementation "org.lwjgl:lwjgl-glfw:$lwjglVersion"
122+
implementation "org.lwjgl:lwjgl-openal:$lwjglVersion"
123+
implementation "org.lwjgl:lwjgl-opengl:$lwjglVersion"
124+
implementation "org.lwjgl:lwjgl-stb:$lwjglVersion"
125+
}
126+
127+
java {
128+
sourceCompatibility = JavaVersion.VERSION_1_8
129+
targetCompatibility = JavaVersion.VERSION_1_8
130+
withSourcesJar()
131+
}
132+
133+
tasks.withType(JavaCompile).configureEach {
134+
options.release.set 8
135+
}
136+
137+
jar {
138+
from("LICENSE") {
139+
rename { "${it}_${archivesBaseName}" }
140+
}
141+
}
142+
143+
configurations.configureEach {
144+
// Removes LWJGL2 dependencies
145+
exclude group: "org.lwjgl.lwjgl"
146+
}
147+
148+
processResources {
149+
inputs.property "version", version
150+
151+
filesMatching("fabric.mod.json") {
152+
expand "version": version
153+
}
154+
}

gradle.properties

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
org.gradle.jvmargs=-Xmx2G
2+
3+
# BTA
4+
bta_version=7.3_03
5+
bta_channel=release
6+
7+
# Loader
8+
loader_version=0.15.6-bta.7
9+
10+
# Other Mods
11+
mod_menu_version=3.0.0
12+
halplibe_version=5.2.4
13+
14+
# Mod
15+
mod_version=1.0
16+
mod_group=cursedbread
17+
mod_name=carry

gradle/wrapper/gradle-wrapper.jar

58.1 KB
Binary file not shown.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
distributionBase=GRADLE_USER_HOME
2+
distributionPath=wrapper/dists
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
4+
zipStoreBase=GRADLE_USER_HOME
5+
zipStorePath=wrapper/dists

0 commit comments

Comments
 (0)