From cc69b22abad66755c04695fb22dc9264b89fe3b8 Mon Sep 17 00:00:00 2001 From: skippyall <> Date: Sat, 12 Apr 2025 19:08:25 +0200 Subject: [PATCH] Turn Up/Down & Grave Compat --- build.gradle | 14 ++++++++++++ gradle.properties | 2 ++ .../minions/mixins/GraveCompatMixin.java | 20 +++++++++++++++++ .../skippyall/minions/module/MoveModule.java | 22 ++++++++++++++++++- src/main/resources/minions.mixins.json | 1 + 5 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 src/main/java/io/github/skippyall/minions/mixins/GraveCompatMixin.java diff --git a/build.gradle b/build.gradle index 6a5f567..a8396df 100644 --- a/build.gradle +++ b/build.gradle @@ -17,6 +17,18 @@ repositories { // See https://docs.gradle.org/current/userguide/declaring_repositories.html // for more information about repositories. maven { url 'https://maven.nucleoid.xyz' } + + exclusiveContent { + forRepository { + maven { + name = "Modrinth" + url = "https://api.modrinth.com/maven" + } + } + filter { + includeGroup "maven.modrinth" + } + } } dependencies { @@ -30,6 +42,8 @@ dependencies { modImplementation "eu.pb4:polymer-core:${project.polymer_version}" modImplementation include("eu.pb4:sgui:${project.sgui_version}") modImplementation include("xyz.nucleoid:server-translations-api:${project.server_translations_version}") + + modCompileOnly "maven.modrinth:universal-graves:${project.universal_graves_version}" } processResources { diff --git a/gradle.properties b/gradle.properties index 8fa819a..b72282b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,3 +19,5 @@ org.gradle.jvmargs=-Xmx1G polymer_version=0.10.0+1.21.2 sgui_version=1.7.1+1.21.2 server_translations_version=2.4.0+1.21.2-rc1 + + universal_graves_version=3.5.0+1.21.2 diff --git a/src/main/java/io/github/skippyall/minions/mixins/GraveCompatMixin.java b/src/main/java/io/github/skippyall/minions/mixins/GraveCompatMixin.java new file mode 100644 index 0000000..02a9d7f --- /dev/null +++ b/src/main/java/io/github/skippyall/minions/mixins/GraveCompatMixin.java @@ -0,0 +1,20 @@ +package io.github.skippyall.minions.mixins; + +import com.llamalad7.mixinextras.sugar.Local; +import eu.pb4.graves.grave.Grave; +import io.github.skippyall.minions.minion.fakeplayer.MinionFakePlayer; +import net.minecraft.server.network.ServerPlayerEntity; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.ModifyArg; + +@Mixin(Grave.class) +public class GraveCompatMixin { + @ModifyArg(method = "createBlock", at = @At(value = "INVOKE", target = "Leu/pb4/graves/grave/Grave;(JLcom/mojang/authlib/GameProfile;BLnet/minecraft/util/Arm;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/Identifier;Leu/pb4/graves/grave/GraveType;JJILnet/minecraft/text/Text;Ljava/util/Collection;Ljava/util/Collection;ZI)V")) + private static boolean createGrave(boolean profile, @Local(argsOnly = true) ServerPlayerEntity player) { + if(player instanceof MinionFakePlayer) { + return false; + } + return profile; + } +} diff --git a/src/main/java/io/github/skippyall/minions/module/MoveModule.java b/src/main/java/io/github/skippyall/minions/module/MoveModule.java index b3a2d0e..4a974df 100644 --- a/src/main/java/io/github/skippyall/minions/module/MoveModule.java +++ b/src/main/java/io/github/skippyall/minions/module/MoveModule.java @@ -39,13 +39,33 @@ public class MoveModule { .thenAccept(degrees -> minion.getMinionActionPack().turn(-degrees, 0)) ); + public static final SimpleCommand TURN_UP_COMMAND = + new SimpleCommand( + Text.literal("Turn Up"), + Text.literal("Turn a specific amount of degrees up"), + Items.COMPASS, + (player, minion) -> TextInput.inputFloat(player, Text.literal("Degrees"), "90") + .thenAccept(degrees -> minion.getMinionActionPack().turn(0, -degrees)) + ); + + public static final SimpleCommand TURN_DOWN_COMMAND = + new SimpleCommand( + Text.literal("Turn Down"), + Text.literal("Turn a specific amount of degrees down"), + Items.COMPASS, + (player, minion) -> TextInput.inputFloat(player, Text.literal("Degrees"), "90") + .thenAccept(degrees -> minion.getMinionActionPack().turn(0, degrees)) + ); + public static final SimpleModuleItem MOVE_MODULE = register(Identifier.of(Minions.MOD_ID, "move_module"), List.of(), List.of( WALK_COMMAND, TURN_RIGHT_COMMAND, - TURN_LEFT_COMMAND + TURN_LEFT_COMMAND, + TURN_UP_COMMAND, + TURN_DOWN_COMMAND ), Items.IRON_BOOTS ); diff --git a/src/main/resources/minions.mixins.json b/src/main/resources/minions.mixins.json index 0246eee..a511ffc 100644 --- a/src/main/resources/minions.mixins.json +++ b/src/main/resources/minions.mixins.json @@ -7,6 +7,7 @@ "ChunkTicketManagerFixMixin", "ConnectionMixin", "EntityAccessor", + "GraveCompatMixin", "MinecraftServerMixin", "MobEntityMixin", "PlayerListEntryS2CPacket$EntryMixin",