Skip to content

Commit 498084e

Browse files
authored
Merge pull request #387 from kr1viah/main
Update to 1.21.4 - 1.21.8
2 parents b09f6e3 + a3ef05c commit 498084e

175 files changed

Lines changed: 4594 additions & 5774 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/gradle.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ jobs:
2424
with:
2525
fetch-depth: 10
2626

27-
- name: Set up JDK 17
27+
- name: Set up JDK 21
2828
uses: actions/setup-java@v4
2929
with:
30-
java-version: 17
30+
java-version: 21
3131
distribution: temurin
3232

3333
- uses: actions/cache@v4

build.gradle

Lines changed: 72 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,64 @@
1-
//file:noinspection GroovyAssignabilityCheck
2-
31
plugins {
4-
id 'fabric-loom' version '1.2-SNAPSHOT'
2+
id 'fabric-loom' version '1.10-SNAPSHOT'
53
id 'maven-publish'
64
id 'com.github.johnrengelman.shadow' version '8.+'
75
}
86

9-
sourceCompatibility = JavaVersion.VERSION_17
10-
targetCompatibility = JavaVersion.VERSION_17
11-
12-
archivesBaseName = project.archives_base_name
137
version = project.mod_version
148
group = project.maven_group
159

10+
base {
11+
archivesName = project.archives_base_name
12+
}
13+
14+
loom {
15+
splitEnvironmentSourceSets()
16+
17+
mods {
18+
redstonetools {
19+
sourceSet sourceSets.main
20+
sourceSet sourceSets.client
21+
}
22+
}
23+
}
24+
1625
repositories {
1726
// Add repositories to retrieve artifacts from in here.
1827
// You should only use this when depending on other mods because
1928
// Loom adds the essential maven repositories to download Minecraft and libraries from automatically.
2029
// See https://docs.gradle.org/current/userguide/declaring_repositories.html
2130
// for more information about repositories.
31+
32+
maven { url "https://maven.shedaniel.me/" }
33+
maven { url "https://maven.terraformersmc.com/releases/" }
34+
maven { url 'https://masa.dy.fi/maven' }
35+
exclusiveContent {
36+
forRepository {
37+
maven {
38+
name = "Modrinth"
39+
url = "https://api.modrinth.com/maven"
40+
}
41+
}
42+
filter {
43+
includeGroup "maven.modrinth"
44+
}
45+
}
2246
maven {
23-
name = "WorldEdit Maven"
24-
url = "https://maven.enginehub.org/repo/"
25-
}
47+
name = "WorldEdit Maven"
48+
url = "https://maven.enginehub.org/repo/"
49+
}
2650
maven {
2751
name = "JitPack"
2852
url = "https://jitpack.io"
2953
}
3054
}
3155

