23w41a
This commit is contained in:
1 parent
4a881264b4
commit
1fe486a5e8
7 files changed
+17
-23
No files matched your search
@@ -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>
|
||||
|
||||
|
||||
+1
-1
@@ -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
|
||||
|
||||
@@ -15,8 +15,6 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
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
|
||||
@@ -32,14 +30,14 @@ public abstract class Commands_customCommandsMixin
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
@@ -94,7 +94,6 @@ public class CarpetClient
|
||||
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"));
|
||||
|
||||
@@ -84,20 +84,18 @@ public class ServerNetworkHandler
|
||||
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());
|
||||
|
||||
@@ -690,12 +690,11 @@ public class Auxiliary
|
||||
{
|
||||
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])
|
||||
);
|
||||
|
||||
@@ -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;
|
||||
@@ -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
|
||||
@@ -91,7 +91,7 @@ public class SnoopyCommandSource extends CommandSourceStack
|
||||
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
|
||||
)
|
||||
{
|
||||
@@ -134,15 +134,15 @@ public class SnoopyCommandSource extends CommandSourceStack
|
||||
}
|
||||
|
||||
@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);
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user