Skip to content

Commit

Permalink
Merge branch '1.20.1/dev' into 1.20.1/ponders
Browse files Browse the repository at this point in the history
# Conflicts:
#	build.gradle.kts
  • Loading branch information
IThundxr committed Oct 5, 2024
2 parents aaf0fe6 + ef9db52 commit 5940440
Show file tree
Hide file tree
Showing 21 changed files with 147 additions and 99 deletions.
48 changes: 30 additions & 18 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,22 @@ plugins {
java
`maven-publish`
id("architectury-plugin") version "3.4.+"
id("dev.architectury.loom") version "1.6.+" apply false
id("dev.architectury.loom") version "1.7.+" apply false
id("me.modmuss50.mod-publish-plugin") version "0.3.4" apply false // https://github.com/modmuss50/mod-publish-plugin
id("com.github.johnrengelman.shadow") version "8.1.1" apply false
id("dev.ithundxr.silk") version "0.11.+" // https://github.com/IThundxr/silk
id("net.kyori.blossom") version "2.1.0" apply false // https://github.com/KyoriPowered/blossom
id("org.jetbrains.gradle.plugin.idea-ext") version "1.1.8" // https://github.com/JetBrains/gradle-idea-ext-plugin
}

println("Numismatics v${"mod_version"()}")

val isRelease = System.getenv("RELEASE_BUILD")?.toBoolean() ?: false
val buildNumber = System.getenv("GITHUB_RUN_NUMBER")?.toInt()
val gitHash = "\"${calculateGitHash() + (if (hasUnstaged()) "-modified" else "")}\""

extra["gitHash"] = gitHash

