diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/kittennotifier/KittenNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/kittennotifier/KittenNotifierPlugin.java index 45ef04e0d2..8af4de5513 100644 --- a/runelite-client/src/main/java/net/runelite/client/plugins/kittennotifier/KittenNotifierPlugin.java +++ b/runelite-client/src/main/java/net/runelite/client/plugins/kittennotifier/KittenNotifierPlugin.java @@ -56,7 +56,7 @@ public class KittenNotifierPlugin extends Plugin{ if (!config.catOwned()) { for (NPC npc : client.getNpcs()) { if (npc.getInteracting() != null) { - if (npc.getName().equals("Cat") && !config.catOwned()) { + if (npc.getName().equalsIgnoreCase("Cat") && !config.catOwned()) { // If this if statement is included in previous it could null. if (npc.getInteracting().getName().contentEquals(client.getLocalPlayer().getName())) { config.catOwned(true); diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java deleted file mode 100644 index 25584f3a88..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/musicindicator/MusicIndicatorPlugin.java +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Copyright (c) 2019, Shaun Dreclin - * 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.client.plugins.musicindicator; - -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Function; -import java.util.stream.Collectors; -import javax.inject.Inject; -import net.runelite.api.ChatMessageType; -import net.runelite.api.Client; -import net.runelite.api.EnumComposition; -import net.runelite.api.EnumID; -import net.runelite.api.VarPlayer; -import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.GameTick; -import net.runelite.api.events.VarbitChanged; -import net.runelite.client.chat.ChatColorType; -import net.runelite.client.chat.ChatMessageBuilder; -import net.runelite.client.chat.ChatMessageManager; -import net.runelite.client.chat.QueuedMessage; -import net.runelite.client.eventbus.Subscribe; -import net.runelite.client.plugins.Plugin; -import net.runelite.client.plugins.PluginDescriptor; - -@PluginDescriptor( - name = "Music Track Indicator", - description = "Show chat notifications when unlocking music tracks" -) -public class MusicIndicatorPlugin extends Plugin -{ - private static final List MUSIC_TRACK_VARPS = ImmutableList.of( - VarPlayer.MUSIC_TRACKS_UNLOCKED_1, VarPlayer.MUSIC_TRACKS_UNLOCKED_2, VarPlayer.MUSIC_TRACKS_UNLOCKED_3, - VarPlayer.MUSIC_TRACKS_UNLOCKED_4, VarPlayer.MUSIC_TRACKS_UNLOCKED_5, VarPlayer.MUSIC_TRACKS_UNLOCKED_6, - VarPlayer.MUSIC_TRACKS_UNLOCKED_7, VarPlayer.MUSIC_TRACKS_UNLOCKED_8, VarPlayer.MUSIC_TRACKS_UNLOCKED_9, - VarPlayer.MUSIC_TRACKS_UNLOCKED_10, VarPlayer.MUSIC_TRACKS_UNLOCKED_11, VarPlayer.MUSIC_TRACKS_UNLOCKED_12, - VarPlayer.MUSIC_TRACKS_UNLOCKED_13, VarPlayer.MUSIC_TRACKS_UNLOCKED_14, VarPlayer.MUSIC_TRACKS_UNLOCKED_15, - VarPlayer.MUSIC_TRACKS_UNLOCKED_16, VarPlayer.MUSIC_TRACKS_UNLOCKED_17, VarPlayer.MUSIC_TRACKS_UNLOCKED_18, - VarPlayer.MUSIC_TRACKS_UNLOCKED_19 - ); - - private static final Map VARP_INDEX_TO_VARPLAYER = MUSIC_TRACK_VARPS.stream() - .collect(Collectors.collectingAndThen(Collectors.toMap(VarPlayer::getId, Function.identity()), - ImmutableMap::copyOf)); - - @Inject - private Client client; - - @Inject - private ChatMessageManager chatMessageManager; - - // Mapping of relevant varps to their values, used to compare against new values - private final Map musicTrackVarpValues = new HashMap<>(); - - private boolean loggingIn; - - @Override - public void startUp() - { - loggingIn = true; - } - - @Override - public void shutDown() - { - musicTrackVarpValues.clear(); - } - - @Subscribe - public void onGameStateChanged(GameStateChanged event) - { - switch (event.getGameState()) - { - case LOGGING_IN: - case CONNECTION_LOST: - case HOPPING: - musicTrackVarpValues.clear(); - loggingIn = true; - } - } - - @Subscribe - public void onGameTick(GameTick event) - { - if (!loggingIn) - { - return; - } - - loggingIn = false; - - for (VarPlayer musicTrackVarp : MUSIC_TRACK_VARPS) - { - int value = client.getVar(musicTrackVarp); - musicTrackVarpValues.put(musicTrackVarp, value); - } - } - - @Subscribe - public void onVarbitChanged(VarbitChanged event) - { - int idx = event.getIndex(); - - VarPlayer varPlayer = VARP_INDEX_TO_VARPLAYER.get(idx); - if (varPlayer == null) - { - return; - } - - // Old varplayer values have not been initialized yet - if (musicTrackVarpValues.isEmpty()) - { - return; - } - - assert musicTrackVarpValues.containsKey(varPlayer); - - int newValue = client.getVar(varPlayer); - int oldValue = musicTrackVarpValues.put(varPlayer, newValue); - int musicTracksUnlocked = ~oldValue & newValue; - - if (musicTracksUnlocked == 0) - { - return; - } - - final EnumComposition names = client.getEnum(EnumID.MUSIC_TRACK_NAMES); - final int varpId = MUSIC_TRACK_VARPS.indexOf(varPlayer) + 1; - - for (int bit = 0; bit < Integer.SIZE; ++bit) - { - if ((musicTracksUnlocked & (1 << bit)) == 0) - { - continue; - } - - int musicTrackId = getTrackId(varpId, bit); - String musicTrackName = names.getStringValue(musicTrackId); - - sendChatMessage("You have unlocked a new music track: " + musicTrackName + "."); - } - } - - /** - * Get the id for a track identified by the given varp and a bit index - * @param variableId - * @param bit - * @return - */ - private int getTrackId(int variableId, int bit) - { - // values are packed into a coordgrid - int packed = (variableId << 14) | bit; - EnumComposition ids = client.getEnum(EnumID.MUSIC_TRACK_IDS); - for (int key : ids.getKeys()) - { - int value = ids.getIntValue(key); - if (value == packed) - { - return key; - } - } - return -1; - } - - private void sendChatMessage(String chatMessage) - { - final String message = new ChatMessageBuilder() - .append(ChatColorType.HIGHLIGHT) - .append(chatMessage) - .build(); - - chatMessageManager.queue( - QueuedMessage.builder() - .type(ChatMessageType.CONSOLE) - .runeLiteFormattedMessage(message) - .build()); - } -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierConfig.java b/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierConfig.java deleted file mode 100644 index 8bce5b84b7..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierConfig.java +++ /dev/null @@ -1,11 +0,0 @@ -package net.runelite.client.plugins.nexthitnotifier; - - -import net.runelite.client.config.Config; -import net.runelite.client.config.ConfigGroup; - -@ConfigGroup("nexthitnotifier") -public interface NextHitNotifierConfig extends Config -{ - -} diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierOverlay.java b/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierOverlay.java deleted file mode 100644 index fe47f37307..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierOverlay.java +++ /dev/null @@ -1,59 +0,0 @@ -package net.runelite.client.plugins.nexthitnotifier; - -import net.runelite.api.Client; -import net.runelite.client.ui.overlay.Overlay; -import net.runelite.client.ui.overlay.OverlayPosition; -import net.runelite.client.ui.overlay.components.PanelComponent; -import net.runelite.client.ui.overlay.components.TitleComponent; -import net.runelite.client.util.MiscUtils; - -import javax.inject.Inject; -import java.awt.*; - -public class NextHitNotifierOverlay extends Overlay -{ - private final Client client; - private final NextHitNotifierPlugin plugin; - private final NextHitNotifierConfig config; - - private final PanelComponent panelComponent = new PanelComponent(); - private final Dimension panelSize = new Dimension(48, 0); - - @Inject - private NextHitNotifierOverlay(Client client, NextHitNotifierPlugin plugin, NextHitNotifierConfig config) - { - setPosition(OverlayPosition.BOTTOM_LEFT); - //setPosition(OverlayPosition.DYNAMIC); - //setPosition(OverlayPosition.DETACHED); - - this.client = client; - this.plugin = plugin; - this.config = config; - } - - @Override - public Dimension render(Graphics2D graphics) - { - panelComponent.getChildren().clear(); - panelComponent.setPreferredSize(panelSize); - - String lastHitText = Integer.toString(plugin.lastHit); - int lastHit = plugin.lastHit; - - if (plugin.showTime < 0) - { - lastHitText = "0"; - lastHit = 0; - } - - int g = (int)MiscUtils.clamp((float)Math.floor(lastHit / 30.f) * 255.f, 0.f, 255.f); - int r = 255 - g; - - Color textColor = Color.getHSBColor(Color.RGBtoHSB(r, g, 0, null)[0], 1.f, 1.f); - - panelComponent.getChildren().add(TitleComponent.builder().text("Next hit:").color(Color.YELLOW).build()); - panelComponent.getChildren().add(TitleComponent.builder().text(lastHitText).color(textColor).build()); - - return panelComponent.render(graphics); - } -} \ No newline at end of file diff --git a/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierPlugin.java b/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierPlugin.java deleted file mode 100644 index ce6c1ca925..0000000000 --- a/runelite-client/src/main/java/net/runelite/client/plugins/nexthitnotifier/NextHitNotifierPlugin.java +++ /dev/null @@ -1,117 +0,0 @@ -package net.runelite.client.plugins.nexthitnotifier; - -import net.runelite.client.eventbus.Subscribe; -import com.google.inject.Provides; -import net.runelite.api.Client; -import net.runelite.api.GameState; -import net.runelite.api.Skill; -import net.runelite.api.events.ExperienceChanged; -import net.runelite.api.events.GameStateChanged; -import net.runelite.api.events.GameTick; -import net.runelite.client.config.ConfigManager; -import net.runelite.client.plugins.Plugin; -import net.runelite.client.plugins.PluginDescriptor; -import net.runelite.client.ui.overlay.OverlayManager; - -import javax.inject.Inject; - -@PluginDescriptor( - name = "Next Hit Notifier", - description = "Shows estimated next hit based on xp drop.", - tags = { "experience", "damage", "overlay", "pking", "bogla" }, - enabledByDefault = false, - type = "utility" -) -public class NextHitNotifierPlugin extends Plugin -{ - @Inject - private Client client; - - @Inject - private OverlayManager overlayManager; - - @Inject - private NextHitNotifierOverlay overlay; - - private int lastHpXp = 0; - int lastHit = 0; - int showTime = 0; - - @Provides - NextHitNotifierConfig getConfig(ConfigManager configManager) - { - return configManager.getConfig(NextHitNotifierConfig.class); - } - - @Override - protected void startUp() throws Exception - { - overlayManager.add(overlay); - } - - @Override - protected void shutDown() throws Exception - { - overlayManager.remove(overlay); - } - - @Subscribe - public void onGameStateChanged(GameStateChanged event) - { - if (event.getGameState() == GameState.LOGGED_IN) - { - lastHpXp = client.getSkillExperience(Skill.HITPOINTS); - lastHit = 0; - showTime = 0; - } - else - { - lastHpXp = 0; - lastHit = 0; - showTime = 0; - } - } - - @Subscribe - public void onGameTick(GameTick event) - { - if (showTime > 0) - showTime--; - else - lastHit = 0; - } - - @Subscribe - public void onExperienceChanged(ExperienceChanged event) - { - if (client.getGameState() != GameState.LOGGED_IN) - { - lastHpXp = 0; - lastHit = 0; - showTime = 0; - return; - } - - final Skill skill = event.getSkill(); - - if (skill != Skill.HITPOINTS) - return; - - final int currentXp = client.getSkillExperience(skill); - - int gainedXp = currentXp - lastHpXp; - - //filter out big xp drops (such as login) - if (gainedXp > 1000) - { - lastHpXp = client.getSkillExperience(skill); - return; - } - - lastHit = (int)Math.rint(gainedXp / 1.33f); - lastHpXp = currentXp; - showTime = 3; - } - - -}