From c5f666b95c0f4040883d40871eccfcacd2f7f3e6 Mon Sep 17 00:00:00 2001 From: gnembon Date: Fri, 26 Mar 2021 22:29:06 -0300 Subject: [PATCH] specify --- docs/scarpet/api/Entities.md | 4 ++++ src/main/java/carpet/script/value/EntityValue.java | 14 ++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/docs/scarpet/api/Entities.md b/docs/scarpet/api/Entities.md index 5e013034..20ffa81d 100644 --- a/docs/scarpet/api/Entities.md +++ b/docs/scarpet/api/Entities.md @@ -722,6 +722,10 @@ Requires a living entity as an argument. Will make the entity jump once. +### `modify(e, 'swing')` `modify(e, 'swing', 'offhand')` + +Makes the living entity swing their required limb. + ### `modify(e, 'silent', boolean)` Silences or unsilences the entity. diff --git a/src/main/java/carpet/script/value/EntityValue.java b/src/main/java/carpet/script/value/EntityValue.java index 3b90cdeb..110a5ce4 100644 --- a/src/main/java/carpet/script/value/EntityValue.java +++ b/src/main/java/carpet/script/value/EntityValue.java @@ -56,6 +56,7 @@ import net.minecraft.server.command.ServerCommandSource; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.text.LiteralText; +import net.minecraft.util.Hand; import net.minecraft.util.Identifier; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.hit.EntityHitResult; @@ -1376,6 +1377,19 @@ public class EntityValue extends Value } }); + put("swing", (e, v) -> { + if (e instanceof LivingEntity) + { + Hand hand = Hand.MAIN_HAND; + if (v != null) + { + String handString = v.getString().toLowerCase(Locale.ROOT); + if (handString.equals("offhand") || handString.equals("off_hand")) hand = Hand.OFF_HAND; + } + ((LivingEntity)e).swingHand(hand, true); + } + }); + put("silent",(e,v)-> e.setSilent(v.getBoolean())); put("gravity",(e,v)-> e.setNoGravity(!v.getBoolean()));