diff --git a/build.gradle.kts b/build.gradle.kts index 2b5e75fe..9bf09f2f 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,10 +6,10 @@ import com.modrinth.minotaur.request.Dependency.DependencyType import com.modrinth.minotaur.request.VersionType plugins { - kotlin("jvm") version "1.6.0" - id("fabric-loom") version "0.10.+" + kotlin("jvm") version "1.6.10" + id("fabric-loom") version "0.11.+" id("maven-publish") - id("io.gitlab.arturbosch.detekt") version "1.18.1" + id("io.gitlab.arturbosch.detekt") version "1.19.0" id("com.github.jakemarsden.git-hooks") version "0.0.2" id("com.github.johnrengelman.shadow") version "7.1.0" id("com.modrinth.minotaur") version "1.2.1" @@ -36,6 +36,8 @@ sourceSets { } loom { + serverOnlyMinecraftJar() + runs { create("testmodClient") { client() diff --git a/gradle.properties b/gradle.properties index 3b8d2d1a..2a36a69a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,7 +2,7 @@ kotlin.code.style=official org.gradle.jvmargs=-Xmx1G # Mod Properties -modVersion = 1.2.3 +modVersion = 1.2.4 mavenGroup = com.github.quiltservertools modId = ledger modName = Ledger diff --git a/libs.versions.toml b/libs.versions.toml index 6bf2b77e..b90a6f94 100644 --- a/libs.versions.toml +++ b/libs.versions.toml @@ -1,19 +1,19 @@ [versions] -minecraft = "1.18.1" -yarn-mappings = "1.18.1+build.17" -fabric-loader = "0.12.12" +minecraft = "1.18.2-rc1" +yarn-mappings = "1.18.2-rc1+build.2" +fabric-loader = "0.13.3" -fabric-api = "0.43.1+1.18" +fabric-api = "0.47.8+1.18.2" # Kotlin -kotlin = "1.6.0" +kotlin = "1.6.10" # Also modrinth version in gradle.properties -fabric-kotlin = "1.7.0+kotlin.1.6.0" +fabric-kotlin = "1.7.1+kotlin.1.6.10" fabric-permissions = "0.1-SNAPSHOT" -translations = "1.4.8+1.18-pre1" +translations = "1.4.9+1.18.2-rc1" -exposed = "0.36.2" +exposed = "0.37.3" sqlite-jdbc = "3.36.0.3" konf = "1.1.2" @@ -29,7 +29,7 @@ fabric-api = { module = "net.fabricmc.fabric-api:fabric-api", version.ref = "fab fabric-kotlin = { module = "net.fabricmc:fabric-language-kotlin", version.ref = "fabric-kotlin" } fabric-permissions = { module = "me.lucko:fabric-permissions-api", version.ref = "fabric-permissions" } -translations = { module = "fr.catcore:server-translations-api", version.ref = "translations" } +translations = { module = "fr.catcore:api", version.ref = "translations" } exposed-core = { module = "org.jetbrains.exposed:exposed-core", version.ref = "exposed" } exposed-dao = { module = "org.jetbrains.exposed:exposed-dao", version.ref = "exposed" } diff --git a/src/main/java/com/github/quiltservertools/ledger/mixin/FallingBlockEntityMixin.java b/src/main/java/com/github/quiltservertools/ledger/mixin/FallingBlockEntityMixin.java index 39f35fb7..7fe7555e 100644 --- a/src/main/java/com/github/quiltservertools/ledger/mixin/FallingBlockEntityMixin.java +++ b/src/main/java/com/github/quiltservertools/ledger/mixin/FallingBlockEntityMixin.java @@ -3,7 +3,6 @@ import com.github.quiltservertools.ledger.callbacks.BlockBreakCallback; import com.github.quiltservertools.ledger.callbacks.BlockPlaceCallback; import com.github.quiltservertools.ledger.utility.Sources; -import net.minecraft.block.Block; import net.minecraft.block.BlockState; import net.minecraft.entity.FallingBlockEntity; import net.minecraft.util.math.BlockPos; @@ -13,8 +12,7 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.ModifyArgs; -import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; -import org.spongepowered.asm.mixin.injection.callback.LocalCapture; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import org.spongepowered.asm.mixin.injection.invoke.arg.Args; @Mixin(FallingBlockEntity.class) @@ -23,13 +21,12 @@ public abstract class FallingBlockEntityMixin { private BlockState block; @Inject( - method = "tick", + method = "spawnFromBlock", at = @At( value = "INVOKE", - target = "Lnet/minecraft/world/World;removeBlock(Lnet/minecraft/util/math/BlockPos;Z)Z")) - private void ledgerBlockFallInvoker(CallbackInfo ci) { - FallingBlockEntity entity = (FallingBlockEntity) (Object) this; - BlockBreakCallback.EVENT.invoker().breakBlock(entity.world, entity.getBlockPos(), this.block, this.block.hasBlockEntity() ? entity.world.getBlockEntity(entity.getBlockPos()) : null, Sources.GRAVITY); + target = "Lnet/minecraft/world/World;setBlockState(Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/block/BlockState;I)Z")) + private static void ledgerBlockFallInvoker(World world, BlockPos pos, BlockState state, CallbackInfoReturnable cir) { + BlockBreakCallback.EVENT.invoker().breakBlock(world, pos, state, state.hasBlockEntity() ? world.getBlockEntity(pos) : null, Sources.GRAVITY); } @ModifyArgs( diff --git a/src/main/kotlin/com/github/quiltservertools/ledger/commands/parameters/ObjectParameter.kt b/src/main/kotlin/com/github/quiltservertools/ledger/commands/parameters/ObjectParameter.kt index 7143f8b3..c7c73899 100644 --- a/src/main/kotlin/com/github/quiltservertools/ledger/commands/parameters/ObjectParameter.kt +++ b/src/main/kotlin/com/github/quiltservertools/ledger/commands/parameters/ObjectParameter.kt @@ -7,9 +7,7 @@ import com.mojang.brigadier.suggestion.SuggestionsBuilder import net.minecraft.command.CommandSource import net.minecraft.command.argument.IdentifierArgumentType import net.minecraft.server.command.ServerCommandSource -import net.minecraft.tag.BlockTags -import net.minecraft.tag.EntityTypeTags -import net.minecraft.tag.ItemTags +import net.minecraft.tag.TagKey import net.minecraft.util.Identifier import net.minecraft.util.registry.Registry import java.util.concurrent.CompletableFuture @@ -27,14 +25,14 @@ class ObjectParameter : SimpleParameter>() { stringReader.skip() val tagId = IdentifierArgumentType.identifier().parse(stringReader) - val blockTag = BlockTags.getTagGroup().getTag(tagId) - if (blockTag != null) return blockTag.values().map { Registry.BLOCK.getId(it) } + val blockTag = TagKey.of(Registry.BLOCK_KEY, tagId) + if (blockTag != null) return Registry.BLOCK.iterateEntries(blockTag).map { Registry.BLOCK.getId(it.value()) } - val itemTag = ItemTags.getTagGroup().getTag(tagId) - if (itemTag != null) return itemTag.values().map { Registry.ITEM.getId(it) } + val itemTag = TagKey.of(Registry.ITEM_KEY, tagId) + if (itemTag != null) Registry.ITEM.iterateEntries(itemTag).map { Registry.ITEM.getId(it.value()) } - val entityTag = EntityTypeTags.getTagGroup().getTag(tagId) - if (entityTag != null) return entityTag.values().map { Registry.ENTITY_TYPE.getId(it) } + val entityTag = TagKey.of(Registry.ENTITY_TYPE_KEY, tagId) + if (entityTag != null) return Registry.ENTITY_TYPE.iterateEntries(entityTag).map { Registry.ENTITY_TYPE.getId(it.value()) } } return listOf(IdentifierArgumentType.identifier().parse(stringReader)) @@ -47,9 +45,9 @@ class ObjectParameter : SimpleParameter>() { return if (builder.remaining.startsWith("#")) { CommandSource.suggestIdentifiers( mutableListOf().apply { - addAll(BlockTags.getTagGroup().tagIds) - addAll(ItemTags.getTagGroup().tagIds) - addAll(EntityTypeTags.getTagGroup().tagIds) + addAll(Registry.BLOCK.streamTags().map { it.id }.toList()) + addAll(Registry.ITEM.streamTags().map { it.id }.toList()) + addAll(Registry.ENTITY_TYPE.streamTags().map { it.id }.toList()) }, builder.createOffset(builder.start + 1) ) diff --git a/src/main/kotlin/com/github/quiltservertools/ledger/utility/McDispatcher.kt b/src/main/kotlin/com/github/quiltservertools/ledger/utility/McDispatcher.kt index f3d565e8..1b5c4351 100644 --- a/src/main/kotlin/com/github/quiltservertools/ledger/utility/McDispatcher.kt +++ b/src/main/kotlin/com/github/quiltservertools/ledger/utility/McDispatcher.kt @@ -1,11 +1,13 @@ package com.github.quiltservertools.ledger.utility -import kotlinx.coroutines.* -import net.minecraft.client.MinecraftClient -import net.minecraft.client.world.ClientWorld +import com.github.quiltservertools.ledger.Ledger +import kotlinx.coroutines.CoroutineDispatcher +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Job +import kotlinx.coroutines.Runnable +import kotlinx.coroutines.launch import net.minecraft.server.world.ServerWorld import net.minecraft.world.World -import com.github.quiltservertools.ledger.Ledger import kotlin.coroutines.AbstractCoroutineContextElement import kotlin.coroutines.CoroutineContext @@ -26,6 +28,5 @@ fun launchMain(executor: (Runnable) -> Unit, block: suspend CoroutineScope.() -> fun World.launchMain(block: suspend CoroutineScope.() -> Unit) { when (this) { is ServerWorld -> launchMain(server::execute, block) - is ClientWorld -> launchMain(MinecraftClient.getInstance()::execute, block) } }