更改陶瓦联机反馈表入口展示方式 (#4623)
This commit is contained in:
@@ -26,6 +26,7 @@ import org.jackhuang.hmcl.terracotta.provider.MacOSProvider;
|
|||||||
import org.jackhuang.hmcl.util.gson.JsonUtils;
|
import org.jackhuang.hmcl.util.gson.JsonUtils;
|
||||||
import org.jackhuang.hmcl.util.i18n.LocalizedText;
|
import org.jackhuang.hmcl.util.i18n.LocalizedText;
|
||||||
import org.jackhuang.hmcl.util.io.FileUtils;
|
import org.jackhuang.hmcl.util.io.FileUtils;
|
||||||
|
import org.jackhuang.hmcl.util.io.NetworkUtils;
|
||||||
import org.jackhuang.hmcl.util.platform.Architecture;
|
import org.jackhuang.hmcl.util.platform.Architecture;
|
||||||
import org.jackhuang.hmcl.util.platform.OSVersion;
|
import org.jackhuang.hmcl.util.platform.OSVersion;
|
||||||
import org.jackhuang.hmcl.util.platform.OperatingSystem;
|
import org.jackhuang.hmcl.util.platform.OperatingSystem;
|
||||||
@@ -57,7 +58,6 @@ public final class TerracottaMetadata {
|
|||||||
@SerializedName("version_legacy") String legacy,
|
@SerializedName("version_legacy") String legacy,
|
||||||
@SerializedName("version_recent") List<String> recent,
|
@SerializedName("version_recent") List<String> recent,
|
||||||
@SerializedName("version_latest") String latest,
|
@SerializedName("version_latest") String latest,
|
||||||
@SerializedName("feedback_url") String feedbackURL,
|
|
||||||
|
|
||||||
@SerializedName("classifiers") Map<String, String> classifiers,
|
@SerializedName("classifiers") Map<String, String> classifiers,
|
||||||
@SerializedName("downloads") List<String> downloads,
|
@SerializedName("downloads") List<String> downloads,
|
||||||
@@ -88,7 +88,10 @@ public final class TerracottaMetadata {
|
|||||||
public static final ITerracottaProvider PROVIDER;
|
public static final ITerracottaProvider PROVIDER;
|
||||||
public static final String PACKAGE_NAME;
|
public static final String PACKAGE_NAME;
|
||||||
public static final List<Link> PACKAGE_LINKS;
|
public static final List<Link> PACKAGE_LINKS;
|
||||||
public static final String FEEDBACK_LINK;
|
public static final String FEEDBACK_LINK = NetworkUtils.withQuery("https://docs.hmcl.net/multiplayer/feedback.html", Map.of(
|
||||||
|
"v", "v1",
|
||||||
|
"launcher_version", Metadata.VERSION
|
||||||
|
));
|
||||||
|
|
||||||
private static final Pattern LEGACY;
|
private static final Pattern LEGACY;
|
||||||
private static final List<String> RECENT;
|
private static final List<String> RECENT;
|
||||||
@@ -105,7 +108,6 @@ public final class TerracottaMetadata {
|
|||||||
LEGACY = Pattern.compile(config.legacy);
|
LEGACY = Pattern.compile(config.legacy);
|
||||||
RECENT = config.recent;
|
RECENT = config.recent;
|
||||||
LATEST = config.latest;
|
LATEST = config.latest;
|
||||||
FEEDBACK_LINK = config.feedbackURL;
|
|
||||||
|
|
||||||
ProviderContext context = locateProvider(config);
|
ProviderContext context = locateProvider(config);
|
||||||
PROVIDER = context != null ? context.provider() : null;
|
PROVIDER = context != null ? context.provider() : null;
|
||||||
|
|||||||
@@ -83,6 +83,7 @@ import java.time.format.DateTimeFormatter;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
import static org.jackhuang.hmcl.setting.ConfigHolder.config;
|
import static org.jackhuang.hmcl.setting.ConfigHolder.config;
|
||||||
import static org.jackhuang.hmcl.setting.ConfigHolder.globalConfig;
|
import static org.jackhuang.hmcl.setting.ConfigHolder.globalConfig;
|
||||||
@@ -284,7 +285,18 @@ public class TerracottaControllerPage extends StackPane {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (ThreadLocalRandom.current().nextDouble() < 0.02D) {
|
||||||
|
LineButton feedback = LineButton.of();
|
||||||
|
feedback.setLeftIcon(SVG.FEEDBACK);
|
||||||
|
feedback.setTitle(i18n("terracotta.feedback.title"));
|
||||||
|
feedback.setSubtitle(i18n("terracotta.feedback.desc"));
|
||||||
|
feedback.setRightIcon(SVG.OPEN_IN_NEW);
|
||||||
|
FXUtils.onClicked(feedback, () -> FXUtils.openLink(TerracottaMetadata.FEEDBACK_LINK));
|
||||||
|
|
||||||
|
nodesProperty.setAll(flow, host, guest, feedback);
|
||||||
|
} else {
|
||||||
nodesProperty.setAll(flow, host, guest);
|
nodesProperty.setAll(flow, host, guest);
|
||||||
|
}
|
||||||
} else if (state instanceof TerracottaState.HostScanning) {
|
} else if (state instanceof TerracottaState.HostScanning) {
|
||||||
statusProperty.set(i18n("terracotta.status.scanning"));
|
statusProperty.set(i18n("terracotta.status.scanning"));
|
||||||
progressProperty.set(-1);
|
progressProperty.set(-1);
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ package org.jackhuang.hmcl.ui.terracotta;
|
|||||||
import javafx.beans.property.ReadOnlyObjectProperty;
|
import javafx.beans.property.ReadOnlyObjectProperty;
|
||||||
import javafx.beans.property.ReadOnlyObjectWrapper;
|
import javafx.beans.property.ReadOnlyObjectWrapper;
|
||||||
import org.jackhuang.hmcl.Metadata;
|
import org.jackhuang.hmcl.Metadata;
|
||||||
|
import org.jackhuang.hmcl.terracotta.TerracottaMetadata;
|
||||||
import org.jackhuang.hmcl.ui.FXUtils;
|
import org.jackhuang.hmcl.ui.FXUtils;
|
||||||
import org.jackhuang.hmcl.ui.SVG;
|
import org.jackhuang.hmcl.ui.SVG;
|
||||||
import org.jackhuang.hmcl.ui.animation.ContainerAnimations;
|
import org.jackhuang.hmcl.ui.animation.ContainerAnimations;
|
||||||
@@ -52,6 +53,12 @@ public class TerracottaPage extends DecoratorAnimatedPage implements DecoratorPa
|
|||||||
transitionPane.setContent(newValue.getNode(), ContainerAnimations.FADE);
|
transitionPane.setContent(newValue.getNode(), ContainerAnimations.FADE);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
AdvancedListItem feedback = new AdvancedListItem();
|
||||||
|
feedback.setLeftGraphic(wrap(SVG.FEEDBACK));
|
||||||
|
feedback.setActionButtonVisible(false);
|
||||||
|
feedback.setTitle(i18n("terracotta.feedback.title"));
|
||||||
|
feedback.setOnAction(e -> FXUtils.openLink(TerracottaMetadata.FEEDBACK_LINK));
|
||||||
|
|
||||||
AdvancedListItem chatItem = new AdvancedListItem();
|
AdvancedListItem chatItem = new AdvancedListItem();
|
||||||
chatItem.setLeftGraphic(wrap(SVG.CHAT));
|
chatItem.setLeftGraphic(wrap(SVG.CHAT));
|
||||||
chatItem.setActionButtonVisible(false);
|
chatItem.setActionButtonVisible(false);
|
||||||
@@ -67,6 +74,7 @@ public class TerracottaPage extends DecoratorAnimatedPage implements DecoratorPa
|
|||||||
AdvancedListBox sideBar = new AdvancedListBox()
|
AdvancedListBox sideBar = new AdvancedListBox()
|
||||||
.addNavigationDrawerTab(tab, statusPage, i18n("terracotta.status"), SVG.TUNE)
|
.addNavigationDrawerTab(tab, statusPage, i18n("terracotta.status"), SVG.TUNE)
|
||||||
.startCategory(i18n("help").toUpperCase(Locale.ROOT))
|
.startCategory(i18n("help").toUpperCase(Locale.ROOT))
|
||||||
|
.add(feedback)
|
||||||
.add(chatItem)
|
.add(chatItem)
|
||||||
.add(easytierItem);
|
.add(easytierItem);
|
||||||
FXUtils.setLimitWidth(sideBar, 200);
|
FXUtils.setLimitWidth(sideBar, 200);
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
"0.3.9-rc.10"
|
"0.3.9-rc.10"
|
||||||
],
|
],
|
||||||
"version_latest": "0.3.10",
|
"version_latest": "0.3.10",
|
||||||
"feedback_url": "https://f.kdocs.cn/ksform/w/write/njMwdtgD?channel=n4awqa",
|
|
||||||
"classifiers": {
|
"classifiers": {
|
||||||
"linux-arm64": "sha256:001b6b1e220e98dffd84198a3e16855644cad27900562c78d610b0bf50138d17",
|
"linux-arm64": "sha256:001b6b1e220e98dffd84198a3e16855644cad27900562c78d610b0bf50138d17",
|
||||||
"linux-x86_64": "sha256:b133ddb796ff52879fb0c38e68ef7ea968d3eaec77f27ea274c701888e795782",
|
"linux-x86_64": "sha256:b133ddb796ff52879fb0c38e68ef7ea968d3eaec77f27ea274c701888e795782",
|
||||||
|
|||||||
Reference in New Issue
Block a user