ClearBlocksCommand class
Пакет: com.hypixel.hytale.builtin.buildertools.commands
Файл: com/hypixel/hytale/builtin/buildertools/commands/ClearBlocksCommand.java
extends: AbstractPlayerCommand
Поля (14)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final RequiredArg<RelativeIntPosition> |
positionOneArg |
|
private final RequiredArg<RelativeIntPosition> |
positionTwoArg |
|
RelativeIntPosition |
var10 |
|
RelativeIntPosition |
var11 |
|
Vector3i |
var12 |
|
Vector3i |
var13 |
|
Vector3i |
var14 |
|
Vector3i |
var15 |
|
ChunkStore |
var6 |
|
Player |
var6 |
|
Player |
var7 |
|
BuilderToolsPlugin.BuilderState |
var7 |
|
TransformComponent |
var8 |
|
Vector3d |
var9 |
Методы (3)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
new |
AbstractPlayerCommandnew AbstractPlayerCommand("server.commands.clear.desc") |
|
protected void |
executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5) |
abstract |
|
super super("clearBlocks", "server.commands.clear.desc") |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.buildertools.commands;
class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.builtin.buildertools.PrototypePlayerBuilderToolSettings;
class="kw">import com.hypixel.hytale.component.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.math.vector.Vector3iUtil;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.command.system.CommandContext;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.system.RequiredArg;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.ArgTypes;
class="kw">import com.hypixel.hytale.server.core.command.system.arguments.types.RelativeIntPosition;
class="kw">import com.hypixel.hytale.server.core.command.system.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.TransformComponent;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.mask.BlockPattern;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3i;
class="kw">public class ClearBlocksCommand class="kw">extends AbstractPlayerCommand {
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_CLEAR_NO_SELECTION = Message.translation("server.commands.clear.noSelection");
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_COMMANDS_CLEAR_SUCCESS = Message.translation("server.commands.clear.success");
class="kw">public ClearBlocksCommand() {
super("clearBlocks", "server.commands.clear.desc");
this.setPermissionGroups("hytale:WorldEditor");
this.addAliases("clear");
this.addUsageVariant(
new AbstractPlayerCommand("server.commands.clear.desc") {
@Nonnull
class="kw">private class="kw">final RequiredArg<RelativeIntPosition> positionOneArg = this.withRequiredArg(
"positionOne", "server.commands.clear.positionOne.desc", ArgTypes.RELATIVE_BLOCK_POSITION
);
@Nonnull
class="kw">private class="kw">final RequiredArg<RelativeIntPosition> positionTwoArg = this.withRequiredArg(
"positionTwo", "server.commands.clear.positionTwo.desc", ArgTypes.RELATIVE_BLOCK_POSITION
);
@Override
class="kw">protected void execute(
@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
) {
ChunkStore var6 = var5.getChunkStore();
Player var7 = var2.getComponent(var3, Player.getComponentType());
assert var7 != null;
TransformComponent var8 = var2.getComponent(var3, TransformComponent.getComponentType());
assert var8 != null;
if (PrototypePlayerBuilderToolSettings.isOkayToDoCommandsOnSelection(var3, var4, var2)) {
Vector3d var9 = var8.getPosition();
RelativeIntPosition var10 = this.positionOneArg.get(var1);
RelativeIntPosition var11 = this.positionTwoArg.get(var1);
Vector3i var12 = var10.getBlockPosition(var9, var6);
Vector3i var13 = var11.getBlockPosition(var9, var6);
Vector3i var14 = Vector3iUtil.min(var12, var13);
Vector3i var15 = Vector3iUtil.max(var12, var13);
BuilderToolsPlugin.addToQueue(var7, var4, (var2x, var3x, var4x) -> var3x.clear(var14.x, var14.y, var14.z, var15.x, var15.y, var15.z, var4x));
var4.sendMessage(ClearBlocksCommand.MESSAGE_COMMANDS_CLEAR_SUCCESS);
}
}
}
);
}
@Override
class="kw">protected void execute(
@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5
) {
Player var6 = var2.getComponent(var3, Player.getComponentType());
assert var6 != null;
if (PrototypePlayerBuilderToolSettings.isOkayToDoCommandsOnSelection(var3, var4, var2)) {
BuilderToolsPlugin.BuilderState var7 = BuilderToolsPlugin.getState(var6, var4);
if (var7.getSelection() == null) {
var4.sendMessage(MESSAGE_COMMANDS_CLEAR_NO_SELECTION);
} else {
BuilderToolsPlugin.addToQueue(var6, var4, (var0, var1x, var2x) -> var1x.set(BlockPattern.EMPTY, var2x));
var4.sendMessage(MESSAGE_COMMANDS_CLEAR_SUCCESS);
}
}
}
}