Animated Clan Chat icon

Oogle

Development Services √
 
 
 
Apr 9, 2012
4,007
113
0
Hey fellas,

In my client sided, the icons are animated but when I send a message in the clanchat, they are just a static image and I was wondering what's wrong with this code?

Java:
    public static void sendMessage(Player player, String message) {
        ClanChat clan = player.getCurrentClanChat();
        if (clan == null) {
            player.getPacketSender().sendMessage("You're not in a clanchat channel.");
            return;
        }
        ClanChatRank rank = clan.getRank(player);
        if(clan.getRankRequirement()[ClanChat.RANK_REQUIRED_TO_TALK] != null) {
            if (rank == null || rank.ordinal() < clan.getRankRequirement()[ClanChat.RANK_REQUIRED_TO_TALK].ordinal()) {
                player.getPacketSender().sendMessage("You do not have the required rank to speak in this channel.");
                return;
            }
        }
        String bracketColor = "<col=16777215>";
        String clanNameColor = "<col=255>";
        String nameColor = "@bla@";
        String chatColor = "<col=993D00>";
        for (Player memberPlayer : clan.getMembers()) {
            if (memberPlayer != null) {
                if(memberPlayer.getRelations().getIgnoreList().contains(player.getLongUsername()))
                    continue;
                var rankImg = player.getRights().getRank();
                if(player.getGameMode() == GameMode.IRONMAN) {
                    rankImg += "<img=33>";
                } else if(player.getGameMode() == GameMode.HARDCORE_IRONMAN) {
                    rankImg += "<img=32>";
                } else if(player.getGameMode() == GameMode.GROUP_IRONMAN) {
                    rankImg += "<img=999>";
                }
                String encodedMessage = "<shad=0>"+rankImg + " " + NameUtils.capitalizeWords(player.getUsername()) + "</shad>:@or3@ "+ NameUtils.capitalize(message);
                if (encodedMessage.length() > 255) {
                    encodedMessage = encodedMessage.substring(0, 255);
                }
                memberPlayer.getPacketSender().sendMessage(encodedMessage);
            }
        }
    }

Client sided of how it's animated

private final int[] sponsorArray = {1361, 1362, 1363, 1364, 1365}; //spriteIcons

