PageData class
Пакет: com.hypixel.hytale.builtin.points.ui
Файл: com/hypixel/hytale/builtin/points/ui/PointInspectorPage.java
Поля (29)
| Модификаторы | Тип | Имя |
|---|---|---|
|
public static final BuilderCodec<PointInspectorPage.PageData> |
CODEC |
|
static final String |
KEY_ACTION |
|
static final String |
KEY_FILTER |
|
static final String |
KEY_ID |
|
static final String |
KEY_NAME |
|
static final String |
KEY_POS_X |
|
static final String |
KEY_POS_Y |
|
static final String |
KEY_POS_Z |
|
static final String |
KEY_REMOVE_KEY |
|
static final String |
KEY_ROT_X |
|
static final String |
KEY_ROT_Y |
|
static final String |
KEY_ROT_Z |
|
static final String |
KEY_TAG_KEY |
|
static final String |
KEY_TAG_VALUE |
|
static final String |
KEY_WORLD |
|
private String |
action |
|
private String |
filterText |
|
private String |
id |
|
private String |
name |
|
private String |
posX |
|
private String |
posY |
|
private String |
posZ |
|
private String |
removeKey |
|
private String |
rotX |
|
private String |
rotY |
|
private String |
rotZ |
|
private String |
tagKey |
|
private String |
tagValue |
|
private String |
worldName |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.points.ui;
class="kw">import com.hypixel.hytale.builtin.buildertools.BuilderToolsPlugin;
class="kw">import com.hypixel.hytale.builtin.points.PointsPlugin;
class="kw">import com.hypixel.hytale.builtin.points.manager.PointEntry;
class="kw">import com.hypixel.hytale.builtin.points.manager.PointManager;
class="kw">import com.hypixel.hytale.builtin.points.snapshot.PointSnapshot;
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.Ref;
class="kw">import com.hypixel.hytale.component.Store;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomPageLifetime;
class="kw">import com.hypixel.hytale.protocol.packets.interface_.CustomUIEventBindingType;
class="kw">import com.hypixel.hytale.protocol.packets.player.PointToolSelection;
class="kw">import com.hypixel.hytale.server.core.Message;
class="kw">import com.hypixel.hytale.server.core.entity.entities.Player;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.pages.InteractiveCustomUIPage;
class="kw">import com.hypixel.hytale.server.core.modules.entity.teleport.Teleport;
class="kw">import com.hypixel.hytale.server.core.ui.Anchor;
class="kw">import com.hypixel.hytale.server.core.ui.DropdownEntryInfo;
class="kw">import com.hypixel.hytale.server.core.ui.LocalizableString;
class="kw">import com.hypixel.hytale.server.core.ui.PatchStyle;
class="kw">import com.hypixel.hytale.server.core.ui.Value;
class="kw">import com.hypixel.hytale.server.core.ui.builder.EventData;
class="kw">import com.hypixel.hytale.server.core.ui.builder.UICommandBuilder;
class="kw">import com.hypixel.hytale.server.core.ui.builder.UIEventBuilder;
class="kw">import com.hypixel.hytale.server.core.universe.PlayerRef;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
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 it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.ArrayList;
class="kw">import java.util.List;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import java.util.Objects;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3f;
class="kw">public class PointInspectorPage class="kw">extends InteractiveCustomUIPage<PointInspectorPage.PageData> {
class="kw">private class="kw">static class="kw">final Value<String> NORMAL_ROW_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeBrowseGroupRow.ui", "NormalRowStyle");
class="kw">private class="kw">static class="kw">final Value<String> SELECTED_ROW_STYLE = Value.ref("Pages/TriggerVolume/TriggerVolumeBrowseGroupRow.ui", "SelectedRowStyle");
class="kw">private class="kw">static class="kw">final String PAGE = "Pages/Point/PointInspectorPage.ui";
class="kw">private class="kw">static class="kw">final String POINT_ROW = "Pages/TriggerVolume/TriggerVolumeBrowseVolumeRow.ui";
class="kw">private class="kw">static class="kw">final String TAG_CHIP = "Pages/TriggerVolume/TriggerVolumeTagChip.ui";
class="kw">private class="kw">static class="kw">final String SECTION_LABEL = "Pages/TriggerVolume/TriggerVolumeInspectorSectionLabel.ui";
class="kw">private class="kw">static class="kw">final String TAG_ROW = "Pages/Point/PointTagRow.ui";
class="kw">private class="kw">static class="kw">final int[] TAG_CHIP_COLORS = new int[]{
5223543,
4176047,
5214176,
7237344,
10181046,
13393320,
14707612,
14715452,
14070332,
14247259,
6013118,
8365648,
11566278,
15241563,
13194606,
4878288,
4894348,
12546880,
7317724,
13332382
};
class="kw">private class="kw">static class="kw">final int OVERFLOW_CHIP_COLOR = 5596014;
class="kw">private class="kw">static class="kw">final int ROW_CHIP_BUDGET = 252;
class="kw">private class="kw">static class="kw">final String ACTION_SELECT = "Select";
class="kw">private class="kw">static class="kw">final String ACTION_CHANGE_WORLD = "ChangeWorld";
class="kw">private class="kw">static class="kw">final String ACTION_FILTER = "Filter";
class="kw">private class="kw">static class="kw">final String ACTION_SAVE_NAME = "SaveName";
class="kw">private class="kw">static class="kw">final String ACTION_SAVE_TRANSFORM = "SaveTransform";
class="kw">private class="kw">static class="kw">final String ACTION_TELEPORT = "Teleport";
class="kw">private class="kw">static class="kw">final String ACTION_ADD_TAG = "AddTag";
class="kw">private class="kw">static class="kw">final String ACTION_REMOVE_TAG = "RemoveTag";
class="kw">private class="kw">static class="kw">final String ACTION_DELETE = "Delete";
class="kw">private class="kw">final PointManager.SelectionObserver selectionObserver = this::onExternalSelectionChanged;
@Nonnull
class="kw">private String selectedWorld;
@Nullable
class="kw">private String selectedId;
@Nonnull
class="kw">private String filterText = "";
class="kw">private boolean suppressSelectionObserver;
class="kw">public PointInspectorPage(@Nonnull PlayerRef var1, @Nonnull String var2, @Nullable String var3) {
super(var1, CustomPageLifetime.CanDismiss, PointInspectorPage.PageData.CODEC);
this.selectedWorld = var2.toLowerCase(Locale.ROOT);
this.selectedId = var3;
}
@Override
class="kw">public void build(@Nonnull Ref<EntityStore> var1, @Nonnull UICommandBuilder var2, @Nonnull UIEventBuilder var3, @Nonnull Store<EntityStore> var4) {
var2.append("Pages/Point/PointInspectorPage.ui");
this.registerSelectionObserver();
this.buildWorldDropdown(var2);
this.buildList(var2, var3);
this.buildContent(var2, var3);
this.bindStaticEvents(var3);
}
@Override
class="kw">public void onDismiss(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) {
PointManager var3 = getManagerForWorld(this.selectedWorld);
if (var3 != null) {
var3.clearSelectionObserver(this.playerRef.getUuid(), this.selectionObserver);
}
}
class="kw">public void handleDataEvent(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2, @Nonnull PointInspectorPage.PageData var3) {
if (var3.action != null) {
class="kw">switch (var3.action) {
case "Select":
this.onSelect(var3);
break;
case "ChangeWorld":
this.onChangeWorld(var3);
break;
case "Filter":
this.onFilterChanged(var3);
break;
case "SaveName":
this.onSaveName(var3);
break;
case "SaveTransform":
this.onSaveTransform(var3, var1, var2);
break;
case "Teleport":
this.onTeleport(var1, var2);
break;
case "AddTag":
this.onAddTag(var3);
break;
case "RemoveTag":
this.onRemoveTag(var3);
break;
case "Delete":
this.onDeletePoint(var1, var2);
}
}
}
class="kw">private void onSelect(@Nonnull PointInspectorPage.PageData var1) {
this.selectedId = var1.id;
this.syncSelectionToTool();
this.rebuildAll();
}
class="kw">private void onChangeWorld(@Nonnull PointInspectorPage.PageData var1) {
if (var1.worldName != null) {
String var2 = var1.worldName.toLowerCase(Locale.ROOT);
if (!var2.equals(this.selectedWorld)) {
PointManager var3 = getManagerForWorld(this.selectedWorld);
if (var3 != null) {
var3.clearSelectionObserver(this.playerRef.getUuid(), this.selectionObserver);
}
this.selectedWorld = var2;
this.selectedId = null;
this.registerSelectionObserver();
this.syncSelectionToTool();
this.rebuildAll();
}
}
}
class="kw">private void onFilterChanged(@Nonnull PointInspectorPage.PageData var1) {
this.filterText = var1.filterText != null ? var1.filterText.trim().toLowerCase(Locale.ROOT) : "";
this.rebuildAll();
}
class="kw">private void onSaveName(@Nonnull PointInspectorPage.PageData var1) {
PointEntry var2 = this.resolvePoint();
if (var2 != null) {
var2.setName(var1.name != null && !var1.name.isBlank() ? var1.name.trim() : null);
this.afterPointMutated(var2);
}
}
class="kw">private void onSaveTransform(@Nonnull PointInspectorPage.PageData var1, @Nonnull Ref<EntityStore> var2, @Nonnull Store<EntityStore> var3) {
PointManager var4 = getManagerForWorld(this.selectedWorld);
PointEntry var5 = this.resolvePoint();
if (var4 != null && var5 != null) {
Vector3d var6 = var5.getPosition();
Vector3f var7 = var5.getRotation();
Vector3d var8 = new Vector3d(parseOr(var1.posX, var6.x()), parseOr(var1.posY, var6.y()), parseOr(var1.posZ, var6.z()));
Vector3f var9 = new Vector3f((float)parseOr(var1.rotX, var7.x()), (float)parseOr(var1.rotY, var7.y()), (float)parseOr(var1.rotZ, var7.z()));
Player var10 = var3.getComponent(var2, Player.getComponentType());
if (var10 != null) {
BuilderToolsPlugin.getState(var10, this.playerRef).pushPointHistory(PointSnapshot.ofMutate(var5));
}
var5.setPosition(var8);
var5.setRotation(var9);
var4.markSpatialDirty();
this.afterPointMutated(var5);
}
}
class="kw">private void onTeleport(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) {
PointEntry var3 = this.resolvePoint();
World var4 = getWorldByName(this.selectedWorld);
if (var3 != null && var4 != null) {
World var5 = var4.equals(var2.getExternalData().getWorld()) ? null : var4;
var2.addComponent(var1, Teleport.getComponentType(), Teleport.createForPlayer(var5, var3.getTransform()));
this.close();
}
}
class="kw">private void onAddTag(@Nonnull PointInspectorPage.PageData var1) {
PointManager var2 = getManagerForWorld(this.selectedWorld);
PointEntry var3 = this.resolvePoint();
if (var2 != null && var3 != null && var1.tagKey != null && !var1.tagKey.isBlank()) {
if (var2.setTag(var3.getId(), var1.tagKey, var1.tagValue)) {
this.afterPointMutated(var3);
}
}
}
class="kw">private void onRemoveTag(@Nonnull PointInspectorPage.PageData var1) {
PointManager var2 = getManagerForWorld(this.selectedWorld);
PointEntry var3 = this.resolvePoint();
if (var2 != null && var3 != null && var1.removeKey != null) {
if (var2.removeTag(var3.getId(), var1.removeKey)) {
this.afterPointMutated(var3);
}
}
}
class="kw">private void afterPointMutated(@Nonnull PointEntry var1) {
PointManager var2 = getManagerForWorld(this.selectedWorld);
if (var2 != null) {
var2.notifyViewersAdd(var1);
}
this.rebuildAll();
}
class="kw">private void onDeletePoint(@Nonnull Ref<EntityStore> var1, @Nonnull Store<EntityStore> var2) {
PointManager var3 = getManagerForWorld(this.selectedWorld);
PointEntry var4 = this.resolvePoint();
if (var3 != null && var4 != null) {
Player var5 = var2.getComponent(var1, Player.getComponentType());
if (var5 != null) {
BuilderToolsPlugin.getState(var5, this.playerRef).pushPointHistory(PointSnapshot.ofDelete(var4));
}
var3.unregister(var4.getId());
var3.notifyViewersRemove(var4.getId());
this.selectedId = null;
this.syncSelectionToTool();
this.rebuildAll();
}
}
class="kw">private void rebuildAll() {
UICommandBuilder var1 = new UICommandBuilder();
UIEventBuilder var2 = new UIEventBuilder();
this.buildWorldDropdown(var1);
this.buildList(var1, var2);
this.buildContent(var1, var2);
this.bindStaticEvents(var2);
this.sendUpdate(var1, var2, false);
}
class="kw">private void bindStaticEvents(@Nonnull UIEventBuilder var1) {
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged, "#WorldDropdown", new EventData().put("Action", "ChangeWorld").put("@WorldName", "#WorldDropdown.Value"), false
);
var1.addEventBinding(
CustomUIEventBindingType.ValueChanged, "#FilterField", new EventData().put("Action", "Filter").put("@FilterText", "#FilterField.Value"), false
);
var1.addEventBinding(CustomUIEventBindingType.Activating, "#SaveNameButton", new EventData().put("Action", "SaveName").put("@Name", "#NameField.Value"));
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#SaveTransformButton",
new EventData()
.put("Action", "SaveTransform")
.put("@PosX", "#PosXField.Value")
.put("@PosY", "#PosYField.Value")
.put("@PosZ", "#PosZField.Value")
.put("@RotX", "#RotXField.Value")
.put("@RotY", "#RotYField.Value")
.put("@RotZ", "#RotZField.Value")
);
var1.addEventBinding(CustomUIEventBindingType.Activating, "#TeleportButton", new EventData().put("Action", "Teleport"));
var1.addEventBinding(
CustomUIEventBindingType.Activating,
"#AddTagButton",
new EventData().put("Action", "AddTag").put("@TagKey", "#TagKeyField.Value").put("@TagValue", "#TagValueField.Value"),
false
);
var1.addEventBinding(CustomUIEventBindingType.Activating, "#DeletePointButton", new EventData().put("Action", "Delete"));
}
class="kw">private void buildWorldDropdown(@Nonnull UICommandBuilder var1) {
ObjectArrayList var2 = new ObjectArrayList();
for (World var4 : Universe.get().getWorlds().values()) {
String var5 = var4.getName().toLowerCase(Locale.ROOT);
var2.add(new DropdownEntryInfo(LocalizableString.fromString(var5), var5));
}
var1.set("#WorldDropdown.Entries", var2);
var1.set("#WorldDropdown.Value", this.selectedWorld);
var1.set("#FilterField.Value", this.filterText);
}
class="kw">private void buildList(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
var1.clear("#ListContainer");
PointManager var3 = getManagerForWorld(this.selectedWorld);
if (var3 != null && !var3.getPointsMap().isEmpty()) {
int var4 = 0;
for (PointEntry var6 : var3.getPointsMap().values()) {
if (this.matchesPointFilter(var6)) {
var4 = this.appendPointRow(var1, var2, var4, var6);
}
}
if (var4 == 0) {
this.appendListMessage(var1, Message.translation("server.customUI.pointInspector.noMatches"));
}
} else {
this.appendListMessage(var1, Message.translation("server.customUI.pointInspector.emptyState"));
}
}
class="kw">private int appendPointRow(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2, int var3, @Nonnull PointEntry var4) {
String var5 = "#ListContainer[" + var3 + "]";
var1.append("#ListContainer", "Pages/TriggerVolume/TriggerVolumeBrowseVolumeRow.ui");
var1.set(var5 + " #Label.Text", displayName(var4));
int var6 = this.appendRowTagChips(var1, var5 + " #TagChips", var4.getRawTags());
var1.set(var5 + " #TagChips.Visible", var6 > 0);
if (var6 > 0) {
Anchor var7 = new Anchor();
var7.setHeight(Value.of(var6 == 1 ? 44 : 64));
var1.setObject(var5 + ".Anchor", var7);
}
var1.set(var5 + ".Style", var4.getId().equals(this.selectedId) ? SELECTED_ROW_STYLE : NORMAL_ROW_STYLE);
var2.addEventBinding(CustomUIEventBindingType.Activating, var5, new EventData().put("Action", "Select").put("Id", var4.getId()), false);
class="kw">return var3 + 1;
}
class="kw">private void appendListMessage(@Nonnull UICommandBuilder var1, @Nonnull Message var2) {
var1.append("#ListContainer", "Pages/TriggerVolume/TriggerVolumeInspectorSectionLabel.ui");
var1.set("#ListContainer[0].Text", var2);
}
class="kw">private void buildContent(@Nonnull UICommandBuilder var1, @Nonnull UIEventBuilder var2) {
var1.clear("#TagsList");
PointEntry var3 = this.resolvePoint();
var1.set("#InspectorContent.Visible", var3 != null);
var1.set("#DeletePointButton.Disabled", var3 == null);
if (var3 == null) {
var1.set("#SelectionLabel.Text", Message.translation("server.customUI.pointInspector.noSelection"));
var1.set("#NameField.Value", "");
} else {
var1.set("#SelectionLabel.Text", Message.translation("server.customUI.pointInspector.editing").param("id", displayName(var3)));
var1.set("#NameField.Value", var3.getName() != null ? var3.getName() : "");
Vector3d var4 = var3.getPosition();
Vector3f var5 = var3.getRotation();
var1.set("#PosXField.Value", fmt(var4.x()));
var1.set("#PosYField.Value", fmt(var4.y()));
var1.set("#PosZField.Value", fmt(var4.z()));
var1.set("#RotXField.Value", fmt(var5.x()));
var1.set("#RotYField.Value", fmt(var5.y()));
var1.set("#RotZField.Value", fmt(var5.z()));
int var6 = 0;
for (Entry var8 : var3.getRawTags().entrySet()) {
String var9 = "#TagsList[" + var6 + "]";
var1.append("#TagsList", "Pages/Point/PointTagRow.ui");
var1.set(var9 + " #TagLabel.Text", var8.getKey() + ": " + var8.getValue());
var2.addEventBinding(
CustomUIEventBindingType.Activating, var9 + " #RemoveButton", new EventData().put("Action", "RemoveTag").put("RemoveKey", var8.getKey())
);
var6++;
}
}
}
class="kw">private int appendRowTagChips(@Nonnull UICommandBuilder var1, @Nonnull String var2, @Nonnull Map<String, String> var3) {
if (var3.isEmpty()) {
class="kw">return 0;
}
List var4 = this.orderedRowTags(var3);
int var5 = 0;
int var6 = 1;
int var7 = 0;
for (int var8 = 0; var8 < var4.size(); var8++) {
Entry var9 = var4.get(var8);
String var10 = this.chipDisplay(var9.getKey(), var9.getValue());
int var11 = chipWidth(var10);
if (var7 > 0 && var7 + var11 > 252) {
if (var6 == 2) {
this.appendChip(var1, var2, var5, "+" + (var4.size() - var8), 5596014);
class="kw">return 2;
}
var6++;
var7 = 0;
}
this.appendChip(var1, var2, var5++, var10, tagChipColor(var9.getKey()));
var7 += var11;
}
class="kw">return var6;
}
@Nonnull
class="kw">private List<Entry<String, String>> orderedRowTags(@Nonnull Map<String, String> var1) {
ArrayList var2 = new ArrayList<>(var1.entrySet());
if (!this.filterText.isEmpty()) {
var2.sort(
(var1x, var2x) -> Boolean.compare(this.tagMatchesFilter(var2x.getKey(), var2x.getValue()), this.tagMatchesFilter(var1x.getKey(), var1x.getValue()))
);
}
class="kw">return var2;
}
@Nonnull
class="kw">private String chipDisplay(@Nonnull String var1, @Nullable String var2) {
boolean var3 = var2 != null && !var2.isEmpty();
boolean var4 = var3 && !this.filterText.isEmpty() && var2.toLowerCase(Locale.ROOT).contains(this.filterText);
class="kw">return var4 ? var1 + ": " + var2 : var1;
}
class="kw">private void appendChip(@Nonnull UICommandBuilder var1, @Nonnull String var2, int var3, @Nonnull String var4, int var5) {
String var6 = var2 + "[" + var3 + "]";
var1.append(var2, "Pages/TriggerVolume/TriggerVolumeTagChip.ui");
var1.setObject(var6 + ".Background", new PatchStyle().setColor(Value.of(colorToHex(var5) + "99")));
var1.set(var6 + " #ChipLabel.Text", var4);
}
class="kw">private class="kw">static int chipWidth(@Nonnull String var0) {
class="kw">return (int)Math.ceil(var0.length() * 6.2) + 14;
}
class="kw">private class="kw">static int tagChipColor(@Nonnull String var0) {
int var1 = var0.toLowerCase(Locale.ROOT).hashCode();
var1 ^= var1 >>> 16;
var1 *= 2146121005;
var1 ^= var1 >>> 15;
var1 *= -2073254261;
var1 ^= var1 >>> 16;
class="kw">return TAG_CHIP_COLORS[Math.floorMod(var1, TAG_CHIP_COLORS.length)];
}
@Nonnull
class="kw">private class="kw">static String colorToHex(int var0) {
class="kw">return String.format("#%02X%02X%02X", var0 >> 16 & 0xFF, var0 >> 8 & 0xFF, var0 & 0xFF);
}
class="kw">private boolean matchesPointFilter(@Nonnull PointEntry var1) {
if (this.filterText.isEmpty()) {
class="kw">return true;
}
if (var1.getId().toLowerCase(Locale.ROOT).contains(this.filterText)) {
class="kw">return true;
}
if (var1.getName() != null && var1.getName().toLowerCase(Locale.ROOT).contains(this.filterText)) {
class="kw">return true;
}
for (Entry var3 : var1.getRawTags().entrySet()) {
if (this.tagMatchesFilter(var3.getKey(), var3.getValue())) {
class="kw">return true;
}
}
class="kw">return false;
}
class="kw">private boolean tagMatchesFilter(@Nonnull String var1, @Nullable String var2) {
if (this.filterText.isEmpty()) {
class="kw">return false;
}
String var3 = var1.toLowerCase(Locale.ROOT);
String var4 = var2 != null ? var2.toLowerCase(Locale.ROOT) : "";
class="kw">return var3.contains(this.filterText) || var4.contains(this.filterText) || (var3 + "=" + var4).contains(this.filterText);
}
class="kw">private void registerSelectionObserver() {
PointManager var1 = getManagerForWorld(this.selectedWorld);
if (var1 != null) {
var1.setSelectionObserver(this.playerRef.getUuid(), this.selectionObserver);
}
}
class="kw">private void onExternalSelectionChanged(@Nullable String var1) {
if (!this.suppressSelectionObserver && !Objects.equals(this.selectedId, var1)) {
PointManager var2 = getManagerForWorld(this.selectedWorld);
if (var1 == null || var2 != null && var2.getPoint(var1) != null) {
this.selectedId = var1;
this.rebuildAll();
}
}
}
class="kw">private void syncSelectionToTool() {
PointManager var1 = getManagerForWorld(this.selectedWorld);
PointToolSelection var2 = new PointToolSelection();
if (this.selectedId != null && var1 != null && var1.getPoint(this.selectedId) != null) {
var2.primaryPointId = this.selectedId;
var2.pointIds = new String[]{this.selectedId};
}
if (var1 != null) {
this.suppressSelectionObserver = true;
var1.setPlayerSelection(this.playerRef.getUuid(), var2.primaryPointId);
this.suppressSelectionObserver = false;
}
this.playerRef.getPacketHandler().write(var2);
}
@Nonnull
class="kw">private class="kw">static String displayName(@Nonnull PointEntry var0) {
class="kw">return var0.getName() != null && !var0.getName().isBlank() ? var0.getName() : var0.getId();
}
class="kw">private class="kw">static String fmt(double var0) {
class="kw">return String.format(Locale.ROOT, "%.3f", var0);
}
class="kw">private class="kw">static double parseOr(@Nullable String var0, double var1) {
if (var0 != null && !var0.isBlank()) {
try {
class="kw">return Double.parseDouble(var0.trim());
} catch (NumberFormatException var4) {
class="kw">return var1;
}
} else {
class="kw">return var1;
}
}
@Nullable
class="kw">private PointEntry resolvePoint() {
PointManager var1 = getManagerForWorld(this.selectedWorld);
class="kw">return var1 != null && this.selectedId != null ? var1.getPoint(this.selectedId) : null;
}
@Nullable
class="kw">private class="kw">static PointManager getManagerForWorld(@Nonnull String var0) {
class="kw">return PointsPlugin.get().getManagerForWorld(var0);
}
@Nullable
class="kw">private class="kw">static World getWorldByName(@Nonnull String var0) {
class="kw">return PointsPlugin.get().getWorldByName(var0);
}
class="kw">public class="kw">static class PageData {
class="kw">static class="kw">final String KEY_ACTION = "Action";
class="kw">static class="kw">final String KEY_ID = "Id";
class="kw">static class="kw">final String KEY_WORLD = "@WorldName";
class="kw">static class="kw">final String KEY_FILTER = "@FilterText";
class="kw">static class="kw">final String KEY_NAME = "@Name";
class="kw">static class="kw">final String KEY_TAG_KEY = "@TagKey";
class="kw">static class="kw">final String KEY_TAG_VALUE = "@TagValue";
class="kw">static class="kw">final String KEY_REMOVE_KEY = "RemoveKey";
class="kw">static class="kw">final String KEY_POS_X = "@PosX";
class="kw">static class="kw">final String KEY_POS_Y = "@PosY";
class="kw">static class="kw">final String KEY_POS_Z = "@PosZ";
class="kw">static class="kw">final String KEY_ROT_X = "@RotX";
class="kw">static class="kw">final String KEY_ROT_Y = "@RotY";
class="kw">static class="kw">final String KEY_ROT_Z = "@RotZ";
class="kw">public class="kw">static class="kw">final BuilderCodec<PointInspectorPage.PageData> CODEC = BuilderCodec.builder(
PointInspectorPage.PageData.class, PointInspectorPage.PageData::new
)
.addField(new KeyedCodec<>("Action", Codec.STRING), (var0, var1) -> var0.action = var1, var0 -> var0.action)
.addField(new KeyedCodec<>("Id", Codec.STRING), (var0, var1) -> var0.id = var1, var0 -> var0.id)
.addField(new KeyedCodec<>("@WorldName", Codec.STRING), (var0, var1) -> var0.worldName = var1, var0 -> var0.worldName)
.addField(new KeyedCodec<>("@FilterText", Codec.STRING), (var0, var1) -> var0.filterText = var1, var0 -> var0.filterText)
.addField(new KeyedCodec<>("@Name", Codec.STRING), (var0, var1) -> var0.name = var1, var0 -> var0.name)
.addField(new KeyedCodec<>("@TagKey", Codec.STRING), (var0, var1) -> var0.tagKey = var1, var0 -> var0.tagKey)
.addField(new KeyedCodec<>("@TagValue", Codec.STRING), (var0, var1) -> var0.tagValue = var1, var0 -> var0.tagValue)
.addField(new KeyedCodec<>("RemoveKey", Codec.STRING), (var0, var1) -> var0.removeKey = var1, var0 -> var0.removeKey)
.addField(new KeyedCodec<>("@PosX", Codec.STRING), (var0, var1) -> var0.posX = var1, var0 -> var0.posX)
.addField(new KeyedCodec<>("@PosY", Codec.STRING), (var0, var1) -> var0.posY = var1, var0 -> var0.posY)
.addField(new KeyedCodec<>("@PosZ", Codec.STRING), (var0, var1) -> var0.posZ = var1, var0 -> var0.posZ)
.addField(new KeyedCodec<>("@RotX", Codec.STRING), (var0, var1) -> var0.rotX = var1, var0 -> var0.rotX)
.addField(new KeyedCodec<>("@RotY", Codec.STRING), (var0, var1) -> var0.rotY = var1, var0 -> var0.rotY)
.addField(new KeyedCodec<>("@RotZ", Codec.STRING), (var0, var1) -> var0.rotZ = var1, var0 -> var0.rotZ)
.build();
class="kw">private String action;
class="kw">private String id;
class="kw">private String worldName;
class="kw">private String filterText;
class="kw">private String name;
class="kw">private String tagKey;
class="kw">private String tagValue;
class="kw">private String removeKey;
class="kw">private String posX;
class="kw">private String posY;
class="kw">private String posZ;
class="kw">private String rotX;
class="kw">private String rotY;
class="kw">private String rotZ;
class="kw">public PageData() {
}
}
}