RunCommandOperation class
Пакет: com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential
Файл: com/hypixel/hytale/builtin/buildertools/scriptedbrushes/operations/sequential/RunCommandOperation.java
extends: SequenceBrushOperation
Поля (10)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<RunCommandOperation> |
CODEC |
|
PlayerRef |
var11 |
|
String |
var5 |
|
|
var5 |
|
|
var5 |
|
|
var5 |
|
Vector3i |
var6 |
|
Matcher |
var7 |
|
String |
var8 |
|
String |
var9 |
Методы (1)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
|
super super("runCommand", "Runs a command, see help for argument replacements", false) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfig;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.BrushConfigCommandExecutor;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.system.SequenceBrushOperation;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.ComponentAccessor;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandManager;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.regex.Matcher;
class="kw">import java.util.regex.Pattern;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;
class="kw">public class RunCommandOperation class="kw">extends SequenceBrushOperation {
class="kw">public class="kw">static class="kw">final BuilderCodec<RunCommandOperation> CODEC = BuilderCodec.builder(RunCommandOperation.class, RunCommandOperation::new)
.append(new KeyedCodec<>("CommandToRun", Codec.STRING), (var0, var1) -> var0.commandArg = var1, var0 -> var0.commandArg)
.documentation(
"Runs a command, substituting the strings... \n'{x}', '{y}', and '{z}' for the origin coordinates\n'{radius}' with width/2, '{width}' with width, and '{height}' with height\n'{var:<persistent variable name>} with the value of the persistent variable'"
)
.add()
.documentation("Runs a command, see help for argument replacements")
.build();
class="kw">private String commandArg = "";
class="kw">private class="kw">static class="kw">final Pattern regexBracketPattern = Pattern.compile("\\{var:(\\w*)}");
class="kw">public RunCommandOperation() {
super("runCommand", "Runs a command, see help for argument replacements", false);
}
@Override
class="kw">public void modifyBrushConfig(
@Nonnull Ref<EntityStore> var1, @Nonnull BrushConfig var2, @Nonnull BrushConfigCommandExecutor var3, @Nonnull ComponentAccessor<EntityStore> var4
) {
String var5 = this.commandArg;
if (var5.startsWith("/")) {
var5 = var5.substring(1);
}
Vector3i var6 = var2.getOrigin();
var5 = var5.replace("{x}", String.valueOf(var6.x))
.replace("{y}", String.valueOf(var6.y))
.replace("{z}", String.valueOf(var6.z))
.replace("{width}", String.valueOf(var2.getShapeWidth()))
.replace("{height}", String.valueOf(var2.getShapeHeight()))
.replace("{radius}", String.valueOf(var2.getShapeWidth() / 2.0));
Matcher var7 = regexBracketPattern.matcher(var5);
while (var7.find()) {
String var8 = var5.substring(var7.start(1), var7.end(1));
String var9 = String.valueOf(var3.getPersistentVariableOrDefault(var8, Integer.MIN_VALUE));
var5 = var5.replaceFirst(regexBracketPattern.pattern(), var9);
}
PlayerRef var11 = var4.getComponent(var1, PlayerRef.getComponentType());
assert var11 != null;
CommandManager.get().handleCommand(var11, var5);
}
}