From 0325150267455f541f4c2539e5847632a96bcb75 Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 1 Feb 2018 09:55:01 -0500 Subject: [PATCH] runescape-client: refactor for 162 --- .../api/events/ClanMembersChanged.java | 32 ------ .../mixins/PlayerIsClanMemberMixin.java | 103 ------------------ .../runelite/mixins/PlayerIsFriendMixin.java | 98 ----------------- .../runelite/mixins/PlayerIsIgnoredMixin.java | 87 --------------- .../net/runelite/mixins/RSFriendMixin.java | 63 ----------- .../java/net/runelite/rs/api/RSIgnore.java | 36 ------ 6 files changed, 419 deletions(-) delete mode 100644 runelite-api/src/main/java/net/runelite/api/events/ClanMembersChanged.java delete mode 100644 runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsClanMemberMixin.java delete mode 100644 runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsFriendMixin.java delete mode 100644 runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsIgnoredMixin.java delete mode 100644 runelite-mixins/src/main/java/net/runelite/mixins/RSFriendMixin.java delete mode 100644 runescape-api/src/main/java/net/runelite/rs/api/RSIgnore.java diff --git a/runelite-api/src/main/java/net/runelite/api/events/ClanMembersChanged.java b/runelite-api/src/main/java/net/runelite/api/events/ClanMembersChanged.java deleted file mode 100644 index 21cafc3131..0000000000 --- a/runelite-api/src/main/java/net/runelite/api/events/ClanMembersChanged.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * Copyright (c) 2017, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.api.events; - -import lombok.Data; - -@Data -public class ClanMembersChanged -{ -} diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsClanMemberMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsClanMemberMixin.java deleted file mode 100644 index 9feaf04db2..0000000000 --- a/runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsClanMemberMixin.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright (c) 2018, UniquePassive - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.mixins; - -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; -import java.util.concurrent.TimeUnit; -import net.runelite.api.mixins.Inject; -import net.runelite.api.mixins.Mixin; -import net.runelite.api.mixins.Shadow; -import net.runelite.rs.api.RSClanMember; -import net.runelite.rs.api.RSClient; - -@Mixin(RSClient.class) -public abstract class PlayerIsClanMemberMixin implements RSClient -{ - @Shadow("clanChatCount") - private static int clanChatCount; - - @Inject - private static int oldClanChatCount; - - @Inject - private static Cache cachedClanMembers; - - @Inject - @Override - public boolean isClanMember(String name) - { - if (name == null) - { - return false; - } - - if (cachedClanMembers == null) - { - cachedClanMembers = CacheBuilder - .newBuilder() - .expireAfterAccess(1, TimeUnit.MINUTES) - .build(); - } - - if (oldClanChatCount != clanChatCount) - { - cachedClanMembers.invalidateAll(); - oldClanChatCount = clanChatCount; - } - - Boolean isClanMember = cachedClanMembers.getIfPresent(name); - - if (isClanMember == null) - { - isClanMember = false; - - final RSClanMember[] clanMembers = getClanMembers(); - - if (clanMembers == null) - { - return false; - } - - for (RSClanMember clanMember : clanMembers) - { - if (clanMember == null) - { - continue; - } - - if (name.equals(clanMember.getUsername())) - { - isClanMember = true; - break; - } - } - - cachedClanMembers.put(name, isClanMember); - } - - return isClanMember; - } -} diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsFriendMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsFriendMixin.java deleted file mode 100644 index 0f066951c5..0000000000 --- a/runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsFriendMixin.java +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright (c) 2018, UniquePassive - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.mixins; - -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; -import java.util.concurrent.TimeUnit; -import net.runelite.api.mixins.Copy; -import net.runelite.api.mixins.Inject; -import net.runelite.api.mixins.Mixin; -import net.runelite.api.mixins.Replace; -import net.runelite.api.mixins.Shadow; -import net.runelite.rs.api.RSClient; - -@Mixin(RSClient.class) -public abstract class PlayerIsFriendMixin implements RSClient -{ - @Shadow("friendCount") - private static int friendCount; - - @Inject - private static int oldFriendCount; - - @Inject - private static Cache cachedFriends; - - @Inject - private static Cache cachedOnlineFriends; - - @Copy("isFriended") - private static boolean rs$isFriended(String name, boolean mustBeLoggedIn) - { - throw new IllegalStateException(); - } - - @Replace("isFriended") - private static boolean rl$isFriended(String name, boolean mustBeLoggedIn) - { - if (name == null) - { - return false; - } - - if (cachedFriends == null) - { - cachedFriends = CacheBuilder - .newBuilder() - .expireAfterAccess(1, TimeUnit.MINUTES) - .build(); - - cachedOnlineFriends = CacheBuilder - .newBuilder() - .expireAfterAccess(1, TimeUnit.MINUTES) - .build(); - } - - if (oldFriendCount != friendCount) - { - cachedFriends.invalidateAll(); - cachedOnlineFriends.invalidateAll(); - - oldFriendCount = friendCount; - } - - Cache cache = mustBeLoggedIn ? cachedOnlineFriends : cachedFriends; - Boolean isFriended = cache.getIfPresent(name); - - if (isFriended == null) - { - isFriended = rs$isFriended(name, mustBeLoggedIn); - cache.put(name, isFriended); - } - - return isFriended; - } -} diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsIgnoredMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsIgnoredMixin.java deleted file mode 100644 index c03b79b523..0000000000 --- a/runelite-mixins/src/main/java/net/runelite/mixins/PlayerIsIgnoredMixin.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2018, UniquePassive - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.mixins; - -import com.google.common.cache.Cache; -import com.google.common.cache.CacheBuilder; -import java.util.concurrent.TimeUnit; -import net.runelite.api.mixins.Copy; -import net.runelite.api.mixins.Inject; -import net.runelite.api.mixins.Mixin; -import net.runelite.api.mixins.Replace; -import net.runelite.api.mixins.Shadow; -import net.runelite.rs.api.RSClient; - -@Mixin(RSClient.class) -public abstract class PlayerIsIgnoredMixin implements RSClient -{ - @Shadow("ignoreCount") - private static int ignoreCount; - - @Inject - private static int oldIgnoreCount; - - @Inject - private static Cache cachedIgnored; - - @Copy("isIgnored") - private static boolean rs$isIgnored(String name) - { - throw new IllegalStateException(); - } - - @Replace("isIgnored") - private static boolean rl$isIgnored(String name) - { - if (name == null) - { - return false; - } - - if (cachedIgnored == null) - { - cachedIgnored = CacheBuilder - .newBuilder() - .expireAfterAccess(1, TimeUnit.MINUTES) - .build(); - } - - if (oldIgnoreCount != ignoreCount) - { - cachedIgnored.invalidateAll(); - oldIgnoreCount = ignoreCount; - } - - Boolean isIgnored = cachedIgnored.getIfPresent(name); - - if (isIgnored == null) - { - isIgnored = rs$isIgnored(name); - cachedIgnored.put(name, isIgnored); - } - - return isIgnored; - } -} diff --git a/runelite-mixins/src/main/java/net/runelite/mixins/RSFriendMixin.java b/runelite-mixins/src/main/java/net/runelite/mixins/RSFriendMixin.java deleted file mode 100644 index 40d70d7ad2..0000000000 --- a/runelite-mixins/src/main/java/net/runelite/mixins/RSFriendMixin.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright (c) 2018, UniquePassive - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.mixins; - -import com.google.common.cache.Cache; -import net.runelite.api.mixins.FieldHook; -import net.runelite.api.mixins.Inject; -import net.runelite.api.mixins.Mixin; -import net.runelite.api.mixins.Shadow; -import net.runelite.rs.api.RSFriend; - -@Mixin(RSFriend.class) -public abstract class RSFriendMixin implements RSFriend -{ - @Shadow("cachedFriends") - private static Cache cachedFriends; - - @Shadow("cachedOnlineFriends") - private static Cache cachedOnlineFriends; - - @FieldHook("previousName") - @Inject - public void previousNameChanged(int idx) - { - if (cachedFriends != null) - { - cachedFriends.invalidate(getPreviousName()); - cachedOnlineFriends.invalidate(getPreviousName()); - } - } - - @FieldHook("world") - @Inject - public void worldChanged(int idx) - { - if (cachedFriends != null) - { - cachedOnlineFriends.invalidate(getName()); - } - } -} diff --git a/runescape-api/src/main/java/net/runelite/rs/api/RSIgnore.java b/runescape-api/src/main/java/net/runelite/rs/api/RSIgnore.java deleted file mode 100644 index 7a89de3015..0000000000 --- a/runescape-api/src/main/java/net/runelite/rs/api/RSIgnore.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2016-2017, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.rs.api; - -import net.runelite.mapping.Import; - -public interface RSIgnore -{ - @Import("name") - String getName(); - - @Import("previousName") - String getPreviousName(); -}