wasdplugin: Show Ironman Icons when chat is locked (#6347)

This commit is contained in:
Hydrox6
2018-11-18 13:00:48 +00:00
committed by Tomas Slusny
parent eb45ab09ef
commit f803e58479
3 changed files with 86 additions and 6 deletions

View File

@@ -0,0 +1,58 @@
/*
* Copyright (c) 2018, Hydrox6 <ikada@protonmail.ch>
* 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;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
/**
* Enum of all official icons that Jagex uses in chat.
*/
@RequiredArgsConstructor
@Getter
public enum IconID
{
PLAYER_MODERATOR(0),
JAGEX_MODERATOR(1),
IRONMAN(2),
ULTIMATE_IRONMAN(3),
DMM_SKULL_5_KEYS(4),
DMM_SKULL_4_KEYS(5),
DMM_SKULL_3_KEYS(6),
DMM_SKULL_2_KEYS(7),
DMM_SKULL_1_KEYS(8),
SKULL(9),
HARDCORE_IRONMAN(10),
NO_ENTRY(11),
CHAIN_LINK(12);
private final int index;
@Override
public String toString()
{
return "<img=" + String.valueOf(this.index) + ">";
}
}

View File

@@ -39,6 +39,7 @@ import net.runelite.api.ChatMessageType;
import net.runelite.api.Client;
import net.runelite.api.Experience;
import net.runelite.api.GameState;
import net.runelite.api.IconID;
import net.runelite.api.ItemComposition;
import net.runelite.api.MessageNode;
import net.runelite.api.events.ChatMessage;
@@ -811,15 +812,15 @@ public class ChatCommandsPlugin extends Plugin implements ChatboxInputListener
*/
private static HiscoreEndpoint getHiscoreEndpointByName(final String name)
{
if (name.contains("<img=2>"))
if (name.contains(IconID.IRONMAN.toString()))
{
return toEndPoint(AccountType.IRONMAN);
}
else if (name.contains("<img=3>"))
else if (name.contains(IconID.ULTIMATE_IRONMAN.toString()))
{
return toEndPoint(AccountType.ULTIMATE_IRONMAN);
}
else if (name.contains("<img=10>"))
else if (name.contains(IconID.HARDCORE_IRONMAN.toString()))
{
return toEndPoint(AccountType.HARDCORE_IRONMAN);
}

View File

@@ -34,6 +34,7 @@ import lombok.Getter;
import lombok.Setter;
import net.runelite.api.Client;
import net.runelite.api.GameState;
import net.runelite.api.IconID;
import net.runelite.api.VarClientInt;
import net.runelite.api.VarClientStr;
import net.runelite.api.Varbits;
@@ -141,7 +142,7 @@ public class WASDCameraPlugin extends Plugin
{
if (chatboxFocused() && !typing)
{
chatboxInput.setText(client.getLocalPlayer().getName() + ": " + PRESS_ENTER_TO_CHAT);
chatboxInput.setText(getPlayerNameWithIcon() + ": " + PRESS_ENTER_TO_CHAT);
}
}
break;
@@ -164,7 +165,7 @@ public class WASDCameraPlugin extends Plugin
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
if (chatboxInput != null)
{
chatboxInput.setText(client.getLocalPlayer().getName() + ": " + PRESS_ENTER_TO_CHAT);
chatboxInput.setText(getPlayerNameWithIcon() + ": " + PRESS_ENTER_TO_CHAT);
}
}
}
@@ -181,9 +182,29 @@ public class WASDCameraPlugin extends Plugin
{
final boolean isChatboxTransparent = client.isResized() && client.getVar(Varbits.TRANSPARENT_CHATBOX) == 1;
final Color textColor = isChatboxTransparent ? JagexColors.CHAT_TYPED_TEXT_TRANSPARENT_BACKGROUND : JagexColors.CHAT_TYPED_TEXT_OPAQUE_BACKGROUND;
chatboxInput.setText(client.getLocalPlayer().getName() + ": " + ColorUtil.wrapWithColorTag(client.getVar(VarClientStr.CHATBOX_TYPED_TEXT) + "*", textColor));
chatboxInput.setText(getPlayerNameWithIcon() + ": " + ColorUtil.wrapWithColorTag(client.getVar(VarClientStr.CHATBOX_TYPED_TEXT) + "*", textColor));
}
}
}
}
private String getPlayerNameWithIcon()
{
IconID icon;
switch (client.getAccountType())
{
case IRONMAN:
icon = IconID.IRONMAN;
break;
case ULTIMATE_IRONMAN:
icon = IconID.ULTIMATE_IRONMAN;
break;
case HARDCORE_IRONMAN:
icon = IconID.HARDCORE_IRONMAN;
break;
default:
return client.getLocalPlayer().getName();
}
return icon + client.getLocalPlayer().getName();
}
}