CutCommand class
Пакет: com.hypixel.hytale.builtin.buildertools.commands
Файл: com/hypixel/hytale/builtin/buildertools/commands/CutCommand.java
extends: AbstractPlayerCommand
Поля (32)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private final FlagArg |
emptyFlag |
|
private final FlagArg |
entitiesOnlyFlag |
|
private final FlagArg |
keepAnchorsFlag |
|
private final FlagArg |
noEntitiesFlag |
|
|
return |
|
int |
var10 |
|
int |
var10 |
|
int |
var11 |
|
int |
var11 |
|
int |
var12 |
|
int |
var13 |
|
int |
var14 |
|
int |
var15 |
|
int |
var16 |
|
int |
var17 |
|
Player |
var6 |
|
BlockSelection |
var6 |
|
Player |
var6 |
|
BuilderToolsPlugin.BuilderState |
var7 |
|
Vector3i |
var7 |
|
BuilderToolsPlugin.BuilderState |
var7 |
|
boolean |
var8 |
|
Vector3i |
var8 |
|
boolean |
var8 |
|
boolean |
var9 |
|
boolean |
var9 |
|
private final RequiredArg<Integer> |
xMaxArg |
|
private final RequiredArg<Integer> |
xMinArg |
|
private final RequiredArg<Integer> |
yMaxArg |
|
private final RequiredArg<Integer> |
yMinArg |
|
private final RequiredArg<Integer> |
zMaxArg |
|
private final RequiredArg<Integer> |
zMinArg |
Методы (8)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
CutRegionCommandpublic CutRegionCommand() |
|
protected void |
executeprotected void execute(@Nonnull CommandContext var1, @Nonnull Store<EntityStore> var2, @Nonnull Ref<EntityStore> var3, @Nonnull PlayerRef var4, @Nonnull World var5) |
|
|
if if(!var8) |
|
|
if if(!var9 || var8) |
|
|
if if(!var8) |
|
|
if if(!var9 || var8) |
abstract |
|
super super("cut", "server.commands.cut.desc") |
abstract |
|
super super("server.commands.cut.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.PrefabCopyException;
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.protocol.SoundCategory;
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.FlagArg;
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.basecommands.AbstractPlayerCommand;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.permissions.HytalePermissions;
class="kw">import com.hypixel.hytale.server.core.prefab.selection.standard.BlockSelection;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.world.SoundUtil;
class="kw">import com.hypixel.hytale.server.core.universe.world.World;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import com.hypixel.hytale.server.core.util.TempAssetIdUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3i;
class="kw">public class CutCommand class="kw">extends AbstractPlayerCommand {
@Nonnull
class="kw">private class="kw">static class="kw">final Message MESSAGE_BUILDER_TOOLS_COPY_CUT_NO_SELECTION = Message.translation("server.builderTools.copycut.noSelection");
@Nonnull
class="kw">private class="kw">final FlagArg noEntitiesFlag = this.withFlagArg("noEntities", "server.commands.cut.noEntities.desc");
@Nonnull
class="kw">private class="kw">final FlagArg entitiesOnlyFlag = this.withFlagArg("onlyEntities", "server.commands.cut.entitiesonly.desc");
@Nonnull
class="kw">private class="kw">final FlagArg emptyFlag = this.withFlagArg("empty", "server.commands.cut.empty.desc");
@Nonnull
class="kw">private class="kw">final FlagArg keepAnchorsFlag = this.withFlagArg("keepanchors", "server.commands.cut.keepanchors.desc");
class="kw">public CutCommand() {
super("cut", "server.commands.cut.desc");
this.setPermissionGroups("hytale:WorldEditor");
this.requirePermission(HytalePermissions.EDITOR_SELECTION_CLIPBOARD);
this.addUsageVariant(new CutCommand.CutRegionCommand());
}
@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);
boolean var8 = this.entitiesOnlyFlag.get(var1);
boolean var9 = this.noEntitiesFlag.get(var1);
int var10 = 2;
if (!var8) {
var10 |= 8;
}
if (this.emptyFlag.get(var1)) {
var10 |= 4;
}
if (this.keepAnchorsFlag.get(var1)) {
var10 |= 64;
}
if (!var9 || var8) {
var10 |= 16;
}
int var11 = var10;
BuilderToolsPlugin.addToQueue(var6, var4, (var3x, var4x, var5x) -> {
try {
BlockSelection var6 = var7.getSelection();
if (var6 == null || !var6.hasSelectionBounds()) {
var1.sendMessage(MESSAGE_BUILDER_TOOLS_COPY_CUT_NO_SELECTION);
class="kw">return;
}
Vector3i var7 = var6.getSelectionMin();
Vector3i var8 = var6.getSelectionMax();
var7.copyOrCut(var3x, var7.x(), var7.y(), var7.z(), var8.x(), var8.y(), var8.z(), var11, var5x);
} catch (PrefabCopyException var9) {
var1.sendMessage(Message.translation("server.builderTools.copycut.copyFailedReason").param("reason", var9.getMessage()));
}
});
}
}
class="kw">private class="kw">static class CutRegionCommand class="kw">extends AbstractPlayerCommand {
@Nonnull
class="kw">private class="kw">final RequiredArg<Integer> xMinArg = this.withRequiredArg("xMin", "server.commands.cut.xMin.desc", ArgTypes.INTEGER);
@Nonnull
class="kw">private class="kw">final RequiredArg<Integer> yMinArg = this.withRequiredArg("yMin", "server.commands.cut.yMin.desc", ArgTypes.INTEGER);
@Nonnull
class="kw">private class="kw">final RequiredArg<Integer> zMinArg = this.withRequiredArg("zMin", "server.commands.cut.zMin.desc", ArgTypes.INTEGER);
@Nonnull
class="kw">private class="kw">final RequiredArg<Integer> xMaxArg = this.withRequiredArg("xMax", "server.commands.cut.xMax.desc", ArgTypes.INTEGER);
@Nonnull
class="kw">private class="kw">final RequiredArg<Integer> yMaxArg = this.withRequiredArg("yMax", "server.commands.cut.yMax.desc", ArgTypes.INTEGER);
@Nonnull
class="kw">private class="kw">final RequiredArg<Integer> zMaxArg = this.withRequiredArg("zMax", "server.commands.cut.zMax.desc", ArgTypes.INTEGER);
@Nonnull
class="kw">private class="kw">final FlagArg noEntitiesFlag = this.withFlagArg("noEntities", "server.commands.cut.noEntities.desc");
@Nonnull
class="kw">private class="kw">final FlagArg entitiesOnlyFlag = this.withFlagArg("onlyEntities", "server.commands.cut.entitiesonly.desc");
@Nonnull
class="kw">private class="kw">final FlagArg emptyFlag = this.withFlagArg("empty", "server.commands.cut.empty.desc");
@Nonnull
class="kw">private class="kw">final FlagArg keepAnchorsFlag = this.withFlagArg("keepanchors", "server.commands.cut.keepanchors.desc");
class="kw">public CutRegionCommand() {
super("server.commands.cut.desc");
}
@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);
boolean var8 = this.entitiesOnlyFlag.get(var1);
boolean var9 = this.noEntitiesFlag.get(var1);
int var10 = 2;
if (!var8) {
var10 |= 8;
}
if (this.emptyFlag.get(var1)) {
var10 |= 4;
}
if (this.keepAnchorsFlag.get(var1)) {
var10 |= 64;
}
if (!var9 || var8) {
var10 |= 16;
}
int var11 = this.xMinArg.get(var1);
int var12 = this.yMinArg.get(var1);
int var13 = this.zMinArg.get(var1);
int var14 = this.xMaxArg.get(var1);
int var15 = this.yMaxArg.get(var1);
int var16 = this.zMaxArg.get(var1);
int var17 = var10;
BuilderToolsPlugin.addToQueue(var6, var4, (var9x, var10x, var11x) -> {
try {
var7.copyOrCut(var9x, var11, var12, var13, var14, var15, var16, var17, var11x);
} catch (PrefabCopyException var13) {
var1.sendMessage(Message.translation("server.builderTools.copycut.copyFailedReason").param("reason", var13.getMessage()));
SoundUtil.playSoundEvent2d(var9x, TempAssetIdUtil.getSoundEventIndex("CREATE_ERROR"), SoundCategory.UI, var11x);
}
});
}
}
}
}