From e9b138447ece24ca2125453024b8e8311a7f921c Mon Sep 17 00:00:00 2001 From: Max Weber Date: Thu, 3 Feb 2022 17:08:43 -0700 Subject: [PATCH] config: implement toString/equals/hashCode for Config proxies --- .../client/config/ConfigInvocationHandler.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java b/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java index 1553bc904a..217afe6b07 100644 --- a/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java +++ b/runelite-client/src/main/java/net/runelite/client/config/ConfigInvocationHandler.java @@ -63,6 +63,21 @@ class ConfigInvocationHandler implements InvocationHandler Class iface = proxy.getClass().getInterfaces()[0]; + if ("toString".equals(method.getName()) && args == null) + { + return iface.getSimpleName(); + } + + if ("hashCode".equals(method.getName()) && args == null) + { + return System.identityHashCode(proxy); + } + + if ("equals".equals(method.getName()) && args != null && args.length == 1) + { + return proxy == args[0]; + } + ConfigGroup group = iface.getAnnotation(ConfigGroup.class); ConfigItem item = method.getAnnotation(ConfigItem.class);