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)`
|
### `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.
|
intercepted list of output messages, and error message if the command resulted in a failure.
|
||||||
Successful commands return `null` as their error.
|
Successful commands return `null` as their error.
|
||||||
|
|
||||||
<pre>
|
<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('fill 1 1 1 10 10 10 air') -> [0, ["Successfully filled 123 blocks"], null]
|
||||||
run('give @s stone 4') -> [1, ["Gave 4 [Stone] to gnembon"], null] // this operation was successful once
|
run('give @s stone 4') -> [0, ["Gave 4 [Stone] to gnembon"], null]
|
||||||
run('seed') -> [-170661413, ["Seed: [4031384495743822299]"], null]
|
run('seed') -> [0, ["Seed: [4031384495743822299]"], null]
|
||||||
run('sed') -> [0, [], "sed<--[HERE]"] // wrong command
|
run('sed') -> [0, [], "sed<--[HERE]"] // wrong command
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -3,7 +3,7 @@ org.gradle.jvmargs=-Xmx1G
|
|||||||
|
|
||||||
# Fabric Properties
|
# Fabric Properties
|
||||||
# check https://fabricmc.net/develop/
|
# check https://fabricmc.net/develop/
|
||||||
minecraft_version=23w40a
|
minecraft_version=23w41a
|
||||||
loader_version=0.14.22
|
loader_version=0.14.22
|
||||||
jsr305_version=3.0.2
|
jsr305_version=3.0.2
|
||||||
fabric_version=0.89.3+1.20.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.Inject;
|
||||||
import org.spongepowered.asm.mixin.injection.Redirect;
|
import org.spongepowered.asm.mixin.injection.Redirect;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
|
||||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
|
||||||
|
|
||||||
|
|
||||||
@Mixin(Commands.class)
|
@Mixin(Commands.class)
|
||||||
public abstract class Commands_customCommandsMixin
|
public abstract class Commands_customCommandsMixin
|
||||||
@@ -32,14 +30,14 @@ public abstract class Commands_customCommandsMixin
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Inject(method = "performCommand", at = @At("HEAD"))
|
@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)
|
if (!CarpetSettings.fillUpdates)
|
||||||
CarpetSettings.impendingFillSkipUpdates.set(true);
|
CarpetSettings.impendingFillSkipUpdates.set(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Inject(method = "performCommand", at = @At("RETURN"))
|
@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);
|
CarpetSettings.impendingFillSkipUpdates.set(false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -94,7 +94,6 @@ public class CarpetClient
|
|||||||
CarpetSettings.LOG.info("Server Response:");
|
CarpetSettings.LOG.info("Server Response:");
|
||||||
CompoundTag tag = (CompoundTag) t;
|
CompoundTag tag = (CompoundTag) t;
|
||||||
CarpetSettings.LOG.info(" - id: " + tag.getString("id"));
|
CarpetSettings.LOG.info(" - id: " + tag.getString("id"));
|
||||||
CarpetSettings.LOG.info(" - code: " + tag.getInt("code"));
|
|
||||||
if (tag.contains("error"))
|
if (tag.contains("error"))
|
||||||
{
|
{
|
||||||
CarpetSettings.LOG.warn(" - error: " + tag.getString("error"));
|
CarpetSettings.LOG.warn(" - error: " + tag.getString("error"));
|
||||||
|
|||||||
@@ -84,20 +84,18 @@ public class ServerNetworkHandler
|
|||||||
String id = commandData.getString("id");
|
String id = commandData.getString("id");
|
||||||
List<Component> output = new ArrayList<>();
|
List<Component> output = new ArrayList<>();
|
||||||
Component[] error = {null};
|
Component[] error = {null};
|
||||||
int resultCode = -1;
|
|
||||||
if (player.getServer() == null)
|
if (player.getServer() == null)
|
||||||
{
|
{
|
||||||
error[0] = Component.literal("No Server");
|
error[0] = Component.literal("No Server");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
resultCode = player.getServer().getCommands().performPrefixedCommand(
|
player.getServer().getCommands().performPrefixedCommand(
|
||||||
new SnoopyCommandSource(player, error, output), command
|
new SnoopyCommandSource(player, error, output), command
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
CompoundTag result = new CompoundTag();
|
CompoundTag result = new CompoundTag();
|
||||||
result.putString("id", id);
|
result.putString("id", id);
|
||||||
result.putInt("code", resultCode);
|
|
||||||
if (error[0] != null)
|
if (error[0] != null)
|
||||||
{
|
{
|
||||||
result.putString("error", error[0].getContents().toString());
|
result.putString("error", error[0].getContents().toString());
|
||||||
|
|||||||
@@ -690,12 +690,11 @@ public class Auxiliary
|
|||||||
{
|
{
|
||||||
Component[] error = {null};
|
Component[] error = {null};
|
||||||
List<Component> output = new ArrayList<>();
|
List<Component> output = new ArrayList<>();
|
||||||
Value retval = new NumericValue(s.getServer().getCommands().performPrefixedCommand(
|
s.getServer().getCommands().performPrefixedCommand(
|
||||||
new SnoopyCommandSource(s, error, output),
|
new SnoopyCommandSource(s, error, output),
|
||||||
lv.get(0).getString())
|
lv.get(0).getString());
|
||||||
);
|
|
||||||
return ListValue.of(
|
return ListValue.of(
|
||||||
retval,
|
NumericValue.ZERO,
|
||||||
ListValue.wrap(output.stream().map(FormattedTextValue::new)),
|
ListValue.wrap(output.stream().map(FormattedTextValue::new)),
|
||||||
FormattedTextValue.of(error[0])
|
FormattedTextValue.of(error[0])
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package carpet.script.utils;
|
package carpet.script.utils;
|
||||||
|
|
||||||
import carpet.script.external.Vanilla;
|
import carpet.script.external.Vanilla;
|
||||||
import com.mojang.brigadier.ResultConsumer;
|
import net.minecraft.commands.CommandResultConsumer;
|
||||||
import net.minecraft.commands.CommandSigningContext;
|
import net.minecraft.commands.CommandSigningContext;
|
||||||
import net.minecraft.commands.CommandSource;
|
import net.minecraft.commands.CommandSource;
|
||||||
import net.minecraft.commands.CommandSourceStack;
|
import net.minecraft.commands.CommandSourceStack;
|
||||||
@@ -33,7 +33,7 @@ public class SnoopyCommandSource extends CommandSourceStack
|
|||||||
private final MinecraftServer server;
|
private final MinecraftServer server;
|
||||||
// skipping silent since snooper is never silent
|
// skipping silent since snooper is never silent
|
||||||
private final Entity entity;
|
private final Entity entity;
|
||||||
private final ResultConsumer<CommandSourceStack> resultConsumer;
|
private final CommandResultConsumer<CommandSourceStack> resultConsumer;
|
||||||
private final EntityAnchorArgument.Anchor entityAnchor;
|
private final EntityAnchorArgument.Anchor entityAnchor;
|
||||||
private final Vec2 rotation;
|
private final Vec2 rotation;
|
||||||
// good stuff
|
// good stuff
|
||||||
@@ -91,7 +91,7 @@ public class SnoopyCommandSource extends CommandSourceStack
|
|||||||
this.taskChainer = TaskChainer.immediate(player.server);
|
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
|
Component[] error, List<Component> chatOutput
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
@@ -134,15 +134,15 @@ public class SnoopyCommandSource extends CommandSourceStack
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
return new SnoopyCommandSource(output, position, rotation, world, level, simpleName, name, server, entity, consumer, entityAnchor, signingContext, taskChainer, error, chatOutput);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@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);
|
return this.withCallback(resultConsumer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user