3256
dependencies {
33-
// Doctor (dependency-injection)
34-
include implementation("rip.hippo:Doctor:1.0.1")
3557
include implementation("javax.inject:javax.inject:1")
3658

3759
// Json
3860
include implementation("javax.json:javax.json-api:1.1.4")
39-
include "org.glassfish:javax.json:1.1.4"
61+
include implementation("org.glassfish:javax.json:1.1.4")
4062

4163
// AutoService
4264
annotationProcessor implementation("com.google.auto.service:auto-service:1.1.0")
@@ -50,47 +72,62 @@ dependencies {
5072
modImplementation("net.fabricmc.fabric-api:fabric-api:${project.fabric_version}")
5173

5274
// Worldedit API
53-
modImplementation("com.sk89q.worldedit:worldedit-fabric-mc1.18.2:7.2.10")
75+
modImplementation("com.sk89q.worldedit:worldedit-fabric-mc${project.worldedit_version}")
76+
// MaLiLib
77+
modApi "maven.modrinth:malilib:${project.malilib_version}"
5478
}
5579

5680
processResources {
5781
inputs.property "version", project.version
82+
inputs.property "minecraft_version", project.minecraft_version
83+
inputs.property "minecraft_version_out", project.minecraft_version_out
84+
inputs.property "malilib_version", project.minecraft_version_out
85+
inputs.property "loader_version", project.loader_version
86+
filteringCharset "UTF-8"
5887

5988
filesMatching("fabric.mod.json") {
60-
expand "version": project.version
89+
expand "version": project.version,
90+
"minecraft_version": project.minecraft_version,
91+
"minecraft_version_out": project.minecraft_version_out,
92+
"malilib_version": project.minecraft_version_out,
93+
"loader_version": project.loader_version
6194
}
6295
}
6396

64-
java {
65-
withSourcesJar()
66-
withJavadocJar()
67-
68-
toolchain {
69-
languageVersion = JavaLanguageVersion.of(17)
97+
def targetJavaVersion = 21
98+
tasks.withType(JavaCompile).configureEach {
99+
// ensure that the encoding is set to UTF-8, no matter what the system default is
100+
// this fixes some edge cases with special characters not displaying correctly
101+
// see http://yodaconditions.net/blog/fix-for-java-file-encoding-problems-with-gradle.html
102+
// If Javadoc is generated, this must be specified in that task too.
103+
it.options.encoding = "UTF-8"
104+
if (targetJavaVersion >= 10 || JavaVersion.current().isJava10Compatible()) {
105+
it.options.release.set(targetJavaVersion)
70106
}
71107
}
72108

73-
shadowJar {
74-
archiveClassifier.set("unmapped")
75-
76-
configurations = [project.configurations.shadow]
77-
78-
from("LICENSE")
79-
}
80-
81-
remapJar {
82-
inputFile = shadowJar.archiveFile
109+
java {
110+
def javaVersion = JavaVersion.toVersion(targetJavaVersion)
111+
if (JavaVersion.current() < javaVersion) {
112+
toolchain.languageVersion = JavaLanguageVersion.of(targetJavaVersion)
113+
}
114+
// Loom will automatically attach sourcesJar to a RemapSourcesJar task and to the "build" task
115+
// if it is present.
116+
// If you remove this line, sources will not be generated.
117+
withSourcesJar()
83118
}
84119

85-
tasks.withType(JavaCompile).configureEach {
86-
// Minecraft 1.18 (1.18-pre2) upwards uses Java 17.
87-
it.options.release.set(17)
120+
jar {
121+
from("LICENSE") {
122+
rename { "${it}_${project.archivesBaseName}" }
123+
}
88124
}
89125

90126
// configure the maven publication
91127
publishing {
92128
publications {
93-
mavenJava(MavenPublication) {
129+
create("mavenJava", MavenPublication) {
130+
artifactId = project.archives_base_name
94131
from components.java
95132
}
96133
}

gradle.properties

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
# Done to increase the memory available to gradle.
2-
org.gradle.jvmargs=-Xmx4G
2+
org.gradle.jvmargs=-Xmx8G
33
org.gradle.parallel=true
44

5-
# Fabric Properties
6-
# check these on https://fabricmc.net/develop
7-
minecraft_version=1.18.2
8-
yarn_mappings=1.18.2+build.4
9-
loader_version=0.14.6
5+
maven_group = tools.redstone
6+
archives_base_name = redstonetools
107

11-
# Mod Properties
12-
mod_version = 1.18.2-2.0.0
13-
maven_group = tools.redstone
14-
archives_base_name = redstonetools
8+
loader_version=0.16.10
9+
mod_version = 3.0.0
1510

16-
# Dependencies
17-
fabric_version=0.53.0+1.18.2
11+
minecraft_version=1.21.8
12+
minecraft_version_out=1.21.8
13+
yarn_mappings=1.21.8+build.1
14+
15+
fabric_version=0.130.0+1.21.8
16+
malilib_version=0.25.4
17+
worldedit_version=1.21.7:7.3.15
18+
#minecraft_version=1.21.4
19+
#minecraft_version_out=1.21.4
20+
#yarn_mappings=1.21.4+build.8
21+
#
22+
#fabric_version=0.119.3+1.21.4
23+
#malilib_version=0.23.1
24+
#worldedit_version=1.21.4:7.3.10
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-bin.zip
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package tools.redstone.redstonetools;
2+
3+
import tools.redstone.redstonetools.features.commands.BaseConvertFeature;
4+
import tools.redstone.redstonetools.features.commands.EditMacroFeature;
5+
import tools.redstone.redstonetools.features.commands.MacroFeature;
6+
import tools.redstone.redstonetools.features.commands.ReachFeature;
7+
import tools.redstone.redstonetools.features.toggleable.*;
8+
9+
public class ClientCommands {
10+
public static void registerCommands() {
11+
BaseConvertFeature.registerCommand();
12+
EditMacroFeature.registerCommand();
13+
MacroFeature.registerCommand();
14+
ReachFeature.registerCommand();
15+
AirPlaceFeature.registerCommand();
16+
AutoRotateFeature.registerCommand();
17+
ClickContainerFeature.registerCommand();
18+
BigDustFeature.registerCommand();
19+
AutoDustClient.registerHandler();
20+
AutoRotateClient.registerHandler();
21+
ClickContainerClient.registerHandler();
22+
}
23+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package tools.redstone.redstonetools;
2+
3+
import fi.dy.masa.malilib.event.InitializationHandler;
4+
import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientLifecycleEvents;
5+
import tools.redstone.redstonetools.malilib.InitHandler;
6+
import tools.redstone.redstonetools.packets.RedstoneToolsClientPackets;
7+
import tools.redstone.redstonetools.utils.ClientFeatureUtils;
8+
9+
public class Init {
10+
public static void init() {
11+
ClientLifecycleEvents.CLIENT_STOPPING.register(t -> ClientFeatureUtils.saveToggles());
12+
ClientLifecycleEvents.CLIENT_STARTED.register(t -> ClientFeatureUtils.readToggles());
13+
14+
RedstoneToolsClientPackets.registerPackets();
15+
ClientCommands.registerCommands();
16+
Commands.registerCommands();
17+
18+
InitializationHandler.getInstance().registerInitializationHandler(new InitHandler());
19+
}
20+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package tools.redstone.redstonetools;
2+
3+
import net.fabricmc.api.ClientModInitializer;
4+
import net.fabricmc.loader.api.FabricLoader;
5+
import org.lwjgl.util.tinyfd.TinyFileDialogs;
6+
7+
import static tools.redstone.redstonetools.RedstoneTools.LOGGER;
8+
9+
public class RedstoneToolsClient implements ClientModInitializer {
10+
11+
@Override
12+
public void onInitializeClient() {
13+
LOGGER.info("Initializing Redstone Tools");
14+
// check if malilib present, if not open an error window and throw
15+
if (!FabricLoader.getInstance().isModLoaded("malilib")) {
16+
TinyFileDialogs.tinyfd_messageBox(
17+
"Error",
18+
"MaLiLib not present!\nPlease install MaLiLib if you want to use redstonetools",
19+
"ok",
20+
"error",
21+
false
22+
);
23+
throw new IllegalStateException("MaLiLib not present");
24+
}
25+
Init.init();
26+
}
27+
}
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
package tools.redstone.redstonetools.features.commands;
2+
3+
import com.mojang.brigadier.arguments.IntegerArgumentType;
4+
import com.mojang.brigadier.arguments.StringArgumentType;
5+
import com.mojang.brigadier.context.CommandContext;
6+
import com.mojang.brigadier.exceptions.SimpleCommandExceptionType;
7+
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
8+
import net.fabricmc.fabric.api.client.command.v2.FabricClientCommandSource;
9+
import net.minecraft.text.Text;
10+
import tools.redstone.redstonetools.features.AbstractFeature;
11+
import tools.redstone.redstonetools.utils.ClientFeatureUtils;
12+
13+
import java.math.BigInteger;
14+
15+
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback.EVENT;
16+
17+
public class BaseConvertFeature extends AbstractFeature {
18+
private static final SimpleCommandExceptionType INVALID_NUMBER =
19+
new SimpleCommandExceptionType(Text.literal("Invalid number"));
20+
21+
public static void registerCommand() {
22+
EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("base")
23+
.then(ClientCommandManager.argument("inputNum", StringArgumentType.word())
24+
.then(ClientCommandManager.argument("toBase", IntegerArgumentType.integer(2, 16))
25+
.executes(context -> ClientFeatureUtils.getFeature(BaseConvertFeature.class).execute(context))))));
26+
}
27+
28+
protected int execute(CommandContext<FabricClientCommandSource> context)
29+
throws com.mojang.brigadier.exceptions.CommandSyntaxException {
30+
String number = StringArgumentType.getString(context, "inputNum");
31+
int toBase = IntegerArgumentType.getInteger(context, "toBase");
32+
33+
int base = 10;
34+
number = number.toLowerCase();
35+
String prefix = "";
36+
if (number.startsWith("0x")) {
37+
prefix = "0x";
38+
base = 16;
39+
} else if (number.startsWith("0o")) {
40+
prefix = "0o";
41+
base = 8;
42+
} else if (number.startsWith("0b")) {
43+
prefix = "0b";
44+
base = 2;
45+
}
46+
if (base != 10) number = number.substring(2);
47+
BigInteger integer;
48+
try {
49+
integer = new BigInteger(number, base);
50+
} catch (NumberFormatException e) {
51+
throw INVALID_NUMBER.create();
52+
}
53+
String output = integer.toString(toBase).toLowerCase();
54+
55+
String toPrefix = "";
56+
if (toBase == 16) {
57+
toPrefix = "0x";
58+
} else if (toBase == 8) {
59+
toPrefix = "0o";
60+
} else if (toBase == 2) {
61+
toPrefix = "0b";
62+
}
63+
if (!toPrefix.isEmpty()) {
64+
context.getSource().sendFeedback(Text.literal("%s = %s".formatted(prefix + number, toPrefix + output)));
65+
} else {
66+
context.getSource().sendFeedback(Text.literal("%s = %s in base %s".formatted(prefix + number, output, toBase)));
67+
}
68+
return 1;
69+
}
70+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package tools.redstone.redstonetools.features.commands;
2+
3+
import net.fabricmc.fabric.api.client.command.v2.ClientCommandManager;
4+
import net.minecraft.client.MinecraftClient;
5+
import tools.redstone.redstonetools.malilib.GuiMacroManager;
6+
7+
import static net.fabricmc.fabric.api.client.command.v2.ClientCommandRegistrationCallback.EVENT;
8+
9+
public class EditMacroFeature {
10+
public static void registerCommand() {
11+
EVENT.register((dispatcher, registryAccess) -> dispatcher.register(ClientCommandManager.literal("edit-macros")
12+
.executes(commandContext -> {
13+
MinecraftClient.getInstance().send(() -> MinecraftClient.getInstance().setScreen(new GuiMacroManager()));
14+
return 1;
15+
})));
16+
}
17+
}

0 commit comments

Comments
 (0)