architectury {
minecraft = "minecraft_version"()
}
Expand Down Expand Up @@ -65,6 +71,7 @@ allprojects {

subprojects {
apply(plugin = "dev.architectury.loom")
apply(plugin = "net.kyori.blossom")

val capitalizedName = project.name.capitalized()

Expand All @@ -85,7 +92,6 @@ subprojects {
maven("https://maven.shedaniel.me/") // Cloth Config, REI
maven("https://maven.blamejared.com/") // JEI, Carry On
maven("https://maven.parchmentmc.org") // Parchment mappings
maven("https://maven.quiltmc.org/repository/release") // Quilt Mappings
maven("https://maven.ithundxr.dev/releases") // Steam 'n' Rails Releases
maven("https://maven.ithundxr.dev/snapshots") // Steam 'n' Rails Snapshots
maven("https://maven.tterrag.com/") { // Flywheel
Expand All @@ -99,9 +105,7 @@ subprojects {
@Suppress("UnstableApiUsage")
dependencies {
"minecraft"("com.mojang:minecraft:${"minecraft_version"()}")
// layered mappings - Mojmap names, parchment and QM docs and parameters
"mappings"(loom.layered {
mappings("org.quiltmc:quilt-mappings:${"minecraft_version"()}+build.${"qm_version"()}:intermediary-v2")
officialMojangMappings { nameSyntheticMembers = false }
parchment("org.parchmentmc.data:parchment-${"minecraft_version"()}:${"parchment_version"()}@zip")
})
Expand Down Expand Up @@ -212,24 +216,32 @@ subprojects {
}

fun calculateGitHash(): String {
val stdout = ByteArrayOutputStream()
exec {
commandLine("git", "rev-parse", "HEAD")
standardOutput = stdout
try {
val stdout = ByteArrayOutputStream()
exec {
commandLine("git", "rev-parse", "HEAD")
standardOutput = stdout
}
return stdout.toString().trim()
} catch(ignored: Throwable) {
return "unknown"
}
return stdout.toString().trim()
}

fun hasUnstaged(): Boolean {
val stdout = ByteArrayOutputStream()
exec {
commandLine("git", "status", "--porcelain")
standardOutput = stdout
}
val result = stdout.toString().replace(Regex("M gradlew(\\.bat)?"), "").trimEnd()
if (result.isNotEmpty())
println("Found stageable results:\n${result}\n")
return result.isNotEmpty()
try {
val stdout = ByteArrayOutputStream()
exec {
commandLine("git", "status", "--porcelain")
standardOutput = stdout
}
val result = stdout.toString().replace(Regex("M gradlew(\\.bat)?"), "").trimEnd()
if (result.isNotEmpty())
println("Found stageable results:\n${result}\n")
return result.isNotEmpty()
} catch(ignored: Throwable) {
return false
}
}

tasks.create("numismaticsPublish") {
Expand Down
4 changes: 4 additions & 0 deletions common/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,10 @@ sourceSets.main {
srcDir("src/generated/resources")
exclude("src/generated/resources/.cache")
}
blossom.javaSources {
property("version", "mod_version"())
property("gitCommit", rootProject.extra["gitHash"].toString())
}
}

operator fun String.invoke(): String {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package dev.ithundxr.createnumismatics;

public class NumismaticsBuildInfo {
public static final String VERSION = "{{ version }}";
public static final String GIT_COMMIT = {{ gitCommit | default("unknown") }};
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import dev.ithundxr.createnumismatics.registry.NumismaticsCommands;
import dev.ithundxr.createnumismatics.registry.NumismaticsCreativeModeTabs.Tabs;
import dev.ithundxr.createnumismatics.registry.NumismaticsPackets;
import dev.ithundxr.createnumismatics.util.NumismaticsUpdateCheck;
import dev.ithundxr.createnumismatics.util.Utils;
import net.minecraft.SharedConstants;
import net.minecraft.Util;
Expand All @@ -52,7 +53,6 @@
public class Numismatics {
public static final String MOD_ID = "numismatics";
public static final String NAME = "Create: Numismatics";
public static final String VERSION = findVersion();
public static final Logger LOGGER = LoggerFactory.getLogger(NAME);
public static final GlobalBankManager BANK = new GlobalBankManager();

Expand All @@ -65,8 +65,9 @@ public class Numismatics {
}

public static void init() {
LOGGER.info("{} {} initializing! Create version: {} on platform: {}", NAME, VERSION, Create.VERSION, Loader.getCurrent());

LOGGER.info("{} v{} initializing! Commit hash: {} Create version: {} on platform: {}", NAME, NumismaticsBuildInfo.VERSION, NumismaticsBuildInfo.GIT_COMMIT, Create.VERSION, Loader.getFormatted());
NumismaticsUpdateCheck.execute();

ModSetup.register();
finalizeRegistrate();

Expand All @@ -89,11 +90,6 @@ public static CreateRegistrate registrate() {
return REGISTRATE;
}

@ExpectPlatform
public static String findVersion() {
throw new AssertionError();
}

@ExpectPlatform
public static void finalizeRegistrate() {
throw new AssertionError();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,10 @@ public void assertForDataGen() {
assert (!requiredForDataGen || isLoaded);
}

public static boolean isModLoaded(String id) {
return isModLoaded(id, null);
}

@ExpectPlatform
public static boolean isModLoaded(String id, @Nullable String fabricId) {
throw new AssertionError();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,20 +90,4 @@ public static void onPlayerJoin(ServerPlayer player) {
}
}
}

@MultiLoaderEvent
public static InteractionResult onUseBlock(Player player, Level level, InteractionHand hand, BlockHitResult hitResult) {
BlockPos pos = hitResult.getBlockPos();
BlockState state = level.getBlockState(pos);

boolean offhandFix = !level.isClientSide()
&& !player.getOffhandItem().isEmpty()
&& !(player.getOffhandItem().getItem() instanceof BlockItem) &&
hand.equals(InteractionHand.MAIN_HAND);
if ((offhandFix || player.isShiftKeyDown()) && state.getBlock() instanceof VendorBlock vb) {
return vb.use(state, level, pos, player, hand, hitResult);
}

return InteractionResult.PASS;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,15 @@
package dev.ithundxr.createnumismatics.multiloader;

import dev.architectury.injectables.annotations.ExpectPlatform;
import dev.ithundxr.createnumismatics.compat.Mods;
import dev.ithundxr.createnumismatics.util.TextUtils;
import org.jetbrains.annotations.ApiStatus.Internal;

import java.util.Locale;
import java.util.function.Supplier;

public enum Loader {
FORGE, FABRIC;
FORGE, NEOFORGE, FABRIC, QUILT;

public static final Loader CURRENT = getCurrent();

Expand All @@ -37,9 +40,21 @@ public void runIfCurrent(Supplier<Runnable> run) {
run.get().run();
}

public static String getFormatted() {
return TextUtils.titleCaseConversion(getActual().name().toLowerCase(Locale.ROOT));
}

// Returns the actual loader, ex: quilt on quilt instead of fabric for quilt
public static Loader getActual() {
//noinspection ConstantValue
if (FABRIC.isCurrent() && Mods.isModLoaded("quilt_loader"))
return QUILT;
return CURRENT;
}

@Internal
@ExpectPlatform
public static Loader getCurrent() {
private static Loader getCurrent() {
throw new AssertionError();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,11 +32,6 @@
public class NumismaticsBlockEntities {
private static final CreateRegistrate REGISTRATE = Numismatics.registrate();

/* public static final BlockEntityEntry<SemaphoreBlockEntity> SEMAPHORE = REGISTRATE.blockEntity("semaphore", SemaphoreBlockEntity::new)
.validBlocks(CRBlocks.SEMAPHORE)
.renderer(() -> SemaphoreRenderer::new)
.register();*/

public static final BlockEntityEntry<AndesiteDepositorBlockEntity> ANDESITE_DEPOSITOR = REGISTRATE.blockEntity("andesite_depositor", AndesiteDepositorBlockEntity::new)
.validBlocks(NumismaticsBlocks.ANDESITE_DEPOSITOR)
.register();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import dev.ithundxr.createnumismatics.registry.packets.sub_account.*;

public class NumismaticsPackets {
public static final PacketSet PACKETS = PacketSet.builder(Numismatics.MOD_ID, 5) // increment version on changes
public static final PacketSet PACKETS = PacketSet.builder(Numismatics.MOD_ID, 6) // increment version on changes

.c2s(SliderStylePriceConfigurationPacket.class, SliderStylePriceConfigurationPacket::new)
.c2s(BlazeBankerEditPacket.class, BlazeBankerEditPacket::new)
Expand All @@ -44,13 +44,13 @@ public class NumismaticsPackets {
.c2s(SalepointPurchasePacket.class, SalepointPurchasePacket::new)
.c2s(SalepointFluidFilterPacket.class, SalepointFluidFilterPacket::new)
.c2s(SalepointEnergyFilterPacket.class, SalepointEnergyFilterPacket::new)

.s2c(BankAccountLabelPacket.class, BankAccountLabelPacket::new)
.s2c(VarIntContainerSetDataPacket.class, VarIntContainerSetDataPacket::new)
.s2c(BigStackSizeContainerSetSlotPacket.class, BigStackSizeContainerSetSlotPacket::new)
.s2c(BigStackSizeContainerSetContentPacket.class, BigStackSizeContainerSetContentPacket::new)
.s2c(UpdateSubAccountsPacket.class, UpdateSubAccountsPacket::new)
.s2c(SalepointCardPacket.class, SalepointCardPacket::new)
.s2c(SetAdminModePacket.class, SetAdminModePacket::new)

.build();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
/*
* Numismatics
* Copyright (c) 2024 The Railways Team
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/

package dev.ithundxr.createnumismatics.util;

import dev.ithundxr.createnumismatics.Numismatics;
import dev.ithundxr.createnumismatics.NumismaticsBuildInfo;
import dev.ithundxr.createnumismatics.multiloader.Loader;
import net.minecraft.SharedConstants;
import net.minecraft.Util;

import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;

public class NumismaticsUpdateCheck {
public static void execute() {
// TODO switch to nonCriticalIoPool() in 1.21.1
Util.ioPool().submit(() -> {
String uri = String.format(
"https://update.api.ithundxr.dev/update-check?mod_id=%s&mod_version=%s&mc_version=%s&loader=%s&dev=%s",
Numismatics.MOD_ID,
NumismaticsBuildInfo.VERSION,
SharedConstants.getCurrentVersion().getName(),
Loader.getActual(),
Utils.isDevEnv()
);

HttpRequest request = HttpRequest.newBuilder()
.GET()
.uri(URI.create(uri))
.build();

try {
HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10L))
.followRedirects(HttpClient.Redirect.ALWAYS)
.build()
.send(request, HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8));
} catch (IOException | InterruptedException ignored) {}
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,5 @@ public static void init() {
ServerWorldEvents.LOAD.register((server, level) -> CommonEvents.onLoadWorld(level));
PlayerBlockBreakEvents.BEFORE.register((level, player, pos, state, entity) -> CommonEvents.onBlockBreak(level, pos, state, player));
ServerPlayConnectionEvents.JOIN.register((connection, packetSender, server) -> CommonEvents.onPlayerJoin(connection.player));
UseBlockCallback.EVENT.register((player, world, hand, hitResult) -> CommonEvents.onUseBlock(player, world, hand, hitResult));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,6 @@ public void onInitialize() {
ArgumentTypeRegistry.registerArgumentType(new ResourceLocation(Numismatics.MOD_ID, "enum"), EnumArgument.class, new EnumArgument.Info());
}

public static String findVersion() {
return FabricLoader.getInstance()
.getModContainer(Numismatics.MOD_ID)
.orElseThrow()
.getMetadata()
.getVersion()
.getFriendlyString();
}

public static void finalizeRegistrate() {
Numismatics.registrate().register();
Numismatics.postRegistrationInit();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
package dev.ithundxr.createnumismatics.multiloader.fabric;

import dev.ithundxr.createnumismatics.multiloader.Loader;
import net.fabricmc.loader.api.FabricLoader;

public class LoaderImpl {
public static Loader getCurrent() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,4 @@ public static void onPlayerJoin(PlayerEvent.PlayerLoggedInEvent event) {
if (event.getEntity() instanceof ServerPlayer serverPlayer)
CommonEvents.onPlayerJoin(serverPlayer);
}

@SubscribeEvent
public static void onRightClickBlock(PlayerInteractEvent.RightClickBlock event) {
CommonEvents.onUseBlock(event.getEntity(), event.getLevel(), event.getHand(), event.getHitVec());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,22 +72,6 @@ public static void onCommonSetup(final FMLCommonSetupEvent event) {
event.enqueueWork(Numismatics::postRegistrationInit);
}

public static String findVersion() {
String versionString = "UNKNOWN";

List<IModInfo> infoList = ModList.get().getModFileById(Numismatics.MOD_ID).getMods();
if (infoList.size() > 1) {
Numismatics.LOGGER.error("Multiple mods for MOD_ID: " + Numismatics.MOD_ID);
}
for (IModInfo info : infoList) {
if (info.getModId().equals(Numismatics.MOD_ID)) {
versionString = MavenVersionStringHelper.artifactVersionToString(info.getVersion());
break;
}
}
return versionString;
}

public static void finalizeRegistrate() {
Numismatics.registrate().registerEventListeners(eventBus);
}
Expand Down
2 changes: 0 additions & 2 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,6 @@ maven_group = dev.ithundxr.createnumismatics
minecraft_version = 1.20.1

# Mappings
# https://lambdaurora.dev/tools/import_quilt.html
qm_version = 23
# https://parchmentmc.org/docs/getting-started
parchment_version = 2023.07.16

Expand Down
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
Loading

0 comments on commit 5940440

Please sign in to comment.