Java:
                    if ((chatType == 1 || chatType == 2)
                            && (chatType == 1 || publicChatMode == 0 || publicChatMode == 1 && isFriendOrSelf(name))) {
                        if (chatTypeView == 1 || chatTypeView == 0 || (playerRights > 0 && playerRights <= 4)) {
                            if (positionY > 0 && positionY < 210) {
                                int xPos = 11;
                                if (playerRights > 0 || ironman2 > 0) {
                                    if (playerRights > 0 && playerRights < 12) {
                                        SpriteLoader.sprites[679 + playerRights].drawSprite(xPos + 1 + offsetX,
                                                positionY - 11 + offsetY);
                                        xPos += 15;
                                    } else if (playerRights == 12) {
                                        SpriteLoader.sprites[sponsorArray[sponsorTick]].drawSprite(xPos + 1 + offsetX,
                                                positionY - 11 + offsetY);
                                        xPos += 15;
                                    } else if (playerRights == 13) {
                                        SpriteLoader.sprites[1031].drawSprite(xPos + 1 + offsetX,
                                                positionY - 11 + offsetY);
                                        xPos += 15;

                                    } else if (playerRights == 14) {
                                        SpriteLoader.sprites[693].drawSprite(xPos + 1 + offsetX,
                                                positionY - 11 + offsetY);
                                        xPos += 15;
                                    } else if (playerRights == 16) {
                                        SpriteLoader.sprites[supremeArray[supremeTick]].drawSprite(xPos + 1 + offsetX,
                                                positionY - 11 + offsetY);
                                        xPos += 15;
                                    } else if (playerRights == 17) {
                                        SpriteLoader.sprites[696].drawSprite(xPos + 1 + offsetX,
                                                positionY - 11 + offsetY);
                                        xPos += 15;
                                    } else if (playerRights == 18) {
                                        SpriteLoader.sprites[divineArray[divineTick]].drawSprite(xPos + 1 + offsetX,
                                                positionY - 11 + offsetY);
                                        xPos += 15;

                                    } else if (playerRights == 15) {
                                        SpriteLoader.sprites[694].drawSprite(xPos + 1 + offsetX,
                                                positionY - 11 + offsetY); // draws the one when ur messaging iirc.
                                        xPos += 15;
                                    } else if (playerRights == 19) {
                                        communityManager.drawSprite(xPos + 1 + offsetX, positionY - 11 + offsetY);
                                        xPos += 17;
                                    } else if (playerRights == 20) {
                                        eventManager.drawSprite(xPos + 1 + offsetX, positionY - 11 + offsetY);
                                        xPos += 19;
                                    }
                                    if (ironman2 > 0) {
                                        // System.out.println("playerRights: " + playerRights);
                                        if (ironman2 == 3)
                                            groupIron.drawSprite(xPos + 1 + offsetX, positionY - 11 + offsetY);
                                        else
                                            SpriteLoader.sprites[710 + ironman2].drawSprite(xPos + 1 + offsetX,
                                                    positionY - 11 + offsetY);
                                        xPos += 15;
                                    }
                                }
 
Last edited:
Not sure if it's something to do with this in RSFont in the client?

Java:
    public void drawBaseStringMoveXY(String string, int drawX, int drawY, int[] xModifier, int[] yModifier) {
        drawY -= baseCharacterHeight;
        int startIndex = -1;
        int modifierOffset = 0;
        for (int currentCharacter = 0; currentCharacter < string.length(); currentCharacter++) {
            int character = string.charAt(currentCharacter);
            if (character == 60) {
                startIndex = currentCharacter;
            } else {
                if (character == 62 && startIndex != -1) {
                    String effectString = string.substring(startIndex + 1, currentCharacter);
                    startIndex = -1;
                    if (effectString.equals(startEffect)) {
                        character = 60;
                    } else if (effectString.equals(endEffect)) {
                        character = 62;
                    } else if (effectString.equals(aRSString_4135)) {
                        character = 160;
                    } else if (effectString.equals(aRSString_4162)) {
                        character = 173;
                    } else if (effectString.equals(aRSString_4165)) {
                        character = 215;
                    } else if (effectString.equals(aRSString_4147)) {
                        character = 128;
                    } else if (effectString.equals(aRSString_4163)) {
                        character = 169;
                    } else if (effectString.equals(aRSString_4169)) {
                        character = 174;
                    } else {
                        if (effectString.startsWith(startImage)) {
                            try {
                                int xModI;
                                if (xModifier != null) {
                                    xModI = xModifier[modifierOffset];
                                } else {
                                    xModI = 0;
                                }
                                int yMod;
                                if (yModifier != null) {
                                    yMod = yModifier[modifierOffset];
                                } else {
                                    yMod = 0;
                                }
                                modifierOffset++;
                                int iconId = Integer.valueOf(effectString.substring(4));
                                Sprite icon = iconId == 997 ? Client.instance.eventManager : iconId == 998 ? Client.instance.communityManager : iconId == 999 ? Client.instance.groupIron : SpriteLoader.sprites[679 + iconId];
                                int iconOffsetY = icon.myHeight;
                                if (transparency == 256) {
                                    icon.drawSprite(drawX + xModI, (drawY + baseCharacterHeight - iconOffsetY + yMod));
                                } else {
                                    icon.drawSprite(drawX + xModI, (drawY + baseCharacterHeight - iconOffsetY + yMod),
                                            transparency);
                                }
                                drawX += icon.myWidth;
                            } catch (Exception exception) {
                                /* empty */
                            }
                        } else {
                            setTextEffects(effectString);
                        }
                        continue;
                    }
                }
 

Users who are viewing this thread (total: 1, members: 0, guests: 1)