Skip to content

Commit

Permalink
23w41a
Browse files Browse the repository at this point in the history
  • Loading branch information
gnembon committed Oct 11, 2023
1 parent 4a88126 commit 1fe486a
Show file tree
Hide file tree
Showing 7 changed files with 17 additions and 23 deletions.
8 changes: 4 additions & 4 deletions docs/scarpet/api/Auxiliary.md
Original file line number Diff line number Diff line change
Expand Up @@ -407,14 +407,14 @@ read_file('foo', 'shared_text') => ['one', 'two', 'three', '', 'four', '', '

### `run(expr)`

Runs a vanilla command from the string result of the `expr` and returns a triple of success count,
Runs a vanilla command from the string result of the `expr` and returns a triple of 0 (unused after success count removal),
intercepted list of output messages, and error message if the command resulted in a failure.
Successful commands return `null` as their error.

<pre>
run('fill 1 1 1 10 10 10 air') -> [123, ["Successfully filled 123 blocks"], null] // 123 block were filled, this operation was successful 123 times out of a possible 1000 block volume
run('give @s stone 4') -> [1, ["Gave 4 [Stone] to gnembon"], null] // this operation was successful once
run('seed') -> [-170661413, ["Seed: [4031384495743822299]"], null]
run('fill 1 1 1 10 10 10 air') -> [0, ["Successfully filled 123 blocks"], null]
run('give @s stone 4') -> [0, ["Gave 4 [Stone] to gnembon"], null]
run('seed') -> [0, ["Seed: [4031384495743822299]"], null]
run('sed') -> [0, [], "sed<--[HERE]"] // wrong command
</pre>

Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G

# Fabric Properties
# check https://fabricmc.net/develop/
minecraft_version=23w40a
minecraft_version=23w41a
loader_version=0.14.22
jsr305_version=3.0.2
fabric_version=0.89.3+1.20.2
Expand Down
6 changes: 2 additions & 4 deletions src/main/java/carpet/mixins/Commands_customCommandsMixin.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.Redirect;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;


@Mixin(Commands.class)
public abstract class Commands_customCommandsMixin
Expand All @@ -32,14 +30,14 @@ private void onRegister(Commands.CommandSelection commandSelection, CommandBuild
}

@Inject(method = "performCommand", at = @At("HEAD"))
private void onExecuteBegin(ParseResults<CommandSourceStack> parseResults, String string, CallbackInfoReturnable<Integer> cir)
private void onExecuteBegin(ParseResults<CommandSourceStack> parseResults, String string, CallbackInfo ci)
{
if (!CarpetSettings.fillUpdates)
CarpetSettings.impendingFillSkipUpdates.set(true);
}

@Inject(method = "performCommand", at = @At("RETURN"))
private void onExecuteEnd(ParseResults<CommandSourceStack> parseResults, String string, CallbackInfoReturnable<Integer> cir)
private void onExecuteEnd(ParseResults<CommandSourceStack> parseResults, String string, CallbackInfo ci)
{
CarpetSettings.impendingFillSkipUpdates.set(false);
}
Expand Down
1 change: 0 additions & 1 deletion src/main/java/carpet/network/CarpetClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,6 @@ public static void onClientCommand(Tag t)
CarpetSettings.LOG.info("Server Response:");
CompoundTag tag = (CompoundTag) t;
CarpetSettings.LOG.info(" - id: " + tag.getString("id"));
CarpetSettings.LOG.info(" - code: " + tag.getInt("code"));
if (tag.contains("error"))
{
CarpetSettings.LOG.warn(" - error: " + tag.getString("error"));
Expand Down
4 changes: 1 addition & 3 deletions src/main/java/carpet/network/ServerNetworkHandler.java
Original file line number Diff line number Diff line change
Expand Up @@ -84,20 +84,18 @@ private static void handleClientCommand(ServerPlayer player, CompoundTag command
String id = commandData.getString("id");
List<Component> output = new ArrayList<>();
Component[] error = {null};
int resultCode = -1;
if (player.getServer() == null)
{
error[0] = Component.literal("No Server");
}
else
{
resultCode = player.getServer().getCommands().performPrefixedCommand(
player.getServer().getCommands().performPrefixedCommand(
new SnoopyCommandSource(player, error, output), command
);
}
CompoundTag result = new CompoundTag();
result.putString("id", id);
result.putInt("code", resultCode);
if (error[0] != null)
{
result.putString("error", error[0].getContents().toString());
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/carpet/script/api/Auxiliary.java
Original file line number Diff line number Diff line change
Expand Up @@ -690,12 +690,11 @@ else if (!interactable && targetBlock == null)
{
Component[] error = {null};
List<Component> output = new ArrayList<>();
Value retval = new NumericValue(s.getServer().getCommands().performPrefixedCommand(
s.getServer().getCommands().performPrefixedCommand(
new SnoopyCommandSource(s, error, output),
lv.get(0).getString())
);
lv.get(0).getString());
return ListValue.of(
retval,
NumericValue.ZERO,
ListValue.wrap(output.stream().map(FormattedTextValue::new)),
FormattedTextValue.of(error[0])
);
Expand Down
12 changes: 6 additions & 6 deletions src/main/java/carpet/script/utils/SnoopyCommandSource.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package carpet.script.utils;

import carpet.script.external.Vanilla;
import com.mojang.brigadier.ResultConsumer;
import net.minecraft.commands.CommandResultConsumer;
import net.minecraft.commands.CommandSigningContext;
import net.minecraft.commands.CommandSource;
import net.minecraft.commands.CommandSourceStack;
Expand Down Expand Up @@ -33,7 +33,7 @@ public class SnoopyCommandSource extends CommandSourceStack
private final MinecraftServer server;
// skipping silent since snooper is never silent
private final Entity entity;
private final ResultConsumer<CommandSourceStack> resultConsumer;
private final CommandResultConsumer<CommandSourceStack> resultConsumer;
private final EntityAnchorArgument.Anchor entityAnchor;
private final Vec2 rotation;
// good stuff
Expand Down Expand Up @@ -91,7 +91,7 @@ public SnoopyCommandSource(ServerPlayer player, Component[] error, List<Componen
this.taskChainer = TaskChainer.immediate(player.server);
}

private SnoopyCommandSource(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String simpleName, Component name, MinecraftServer server, @Nullable Entity entity, ResultConsumer<CommandSourceStack> consumer, EntityAnchorArgument.Anchor entityAnchor, CommandSigningContext context, TaskChainer chainer,
private SnoopyCommandSource(CommandSource output, Vec3 pos, Vec2 rot, ServerLevel world, int level, String simpleName, Component name, MinecraftServer server, @Nullable Entity entity, CommandResultConsumer<CommandSourceStack> consumer, EntityAnchorArgument.Anchor entityAnchor, CommandSigningContext context, TaskChainer chainer,
Component[] error, List<Component> chatOutput
)
{
Expand Down Expand Up @@ -134,15 +134,15 @@ public CommandSourceStack withRotation(Vec2 rotation)
}

@Override
public CommandSourceStack withCallback(ResultConsumer<CommandSourceStack> consumer)
public CommandSourceStack withCallback(CommandResultConsumer<CommandSourceStack> consumer)
{
return new SnoopyCommandSource(output, position, rotation, world, level, simpleName, name, server, entity, consumer, entityAnchor, signingContext, taskChainer, error, chatOutput);
}

@Override
public CommandSourceStack withCallback(ResultConsumer<CommandSourceStack> consumer, BinaryOperator<ResultConsumer<CommandSourceStack>> binaryOperator)
public CommandSourceStack withCallback(CommandResultConsumer<CommandSourceStack> consumer, BinaryOperator<CommandResultConsumer<CommandSourceStack>> binaryOperator)
{
ResultConsumer<CommandSourceStack> resultConsumer = binaryOperator.apply(this.resultConsumer, consumer);
CommandResultConsumer<CommandSourceStack> resultConsumer = binaryOperator.apply(this.resultConsumer, consumer);
return this.withCallback(resultConsumer);
}

Expand Down

0 comments on commit 1fe486a

Please sign in to comment.