From 8864b161f9b8c7748b2095d9768d67d389b96c54 Mon Sep 17 00:00:00 2001 From: Nassim Jahnke Date: Sun, 2 Apr 2023 09:40:35 +0200 Subject: [PATCH] Print plugin name in unsupported software matching --- .../api/platform/UnsupportedSoftware.java | 13 ++++++++++++- .../com/viaversion/viaversion/ViaManagerImpl.java | 5 +++-- .../viaversion/unsupported/UnsupportedPlugin.java | 7 ++++--- .../unsupported/UnsupportedServerSoftware.java | 9 +++++---- 4 files changed, 24 insertions(+), 10 deletions(-) diff --git a/api/src/main/java/com/viaversion/viaversion/api/platform/UnsupportedSoftware.java b/api/src/main/java/com/viaversion/viaversion/api/platform/UnsupportedSoftware.java index 69f5ba382..20ef96404 100644 --- a/api/src/main/java/com/viaversion/viaversion/api/platform/UnsupportedSoftware.java +++ b/api/src/main/java/com/viaversion/viaversion/api/platform/UnsupportedSoftware.java @@ -22,6 +22,8 @@ */ package com.viaversion.viaversion.api.platform; +import org.checkerframework.checker.nullness.qual.Nullable; + public interface UnsupportedSoftware { /** @@ -38,10 +40,19 @@ public interface UnsupportedSoftware { */ String getReason(); + /** + * Returns the name of unsupported software if present. + * + * @return name of unsupported software if it is matched, else null + */ + @Nullable String match(); + /** * Returns whether the unsupported software is present. * * @return true if the unsupported software is found */ - boolean findMatch(); + default boolean findMatch() { + return match() != null; + } } diff --git a/common/src/main/java/com/viaversion/viaversion/ViaManagerImpl.java b/common/src/main/java/com/viaversion/viaversion/ViaManagerImpl.java index 72d97ebc3..ff0142339 100644 --- a/common/src/main/java/com/viaversion/viaversion/ViaManagerImpl.java +++ b/common/src/main/java/com/viaversion/viaversion/ViaManagerImpl.java @@ -237,7 +237,8 @@ public class ViaManagerImpl implements ViaManager { private void unsupportedSoftwareWarning() { boolean found = false; for (final UnsupportedSoftware software : platform.getUnsupportedSoftwareClasses()) { - if (!software.findMatch()) { + final String match = software.match(); + if (match == null) { continue; } @@ -249,7 +250,7 @@ public class ViaManagerImpl implements ViaManager { found = true; } - platform.getLogger().severe("We strongly advise against using " + software.getName() + ":"); + platform.getLogger().severe("We strongly advise against using " + match + ":"); platform.getLogger().severe(software.getReason()); platform.getLogger().severe(""); } diff --git a/common/src/main/java/com/viaversion/viaversion/unsupported/UnsupportedPlugin.java b/common/src/main/java/com/viaversion/viaversion/unsupported/UnsupportedPlugin.java index 95da11a3b..9e496e4dc 100644 --- a/common/src/main/java/com/viaversion/viaversion/unsupported/UnsupportedPlugin.java +++ b/common/src/main/java/com/viaversion/viaversion/unsupported/UnsupportedPlugin.java @@ -23,6 +23,7 @@ import com.viaversion.viaversion.api.platform.UnsupportedSoftware; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; public final class UnsupportedPlugin implements UnsupportedSoftware { @@ -50,13 +51,13 @@ public final class UnsupportedPlugin implements UnsupportedSoftware { } @Override - public final boolean findMatch() { + public final @Nullable String match() { for (final String identifier : identifiers) { if (Via.getPlatform().hasPlugin(identifier)) { - return true; + return identifier; } } - return false; + return null; } public static final class Builder { diff --git a/common/src/main/java/com/viaversion/viaversion/unsupported/UnsupportedServerSoftware.java b/common/src/main/java/com/viaversion/viaversion/unsupported/UnsupportedServerSoftware.java index cebe298b0..3972c4f62 100644 --- a/common/src/main/java/com/viaversion/viaversion/unsupported/UnsupportedServerSoftware.java +++ b/common/src/main/java/com/viaversion/viaversion/unsupported/UnsupportedServerSoftware.java @@ -24,6 +24,7 @@ import java.util.Arrays; import java.util.Collections; import java.util.HashSet; import java.util.List; +import org.checkerframework.checker.nullness.qual.Nullable; public final class UnsupportedServerSoftware implements UnsupportedSoftware { @@ -53,20 +54,20 @@ public final class UnsupportedServerSoftware implements UnsupportedSoftware { } @Override - public final boolean findMatch() { + public final @Nullable String match() { for (String className : classNames) { try { Class.forName(className); - return true; + return name; } catch (ClassNotFoundException ignored) { } } for (UnsupportedMethods method : methods) { if (method.findMatch()) { - return true; + return name; } } - return false; + return null; } public static final class Builder {