wasdplugin: Show Ironman Icons when chat is locked (#6347)
This commit is contained in:
58
runelite-api/src/main/java/net/runelite/api/IconID.java
Normal file
58
runelite-api/src/main/java/net/runelite/api/IconID.java
Normal 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) + ">";
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -39,6 +39,7 @@ import net.runelite.api.ChatMessageType;
|
|||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.Experience;
|
import net.runelite.api.Experience;
|
||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
|
import net.runelite.api.IconID;
|
||||||
import net.runelite.api.ItemComposition;
|
import net.runelite.api.ItemComposition;
|
||||||
import net.runelite.api.MessageNode;
|
import net.runelite.api.MessageNode;
|
||||||
import net.runelite.api.events.ChatMessage;
|
import net.runelite.api.events.ChatMessage;
|
||||||
@@ -811,15 +812,15 @@ public class ChatCommandsPlugin extends Plugin implements ChatboxInputListener
|
|||||||
*/
|
*/
|
||||||
private static HiscoreEndpoint getHiscoreEndpointByName(final String name)
|
private static HiscoreEndpoint getHiscoreEndpointByName(final String name)
|
||||||
{
|
{
|
||||||
if (name.contains("<img=2>"))
|
if (name.contains(IconID.IRONMAN.toString()))
|
||||||
{
|
{
|
||||||
return toEndPoint(AccountType.IRONMAN);
|
return toEndPoint(AccountType.IRONMAN);
|
||||||
}
|
}
|
||||||
else if (name.contains("<img=3>"))
|
else if (name.contains(IconID.ULTIMATE_IRONMAN.toString()))
|
||||||
{
|
{
|
||||||
return toEndPoint(AccountType.ULTIMATE_IRONMAN);
|
return toEndPoint(AccountType.ULTIMATE_IRONMAN);
|
||||||
}
|
}
|
||||||
else if (name.contains("<img=10>"))
|
else if (name.contains(IconID.HARDCORE_IRONMAN.toString()))
|
||||||
{
|
{
|
||||||
return toEndPoint(AccountType.HARDCORE_IRONMAN);
|
return toEndPoint(AccountType.HARDCORE_IRONMAN);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ import lombok.Getter;
|
|||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
import net.runelite.api.Client;
|
import net.runelite.api.Client;
|
||||||
import net.runelite.api.GameState;
|
import net.runelite.api.GameState;
|
||||||
|
import net.runelite.api.IconID;
|
||||||
import net.runelite.api.VarClientInt;
|
import net.runelite.api.VarClientInt;
|
||||||
import net.runelite.api.VarClientStr;
|
import net.runelite.api.VarClientStr;
|
||||||
import net.runelite.api.Varbits;
|
import net.runelite.api.Varbits;
|
||||||
@@ -141,7 +142,7 @@ public class WASDCameraPlugin extends Plugin
|
|||||||
{
|
{
|
||||||
if (chatboxFocused() && !typing)
|
if (chatboxFocused() && !typing)
|
||||||
{
|
{
|
||||||
chatboxInput.setText(client.getLocalPlayer().getName() + ": " + PRESS_ENTER_TO_CHAT);
|
chatboxInput.setText(getPlayerNameWithIcon() + ": " + PRESS_ENTER_TO_CHAT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -164,7 +165,7 @@ public class WASDCameraPlugin extends Plugin
|
|||||||
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
|
Widget chatboxInput = client.getWidget(WidgetInfo.CHATBOX_INPUT);
|
||||||
if (chatboxInput != null)
|
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 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;
|
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();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user